Merge pull request #18 from attickdoor/icon-dev

Add some icon swaps, standardize others.
This commit is contained in:
goaaats 2019-12-27 12:37:19 +09:00 committed by GitHub
commit f4f70aa2ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 78 additions and 32 deletions

View file

@ -7,13 +7,19 @@ using System.Threading.Tasks;
namespace XIVLauncher.Dalamud
{
//CURRENT HIGHEST FLAG IS 44
//CURRENT HIGHEST FLAG IS 46
[Flags]
public enum CustomComboPreset : long
{
None = 0,
// DRAGOON
[CustomComboInfo("Jump + Mirage Dive", "Replace Jump with Mirage Dive when Dive Ready", 22)]
DragoonJumpFeature = 1L << 44,
[CustomComboInfo("BOTD Into Stardiver", "Replace Blood of the Dragon with Stardiver when in Life of the Dragon", 22)]
DragoonBOTDFeature = 1L << 46,
[CustomComboInfo("Coerthan Torment Combo", "Replace Coerthan Torment with its combo chain", 22)]
DragoonCoerthanTormentCombo = 1L << 0,
@ -77,19 +83,22 @@ namespace XIVLauncher.Dalamud
[CustomComboInfo("Hakke Mujinsatsu Combo", "Replace Hakke Mujinsatsu with its combo chain", 30)]
NinjaHakkeMujinsatsuCombo = 1L << 19,
[CustomComboInfo("Dream to Assassinate", "Replace Dream Within a Dream with Assassinate when Assassinate Ready", 30)]
NinjaAssassinateFeature = 1L << 45,
// GUNBREAKER
[CustomComboInfo("Solid Barrel Combo", "Replace Solid Barrel with its combo chain", 37)]
GunbreakerSolidBarrelCombo = 1L << 20,
[CustomComboInfo("Gnashing Fang Combo", "Replace Gnashing Fang with its combo chain", 37)]
[CustomComboInfo("Gnashing Fang Combo", "Replace Wicked Talon with its combo chain", 37)]
GunbreakerGnashingFangCombo = 1L << 21,
[CustomComboInfo("Demon Slaughter Combo", "Replace Demon Slaughter with its combo chain", 37)]
GunbreakerDemonSlaughterCombo = 1L << 22,
// MACHINIST
[CustomComboInfo("Heated Clan Shot Combo/Heat", "Replace Heated Clan Shot with its combo chain or with Heat Blast when overheated.", 31)]
MachinistHeatedClanShotFeature = 1L << 23,
[CustomComboInfo("(Heated) Shot Combo", "Replace UNHEATED Split Shot with its combo chain or with Heat Blast when overheated.", 31)]
MachinistMainCombo = 1L << 23,
[CustomComboInfo("Spread Shot Heat", "Replace Spread Shot with Auto Crossbow when overheated.", 31)]
MachinistSpreadShotFeature = 1L << 24,
@ -112,10 +121,10 @@ namespace XIVLauncher.Dalamud
[CustomComboInfo("Brand of Purgatory Combo", "Replaces Fountain of Fire with Brand of Purgatory when under the affect of Hellish Conduit.", 27)]
SummonerBoPCombo = 1L << 38,
[CustomComboInfo("ED Fester", "Change Energy Drain into Fester while you have Aetherflow stacks.", 27)]
[CustomComboInfo("ED Fester", "Change Fester into Energy Drain when out of Aetherflow stacks.", 27)]
SummonerEDFesterCombo = 1L << 39,
[CustomComboInfo("ES Painflare", "Change Energy Siphon into Painflare while you have Aetherflow stacks.", 27)]
[CustomComboInfo("ES Painflare", "Change Painflare into Energy Syphon when out of Aetherflow stacks.", 27)]
SummonerESPainflareCombo = 1L << 40,
[CustomComboInfo("DWT", "DWT.", 27)]

View file

@ -15,7 +15,7 @@ namespace Dalamud.Game.ClientState
protected override void Setup64Bit(SigScanner sig) {
ActorTable = sig.Module.BaseAddress + 0x1BFBA38;
LocalContentId = sig.Module.BaseAddress + 0x1C2E000;
JobGaugeData = sig.Module.BaseAddress + 0x1C00110;
JobGaugeData = sig.Module.BaseAddress + 0x1BFB110;
}
}
}

