Skip to content

Commit

Permalink
Merge pull request #556 from wolfcomp/65-obsolete-removes
Browse files Browse the repository at this point in the history
Patch 6.5 remove all obsoletes in current code
  • Loading branch information
wolfcomp authored Oct 23, 2023
2 parents ac3362c + 7118c90 commit acf0b16
Show file tree
Hide file tree
Showing 45 changed files with 8 additions and 575 deletions.
6 changes: 0 additions & 6 deletions FFXIVClientStructs/CExportIgnore.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FFXIVClientStructs;

[AttributeUsage(AttributeTargets.Field)]
Expand Down
11 changes: 1 addition & 10 deletions FFXIVClientStructs/FFXIV/Client/Game/Character/BattleChara.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,7 @@ namespace FFXIVClientStructs.FFXIV.Client.Game.Character;
public unsafe partial struct BattleChara {
[FieldOffset(0x0)] public Character Character;

[Obsolete("Use GetStatusManager", true)]
[FieldOffset(0x1C10)] public StatusManager StatusManager;

[Obsolete("Use GetCastInfo", true)]
[FieldOffset(0x1F00)] public Character.CastInfo SpellCastInfo;

//[FieldOffset(0x2070)] public fixed byte IncomingEffects[0xF00];

[Obsolete("Use GetForayInfo", true)]
[FieldOffset(0x2F70)] public Character.ForayInfo Foray;
//[FieldOffset(0x1E60)] public fixed byte UnkBattleCharaStruct[0xF00];

public StatusManager* GetStatusManager => Character.GetStatusManager();
public Character.CastInfo* GetCastInfo => Character.GetCastInfo();
Expand Down
86 changes: 1 addition & 85 deletions FFXIVClientStructs/FFXIV/Client/Game/Character/Character.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,74 +18,17 @@ public unsafe partial struct Character {

[FieldOffset(0x1A0)] public CharacterData CharacterData;

#region This is inside a new 0x48 byte class at offset 0x1A8

[FieldOffset(0x1B0), Obsolete("Use CharacterData.ModelScale", true)]
public float ModelScale;
[FieldOffset(0x1B4), Obsolete("Use CharacterData.ModelCharaId", true)]
public int ModelCharaId;
[FieldOffset(0x1B8), Obsolete("Use CharacterData.ModelSkeletonId", true)]
public int ModelSkeletonId;
[FieldOffset(0x1BC), Obsolete("Use CharacterData.ModelCharaId_2", true)]
public int ModelCharaId_2; // == -1 -> return ModelCharaId
[FieldOffset(0x1C0), Obsolete("Use CharacterData.ModelSkeletonId_2", true)]
public int ModelSkeletonId_2; // == 0 -> return ModelSkeletonId

[FieldOffset(0x1C4), Obsolete("Use CharacterData.Health", true)]
public uint Health;
[FieldOffset(0x1C8), Obsolete("Use CharacterData.MaxHealth", true)]
public uint MaxHealth;
[FieldOffset(0x1CC), Obsolete("Use CharacterData.Mana", true)]
public uint Mana;
[FieldOffset(0x1D0), Obsolete("Use CharacterData.MaxMana", true)]
public uint MaxMana;
[FieldOffset(0x1D4), Obsolete("Use CharacterData.GatheringPoints", true)]
public ushort GatheringPoints;
[FieldOffset(0x1D6), Obsolete("Use CharacterData.MaxGatheringPoints", true)]
public ushort MaxGatheringPoints;
[FieldOffset(0x1D8), Obsolete("Use CharacterData.CraftingPoints", true)]
public ushort CraftingPoints;
[FieldOffset(0x1DA), Obsolete("Use CharacterData.MaxCraftingPoints", true)]
public ushort MaxCraftingPoints;
[FieldOffset(0x1DC), Obsolete("Use CharacterData.TransformationId", true)]
public short TransformationId;
[FieldOffset(0x1DE), Obsolete("Use CharacterData.StatusEffectVFXId", true)]
public short StatusEffectVFXId; // outdated since TitleID moved here
[FieldOffset(0x1DE), Obsolete("Use CharacterData.TitleID", true)]
public ushort TitleID;

[FieldOffset(0x1E2), Obsolete("Use CharacterData.ClassJob", true)]
public byte ClassJob;
[FieldOffset(0x1E3), Obsolete("Use CharacterData.Level", true)]
public byte Level;

[FieldOffset(0x1ED), Obsolete("Use CharacterData.ShieldValue", true)]
public byte ShieldValue;

[FieldOffset(0x1EF), Obsolete("Use CharacterData.OnlineStatus", true)]
public byte OnlineStatus;

#endregion

[FieldOffset(0x210)] public fixed byte Movement[0x420];

[FieldOffset(0x630)] public EmoteController EmoteController;
[FieldOffset(0x630 + 0x21), Obsolete("Use EmoteController.CPoseState", true)] public byte CPoseState;


[FieldOffset(0x670)] public MountContainer Mount;
[FieldOffset(0x6D8)] public CompanionContainer Companion;

[FieldOffset(0x6F8)] public DrawDataContainer DrawData;
[Obsolete($"Use {nameof(DrawData)}", true), FieldOffset(0x6F8 + 0x148)] public fixed byte EquipSlotData[4 * 10];
[Obsolete($"Use {nameof(DrawData)}.CustomizeData", true), FieldOffset(0x6F8 + 0x170)] public fixed byte CustomizeData[0x1A];

[FieldOffset(0x8A0)] public OrnamentContainer Ornament;
[FieldOffset(0x918)] public ReaperShroudContainer ReaperShroud;
[FieldOffset(0x970)] public ActionTimelineManager ActionTimelineManager;

[Obsolete($"Use {nameof(LookTargetId)} instead.", true)]
[FieldOffset(0xCB0)] public uint PlayerTargetObjectID; // offset not updated for 6.5

/// <summary>
/// The current target for this character's gaze. Can be set independently of soft or hard targets, and may be set
/// by NPCs or minions. For players, an action cast will generally target the LookTarget (which generally will be
Expand All @@ -98,16 +41,6 @@ public unsafe partial struct Character {

[FieldOffset(0x12F0)] public VfxContainer Vfx;

[Obsolete("Use Vfx.VfxData", true)]
[FieldOffset(0x12F0 + 0x18)] public VfxData* VfxData;
[Obsolete("Use Vfx.VfxData2", true)]
[FieldOffset(0x12F0 + 0x20)] public VfxData* VfxData2;
[Obsolete("Use Vfx.Omen", true)]
[FieldOffset(0x12F0 + 0x48)] public VfxData* Omen;

[Obsolete("Use Vfx.VoiceId", true)]
[FieldOffset(0x13C0)] public ushort VoiceId;

[FieldOffset(0x1410)] public byte StatusFlags4;
[FieldOffset(0x1418)] public CharacterSetup CharacterSetup;

Expand All @@ -117,12 +50,6 @@ public unsafe partial struct Character {
[FieldOffset(0x1B30)] public Companion* CompanionObject; // minion
[FieldOffset(0x1B40)] public fixed byte FreeCompanyTag[6];

[Obsolete("Use CharacterData.CombatTaggerId instead.", true)]
[FieldOffset(0x1AB0)] public GameObjectID CombatTaggerId; // offset not updated for 6.5

[Obsolete($"Use {nameof(TargetId)} instead.", true)]
[FieldOffset(0x1B58)] public ulong TargetObjectID;

/// <summary>
/// The current (hard) target for this Character. This will not be set for the LocalPlayer.
/// </summary>
Expand Down Expand Up @@ -152,9 +79,6 @@ public unsafe partial struct Character {
[FieldOffset(0x1BB6)] public CharacterModes Mode;
[FieldOffset(0x1BB7)] public byte ModeParam; // Different purpose depending on mode. See CharacterModes for more info.

[Obsolete("Use CharacterData.CombatTagType instead.", true)]
[FieldOffset(0x1B31)] public byte CombatTagType; // offset not updated for 6.5

// Note: These 2 status flags might be just an ushort instead of 2 separate bytes.

// 0x1 = WeaponDrawn
Expand Down Expand Up @@ -199,11 +123,6 @@ public bool IsGPoseWet {
[MemberFunction("E8 ?? ?? ?? ?? B8 ?? ?? ?? ?? 4C 3B F0")]
public partial void SetSoftTargetId(GameObjectID id);

[Obsolete("Use CharacterSetup.CopyFromCharacter", true)]
public ulong CopyFromCharacter(Character* source, CharacterSetup.CopyFlags flags) => CharacterSetup.CopyFromCharacter(source, flags);

[Obsolete("Use CopyFromCharacter(Character*, CopyFlags)", true)]
public ulong CopyFromCharacter(Character* source, uint flags) => CopyFromCharacter(source, (CharacterSetup.CopyFlags)flags);
public bool IsMounted() {
// inlined as of 6.5
return this.Mount.MountId != 0;
Expand All @@ -212,9 +131,6 @@ public bool IsMounted() {
[MemberFunction("E8 ?? ?? ?? ?? 48 8B 4F ?? E8 ?? ?? ?? ?? 48 8B 4C 24 ??")]
public partial void SetMode(CharacterModes mode, byte modeParam);

[Obsolete("Use CharacterSetup.SetupBNpc", true)]
public void SetupBNpc(uint bNpcBaseId, uint bNpcNameId = 0) => CharacterSetup.SetupBNpc(bNpcBaseId, bNpcNameId);

/// <summary> Can only be used for Mounts, Minions, and Ornaments. Literally just checks if the game object at index - 1 is a character and returns that. </summary>
[MemberFunction("E8 ?? ?? ?? ?? 48 85 C0 48 0F 45 F8")]
public partial Character* GetParentCharacter();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ namespace FFXIVClientStructs.FFXIV.Client.Game.Character;

[StructLayout(LayoutKind.Explicit, Size = 0x338)]
public unsafe partial struct CharacterManager {
[Obsolete("Use BattleCharaListSpan", true)]
[FieldOffset(0x00)] public fixed long BattleCharaArray[100];
[FixedSizeArray<Pointer<BattleChara>>(100)]
[FieldOffset(0x00)] public fixed byte BattleCharaList[100 * 8];
[FieldOffset(0x320)] public BattleChara* BattleCharaMemory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,6 @@ public ref DrawObjectData Weapon(WeaponSlot which) {
return ref ((DrawObjectData*)ptr)[(int)which];
}

[Obsolete("Use Weapon(WeaponSlot.MainHand).ModelId", true)]
[FieldOffset(0x010)] public WeaponModelId MainHandModel;
[Obsolete("Use Weapon(WeaponSlot.MainHand).State", true)]
[FieldOffset(0x06C)] public byte MainHandState;
[Obsolete("Use Weapon(WeaponSlot.MainHand).Flags1", true)]
[FieldOffset(0x072)] public ushort MainHandFlags1;
[Obsolete("Use Weapon(WeaponSlot.MainHand).Flags2", true)]
[FieldOffset(0x074)] public byte MainHandFlags2;

[Obsolete("Use Weapon(WeaponSlot.OffHand).ModelId", true)]
[FieldOffset(0x080)] public WeaponModelId OffHandModel;
[Obsolete("Use Weapon(WeaponSlot.OffHand).State", true)]
[FieldOffset(0x0DC)] public byte OffHandState;
[Obsolete("Use Weapon(WeaponSlot.OffHand).Flags1", true)]
[FieldOffset(0x0E2)] public ushort OffHandFlags1;
[Obsolete("Use Weapon(WeaponSlot.OffHand).Flags2", true)]
[FieldOffset(0x0E4)] public byte OffHandFlags2;

[Obsolete("Use Weapon(WeaponSlot.Unk).ModelId", true)]
[FieldOffset(0x0F0)] public WeaponModelId UnkE0Model;
[Obsolete("Use Weapon(WeaponSlot.Unk).Flags1", true)]
[FieldOffset(0x152)] public ushort Unk144Flags1;
[Obsolete("Use Weapon(WeaponSlot.Unk).Flags2", true)]
[FieldOffset(0x154)] public byte Unk144Flags2;

[FieldOffset(0x010 + 3 * DrawObjectData.Size + 0x00)] public EquipmentModelId Head;
[FieldOffset(0x010 + 3 * DrawObjectData.Size + 0x04)] public EquipmentModelId Top;
[FieldOffset(0x010 + 3 * DrawObjectData.Size + 0x08)] public EquipmentModelId Arms;
Expand Down Expand Up @@ -120,18 +95,6 @@ public bool IsVisorToggled {
get => (Flags2 & 0x10) == 0x10;
set => Flags2 = (byte)(value ? Flags2 | 0x10 : Flags2 & ~0x10);
}

[Obsolete("Use WeaponSpan[0].IsHidden", true)]
public bool IsMainHandHidden {
get => (Weapon(WeaponSlot.MainHand).State & 0x02) == 0x02;
set => Weapon(WeaponSlot.MainHand).State = (byte)(value ? Weapon(WeaponSlot.MainHand).State | 0x02 : Weapon(WeaponSlot.MainHand).State & ~0x02);
}

[Obsolete("Use WeaponSpan[1].IsHidden", true)]
public bool IsOffHandHidden {
get => (Weapon(WeaponSlot.OffHand).State & 0x02) == 0x02;
set => Weapon(WeaponSlot.OffHand).State = (byte)(value ? Weapon(WeaponSlot.OffHand).State | 0x02 : Weapon(WeaponSlot.OffHand).State & ~0x02);
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ public unsafe partial struct HousingManager {
public static partial HousingManager* Instance();

[FieldOffset(0x00)] public HousingTerritory* CurrentTerritory;
[Obsolete("Use HousingOutdoorTerritory", true)]
[FieldOffset(0x08)] public HousingTerritory* OutdoorTerritory;
[FieldOffset(0x08)] public HousingOutdoorTerritory* HousingOutdoorTerritory;
[FieldOffset(0x08)] public HousingOutdoorTerritory* OutdoorTerritory;
[FieldOffset(0x10)] public HousingTerritory* IndoorTerritory;
[FieldOffset(0x18)] public HousingWorkshopTerritory* WorkshopTerritory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ public unsafe partial struct HousingWorkshopSubmersibleData {

[StructLayout(LayoutKind.Explicit, Size = 0x1C0)]
public unsafe partial struct HousingWorkshopAirshipSubData {
[FieldOffset(0x0), Obsolete("Cast to byte instead", true)] public fixed byte Data[0x1C0];
[FieldOffset(0x4)] public uint RegisterTime;
[FieldOffset(0xC)] public byte RankId;
[FieldOffset(0x10)] public uint ReturnTime;
Expand Down Expand Up @@ -91,7 +90,6 @@ public unsafe partial struct HousingWorkshopAirshipGathered {
[StructLayout(LayoutKind.Explicit, Size = 0x2320)]
public unsafe partial struct HousingWorkshopSubmersibleSubData {
[FieldOffset(0x0)] public HousingWorkshopSubmersibleData* Parent;
[FieldOffset(0x0), Obsolete("Wrong mapping stop using this", true)] public HousingWorkshopSubmersibleSubData* Self;
[FieldOffset(0xE)] public byte RankId;
[FieldOffset(0x10)] public uint RegisterTime;
[FieldOffset(0x14)] public uint ReturnTime;
Expand All @@ -118,7 +116,6 @@ public unsafe partial struct HousingWorkshopSubmersibleSubData {
[FieldOffset(0x58)] public ushort SpeedBonus;
[FieldOffset(0x5A)] public ushort RangeBonus;
[FieldOffset(0x5C)] public ushort FavorBonus;
[FieldOffset(0x60), Obsolete("Use SubmarineRating", true)] public byte Rating;
[FieldOffset(0x60)] public SubmarineRating SubmarineRating;
[FieldOffset(0x62)] public ushort LogSpeed;

Expand Down Expand Up @@ -162,14 +159,6 @@ public struct HousingWorkshopSubmarineGathered {
[FieldOffset(0x1D)] public bool ItemHQAdditional;
[FieldOffset(0x1E)] public byte UnknownPrimary;
[FieldOffset(0x1F)] public byte UnknownAdditional;

[FieldOffset(0x20), Obsolete("Use SurveyLinePrimary", true)] public uint UnknownPrimary1;
[FieldOffset(0x24), Obsolete("Use SurveyLineAdditional", true)] public uint UnknownAdditional1;
[FieldOffset(0x28), Obsolete("Use YieldLinePrimary", true)] public uint UnknownPrimary2;
[FieldOffset(0x2C), Obsolete("Use YieldLineAdditional", true)] public uint UnknownAdditional2;
[FieldOffset(0x30), Obsolete("Use DiscoveredLinePrimary", true)] public uint UnknownPrimary3;
[FieldOffset(0x34), Obsolete("Use DiscoveredLineAdditional", true)] public uint UnknownAdditional3;

[FieldOffset(0x20)] public uint SurveyLinePrimary;
[FieldOffset(0x24)] public uint SurveyLineAdditional;
[FieldOffset(0x28)] public uint YieldLinePrimary;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ public unsafe struct InstanceContentDirector {
/// <summary>
/// The remaining time in seconds for the instance.
/// </summary>
[FieldOffset(0xC08), Obsolete("Use ContentDirector.ContentTimeLeft", true)] public float TimeRemaining;
[FieldOffset(0xCE4)] public InstanceContentType InstanceContentType;
}

Expand Down
3 changes: 0 additions & 3 deletions FFXIVClientStructs/FFXIV/Client/Game/MJI/IslandState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,4 @@ public struct MJIFarmPasture {
[FieldOffset(0x01)] public byte HoursToCompletion;
[FieldOffset(0x02)] public bool UnderConstruction;
[FieldOffset(0x03)] public byte EligibleForCare;

[Obsolete($"Renamed to {nameof(EligibleForCare)}")]
[FieldOffset(0x03)] public byte UNK_0x4;
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ public unsafe partial struct SavedAppearanceManager {
public unsafe partial struct SavedAppearanceSlot {
[FieldOffset(0x00)] public uint Magic; // Should be 0x2013_FF14
[FieldOffset(0x04)] public uint Version;
[Obsolete("Use CustomizeData", true)]
[FieldOffset(0x10)] public fixed byte Customize[0x1A];
[FieldOffset(0x10)] public CustomizeData CustomizeData;
[FieldOffset(0x30), FixedString("Label")] public fixed byte LabelBytes[0x40];
[FieldOffset(0x134)] public bool IsCreated;
Expand Down
2 changes: 0 additions & 2 deletions FFXIVClientStructs/FFXIV/Client/Game/UI/Cabinet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ namespace FFXIVClientStructs.FFXIV.Client.Game.UI;
/// </summary>
[StructLayout(LayoutKind.Explicit, Size = 0x84)]
public unsafe partial struct Cabinet {
[Obsolete("Use State.", true)]
[FieldOffset(0x00)] public int CabinetLoaded; // This becomes 2 for some reason, unsure why or what it means.
[FieldOffset(0x00)] public CabinetState State;
[FieldOffset(0x04)] public fixed byte UnlockedItems[0x80];

Expand Down
18 changes: 0 additions & 18 deletions FFXIVClientStructs/FFXIV/Client/Game/UI/ContentsFinder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,6 @@ public unsafe partial struct ContentsFinder {
[FieldOffset(0x00)] public void* vtbl;
[FieldOffset(0x18)] public LootRule LootRules;

[Obsolete("Use IsUnrestrictedParty boolean property instead", true)]
[FieldOffset(0x19)] public byte UnrestrictedParty;

[Obsolete("Use IsMinimalIL boolean property instead", true)]
[FieldOffset(0x1A)] public byte MinimalIL;

[Obsolete("Use IsSilenceEcho boolean property instead", true)]
[FieldOffset(0x1B)] public byte SilenceEcho;

[Obsolete("Use IsExplorerMode boolean property instead", true)]
[FieldOffset(0x1C)] public byte ExplorerMode;

[Obsolete("Use IsLevelSync boolean property instead", true)]
[FieldOffset(0x1D)] public byte LevelSync;

[Obsolete("Use IsLimitedLevelingRoulette boolean property instead", true)]
[FieldOffset(0x1E)] public byte LimitedLevelingRoulette;

[FieldOffset(0x19)] public bool IsUnrestrictedParty;
[FieldOffset(0x1A)] public bool IsMinimalIL;
[FieldOffset(0x1B)] public bool IsSilenceEcho;
Expand Down
4 changes: 0 additions & 4 deletions FFXIVClientStructs/FFXIV/Client/Game/UI/Inspect.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
using FFXIVClientStructs.FFXIV.Client.Game.Character;
using FFXIVClientStructs.FFXIV.Client.Game.Object;

namespace FFXIVClientStructs.FFXIV.Client.Game.UI;

[StructLayout(LayoutKind.Explicit, Size = 0x268)]
public unsafe struct Inspect {
[FieldOffset(0xC), Obsolete("Improperly mapped use outside variables", true)] public GameObjectID ObjectId;

[FieldOffset(0xC)] public uint ObjectID;
[FieldOffset(0x10)] public byte Type;
[FieldOffset(0x10), Obsolete("Not valid. Use CustomizeData.Sex", true)] public byte Sex;
[FieldOffset(0x12)] public short WorldId;
[FieldOffset(0x14)] public fixed byte Name[64];

Expand Down
6 changes: 0 additions & 6 deletions FFXIVClientStructs/FFXIV/Client/Game/UI/MobHunt.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,6 @@ namespace FFXIVClientStructs.FFXIV.Client.Game.UI;
/// </summary>
[StructLayout(LayoutKind.Explicit, Size = 0x198)]
public unsafe partial struct MobHunt {
[Obsolete("Use AvailableMarkId instead", true)]
[FieldOffset(0x8)] public fixed byte unkArray[18];

[Obsolete("Use ObtainedMarkId instead", true)]
[FieldOffset(0x1A)] public fixed byte MarkID[18];

[FieldOffset(0x08)] public fixed byte AvailableMarkId[18];
[FieldOffset(0x1A)] public fixed byte ObtainedMarkId[18];

Expand Down
3 changes: 0 additions & 3 deletions FFXIVClientStructs/FFXIV/Client/Game/UI/PlayerState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,6 @@ public float GetDesynthesisLevel(uint classJobId)
[MemberFunction("E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 84 C0 75 0C")]
public partial byte GetBeastTribeRank(byte beastTribeIndex);

[Obsolete("Use QuestManager.Instance()->GetBeastTribeAllowance() instead.", true)]
public static ulong GetBeastTribeAllowance() => QuestManager.Instance()->GetBeastTribeAllowance();

/// <summary>
/// Returns whether the player is possessing the maximum amount of specialized souls.
/// </summary>
Expand Down
1 change: 0 additions & 1 deletion FFXIVClientStructs/FFXIV/Client/Game/UI/WeaponState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ namespace FFXIVClientStructs.FFXIV.Client.Game.UI;

[StructLayout(LayoutKind.Explicit, Size = 0x18)]
public struct WeaponState {
[FieldOffset(0x00), Obsolete("Use IsUnsheathed instead.", true)] public byte WeaponUnsheathed;
[FieldOffset(0x00)] public bool IsUnsheathed;
[FieldOffset(0x04)] public float SheatheCooldown;
[FieldOffset(0x08)] public float AutoSheathTimer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ public unsafe partial struct EnvManager {
[FieldOffset(0x30)] public EnvSpace* EnvSpace;

[FieldOffset(0x50)] public EnvState EnvState;
[FieldOffset(0x17C), Obsolete("Use EnvState.Rain", true)]
public float Rain; // seems to be 1.0f when raining and 0.0f otherwise.
[FieldOffset(0x388)] public EnvSoundState EnvSoundState;
[FieldOffset(0x400)] public EnvSimulator EnvSimulator;
[FieldOffset(0x750)] public ShadowCamera ShadowCamera;
Expand Down
Loading

0 comments on commit acf0b16

Please sign in to comment.