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 |
|
ricardoofnl
|
1dcf39fe4f
|
[saco] Match CUnkClass5::CUnkClass5; the RakNet::GetTime call sits before the last two field stores
|
2026-09-03 00:03:21 +07:00 |
|
ricardoofnl
|
a6562c15b8
|
[saco] Match CIntArray::SetSize and ~CIntArray; CUnkClass5 field_0/field_4 are a realloc-grown int array
|
2026-09-03 00:03:21 +07:00 |
|
ricardoofnl
|
f75c60fa81
|
[saco] Add CScoreBoard::Show; the empty FUNC_1006ED30 stub gets elided so it stays 23 bytes short
|
2026-09-02 22:11:38 +07:00 |
|
ricardoofnl
|
0075059af8
|
[saco] Implement/match CScoreBoard::GetRect and CScoreBoard::Hide; both were absent from the source
|
2026-09-02 22:11:38 +07:00 |
|
ricardoofnl
|
987e800148
|
[saco] Fix scoreboard.cpp and unkclass5.cpp; retail indexes field_51 stride-4, so it is the int[3]
|
2026-09-02 22:11:38 +07:00 |
|
ricardoofnl
|
c971d79627
|
[saco] Annotate DXUTSettingsDlg.cpp; all 70 functions verify as matched
|
2026-09-02 21:37:01 +07:00 |
|
ricardoofnl
|
6a030a600b
|
[saco] Implement/match CDXUTIMEEditBox::IsImeActive
|
2026-09-02 07:05:41 +07:00 |
|
ricardoofnl
|
96c25394fd
|
[saco] Implement/match CDXUTIMEEditBox::PumpMessage
|
2026-09-02 07:05:41 +07:00 |
|
ricardoofnl
|
6668714bd8
|
[saco] Move CUniBuffer into its own TU; retail compiled it separately
|
2026-09-02 07:05:41 +07:00 |
|
ricardoofnl
|
8341d4de00
|
[saco] Match CDXUTListBox::SetItemColumnText; SA-MP's tab-list column setter was missing
|
2026-09-02 07:00:08 +07:00 |
|
ricardoofnl
|
5a9906709a
|
[saco] Match CDXUTDialogResourceManager::SetFont; absent from the source and dead in retail
|
2026-09-02 07:00:08 +07:00 |
|
ricardoofnl
|
99353ee81d
|
[saco] Match DXUTChangeDevice; the windowed HWND is the left side of the device-window comparisons
|
2026-09-02 06:48:41 +07:00 |
|
ricardoofnl
|
a020fc8dfd
|
[saco] Match DXUTRankDeviceCombo; retail evaluates the combo side of the bit-depth delta first
|
2026-09-02 06:48:41 +07:00 |
|
ricardoofnl
|
a772c18f2d
|
[saco] Compile d3d9/dxutil.cpp with /Ob2; the ...Cb wrappers inline their ...Cch bodies
|
2026-08-30 22:51:04 +07:00 |
|
ricardoofnl
|
14e358fc40
|
[saco] Enable /GF in the Release config; CD3DSettingsDlg::OnBackBufferFormatChanged only matches with string pooling
|
2026-08-30 22:51:04 +07:00 |
|
ricardoofnl
|
f5727a0ce1
|
[saco] Match ~CDXUTControl and ~CDXUTEditBox; <new> makes operator delete nothrow
|
2026-08-30 22:47:42 +07:00 |
|
ricardoofnl
|
d4971592f6
|
[saco] Match CDXUTDialog::OnRender; the caption text is drawn without a shadow
|
2026-08-30 22:47:42 +07:00 |
|
ricardoofnl
|
9cfac85863
|
[saco] Match CDXUTIMEEditBox::GetPrivateReadingString; rebuilt from the decompilation
|
2026-08-30 22:47:42 +07:00 |
|
ricardoofnl
|
64fe8f6ae0
|
[saco] Implement/match IDirect3DDevice9Hook::Present
|
2026-08-30 22:32:05 +07:00 |
|
ricardoofnl
|
6ed92f82ea
|
[saco] Drop the debug string and caption drag block from CDXUTDialog::MsgProc
|
2026-08-30 22:22:30 +07:00 |
|