View file

@ -36,11 +36,11 @@ namespace Dalamud.Game.Internal.Gui {
this.Address.Setup(scanner);
this.byteBase = scanner.Module.BaseAddress;
this.comboTimer = byteBase + 0x1BB8B50;
this.comboTimer = byteBase + 0x1BB3B50;
//this.comboTimer = scanner.ScanText("E8 ?? ?? ?? ?? 80 7E 21 00") + 0x178;
this.lastComboMove = this.comboTimer + 0x4;
this.playerLevel = byteBase + 0x1C30FA8 + 0x78;
this.playerLevel = byteBase + 0x1C2BFA8 + 0x78;
//this.playerLevel = scanner.ScanText("E8 ?? ?? ?? ?? 88 45 EF") + 0x4D;
CustomIDs = new HashSet<uint>();
@ -107,7 +107,29 @@ namespace Dalamud.Game.Internal.Gui {
var level = Marshal.ReadByte(this.playerLevel);
// DRAGOON
// TODO: Jump/High Jump into Mirage Dive
// Change Jump/High Jump into Mirage Dive when Dive Ready
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.DragoonJumpFeature)) {
if (actionID == 92) {
if (SearchBuffArray(1243)) {
return 7399;
}
if (level >= 74) return 16478;
return 92;
}
}
// Change Blood of the Dragon into Stardiver when in Life of the Dragon
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.DragoonBOTDFeature)) {
if (actionID == 3553) {
if (level >= 80) {
if (this.dalamud.ClientState.JobGauges.Get<DRGGauge>().BOTDState == BOTDState.LOTD) {
return 16480;
}
}
return 3553;
}
}
// Replace Coerthan Torment with Coerthan Torment combo chain
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.DragoonCoerthanTormentCombo)) {
@ -345,6 +367,14 @@ namespace Dalamud.Game.Internal.Gui {
}
}
//Replace Dream Within a Dream with Assassinate when Assassinate Ready
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.NinjaAssassinateFeature)) {
if(actionID == 3566) {
if (SearchBuffArray(1955)) return 2246;
return 3566;
}
}
// GUNBREAKER
// Replace Solid Barrel with Solid Barrel combo
@ -358,10 +388,10 @@ namespace Dalamud.Game.Internal.Gui {
}
}
// Replace Gnashing Fang with Gnashing Fang combo
// Replace Wicked Talon with Gnashing Fang combo
// TODO: Potentially add Contuation moves as well?
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.GunbreakerGnashingFangCombo)) {
if (actionID == 16146) {
if (actionID == 16150) {
byte ammoComboState = this.dalamud.ClientState.JobGauges.Get<GNBGauge>().AmmoComboStepNumber;
if (ammoComboState == 1) return 16147;
if (ammoComboState == 2) return 16150;
@ -381,11 +411,11 @@ namespace Dalamud.Game.Internal.Gui {
// MACHINIST
// Replace Heated Clean Shot with Heated Clean Shot combo
// Replace Clean Shot with Heated Clean Shot combo
// Or with Heat Blast when overheated.
// For some reason the shots use their unheated IDs as combo moves
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.MachinistHeatedClanShotFeature)) {
if (actionID == 7413) {
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.MachinistMainCombo)) {
if (actionID == 2873) {
MCHGauge gauge = this.dalamud.ClientState.JobGauges.Get<MCHGauge>();
// End overheat slightly early to prevent eager button mashing clipping your gcd with a fake 6th HB.
if (gauge.IsOverheated() && level >= 35 && gauge.OverheatTimeRemaining > 30) return 7410;
@ -399,7 +429,8 @@ namespace Dalamud.Game.Internal.Gui {
if (level >= 26) return 2873;
}
}
return 7411;
if (level >= 54) return 7411;
return 2866;
}
}
@ -482,7 +513,10 @@ namespace Dalamud.Game.Internal.Gui {
}
else {
if (gauge.IsBahamutReady()) return 7427;
if (gauge.IsPhoenixReady()) return 16513;
if (gauge.IsPhoenixReady()) {
if (level == 80) return 16549;
return 16513;
}
return 3581;
}
}
@ -524,20 +558,21 @@ namespace Dalamud.Game.Internal.Gui {
}
}
// Change Energy Drain into Fester
// Change Fester into Energy Drain
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.SummonerEDFesterCombo)) {
if (actionID == 16508) {
if (this.dalamud.ClientState.JobGauges.Get<SMNGauge>().HasAetherflowStacks())
return 181;
return 16508;
if (actionID == 181) {
if (!this.dalamud.ClientState.JobGauges.Get<SMNGauge>().HasAetherflowStacks())
return 16508;
return 181;
}
}
//Change Energy Siphon into Painflare
//Change Painflare into Energy Syphon
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.SummonerESPainflareCombo)) {
if (actionID == 16510) {
if (this.dalamud.ClientState.JobGauges.Get<SMNGauge>().HasAetherflowStacks())
if (level >= 52) return 3578;
if (actionID == 3578) {
if (!this.dalamud.ClientState.JobGauges.Get<SMNGauge>().HasAetherflowStacks())
return 16510;
if (level >= 52) return 3578;
return 16510;
}
}
@ -849,7 +884,7 @@ namespace Dalamud.Game.Internal.Gui {
private unsafe delegate int* getArray(long* address);
private unsafe IntPtr FindBuffAddress() {
IntPtr randomAddress = byteBase + 0x1C07BE0;
IntPtr randomAddress = byteBase + 0x1C02BE0;
IntPtr num = Marshal.ReadIntPtr(randomAddress);
IntPtr step2 = (IntPtr)(Marshal.ReadInt64(num) + 0x248);
IntPtr step3 = Marshal.ReadIntPtr(step2);
@ -879,7 +914,7 @@ namespace Dalamud.Game.Internal.Gui {
CustomIDs.Add(2255);
CustomIDs.Add(16488);
CustomIDs.Add(16145);
CustomIDs.Add(16146);
CustomIDs.Add(16150);
CustomIDs.Add(16149);
CustomIDs.Add(7413);
CustomIDs.Add(2870);
@ -889,8 +924,8 @@ namespace Dalamud.Game.Internal.Gui {
CustomIDs.Add(3582);
CustomIDs.Add(3581);
CustomIDs.Add(163);
CustomIDs.Add(16508);
CustomIDs.Add(16510);
CustomIDs.Add(181);
CustomIDs.Add(3578);
CustomIDs.Add(16543);
CustomIDs.Add(167);
CustomIDs.Add(15994);
@ -904,6 +939,10 @@ namespace Dalamud.Game.Internal.Gui {
CustomIDs.Add(16525);
CustomIDs.Add(16524);
CustomIDs.Add(7516);
CustomIDs.Add(3566);
CustomIDs.Add(92);
CustomIDs.Add(3553);
CustomIDs.Add(2873);
VanillaIDs.Add(0x3e75);
VanillaIDs.Add(0x3e76);
VanillaIDs.Add(0x3e77);
@ -1064,7 +1103,6 @@ namespace Dalamud.Game.Internal.Gui {
VanillaIDs.Add(0xb32);
VanillaIDs.Add(0xb34);
VanillaIDs.Add(0xb38);
VanillaIDs.Add(0xb39);
VanillaIDs.Add(0xb3e);
VanillaIDs.Add(0x12d);
VanillaIDs.Add(0x15);
@ -1072,7 +1110,6 @@ namespace Dalamud.Game.Internal.Gui {
VanillaIDs.Add(0x31);
VanillaIDs.Add(0x33);
VanillaIDs.Add(0x4b);
VanillaIDs.Add(0x5c);
VanillaIDs.Add(0x62);
VanillaIDs.Add(0x64);
VanillaIDs.Add(0x71);