Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
be11427
Fix bait sig and fix wrong game version
sandtechnology Feb 19, 2025
90979a0
Fix format
sandtechnology Feb 19, 2025
bdd7bce
Bump to 25.2.20.0
sandtechnology Feb 19, 2025
014c3c6
Fix CI
sandtechnology Feb 19, 2025
4d512ce
Bump to 25.2.20.1 for CI release
sandtechnology Feb 19, 2025
700325a
Fix workflow branch
sandtechnology Feb 19, 2025
55c8d28
Bump to 25.2.20.2 for CI Release
sandtechnology Feb 19, 2025
55a492a
Fix release CI again
sandtechnology Feb 19, 2025
cc149a7
Bump to 25.2.20.3 for CI Release
sandtechnology Feb 19, 2025
3cc750c
Update opcodes for global 7.18 (#441)
valarnin Feb 25, 2025
c0b7802
Version bump to 0.19.46 (#440)
ShadyWhite Feb 25, 2025
f70933f
Update version of actions/cache (#445)
valarnin Mar 4, 2025
26d0887
Update opcodes for global 7.18 hotfix (#443)
valarnin Mar 4, 2025
f0f6b46
Version bump to 0.19.47 (#444)
valarnin Mar 4, 2025
6989266
Update opcodes for CN 7.11 (#447)
ShadyWhite Mar 11, 2025
185ccf6
CN 7.11
sandtechnology Mar 11, 2025
b3cb628
Bump version and cactbot version
sandtechnology Mar 11, 2025
a1ae6c0
Fix workflow by update action cache version
sandtechnology Mar 11, 2025
df070d8
Bump to 25.3.12.0
sandtechnology Mar 11, 2025
9cbd573
Updates opcodes for KR 7.1 (#448)
Ra-Workspace Mar 19, 2025
4b8922b
Version bump to 0.19.48 (#449)
Bing-su Mar 21, 2025
6ec5267
Update opcodes for global 7.2 (#450)
Makar8000 Mar 25, 2025
22ac254
Add Combatant struct for 7.2 (#452)
valarnin Mar 25, 2025
bafa1bc
Version bump to 0.19.49 (#451)
Makar8000 Mar 25, 2025
0ce06a8
Support for bundled MapEffect packets (#453)
valarnin Mar 27, 2025
77946cb
Update party memory for 7.2 (#454)
valarnin Mar 27, 2025
e53bf04
Version bump to 0.19.50 (#455)
valarnin Mar 27, 2025
7c3eb3e
Update opcodes, bump version (#456)
valarnin Apr 1, 2025
5a5198e
Updates opcodes for KR 7.11 (#457)
Ra-Workspace Apr 15, 2025
5a368dc
Version bump to 0.19.52 (#458)
Bing-su Apr 18, 2025
c57991a
CN 7.15
sandtechnology Apr 22, 2025
f22278a
Bump version to 25.4.23.0 and sync cactbot version
sandtechnology Apr 22, 2025
dc2c9d5
Update opcodes for global 7.21 (#461)
valarnin Apr 22, 2025
3478db6
Update opcodes for CN 7.15, bump version (#460)
ShadyWhite Apr 22, 2025
7f9e8d6
Update opcodes for KR 7.15 (#465)
Ra-Workspace May 26, 2025
153f02e
Update opcodes for global 7.25 (#466)
valarnin May 27, 2025
db0cd10
Version bump to 0.19.54 (#467)
valarnin May 27, 2025
7679821
Update opcodes for Global 7.25h (#468)
valarnin Jun 17, 2025
725420b
Version bump to 0.19.55 (#469)
valarnin Jun 17, 2025
c3c84d3
Update cn 7.2 cactbot sig
sandtechnology Jun 21, 2025
138147a
Merge remote-tracking branch 'cactbot/main'
sandtechnology Jun 21, 2025
b943752
Update opcodes for CN 7.2, bump version (#470)
ShadyWhite Jun 23, 2025
816d161
Update opcodes for Global 7.25h2 (#471)
valarnin Jun 24, 2025
a8026ed
cn 7.2
sandtechnology Jun 25, 2025
0219757
Update opcodes for Global 7.25h3 (#472)
Makar8000 Jul 3, 2025
ddf5e9c
Fix EffectMemory size (#462)
lsl1225 Jul 14, 2025
2694baf
Update opcodes for KR 7.2 and version bump to 0.19.59 (#474)
Ra-Workspace Jul 15, 2025
58bce5c
fix opcodes for KR 7.2 (#475)
Ra-Workspace Jul 15, 2025
58d93fe
Fix 7.2 LineSpawnNpcExtra (#476)
MnFeN Jul 24, 2025
ec20569
7.30 Global (#477)
valarnin Aug 6, 2025
3337fb2
7.30h1: Update opcodes and version bump (#478)
valarnin Aug 9, 2025
b11e6cc
Fix version numbers for 7.30h1 (#479)
valarnin Aug 11, 2025
e931f45
Updates opcodes for KR 7.21 (#481)
Ra-Workspace Aug 12, 2025
3f5edf1
Merge remote-tracking branch 'cactbot/main'
sandtechnology Aug 13, 2025
5b44453
cn 7.25 update
sandtechnology Aug 14, 2025
54f0a46
Bump cactbot version to 0.35.0.0
sandtechnology Aug 14, 2025
6bb3d6f
Bump version to 25.8.15.0
sandtechnology Aug 14, 2025
614add1
Update opcodes for CN 7.25, bump version (#480)
ShadyWhite Sep 2, 2025
84958e7
Update opcodes and version bump for global 7.31 (#482)
Makar8000 Sep 2, 2025
bbfff91
version bump to 0.19.65 (#483)
xiashtra Sep 2, 2025
600369d
Update opcodes and version bump for global 7.31 hotfix (#484)
Makar8000 Sep 5, 2025
d0ad3f4
Update opcodes and version bump for KR 7.25 (#485)
Ra-Workspace Sep 10, 2025
6bff586
Update opcodes for CN 7.3, bump version (#486)
ShadyWhite Sep 16, 2025
3dda890
LineCountdown cn fix (#488)
ShadyWhite Sep 18, 2025
a2c178b
cn 7.3 with cactbot 0.35.3.0, bump to 25.9.19.0
sandtechnology Sep 18, 2025
a9450d4
Update opcodes for 7.35 global, version bump (#489)
valarnin Oct 7, 2025
fde0a9b
7.35h opcodes, version bump (#490)
valarnin Oct 16, 2025
6c8c666
Update opcodes and version bump for KR 7.3 (#491)
Ra-Workspace Oct 29, 2025
64e4aff
Update opcodes for CN 7.35, bump version (#492)
ShadyWhite Nov 5, 2025
097ebe5
cn 7.35
sandtechnology Nov 8, 2025
3caa7e4
Bump version to 25.11.8.0
sandtechnology Nov 8, 2025
4d96429
Update opcodes for global 7.38, bump version (#493)
valarnin Nov 11, 2025
3a3c45a
Update opcodes for Korean 7.31, bump version (#494)
Ra-Workspace Nov 25, 2025
178af01
Traditional Chinese client support (#495)
valarnin Dec 12, 2025
c54a0ff
Global 7.4 support (#496)
valarnin Dec 16, 2025
94d7fe1
Update opcodes for CN 7.4, bump version (#498)
ShadyWhite Dec 17, 2025
a123163
Update opcodes for Global & CN 7.4 hotfix, bump version (#500)
ShadyWhite Dec 19, 2025
595d4c8
Fix CombatantMemory for 7.4+ (#501)
valarnin Dec 19, 2025
090d1aa
Version bump to 0.19.87 (#502)
valarnin Dec 19, 2025
0b9b0b6
Merge remote-tracking branch 'cactbot/main' 090d1aa202734e15e6048a6e8…
sandtechnology Dec 22, 2025
04d089f
cn 7.40a and cactbot 0.36.0
sandtechnology Dec 22, 2025
c20c072
Fix struct version for LineRSV
sandtechnology Dec 22, 2025
673a7f3
Bump version to 25.12.23.0
sandtechnology Dec 22, 2025
a19525c
Fix CombatantMemory74 PCTargetID field offset (#504)
MnFeN Dec 25, 2025
6d71257
fix: Triggernometry callback registration (#505)
MnFeN Dec 25, 2025
6565284
Update opcodes for Global & CN 7.4 hotfix 2 (#506)
ShadyWhite Dec 25, 2025
6d1c0eb
Update opcodes for Korean 7.35, bump version (#503)
Ra-Workspace Dec 25, 2025
72bdcf8
Merge remote-tracking branch 'cactbot/main' 6d1c0eba47a46f8fb8c2f9989…
sandtechnology Dec 25, 2025
2167d87
cn 7.40b and bump to 25.12.26.0
sandtechnology Dec 25, 2025
95934d2
Fix LineRSV and bump to 26.1.7.0
sandtechnology Jan 6, 2026
7622bc0
Change cactbot version to 0.36.2.0 and bump to 26.1.7.1
sandtechnology Jan 6, 2026
0fa7ed5
FFXIV_ACT_Plugin beta version updates (#507)
valarnin Jan 24, 2026
0e8e934
Add "Glass" preset (#508)
PiousVenom Jan 24, 2026
7f2874d
Update ushort conversion formulas to be more accurate (#510)
valarnin Jan 27, 2026
8f47523
Update opcodes for Global & CN 7.41, bump version (#511)
ShadyWhite Jan 27, 2026
3731492
Fix error with ActorCastExtra (#512)
valarnin Jan 28, 2026
252cc49
Fix TC region detection (#513)
valarnin Jan 29, 2026
b258edc
Merge remote-tracking branch 'cactbot/main' 252cc49b3ad6767dbc6a33e16…
sandtechnology Jan 31, 2026
a6acf06
Fix fate and cn 6.41
sandtechnology Jan 31, 2026
913e686
Update opcodes for KR 7.4, bump version (#515)
Ra-Workspace Feb 4, 2026
acea684
More TC fixes (#514)
valarnin Feb 5, 2026
843bbac
Update opcodes for Global & CN 7.41h, bump version (#516)
ShadyWhite Feb 5, 2026
a942120
Update opcodes for KR 7.4h, bump version (#518)
Ra-Workspace Feb 10, 2026
87cd236
Update opcodes for TC 7.01, bump version (#519)
Unnbird Feb 10, 2026
520eea9
cn 7.41a
sandtechnology Feb 13, 2026
a4a2b4c
Sync cactbot version to 0.36.5.0
sandtechnology Feb 13, 2026
31cd822
Bump to 26.2.14.0
sandtechnology Feb 13, 2026
7d1c391
Update opcodes for Global & CN 7.45, bump version (#521)
ShadyWhite Mar 3, 2026
67caf96
CN 6.45 with 26.3.4.0 version bump
sandtechnology Mar 4, 2026
843fae1
Update cn dev doc (#523)
Souma-Sumire Mar 10, 2026
7f7834c
feat: VfxUnknown184 (#522)
Souma-Sumire Mar 10, 2026
fcb7b97
Update opcodes for TC 7.05, bump version (#525)
Unnbird Mar 11, 2026
206d2f3
Update opcodes for Global & CN 7.45h, bump version (#526)
ShadyWhite Mar 11, 2026
7c07433
Update opcodes for TC 7.05h, bump version (#527)
Unnbird Mar 14, 2026
cf59f2b
cn 7.45a
sandtechnology Mar 15, 2026
76bf64d
Merge remote-tracking branch 'cactbot/main' 7c07433
sandtechnology Mar 15, 2026
60271a4
Bump version to 26.3.15.0 and sync cactbot version to 0.36.6.0
sandtechnology Mar 15, 2026
e39675c
cn 7.45b and bump to 26.3.29.0
sandtechnology Mar 28, 2026
37eea58
cn 7.50a and bump to 26.5.9
sandtechnology May 9, 2026
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 .github/workflows/build-artifact.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:

- name: Check dependencies cache
id: cache-dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
./Thirdparty
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/lint-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- 'main'
- 'master'
paths:
- '**/*.cs'
- '.editorconfig'
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- master
paths:
- 'Directory.Build.props'

Expand Down Expand Up @@ -43,14 +44,14 @@ jobs:
needs: [validate_tag]
runs-on: windows-latest
if: |
github.repository == 'OverlayPlugin/OverlayPlugin' &&
github.repository == 'sandtechnology/OverlayPlugin' &&
needs.validate_tag.outputs.do_release == 'true'
steps:
- uses: actions/checkout@v2

- name: Check dependencies cache
id: cache-dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: |
./Thirdparty
Expand Down
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
<Copyright>Copyright © RainbowMage 2015, Kuriyama hibiya 2016, ngld 2019, OverlayPlugin Team 2022</Copyright>
<RunCodeAnalysis>false</RunCodeAnalysis>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AssemblyVersion>25.2.18.0</AssemblyVersion>
<FileVersion>25.2.18.0</FileVersion>
<AssemblyVersion>26.5.9.0</AssemblyVersion>
<FileVersion>26.5.9.0</FileVersion>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
Expand All @@ -24,4 +24,4 @@
<ItemGroup>
<PackageReference Include="System.Resources.Extensions" Version="6.0.0" />
</ItemGroup>
</Project>
</Project>
9 changes: 5 additions & 4 deletions OverlayPlugin.Core/EventSources/CactbotEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,8 @@
Config.SaveConfig(config);
}

public override void Start() {
public override void Start()
{
// Our own timer with a higher frequency than OverlayPlugin since we want to see
// the effect of log messages quickly.
fast_update_timer_ = new System.Timers.Timer();
Expand All @@ -217,7 +218,7 @@
pc_locale_ = System.Globalization.CultureInfo.CurrentUICulture.Name;
var repository = container.Resolve<FFXIVRepository>();

cactbot_version_ = new Version(0,33,7,0);
cactbot_version_ = new Version(0, 37, 1, 0);
overlay_plugin_version_ = typeof(IOverlay).Assembly.GetName().Version;
ffxiv_plugin_version_ = repository.GetPluginVersion();
act_version_ = typeof(ActGlobals).Assembly.GetName().Version;
Expand Down Expand Up @@ -725,7 +726,7 @@
if (config_dir != null)
Config.UserConfigFile = config_dir;
}


private JObject FetchUserFiles(JObject msg)
{
Expand All @@ -744,7 +745,7 @@
result["language"] = language_;

//It's unknown for ffcafe, but leave stub here should be better incase some overlays using that
result["cactbotVersion"] = "0.33.7.0";
result["cactbotVersion"] = "0.37.1.0";
result["overlayPluginVersion"] = overlay_plugin_version_.ToString();
result["ffxivPluginVersion"] = ffxiv_plugin_version_.ToString();
result["actVersion"] = act_version_.ToString();
Expand Down Expand Up @@ -833,7 +834,7 @@
var name = nameOverride != null ? nameOverride : dirName;
var filename = fileOverride != null ? fileOverride : dirName;

Registry.RegisterOverlayPreset(new OverlayPreset

Check warning on line 837 in OverlayPlugin.Core/EventSources/CactbotEventSource.cs

View workflow job for this annotation

GitHub Actions / msbuild

'Registry.RegisterOverlayPreset(IOverlayPreset)' is obsolete: 'Please call RegisterOverlayPreset2() on the Registry object instead.'
{
Name = $"Cactbot {name}",
Url = Path.Combine(pluginMain.OfflineCactbotDirectory, "ui", lc, $"{filename}.html"), // Path.Combine("https://quisquous.github.io/cactbot", "ui", lc, $"{filename}.html"),
Expand Down
25 changes: 14 additions & 11 deletions OverlayPlugin.Core/GameRepoInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,19 @@ namespace RainbowMage.OverlayPlugin
{
public class GameRepoInfo
{
//CN 7.1
public static readonly Version version = new Version(7, 0);
public static readonly int ActorMoveOpcode = 0x123;
public static readonly int ActorSetPosOpcode = 0x2BC;
public static readonly int BattleTalk2Opcode = 0x1C4;
public static readonly int CountdownOpcode = 0x233;
public static readonly int CountdownCancelOpcode = 0x33C;
public static readonly int CEDirectorOpcode = 0x36A;
public static readonly int MapEffectOpcode = 0x175;
public static readonly int RSVDataOpcode = 0x3D6;
public static readonly int NpcYellOpcode = 0x3CD;
//CN 7.50a
public static readonly Version version = new Version(7, 5);
public static readonly int ActorMoveOpcode = 0x0095;
public static readonly int ActorSetPosOpcode = 0x01C0;
public static readonly int BattleTalk2Opcode = 0x028C;
public static readonly int CEDirectorOpcode = 0x016C;
public static readonly int CountdownOpcode = 0x033F;
public static readonly int CountdownCancelOpcode = 0x0300;
public static readonly int MapEffectOpcode = 0x0338;
public static readonly int NpcYellOpcode = 0x02A7;
public static readonly int RSVDataOpcode = 0x01BB;
public static readonly int MapEffect4Opcode = 0x03A6;
public static readonly int MapEffect8Opcode = 0x0360;
public static readonly int MapEffect12Opcode = 0x02D8;
}
}
32 changes: 11 additions & 21 deletions OverlayPlugin.Core/Integration/FFXIVRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ public enum GameRegion
{
Global = 1,
Chinese = 2,
Korean = 3
Korean = 3,
TraditionalChinese = 4
}

public class FFXIVRepository
Expand Down Expand Up @@ -386,39 +387,28 @@ public DateTime EpochToDateTime(long epoch)
/**
* Convert a coordinate expressed as a uint16 to a float.
*
* See https://github.com/ravahn/FFXIV_ACT_Plugin/issues/298
* See https://github.com/ravahn/FFXIV_ACT_Plugin/issues/298, though this has been
* updated to be more accurate.
*/
public static float ConvertUInt16Coordinate(ushort value)
{
return (value - 0x7FFF) / 32.767f;
// This is the exact same formula the game client uses
return (float)(value * 3.0518043 * 0.0099999998 - 1000.0);
}

/**
* Convert a packet heading to an in-game headiung.
* Convert a packet heading to an in-game heading.
*
* When a heading is sent in certain packets, the heading is expressed as a uint16, where
* 0=north and each increment is 1/65536 of a turn in the CCW direction.
*
* See https://github.com/ravahn/FFXIV_ACT_Plugin/issues/298
* See https://github.com/ravahn/FFXIV_ACT_Plugin/issues/298, though this has been
* updated to be more accurate.
*/
public static double ConvertHeading(ushort heading)
{
return heading
// Normalize to turns
/ 65536.0
// Normalize to radians
* 2 * Math.PI
// Flip from 0=north to 0=south like the game uses
- Math.PI;
}

/**
* Reinterpret a float as a UInt16. Some fields in Machina, such as Server_ActorCast.Rotation, are
* marked as floats when they really should be UInt16.
*/
public static ushort InterpretFloatAsUInt16(float value)
{
return BitConverter.ToUInt16(BitConverter.GetBytes(value), 0);
// This is the exact same formula the game client uses
return heading * 0.009587526 * 0.0099999998 - Math.PI;
}

internal object GetFFXIVACTPluginIOCService(string parentAssemblyName, string type)
Expand Down
3 changes: 3 additions & 0 deletions OverlayPlugin.Core/Integration/OverlayPluginLogLines.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ public OverlayPluginLogLineConfig(TinyIoCContainer container)
opcodes.Add("CountdownCancel", new OpcodeConfigEntry { opcode = (uint)GameRepoInfo.CountdownCancelOpcode, size = 40 });
opcodes.Add("ActorMove", new OpcodeConfigEntry { opcode = (uint)GameRepoInfo.ActorMoveOpcode, size = 16 });
opcodes.Add("ActorSetPos", new OpcodeConfigEntry { opcode = (uint)GameRepoInfo.ActorSetPosOpcode, size = 24 });
opcodes.Add("MapEffect4", new OpcodeConfigEntry { opcode = (uint)GameRepoInfo.MapEffect4Opcode, size = 0 });
opcodes.Add("MapEffect8", new OpcodeConfigEntry { opcode = (uint)GameRepoInfo.MapEffect8Opcode, size = 0 });
opcodes.Add("MapEffect12", new OpcodeConfigEntry { opcode = (uint)GameRepoInfo.MapEffect12Opcode, size = 0 });
}
public IOpcodeConfigEntry this[string name]
{
Expand Down
22 changes: 15 additions & 7 deletions OverlayPlugin.Core/Integration/TriggIntegration.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Advanced_Combat_Tracker;
Expand Down Expand Up @@ -35,20 +36,27 @@ public TriggIntegration(TinyIoCContainer container)
return;

var triggType = trigg.pluginObj.GetType();
var deleType = triggType.GetNestedType("CustomCallbackDelegate");
if (deleType == null)
return;
var deleType = triggType.GetNestedType("CustomCallbackDelegate")
?? throw new MissingMemberException(triggType.FullName, "CustomCallbackDelegate");

var registerType = triggType.GetMethod(
"RegisterNamedCallback",
BindingFlags.Instance | BindingFlags.Public,
null,
new[] { typeof(string), deleType, typeof(object), typeof(string) },
null)
?? throw new MissingMethodException(triggType.FullName, "RegisterNamedCallback(string, CustomCallbackDelegate, object, string)");

var registerType = triggType.GetMethod("RegisterNamedCallback");
var registrant = "OverlayPlugin";

var sendDele = Delegate.CreateDelegate(deleType, this, typeof(TriggIntegration).GetMethod("SendOverlayMessage"));
registerType?.Invoke(trigg.pluginObj, new object[] { "OverlayPluginMessage", sendDele, null });
registerType.Invoke(trigg.pluginObj, new object[] { "OverlayPluginMessage", sendDele, null, registrant });

var hideDele = Delegate.CreateDelegate(deleType, this, typeof(TriggIntegration).GetMethod("HideOverlay"));
registerType?.Invoke(trigg.pluginObj, new object[] { "HideOverlay", hideDele, null });
registerType.Invoke(trigg.pluginObj, new object[] { "HideOverlay", hideDele, null, registrant });

var showDele = Delegate.CreateDelegate(deleType, this, typeof(TriggIntegration).GetMethod("ShowOverlay"));
registerType?.Invoke(trigg.pluginObj, new object[] { "ShowOverlay", showDele, null });
registerType.Invoke(trigg.pluginObj, new object[] { "ShowOverlay", showDele, null, registrant });
}
catch (Exception ex)
{
Expand Down
Loading
Loading