ricardoofnl
|
d45d006d71
|
[saco] Implement/match FUNC_100B5260, FUNC_100B5420, FUNC_100B57E0, FUNC_100B5790 and FUNC_100B5740; the 12-byte stride on 0x10117400 makes it a three-element VECTOR array
|
2026-09-05 10:52:06 +07:00 |
|
ricardoofnl
|
c525ec2bc3
|
[saco] Implement/match seven more game/util.cpp functions; 0x100B56F0 patches a real function-pointer global instead of picking with a ternary, and the tail jmp needs the callee convention to match
|
2026-09-05 10:52:06 +07:00 |
|
ricardoofnl
|
ea57e6af81
|
[saco] Implement/match FUNC_100B44E0, FUNC_100B6470, VectorScale, FUNC_100B51E0 and FUNC_100B5180; the quaternion norm needs its tail sum parenthesised or MSVC folds the first square to the top of the x87 stack
|
2026-09-05 10:52:06 +07:00 |
|
ricardoofnl
|
78cf6daf38
|
[saco] Implement/match the 0x100B45xx-0x100B47xx GetModelInfo wrapper band; the store-then-reload of the returned pointer is the _asm mov <local>, reg fingerprint
|
2026-09-05 10:52:06 +07:00 |
|
ricardoofnl
|
40688d058b
|
[saco] Implement/match ten small game/util.cpp functions; the 0x100B45xx band is one-load accessors, 0x100B56D0 another three-pop GTA thunk, and 0x100B5720 an indirect call through a stored function pointer
|
2026-09-05 10:52:06 +07:00 |
|
ricardoofnl
|
7cf34084ce
|
[saco] Implement/match FUNC_100B5D20; it swaps the offscreen rasters into the scene camera around three GTA calls
|
2026-09-05 07:37:06 +07:00 |
|
ricardoofnl
|
315ae05989
|
[saco] Add FUNC_100B4430; the second asm block reads the 0x4D3A60 result straight out of eax
|
2026-09-05 07:37:06 +07:00 |
|
ricardoofnl
|
237a0fe6bb
|
[saco] Implement/match FUNC_100B42B0; the asm-visible copy is taken after the state tests so the object pointer stays in eax
|
2026-09-05 07:37:06 +07:00 |
|
ricardoofnl
|
db738d9c73
|
[saco] Add FUNC_100B41F0 and FUNC_100B4240; both dispatch the version-dependent 0x7EE2D0/0x7EE310 pair on the scene camera
|
2026-09-05 07:37:06 +07:00 |
|
ricardoofnl
|
17b3f3d248
|
[saco] Implement/match FUNC_100B3D30; the object pool walk advances the pointer in the for increment, after the counter
|
2026-09-05 07:37:06 +07:00 |
|
ricardoofnl
|
1bb92445f6
|
[saco] Implement/match FUNC_100B4A70; the unit-range test is <= and >= on all three components
|
2026-09-05 07:37:06 +07:00 |
|
ricardoofnl
|
cd7c129445
|
[saco] Implement/match VectorNormaliseTo; casting the sum to double picks the fsqrt intrinsic instead of the float sqrt overload
|
2026-09-05 07:37:06 +07:00 |
|
ricardoofnl
|
783584be6e
|
[saco] Implement/match VectorCrossProduct; each product needs its own statement or MSVC canonicalises the fmul operands by address
|
2026-09-05 07:37:05 +07:00 |
|
ricardoofnl
|
500a3abcd3
|
[saco] Implement/match FastSqrt; one newton step on the 0x5F3759D5 inverse-sqrt seed, scaled back up by x
|
2026-09-05 07:37:05 +07:00 |
|
ricardoofnl
|
0c4148e8a4
|
[saco] Add FUNC_100B4BC0; a 0x59C730 thunk with the same three-pop cleanup as FUNC_100B4C00
|
2026-09-05 07:37:05 +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
|
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
|
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
|
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
|
ab897be9e7
|
[saco] Match GetColorFromEmbedCode(char*); retail spells the first hex test out longhand
|
2026-09-03 00:36:18 +07:00 |
|
ricardoofnl
|
dbe3baac54
|
[saco] Implement/match FUNC_100B4D10 and FUNC_100B4860
|
2026-08-30 14:52:51 +07:00 |
|
ricardoofnl
|
149c1cc22b
|
[saco] Implement/match CWorld__ProcessLineOfSight_Hook
|
2026-08-30 14:36:40 +07:00 |
|
RD42
|
356a762b4a
|
[saco] Implement/match FUNC_100B43F0(...)
|
2025-05-04 09:24:37 -07:00 |
|
RD42
|
bc62b91801
|
[saco] Implement/match FUNC_100B43D0(...)
|
2025-05-04 09:23:50 -07:00 |
|
RD42
|
397b09d482
|
[saco] Implement/match FUNC_100B4390(...)
|
2025-05-04 09:23:21 -07:00 |
|
RD42
|
6a6637b5a3
|
[saco] Refactor PedPtrRecord functions
|
2025-05-03 08:55:16 -07:00 |
|
RD42
|
dcbdb45901
|
[saco] Move hud/radar color functions to hudcolor.cpp/.h
|
2025-05-03 08:39:34 -07:00 |
|
RD42
|
51df0649e0
|
[saco] Rename and match unnamed_100B4B50(...)
|
2024-11-03 23:08:30 +08:00 |
|
RD42
|
f4121ea14f
|
[saco] Implement/match GetTaskNameFromTask(...)
|
2024-11-02 22:38:54 +08:00 |
|
RD42
|
7e6ec7860f
|
[saco] Implement/match GetTaskTypeFromTask(...)
|
2024-11-02 22:37:47 +08:00 |
|
RD42
|
24b3ff6039
|
[saco] Implement/match GetNextTaskFromTask(...)
|
2024-11-02 22:36:15 +08:00 |
|
RD42
|
587e87d11d
|
[saco] Implement/match CVehicle::GetVehicleSubtype()
* Implement/match `GetVehicleSubtypeFromVehiclePtr(...)`
|
2024-08-20 23:26:04 +08:00 |
|
RD42
|
a7f6b48efb
|
[saco] Match IsATrainPart(...)
|
2024-08-02 22:44:47 +08:00 |
|
RD42
|
07904813b5
|
[saco] Implement/match RemoveColorEmbedsFromString(...)
|
2024-07-23 18:51:42 +08:00 |
|
RD42
|
1f42d8cc6e
|
[saco] Implement/match GetColorFromEmbedCode(...)
|
2024-07-22 18:37:27 +08:00 |
|
RD42
|
966b759efc
|
[saco] Implement/match IsHexChar(...)
|
2024-07-18 22:09:30 +08:00 |
|
RD42
|
3878481975
|
[saco] Match InitAnimNameHashes()
|
2024-07-11 19:19:59 +08:00 |
|
RD42
|
67f4e5ba51
|
[saco] Implement CRC32FromUpcaseString(...)
|
2024-07-11 19:02:33 +08:00 |
|
RD42
|
e528b1b769
|
[saco] Implement and match GetNormalisation(...)
|
2024-05-07 22:31:48 +08:00 |
|
RD42
|
ffa4d3b01e
|
[saco] Implement and match _VectorNormalise(...)
|
2024-05-07 22:30:48 +08:00 |
|
RD42
|
23d890c7f9
|
[saco] Implement and match SquaredDistanceBetweenPoints(...)
|
2024-05-07 22:29:56 +08:00 |
|
RD42
|
b8ef3c5e16
|
[saco] Implement and match DistanceBetweenPoints(...)
|
2024-05-07 22:26:45 +08:00 |
|
RD42
|
7b42598f9a
|
[saco] Implement and match DistanceBetweenHorizontalPoints(...)
|
2024-05-07 22:25:37 +08:00 |
|
RD42
|
00d60205c5
|
[saco] Implement and match SquaredDistanceBetweenHorizontalPoints(...)
|
2024-05-07 22:24:39 +08:00 |
|
RD42
|
5820739d66
|
[saco] Implement and match NormalizeAngle(...)
|
2024-05-06 22:35:47 +08:00 |
|
RD42
|
46405f9dc1
|
[saco] Implement and match FloatOffset(...)
|
2024-05-06 22:34:58 +08:00 |
|