ricardoofnl
|
b23f356def
|
[saco] Match CRemotePlayer::FUNC_10014540; it re-creates the map marker when there is no ped
|
2026-09-03 03:28:53 +07:00 |
|
ricardoofnl
|
606b5d37f1
|
[saco] Match CNetPlayer::GetName; GetPlayerName reaches the name through it, not through .c_str() directly
|
2026-09-03 03:28:53 +07:00 |
|
ricardoofnl
|
dd5b9125e7
|
[saco] Match CRemotePlayer::FUNC_10017610; two separate NULL stores merge into the mid-function zero arm
|
2026-09-03 03:28:53 +07:00 |
|
ricardoofnl
|
e8708bf464
|
[saco] Implement/match CPlayerPed::FUNC_100AFFD0; it kills the ped via kill_actor after unwinding the jetpack
|
2026-09-03 03:28:53 +07:00 |
|
ricardoofnl
|
4ee8177703
|
[saco] Implement/match CPlayerPed::FUNC_100AD0F0; it calls 0x5393F0 on the ped and vehicle slots
|
2026-09-03 03:28:53 +07:00 |
|
ricardoofnl
|
989405a307
|
[saco] Implement/match ScrUnk16; it is the give-weapon RPC and calls CPlayerPed::GiveWeapon
|
2026-09-03 03:24:34 +07:00 |
|
ricardoofnl
|
3ed37ae8ee
|
[saco] Implement/match ScrUnk43; it is the armed-weapon RPC and calls CPlayerPed::SetArmedWeapon
|
2026-09-03 03:24:34 +07:00 |
|
ricardoofnl
|
aed6c4dd6f
|
Repoint the four aliased CPlayerPed calls at their real members; the aliases were declared but never defined
|
2026-09-03 03:18:52 +07:00 |
|
ricardoofnl
|
33bda17f1d
|
Match CNetGame::FUNC_10002E10; it is GetObjectPool's out-of-line copy, not a TODO
|
2026-09-03 03:07:25 +07:00 |
|
ricardoofnl
|
d1425c2c8e
|
Write the ScrUnk99 set-skin body; still one lazy push ebx short of 0x10019190
|
2026-09-03 03:04:22 +07:00 |
|
ricardoofnl
|
4edeb5b18c
|
[saco] Implement/match ScrShowMenu and ScrHideMenu; CNetGame::GetMenuPool is an inline, not an out-of-line call
|
2026-09-03 02:57:22 +07:00 |
|
ricardoofnl
|
79f96e1555
|
[saco] Implement/match ScrUnk91; it is the set-ammo RPC and calls CPlayerPed::SetWeaponAmmo
|
2026-09-03 02:57:22 +07:00 |
|
ricardoofnl
|
55d339a9e1
|
[saco] Match CRemotePlayer::FUNC_10001080; a header inline, one && over a DWORD pointer and a BYTE state
|
2026-09-03 02:51:44 +07:00 |
|
ricardoofnl
|
5160deda40
|
[saco] Implement/match ScrAddGangZone and ScrFlashGangZone; the gang zone pool is fetched after the bitstream
|
2026-09-03 02:46:59 +07:00 |
|
ricardoofnl
|
c44c11548d
|
[saco] Implement/match ScrRemoveGangZone and ScrStopFlashGangZone; both read the zone id inside the pool null check
|
2026-09-03 02:46:59 +07:00 |
|
ricardoofnl
|
f8d9e4dcf2
|
[saco] Implement/match ScrRemovePlayerFromVehicle; it calls CPlayerPed::ExitCurrentVehicle
|
2026-09-03 02:46:59 +07:00 |
|
ricardoofnl
|
0ee9dcba50
|
Remove the duplicate declarations and leftover stubs left by the merge
|
2026-09-03 02:40:51 +07:00 |
|
ricardoofnl
|
41411d3ddb
|
[saco] Add the six-argument CNewPlayerTags::Draw; still 4 register copies short of 0x1006CDA0
|
2026-09-03 02:34:40 +07:00 |
|
ricardoofnl
|
6a641db29a
|
[saco] Match the CUnkClass3 constructor; retail zeroes field_89 with a loop, not memset
|
2026-09-03 02:34:40 +07:00 |
|
ricardoofnl
|
802b8aded3
|
[saco] Implement/match CPlayerPed::FUNC_100AC5D0 and FUNC_100AC640; both read the enter/leave-car task type
|
2026-09-03 02:34:40 +07:00 |
|
ricardoofnl
|
fae75bbc87
|
[saco] Implement/match CPlayerPed::SetWeaponAmmo; it writes the slot ammo found by FindWeaponSlot
|
2026-09-03 02:34:40 +07:00 |
|
ricardoofnl
|
6cbbd15928
|
[saco] Implement CPlayerPed::Destroy and match ~CPlayerPed; the destructor body is just Destroy()
|
2026-09-03 02:34:40 +07:00 |
|
ricardoofnl
|
3e0b45b61e
|
[saco] Implement/match CPlayerPed::RemoveAllAttachedObjects and StopCarrying
|
2026-09-03 02:34:40 +07:00 |
|
ricardoofnl
|
e207d37fb4
|
[saco] Implement/match the CPlayerPed attached-object slot accessors; a live slot holds 1, not just nonzero
|
2026-09-03 02:34:40 +07:00 |
|
ricardoofnl
|
ed3d698e36
|
[saco] Implement/match FUNC_100B61D0; it forwards its argument to the GTA routine at 0x745C70
|
2026-09-03 02:32:59 +07:00 |
|
ricardoofnl
|
d1ada09e0d
|
[saco] Point CPlayerPed::SetSkin at UnFuck and util.h; drop the file-local prototypes
|
2026-09-03 02:32:59 +07:00 |
|
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 |
|