00ad631034
FIFA 23 is not in development and was never a valid template for FIFA 17
(different game, different in-memory layout). Remove it as a build target and
as scaffolding, while preserving the per-game feature architecture so future
games plug in as new modules — never by copying retired reverse-engineering.
Hook (openfut-hook):
- Delete install_hooks_fifa23 and every FIFA23-only module: config, hooks,
transport_watch, ssl_patch, origin_spy, tls_bypass, dial_notification, probe
(+ probe feature), recv_hook (+ capture_baseline feature), plus the orphan
FIFA23 LSX/Origin files lsx.rs and ea_stub.rs. ~3.6k lines; git + Vault retain
the research.
- lib.rs is now game-generic: a per-game feature selects that game's module and
install_hooks dispatches to it. No game feature => compile_error!("select a
game, e.g. --features fifa17"). --features fifa17 remains the build invariant.
- Drop the crate-wide blanket (it existed only
to hide the compiled-but-unused FIFA23 modules). Replace with narrow, justified
#[allow(dead_code)] on the three FIFA17 SBC RE-scaffolding items it was masking,
so the candidate stays behavior-identical.
- connect_hook: the redirect is now always the config-driven path (openfut-common
target from openfut.cfg); the hardcoded-loopback rewrite and its dead consts are
gone. Removed the FIFA23-era transport_watch diagnostics from the shared
connect/WSAConnect/ConnectEx detours. Deleted unused iat::patch_iat_in.
Launcher:
- fifa_game_dir no longer defaults to a hardcoded '.../FIFA 23' Steam path; it is
empty by default, matching the launcher's own rule that it never invents a path
to somebody's game install (like openfut_server_host and game_profile).
- Generalise the remaining 'FIFA 23' doc literals in config.rs / setup.rs.
Proof: fifa17 clippy -D warnings clean; no-game build fails with the documented
compile_error; launcher 75 tests pass unchanged; launcher + hook cross-build
x86_64-pc-windows-gnu; cargo fmt --check clean; zero FIFA23 symbols/literals
remain. FIFA17 armed-module set unchanged (redirect + SBC/store/season).
44 lines
1.5 KiB
TOML
44 lines
1.5 KiB
TOML
# Standalone workspace root: this Windows-only version.dll proxy is deliberately
|
|
# NOT a member of the OpenFUT workspace (see that root's `exclude`) so its own
|
|
# [profile.release] below actually applies. An empty [workspace] table stops Cargo
|
|
# from walking up and re-attaching this crate to the parent workspace.
|
|
[workspace]
|
|
|
|
[package]
|
|
name = "openfut-hook"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
crate-type = ["cdylib"]
|
|
|
|
[features]
|
|
# Per-game selection: each supported game is a feature enabling its module. Exactly
|
|
# one MUST be set (the crate emits a compile_error otherwise). Build the deployed
|
|
# artifact with `--features fifa17`. Add a future game as a new feature here plus a
|
|
# `mod <game>;` + dispatch arm in lib.rs — never by copying a retired game's code.
|
|
fifa17 = []
|
|
|
|
[dependencies]
|
|
windows-sys = { version = "0.59", features = [
|
|
"Win32_Foundation",
|
|
"Win32_System_LibraryLoader",
|
|
"Win32_System_Memory",
|
|
"Win32_System_SystemServices",
|
|
"Win32_Networking_WinSock",
|
|
"Win32_Security_Cryptography",
|
|
"Win32_System_Threading",
|
|
"Win32_System_Diagnostics_ToolHelp",
|
|
"Win32_System_Diagnostics_Debug",
|
|
"Win32_System_Kernel",
|
|
] }
|
|
# Single source of truth for the OpenFUT redirect config (openfut.cfg schema,
|
|
# EA-port -> OpenFUT-port map, WinSock byte-order helpers). Shared with the
|
|
# launcher so the hook and openfut.cfg agree by construction.
|
|
openfut-common = { path = "../openfut-common" }
|
|
|
|
[profile.release]
|
|
opt-level = "s"
|
|
strip = true
|
|
panic = "abort"
|