ricardoofnl
|
e504cb236e
|
[saco] Match the three CDownloadList delete helpers; _snprintf with sizeof(buf) - 1 into a 261-byte frame
|
2026-09-04 21:31:14 +07:00 |
|
ricardoofnl
|
662d3331b9
|
[saco] Implement/match ReplaceUnprintableChars; both ends of the range test are unsigned
|
2026-09-04 20:19:44 +07:00 |
|
ricardoofnl
|
ce1f1e9c34
|
[saco] Add FUNC_100B4BE0 and FUNC_100B4C00; the first GTA callee cleans its own stack, the second does not
|
2026-09-04 20:18:48 +07:00 |
|
ricardoofnl
|
fc68e18131
|
[saco] Implement/match IsValidModel; the BOOL return normalizes GetModelInfo through neg/sbb/neg
|
2026-09-04 20:18:31 +07:00 |
|
ricardoofnl
|
371b742e82
|
[saco] Match FUNC_100B3CD0 and FUNC_100B3D00; the used-slot count is an inlined member on a constant this
|
2026-09-04 20:17:42 +07:00 |
|
ricardoofnl
|
1e1f0d9896
|
[saco] Implement/match FUNC_100B64E0 and FUNC_100B6510; both are thiscall thunks into GTA
|
2026-09-04 19:40:40 +07:00 |
|
ricardoofnl
|
db94f0cc06
|
[saco] Lock the SCOREBOARD_ROW layout with compile-time size and offset probes
|
2026-09-04 19:32:02 +07:00 |
|
ricardoofnl
|
bbc39ba1e9
|
[saco] Match the six-argument CNewPlayerTags::Draw; the label rect is a copy of the status rect taken before the measure
|
2026-09-04 19:32:02 +07:00 |
|
ricardoofnl
|
96a893c87a
|
[saco] Match FUNC_100A3BB0; the local-target flag is a byte and its if/else arms are inverted
|
2026-09-04 19:32:02 +07:00 |
|
ricardoofnl
|
d65675f504
|
[saco] Add CDownloadList::FUNC_1000C770; the real thiscall closes FUNC_1000D320
|
2026-09-04 19:32:02 +07:00 |
|
ricardoofnl
|
426168a8d3
|
[saco] Lock the downloader layouts with compile-time assertions; a wrong offset now fails the build
|
2026-09-04 19:32:01 +07:00 |
|
ricardoofnl
|
12d85813ee
|
[saco] Implement/match ScrUnk85; it calls CGame::SetWantedLevel behind an early return
|
2026-09-04 19:32:01 +07:00 |
|
ricardoofnl
|
1de918acd0
|
[saco] Implement/match ScrSetSpawnInfo; the player pool is fetched after the bitstream
|
2026-09-04 19:32:01 +07:00 |
|
ricardoofnl
|
82997497af
|
[saco] Match CNetGame::Packet_DisconnectionNotification; it stops the radio then disconnects
|
2026-09-04 19:32:01 +07:00 |
|
ricardoofnl
|
45abe08b78
|
[saco] Match ResetObjectPool; the nine pool-recreate helpers are complete
|
2026-09-04 19:32:01 +07:00 |
|
ricardoofnl
|
5cdeb8c5fb
|
[saco] Match ResetVehiclePool and ResetTextDrawPool; their teardowns are destructors
|
2026-09-04 19:32:01 +07:00 |
|
ricardoofnl
|
468f90ddf1
|
[saco] Match six CNetGame::Reset*Pool helpers and CActorPool::~CActorPool
|
2026-09-04 19:32:01 +07:00 |
|
ricardoofnl
|
a5f949d91d
|
Match CVehiclePool::FUNC_1001EB30; the widened callee parameter forces the movzx
|
2026-09-04 19:19:16 +07:00 |
|
ricardoofnl
|
8d07c02c2b
|
Split CVehicle::_gap50 into field_64 and field_65; add FUNC_100B7840
|
2026-09-04 19:19:16 +07:00 |
|
ricardoofnl
|
a713761542
|
Lock the CVehiclePool layout with compile-time offset and size probes
|
2026-09-04 19:19:16 +07:00 |
|
ricardoofnl
|
842b8323a4
|
[saco] Lock the CRemotePlayer offsets this TU depends on with compile-time assertions
|
2026-09-04 19:15:13 +07:00 |
|
ricardoofnl
|
959f1b88ae
|
[saco] Implement/match sub_100A4170; it zeroes eight bytes then inlines the strcpy
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
6f588d338e
|
[saco] Implement/match GetModelInfo; the bounds test is signed and the relocated table wins before it
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
bf76562de5
|
Match CVehiclePool::FUNC_1001EA80; CVehicle inherits a virtual dtor so the delete goes through slot 0
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
78dbcbac10
|
Match CVehiclePool::FUNC_1001EB00; the single-slot dispatch takes no bounds check
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
6c7a2dfe3e
|
[saco] Add CDownloadList::FUNC_1000D320; the entry layout is right, the call setup schedules 3 loads early
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
6bc9176965
|
[saco] Match the three CDownloadList CRC lookups; the index loops compare !=, not <
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
0690d8f4a1
|
[saco] Match CDownloadManager::AddURLRequest; logurls gates the log through GetIntVariable
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
c859373b8e
|
[saco] Match CRemotePlayer::FUNC_10014800; field_10B is unsigned and the vehicle lookup is its own statement
|
2026-09-04 19:03:01 +07:00 |
|
ricardoofnl
|
29d5a9f6e5
|
[saco] Split CPlayerPed::_gap2FD into field_2FD and field_329; sizeof and every offset are unchanged
|
2026-09-03 22:51:40 +07:00 |
|
ricardoofnl
|
055be6d51d
|
[saco] Correct the FUNC_1006ED30 sprintf buffer to 256 and walk a row pointer in the fill loop
|
2026-09-03 22:25:37 +07:00 |
|
ricardoofnl
|
7622034e0d
|
[saco] Implement/match CPlayerPed::ProcessDrunkCamera; two sequential && chains, not an if/else
|
2026-09-03 22:25:37 +07:00 |
|
ricardoofnl
|
f9693ce115
|
[saco] Annotate six verified declarations with their .text addresses so address greps find them
|
2026-09-03 21:59:13 +07:00 |
|
ricardoofnl
|
4c3609e565
|
Match CVehiclePool::FUNC_1001EDE0; the slot loop bound is inclusive and reloads field_0 each pass
|
2026-09-03 21:09:55 +07:00 |
|
ricardoofnl
|
ce1db2e0fc
|
Match CVehiclePool::FUNC_1001F060; it deletes every slot through FUNC_1001EA80
|
2026-09-03 21:09:55 +07:00 |
|
ricardoofnl
|
4a65d4777a
|
[saco] Match CNetGame::ResetMapIcons; the expanded guard skips the slot, it does not return
|
2026-09-03 21:09:55 +07:00 |
|
ricardoofnl
|
27dcb2fdf2
|
De-inline CNetGame::DisableMapIcon to restore ScrUnk90; hand-expand it at both map-icon call sites instead
|
2026-09-03 05:32:10 +07:00 |
|
ricardoofnl
|
d7a9f31a83
|
[saco] Match CNetGame::AttemptConnect; it retries the connect every three seconds
|
2026-09-03 05:27:21 +07:00 |
|
ricardoofnl
|
cf7fdd28bb
|
[saco] Match CNetGame::SetMapIcon and ResetMapIcons; DisableMapIcon must be inline
|
2026-09-03 05:27:21 +07:00 |
|
ricardoofnl
|
0d9fc30d3b
|
[saco] Match CNetGame::ToggleNameTagStatus; it mirrors the flag into nonametagstatus
|
2026-09-03 05:27:21 +07:00 |
|
ricardoofnl
|
3e1070db78
|
[saco] Match three CNetGame packet handlers; full, bad password and no response
|
2026-09-03 05:27:21 +07:00 |
|
ricardoofnl
|
b3dab2e6ef
|
[saco] Annotate the six already-matching net/netgame.cpp functions
|
2026-09-03 05:27:21 +07:00 |
|
ricardoofnl
|
3983f6e174
|
[saco] Implement/match ScrUnk90; it calls CNetGame::DisableMapIcon
|
2026-09-03 05:20:50 +07:00 |
|
ricardoofnl
|
e39e76f106
|
[saco] Implement/match ScrUnk86; the oversize-textdraw warning is the fallthrough arm
|
2026-09-03 05:20:50 +07:00 |
|
ricardoofnl
|
1a2d8d76ad
|
[saco] Match SvrStats; it reads straight into the global RakServerStats
|
2026-09-03 05:09:24 +07:00 |
|
ricardoofnl
|
f1ca3e849c
|
[saco] Match RequestClass; the 46-byte SPAWN_INFO comes off the stream whole
|
2026-09-03 05:09:24 +07:00 |
|
ricardoofnl
|
67aa31d871
|
[saco] Match CNetGame::DisableMapIcon; it is out of line at 0x10008FB0
|
2026-09-03 05:09:24 +07:00 |
|
ricardoofnl
|
4c0934a638
|
Add the missing raknet/SocketDataEncryptor.h; net/netgame.cpp compiles again
|
2026-09-03 05:09:24 +07:00 |
|
ricardoofnl
|
653054feaf
|
[saco] Match SetRaceCheckpoint; the size read reuses the fX temp
|
2026-09-03 05:09:23 +07:00 |
|
ricardoofnl
|
811f4f61bf
|
[saco] Match SetCheckpoint; the single radius fills all three extent components
|
2026-09-03 05:09:23 +07:00 |
|