Commit Graph

76 Commits

Author SHA1 Message Date
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
RD42 4643d1ff97 [saco] Implement and match FloatDifference(...) 2024-05-06 22:34:26 +08:00
RD42 282a3c88f6 [saco] Implement and match IsATrainPart(...) 2024-05-06 22:32:46 +08:00