Commit Graph
955 Commits
Author SHA1 Message Date
ricardoofnl c761f03055 [saco] Implement/match IsValidPedModel; the model bounds test is signed, and the vtable is 0x85BDC0 2026-09-03 02:32:59 +07:00
ricardoofnl 910e879b56 [saco] Match CTextDrawPool::FUNC_1001E830; the counter is declared above the guard, which flips the push order 2026-09-03 02:32:59 +07:00
ricardoofnl 42bd7d950f [saco] Match CTextDrawPool::FUNC_1001E870 and FUNC_1001E8A0; both dispatch over live slots 2026-09-03 02:32:59 +07:00
ricardoofnl 5a8554d37c [saco] Match CTextDrawPool::FUNC_1001E8D0; the delete-all loop strength-reduces to a pointer walk 2026-09-03 02:32:59 +07:00
ricardoofnl eb8c6e50e8 [saco] Match CTextDrawPool::FUNC_1001E7F0; add CTextDraw so the slot delete emits its out-of-line dtor 2026-09-03 02:32:59 +07:00
ricardoofnl 403e0cb671 [saco] Split CVehiclePool::_gapBD14 into field_BD14/field_DC54/field_FB94/field_11AD4 2026-09-03 02:32:59 +07:00
ricardoofnl 9f962b6477 [saco] Match CDownloadManager::FUNC_1000C010 and its empty worker proc; _beginthread per slot 2026-09-03 02:32:59 +07:00
ricardoofnl 60c7d6ba09 [saco] Add net/downloader.cpp and match CDownloadManager::FUNC_1000C0C0; 6 slots of 0x230 2026-09-03 02:32:59 +07:00
ricardoofnl 2e0f46beb1 [saco] Implement CScoreBoard::FUNC_1006ED30; Show and six small helpers match, the refresh is 444/892 off 2026-09-03 02:32:59 +07:00
ricardoofnl 1cb6783ace [saco] Match ExitVehicle; it only acts inside a 200-unit radius 2026-09-03 02:32:57 +07:00
ricardoofnl 5bf5327765 [saco] Match WorldPlayerDeath; CPlayerPool::GetAt inlines into the handler 2026-09-03 02:32:57 +07:00
ricardoofnl c478c7dbfe [saco] Match FUNC_100A5240; the team-damage test compares two bytes, not two ints 2026-09-03 02:32:56 +07:00
ricardoofnl 8bb2a5c54d [saco] Match CRemotePlayer::FUNC_10016330; the four guards are one && so the zero arm lands last 2026-09-03 02:26:57 +07:00
ricardoofnl bad27c78d8 [saco] Match CRemotePlayer::FUNC_10014500; the marker clear stores the parameter, not a literal zero 2026-09-03 02:26:57 +07:00
ricardoofnl eb8859c573 [saco] Implement/match ScrUnkA7; it stores a bool into CNetGame::field_232 2026-09-03 02:21:32 +07:00
ricardoofnl ee4a28d11c [saco] Implement/match ScrUnk23; it calls CPlayerPed::FUNC_100ADFB0 with the value it reads 2026-09-03 02:21:32 +07:00
ricardoofnl 8be3a23632 [saco] Match CRemotePlayer::FUNC_100160A0, the player-to-player distance; the sum is one expression so fsqrt needs no spill 2026-09-03 02:16:30 +07:00
ricardoofnl d75977c1d4 [saco] Match CRemotePlayer::FUNC_10016120; it switches to field_1E1 when the state is 19 and tail-jumps 2026-09-03 02:16:30 +07:00
ricardoofnl d9ea7eb7f6 [saco] Match CRemotePlayer::FUNC_100155E0; 0x100B5210 is __cdecl and field_1E1 is a CVehicle * 2026-09-03 02:16:30 +07:00
ricardoofnl 57a67d4cec [saco] Implement/match ScrUnk5B; it sets a vehicle move or turn speed vector 2026-09-03 02:09:29 +07:00
ricardoofnl dc4cb7f2bb [saco] Implement/match ScrSetInterior; it calls CPlayerPed::SetInterior with bRefresh TRUE 2026-09-03 02:09:29 +07:00
ricardoofnl 9d5a65219b [saco] Implement/match ScrUnk42; it is the set-armour RPC and calls CPlayerPed::SetArmour 2026-09-03 02:09:28 +07:00
ricardoofnl db053b37df [saco] Match CNetPlayer::SetPlayerName; 0x1001DF60 is not CPlayerPool::SetLocalPlayerName 2026-09-03 02:09:28 +07:00
ricardoofnl d1d2e66989 [saco] Match FUNC_100A3AE0; the vehicle fallback assigns and breaks instead of returning 2026-09-03 02:02:39 +07:00
ricardoofnl 89f12d3d55 [saco] Match FUNC_100A3B80; it maps a ped pointer to its actor id 2026-09-03 02:02:39 +07:00
ricardoofnl 37237dd629 [saco] Match ProcessControlRemotePed; the SEH handler kicks the player whose ped faulted 2026-09-03 02:02:39 +07:00
ricardoofnl c0fab98037 [saco] Implement/match CPlayerPed::SetInterior; the refresh flag is a BOOL, not a byte 2026-09-03 01:56:59 +07:00
ricardoofnl 3825e14367 [saco] Implement/match CPlayerPed::SetSkin; it rets out a streamer assert before swapping the model 2026-09-03 01:56:59 +07:00
ricardoofnl e66e9a3dd4 [saco] Match CPlayerPed::SetCameraMode and SetCameraExtZoom as header inlines 2026-09-03 01:56:59 +07:00
ricardoofnl a1f08995ef [saco] Add sub_10075330; the nametag pass was absent, 15 register bytes off an edi/ebp swap 2026-09-03 01:52:45 +07:00
ricardoofnl 8578ce1d12 Drop the duplicate CPlayerPed::FUNC_100ADC90 declaration left by the merge 2026-09-03 01:38:50 +07:00
ricardoofnl e953f232ee [saco] Match CGame::UpdateCheckpoints at 0x100A1F20; DisableMarker/DisableRaceCheckpoint are written out inline 2026-09-03 01:34:00 +07:00
ricardoofnl 467aad0303 [saco] Match CGame::SetRaceCheckpointInformation at 0x100A2100; DisableMarker is written out inline 2026-09-03 01:34:00 +07:00
ricardoofnl ccd2f53110 [saco] Match CGame::SetCheckpointInformation at 0x100A1DE0; DisableMarker is written out inline 2026-09-03 01:34:00 +07:00
ricardoofnl d855d598a8 [saco] Match CGame::MakeRaceCheckpoint at 0x100A1EA0; DisableRaceCheckpoint is written out inline 2026-09-03 01:34:00 +07:00
ricardoofnl b82d88f0eb [saco] Match CGame::ResetLocalMoney at 0x100A20C0; GetLocalMoney/AddToLocalMoney are written out inline 2026-09-03 01:34:00 +07:00
ricardoofnl e1ab9e9045 [saco] Match CGame::DisplayHud at 0x100A1DB0; ToggleRadar is written out inline 2026-09-03 01:34:00 +07:00
ricardoofnl e6bb260c3c [saco] Match CVehiclePool::FUNC_1001EB90; the search compares a1 on the left, which fixes the cmp operand order 2026-09-03 01:34:00 +07:00
ricardoofnl 778990d4ad [saco] Match FUNC_1001EBE0; the free __stdcall twin of FindGtaIDFromID that takes the pointer directly 2026-09-03 01:34:00 +07:00
ricardoofnl 7b2acc2d2b [saco] Match CVehiclePool::FUNC_1001E9B0; it rescans field_3074 for the highest live slot into field_0 2026-09-03 01:34:00 +07:00
ricardoofnl f0e80175eb [saco] Match CVehiclePool::FindGtaIDFromID; it tail-jumps into GamePool_Vehicle_GetIndex 2026-09-03 01:34:00 +07:00
ricardoofnl 004d377d08 [saco] Match CRemotePlayer::FUNC_100150D0; four VECTORs live at 0x17C-0x1AB inside the old _gap114 2026-09-03 01:34:00 +07:00
ricardoofnl 724bf8fb94 [saco] Match CRemotePlayer::FUNC_100143A0, the FollowPedSA aim marker; the aim trio is a scoped VECTOR sharing the marker slot 2026-09-03 01:34:00 +07:00
ricardoofnl 3f7f4b675b [saco] Match CRemotePlayer::FUNC_100165B0, the state setter that drives the car-jacked handler 2026-09-03 01:34:00 +07:00
ricardoofnl cc4b4e3507 [saco] Match CRemotePlayer::FUNC_10016270, the car-jacked handler; the id compare is 16-bit so FUNC_1001EB90 reads as unsigned 2026-09-03 01:34:00 +07:00
ricardoofnl bd8df36660 [saco] Match CRemotePlayer::FUNC_100145F0 and FUNC_10014620; the sync block carries a vehicle id at 0x103 2026-09-03 01:34:00 +07:00
ricardoofnl 0b83214ce7 [saco] Match CScoreBoard::ClickPlayer; it sends RPC_ClickPlayer then hides the board 2026-09-03 01:33:32 +07:00
ricardoofnl f6679b9f07 [saco] Declare the six-argument CNewPlayerTags::Draw; the nametag label pass at 0x1006CDA0 2026-09-03 01:33:32 +07:00
ricardoofnl e1835e9e99 [saco] Implement/match CNewPlayerTags::FUNC_1006CD80 and FUNC_1006CD90; the nametag pass brackets its batch with these 2026-09-03 01:33:32 +07:00
ricardoofnl 5b5922b77b [saco] Implement/match CUnkClass10::FUNC_10071F90 2026-09-03 01:33:32 +07:00