ricardoofnl
|
faee9024b8
|
[saco] Implement/match CPlayerPed::FUNC_100AEC50; the same argument-slot tail call, into FUNC_100AEB10
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
56ef225874
|
[saco] Implement/match CPlayerPed::FUNC_100AEC10; the frame index goes back into the second argument slot, so the call tails into FUNC_100AEA80
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
bc954875b3
|
[saco] Implement/match CPlayerPed::FUNC_100AE1E0; split _gap2BD into field_2BD and lock the offset with a probe
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
133894cdf5
|
[saco] Implement/match CPlayerPed::FUNC_100AC6C0; the tasks local is initialised before its own test, so the store precedes the branch
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
f6c6d653a2
|
[saco] Implement/match CPlayerPed::FUNC_100AEA30; the same clump lookup again, reading the third word
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
67d91f09e0
|
[saco] Implement/match CPlayerPed::FUNC_100AE9E0; the same clump lookup as FUNC_100AE990, reading the second word
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
ba2861f0be
|
[saco] Implement/match CPlayerPed::FUNC_100AE990; the clump lookup keeps the GTA address in its own local so the _asm can call through it
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
b345b1b9c8
|
[saco] Implement/match CPlayerPed::FUNC_100AD080; the task pointer is cached for the _asm and reloaded through Tasks for the clear
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
55151572b6
|
[saco] Implement/match CPlayerPed::FUNC_100AE560; the first branch has its own epilogue, so it ends in an explicit return
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
1e23436cb7
|
[saco] Implement/match CPlayerPed::FUNC_100AEBB0; the locals are declared up front so the renderware store precedes the two constants
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
6164c3283b
|
[saco] Implement/match CPlayerPed::FUNC_100AD3E0; the object teardown Destroy spells out inline, as its own function
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
226301087b
|
[saco] Implement/match CPlayerPed::FUNC_100AD030; nesting the tests keeps mov eax, 1 instead of folding the compare into neg/sbb
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
7d27da3613
|
[saco] Implement/match CPlayerPed::FUNC_100AD8B0; the GetWeaponInfo result is written back into the parameter slot
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
8cd945bd9f
|
[saco] Implement/match CPlayerPed::FUNC_100ACE50; the else branch needs a zeroed register, which is why retail cmps instead of tests
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
9938023f49
|
[saco] Implement/match CPlayerPed::FUNC_100ADA00; the explicit else pins the early FALSE block ahead of the IsAdded call
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
371a18f009
|
[saco] Implement/match CPlayerPed::FUNC_100AE960; the result local is declared before the ped pointer, which is what orders the two stack slots
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
e04d49c02f
|
[saco] Implement/match CPlayerPed::FUNC_100AC690; a single && condition, so both tests jump forward to one zero return
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
e39cc31f7e
|
[saco] Implement/match CPlayerPed::FUNC_100AE5D0; testing the number positively is what zero-extends it up front for the widened call
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
a037dff6c5
|
[saco] Implement/match FUNC_100AE520; a file-scope WORD clear of the GTA global at 0xB7CEDC
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
2d204144e0
|
[saco] Implement/match CPlayerPed::FUNC_100AEF60; the renderware test goes through ecx so m_pPed stays in eax
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
dfd7768541
|
[saco] Implement/match CPlayerPed::FUNC_100AEC90; the _asm call is what forces the ebp frame here
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
83e944cbea
|
[saco] Implement/match CPlayerPed::FUNC_100AC720; the pool lookup is tested before m_pPed, not after
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
c6d663e825
|
[saco] Implement/match CPlayerPed::FUNC_100AD880; the first store can alias m_pPed, which forces the reload for the second
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
55846225c4
|
[saco] Implement/match CPlayerPed::FUNC_100AD860; dwStateFlags & 3 narrows to a byte test
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
4835be7464
|
[saco] Implement/match CPlayerPed::FUNC_100ACF00; only al is live at the retn 4, so the setter returns void
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
8801e505b2
|
[saco] Implement/match CPlayerPed::FUNC_100ACEF0; the same setnz shape as FUNC_100ACE40, on field_2DE
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
77b4179732
|
[saco] Implement/match CPlayerPed::FUNC_100ACE40; the BOOL return of field_2E2 != 0 normalises through xor/test/setnz
|
2026-09-05 08:45:37 +07:00 |
|
ricardoofnl
|
72081093cb
|
[saco] Implement/match CPlayerPed::FUNC_100AE260; a bare field_2F2 getter
|
2026-09-05 08:45: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
|
cfa984713e
|
[saco] Point CPlayerPed at GetTaskTypeFromTask; my file-local GetTaskType alias had no definition
|
2026-09-03 03:46:05 +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
|
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
|
d1ada09e0d
|
[saco] Point CPlayerPed::SetSkin at UnFuck and util.h; drop the file-local prototypes
|
2026-09-03 02:32:59 +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
|
f3dac635fc
|
[saco] Match the field_2C9 and field_2C1 accessors at 0x100ADFA0, 0x100ADFB0 and 0x100ADC90
|
2026-09-03 01:33:32 +07:00 |
|
ricardoofnl
|
d21274463a
|
[saco] Rework CPlayerPed::SetKeys to retail shape; masks the unshifted wKeys and spells both helpers out
|
2026-09-03 01:33:32 +07:00 |
|
ricardoofnl
|
fd568887be
|
[saco] Match CPlayerPed::GetKeys; retail inlines IsInVehicle, IsInJetpackMode and HasAmmoForCurrentWeapon
|
2026-09-03 01:33:32 +07:00 |
|
ricardoofnl
|
5709b2c351
|
[saco] Match CPlayerPed::PutDirectlyInVehicle; retail tests the 0xFFFF pool sentinel before MAX_VEHICLES
|
2026-09-03 01:33:32 +07:00 |
|
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 |
|