Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ BinaryAssetBuilder implementation for Kane's Wrath in .Net
* [ ] ObjectCreationList 0x683D4DE5
* [ ] ObjectFilterAsset 0x25970AF7
* [ ] SpecialPowerTemplate 0x5EF0ACA9
* [ ] UpgradeTemplate 0x1E53F384
* [x] UpgradeTemplate
* [ ] SkirmishOpeningMove 0x21EE29FA
* [ ] AIStateDefinition 0x262BE85F
* [ ] AIStrategicStateDefinition 0x1E27DA26
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,15 @@ public void Initialize(TargetPlatform platform)
0x6D59C409u,
#endif
false),


(typeof(UpgradeTemplate),
#if TIBERIUMWARS
0x1E53F384u,
#elif KANESWRATH
0x163BC89Du,
#endif
false),
})
{
CreateTypeInfo(type, num, hash, hasCustomData);
Expand Down
67 changes: 33 additions & 34 deletions source/SageBinaryData/SageBinaryData/UpgradeTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,38 @@
using System.Runtime.InteropServices;
using AnsiString = Relo.String<sbyte>;

namespace SageBinaryData
namespace SageBinaryData;

[StructLayout(LayoutKind.Sequential)]
public struct UpgradeTemplate
{
[StructLayout(LayoutKind.Sequential)]
public struct UpgradeTemplate
{
public BaseInheritableAsset Base;
public AnsiString DisplayName;
public AnsiString Description;
public AnsiString TypeDescription;
public AnsiString AcquireHint;
public UpgradeType Type;
public Time BuildTime;
public int BuildCost;
public AssetReference<BaseAudioEventInfo, AudioEventInfo> ResearchSound;
public AnsiString ResearchCompleteEvaEvent;
public AssetReference<BaseAudioEventInfo, AudioEventInfo> UnitSpecificSound;
public AssetReference<FXList> UpgradeFX;
public AnsiString LocalPlayerGainsUpgradeEvaEvent;
public AnsiString AlliedPlayerGainsUpgradeEvaEvent;
public AnsiString EnemyPlayerGainsUpgradeEvaEvent;
public AnsiString LocalPlayerLosesUpgradeEvaEvent;
public AnsiString AlliedPlayerLosesUpgradeEvaEvent;
public AnsiString EnemyPlayerLosesUpgradeEvaEvent;
public unsafe AnsiString* LocalPlayerProductionStartedEvaEvent;
public unsafe AnsiString* LocalPlayerBuildOnHoldEvaEvent;
public unsafe AnsiString* LocalPlayerBuildCancelledEvaEvent;
public TypedAssetId<BaseAssetType> UseObjectTemplateForCostDiscount; // should be TypedAssetId<GameObject> but .net thinks it might be a circular reference
public AnsiString GroupName;
public uint GroupOrder;
public AIUpgradeHeuristicType SkirmishAIHeuristic;
public UpgradeOptions Options;
public AnsiString IconImage;
public unsafe GameDependencyType* GameDependency;
public SageBool WaypointQueueable;
}
public BaseInheritableAsset Base;
public AnsiString DisplayName;
public AnsiString Description;
public AnsiString TypeDescription;
public AnsiString AcquireHint;
public UpgradeType Type;
public Time BuildTime;
public int BuildCost;
public AssetReference<BaseAudioEventInfo, AudioEventInfo> ResearchSound;
public AnsiString ResearchCompleteEvaEvent;
public AssetReference<BaseAudioEventInfo, AudioEventInfo> UnitSpecificSound;
public AssetReference<FXList> UpgradeFX;
public AnsiString LocalPlayerGainsUpgradeEvaEvent;
public AnsiString AlliedPlayerGainsUpgradeEvaEvent;
public AnsiString EnemyPlayerGainsUpgradeEvaEvent;
public AnsiString LocalPlayerLosesUpgradeEvaEvent;
public AnsiString AlliedPlayerLosesUpgradeEvaEvent;
public AnsiString EnemyPlayerLosesUpgradeEvaEvent;
public unsafe AnsiString* LocalPlayerProductionStartedEvaEvent;
public unsafe AnsiString* LocalPlayerBuildOnHoldEvaEvent;
public unsafe AnsiString* LocalPlayerBuildCancelledEvaEvent;
public TypedAssetId<BaseAssetType> UseObjectTemplateForCostDiscount; // should be TypedAssetId<GameObject> but .net thinks it might be a circular reference
public AnsiString GroupName;
public uint GroupOrder;
public AIUpgradeHeuristicType SkirmishAIHeuristic;
public UpgradeOptions Options;
public AnsiString IconImage;
public unsafe GameDependencyType* GameDependency;
public SageBool WaypointQueueable;
}