using System.Globalization;
namespace AcDream.Core.Chat;
///
/// Byte-verified retail string literals for the Gameplay Options tab's
/// button family (Campaign OP slice OP3, 2026-08-11) —
/// docs/research/2026-08-10-keyboard-config-and-gameplay-tab.md
/// §4.4 (Use Mouse Turning Settings) and §4.1/§4.2 (Urgent Assistance /
/// Report Abuse). Every literal was recovered from the PDB-paired binary
/// C:\Users\erikn\Downloads\acclient.exe by a push-imm32 sweep of the
/// cited VA range, same discipline as .
///
public static class OptionsPanelText
{
///
/// gmConfigUI::SetMouseTurningDefaults @0x0049E8F0, format string
/// VA 0x007A8A70: 'Camera Stiffness was changed from %f to the
/// mouse turning default of %f.'. /
/// render with 6 fractional digits, matching
/// retail's default printf %f precision.
///
public static string CameraStiffnessChanged(float from, float to) => string.Format(
CultureInfo.InvariantCulture,
"Camera Stiffness was changed from {0} to the mouse turning default of {1}.",
from.ToString("F6", CultureInfo.InvariantCulture),
to.ToString("F6", CultureInfo.InvariantCulture));
///
/// Same site, format string VA 0x007A8A20: 'Camera Adjustment
/// was changed from %f to the mouse turning default of %f.'.
///
public static string CameraAdjustmentChanged(float from, float to) => string.Format(
CultureInfo.InvariantCulture,
"Camera Adjustment was changed from {0} to the mouse turning default of {1}.",
from.ToString("F6", CultureInfo.InvariantCulture),
to.ToString("F6", CultureInfo.InvariantCulture));
///
/// Same site, format string VA 0x007A89D0: 'Mouse Sensitivity
/// was changed from %f to the mouse turning default of %f.'.
///
public static string MouseSensitivityChanged(float from, float to) => string.Format(
CultureInfo.InvariantCulture,
"Mouse Sensitivity was changed from {0} to the mouse turning default of {1}.",
from.ToString("F6", CultureInfo.InvariantCulture),
to.ToString("F6", CultureInfo.InvariantCulture));
///
/// Same site, VA 0x007A8980, byte-verified literal (no format
/// specifiers — retail hardcodes TRUE/FALSE for this one bool pair):
/// 'Align To Slope was changed from TRUE to the mouse turning default
/// of FALSE.'. Only fires when the current value IS true (the
/// macro's own condition, §4.4) so the "from TRUE" half is always
/// accurate.
///
public const string AlignToSlopeChanged =
"Align To Slope was changed from TRUE to the mouse turning default of FALSE.";
///
/// Same site, VA 0x007A8928: 'Invert Mouselook Axes was
/// changed from FALSE to the mouse turning default of TRUE.'. Only
/// fires when the current value IS false.
///
public const string InvertMouseLookAxesChanged =
"Invert Mouselook Axes was changed from FALSE to the mouse turning default of TRUE.";
///
/// Same site, VA 0x007A88D0: 'Turn to Face Camera was changed
/// from FALSE to the mouse turning default of TRUE.'. This is the
/// Config-tab UI LABEL for PlayerOption.UseMouseTurning — the
/// option itself is named "Use Mouse Turning" in code, "Turn to Face
/// Camera" in the string table. Only fires when the current value IS
/// false.
///
public const string TurnToFaceCameraChanged =
"Turn to Face Camera was changed from FALSE to the mouse turning default of TRUE.";
///
/// Urgent Assistance (element 0x10000206) /
/// Report Abuse (element 0x10000207) — retail's
/// ShellExecuteA failure MessageBoxA body, byte-verified at
/// VA 0x007A81E0 (Urgent) / 0x007A8128 (Abuse):
/// 'An error occurred while trying to launch your web browser. (Error
/// code %d)\nThe web site to submit an urgent assistance request /
/// abuse report is listed below. Please go there to complete your
/// request.\n%s\n', title "Asheron's Call Error" (VA
/// 0x00794078).
///
///
/// D5 adaptation (register row, same commit): acdream never attempts
/// ShellExecuteA against the dead support.turbine.com
/// endpoint (§0 of the research doc — both EoR buttons already point at
/// a URL that is not live today), so there is no real Win32 error code
/// to interpolate and the (Error code %d) clause is dropped; the
/// trailing %s URL substitution is KEPT verbatim (the byte-verified
/// URL below) so the user can still copy it manually, matching retail's
/// own intent for that clause. Delivered through the interface-text
/// seam (RetailLogTextType.ClientLocal) rather than a native
/// MessageBoxA popup — see the register row for the short-circuit.
///
///
public const string SupportUrl =
"http://support.turbine.com/ics/support/ticketnewwizard.asp?style=classic";
public static string UrgentAssistanceUnavailable => string.Format(
CultureInfo.InvariantCulture,
"An error occurred while trying to launch your web browser.\n"
+ "The web site to submit an urgent assistance request is listed below. "
+ "Please go there to complete your request.\n{0}",
SupportUrl);
public static string ReportAbuseUnavailable => string.Format(
CultureInfo.InvariantCulture,
"An error occurred while trying to launch your web browser.\n"
+ "The web site to submit an abuse report is listed below. "
+ "Please go there to complete your request.\n{0}",
SupportUrl);
}