Commit Graph

1526 Commits

Author SHA1 Message Date
ricardoofnl 6a287f55f4 [saco] Match CPlayerPed::ExitCurrentVehicle; GetCurrentVehicleID is an inline in the header 2026-09-03 01:33:32 +07:00
ricardoofnl e28d19cd4a [saco] Match CPlayerPed::TogglePlayerControllable; retail writes the IsInVehicle test out inline 2026-09-03 01:33:32 +07:00
ricardoofnl 686bb11b7a [saco] Match CPlayerPed::StartGoggles; retail writes the HasGoggles test out inline 2026-09-03 01:33:32 +07:00
ricardoofnl 4e2dd5ffc5 [saco] Match CPlayerPed::StopGoggles; retail writes the HasGoggles test out inline 2026-09-03 01:33:32 +07:00
ricardoofnl eec72291c4 [saco] Match CPlayerPed::ShowMarker; retail writes the HideMarker body inline 2026-09-03 01:33:32 +07:00
ricardoofnl 1387bbcf00 [saco] Match CPlayerPed::GetVehicleSeatID; retail reads dwAction instead of calling GetActionTrigger 2026-09-03 01:33:32 +07:00
ricardoofnl 7a2a87b68c [saco] Match CPlayerPed::HasAmmoForCurrentWeapon and GetAmmo; retail indexes WeaponSlots inline 2026-09-03 01:33:32 +07:00
ricardoofnl 52e959142d [saco] Match CPlayerPed::ForceTargetRotation; retail stores fRotation2 before fRotation1 2026-09-03 01:33:32 +07:00
ricardoofnl 28ca7ea41c [saco] Fix game/playerped.cpp so it compiles; retail confirms 2-arg SetArmedWeapon and marker opcodes 0x0187/0x018B 2026-09-03 01:33:32 +07:00
ricardoofnl db9020f727 [saco] Annotate RegisterRPCs and UnRegisterRPCs; both already match retail 2026-09-03 01:32:43 +07:00
ricardoofnl 85da1dd8ee [saco] Match DamageVehicle; panel/door/light then tyre damage on the pooled vehicle 2026-09-03 01:32:43 +07:00
ricardoofnl 3b68777e5a [saco] Match RequestSpawn; outcome 2 or a pending request re-enters spawn 2026-09-03 01:32:43 +07:00
ricardoofnl 00d883b2d4 [saco] Annotate the verified net/netrpc.cpp handlers 2026-09-03 01:32:43 +07:00
ricardoofnl e988b6c8e8 [saco] Match ScmEvent; five reads forwarded to the vehicle event dispatcher 2026-09-03 01:32:43 +07:00
ricardoofnl c5d8ac9dba [saco] Match EnterVehicle; the passenger byte is widened into a BOOL before the call 2026-09-03 01:32:43 +07:00
ricardoofnl f9453b7236 [saco] Match ExitVehicle; it only acts inside a 200-unit radius 2026-09-03 01:32:43 +07:00
ricardoofnl 7cc98ddfda [saco] Match UnkAC; it removes an actor and needs CNetGame::GetActorPool 2026-09-03 01:32:17 +07:00
ricardoofnl 7121aed4c9 [saco] Match WorldPlayerRemove; it re-fetches the pool for the GetAt lookup 2026-09-03 01:32:17 +07:00
ricardoofnl 8a582bc5e0 [saco] Match WorldPlayerDeath; CPlayerPool::GetAt inlines into the handler 2026-09-03 01:32:17 +07:00
ricardoofnl b403f3c79e [saco] Match ServerQuit; the player pool is fetched before the two reads 2026-09-03 01:31:09 +07:00
ricardoofnl 71a9be0c83 [saco] Match Pickup; the payload is a 20-byte PICKUP read straight off the stream 2026-09-03 01:31:09 +07:00
ricardoofnl 8ad6483554 [saco] Match DestroyPickup 2026-09-03 01:31:09 +07:00
ricardoofnl a0eaa4f2f7 [saco] Match Unk3A; it deletes a 3D text label, bailing early when the pool is absent 2026-09-03 01:31:09 +07:00
ricardoofnl 6dc168b664 [saco] Match Unk3C; it zeroes the DWORD after constructing the BitStream 2026-09-03 01:31:09 +07:00
ricardoofnl 4ed43428b9 [saco] Match SetTimeEx; hour and minute are cached in the settings block after CGame::SetWorldTime 2026-09-03 01:31:09 +07:00
ricardoofnl f6476121ef [saco] Match Weather; it mirrors the byte into the settings block before CGame::SetWorldWeather 2026-09-03 01:31:09 +07:00
ricardoofnl f05bdb8647 [saco] Match WorldTime; the hour goes through an inline CNetGame::SetWorldTime 2026-09-03 01:31:09 +07:00
ricardoofnl 222d5d1bc5 [saco] Match DestroyWeaponPickup; the pickup pool entry point takes a WORD 2026-09-03 01:31:09 +07:00
ricardoofnl 6f2ce72101 [saco] Implement CWorld__ProcessAttachedEntities_Hook; still 3 bytes short on the pool + i*4 CSE 2026-09-03 01:31:09 +07:00
ricardoofnl 2245f13b46 [saco] Match CHud__DrawRadar_Hook and CHud__DrawCrossHairs_Hook; FUNC_100A24C0 is inline 2026-09-03 01:31:09 +07:00
ricardoofnl 6a18c48699 [saco] Match GameInstallHooks and four more installers; InstallMethodHook/InstallCallHook are inline 2026-09-03 01:31:09 +07:00
ricardoofnl 7bf0968104 [saco] Implement/match ScrUnk4F; it passes a float as the fifth arg of a command declared "fffii" 2026-09-03 00:52:29 +07:00
ricardoofnl 4f0518d989 [saco] Implement/match ScrUnk6F; the widescreen RPC calls ScriptCommand with opcode 0x02A3 directly 2026-09-03 00:52:29 +07:00
ricardoofnl 94a7579d7c [saco] Implement/match ScrUnk40; it reads a PLAYERID and discards it 2026-09-03 00:52:29 +07:00
ricardoofnl 5a5a631c6f [saco] Implement/match ScrUnk12; it is the give-money RPC and calls CGame::AddToLocalMoney 2026-09-03 00:52:29 +07:00
ricardoofnl 7ae3bdf93d [saco] Implement/match sub_100755C0; the screenshot grab was missing from the TU entirely 2026-09-03 00:47:38 +07:00
ricardoofnl ab897be9e7 [saco] Match GetColorFromEmbedCode(char*); retail spells the first hex test out longhand 2026-09-03 00:36:18 +07:00
ricardoofnl 4ff69030c1 [saco] Implement/match CGame::sub_100A0920; it was declared in game.h but never defined 2026-09-03 00:36:18 +07:00
ricardoofnl cf8762b9ab [saco] Match CGame::ToggleKeyInputsDisabled; DIResetMouse/UpdatePads are written out inline 2026-09-03 00:36:18 +07:00
ricardoofnl 3bee50cc81 [saco] Match CGame::ProcessInputDisabling; the mouse-reset helpers are written out inline 2026-09-03 00:36:18 +07:00
ricardoofnl dc655fff41 [saco] Match CGame::EnableClock; retail writes ToggleThePassingOfTime out inline 2026-09-03 00:36:18 +07:00
ricardoofnl 55026016b3 [saco] Match CGame::SetModelDeletable at 0x100A0A30; the IsModelLoaded test is written out inline 2026-09-03 00:36:18 +07:00
ricardoofnl 5c41b5e0d5 [saco] Match CGame::UpdateFarClippingPlane; retail inlines the get_active_interior call 2026-09-03 00:36:18 +07:00
ricardoofnl a030805071 [saco] Match unnamed_100A0060 (__stdcall) and CGame::ReleaseAnimation 2026-09-03 00:36:18 +07:00
ricardoofnl ce7008a95e [saco] Match CGame::sub_100A0010; retail tests the zero case first 2026-09-03 00:36:18 +07:00
ricardoofnl a1e723b785 [saco] Match CRemotePlayer::FUNC_10016660; 0x100A0EC0 is CGame::DisableMarker 2026-09-03 00:16:26 +07:00
ricardoofnl b2fc02bce8 [saco] Match CRemotePlayer::FUNC_10017570; tail-jumps into ResetAllSyncAttributes 2026-09-03 00:16:26 +07:00
ricardoofnl cc4c93f299 [saco] Match CRemotePlayer::FUNC_10017530; 0x100A0210 is a CGame method, retail loads ecx=pGame 2026-09-03 00:16:26 +07:00
ricardoofnl 50b2801d61 [saco] Match CRemotePlayer::EnterVehicle; retail inlines GetAt as one && with the zero arm last 2026-09-03 00:16:26 +07:00
ricardoofnl d5f06b8359 [saco] Make net/remoteplayer.cpp compile; FindGtaIDFromID was genuinely missing and INVALID_VEHICLE_ID is 0xFFFF 2026-09-03 00:16:26 +07:00