mirror of
https://github.com/dashr9230/SA-MP.git
synced 2026-10-11 09:48:13 +08:00
[saco] Implement/match FUNC_100B58A0, FUNC_100B5830 and FUNC_100B5480; the D3DX slerp staging quaternions are declared output-first so the later ones land lower on the frame
This commit is contained in:
1 parent
f9d55b7a24
commit
0c65e210a2
2 files changed
+72
No files matched your search
@@ -1970,3 +1970,74 @@ void FUNC_100B5500(float *pQuat)
|
||||
pQuat[2] = qOut.y;
|
||||
pQuat[3] = qOut.z;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
|
||||
void FUNC_100B58A0(DWORD dwFrame, VECTOR *vecOut, int *a3)
|
||||
{
|
||||
DWORD dwFunc = (iGtaVersion != GTASA_VERSION_USA10) ? 0x7EBAC0 : 0x7EBA80;
|
||||
|
||||
_asm push a3
|
||||
_asm push vecOut
|
||||
_asm push dwFrame
|
||||
_asm mov edx, dwFunc
|
||||
_asm call edx
|
||||
_asm pop edx
|
||||
_asm pop edx
|
||||
_asm pop edx
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
|
||||
VECTOR VAR_1026DF90;
|
||||
VECTOR VAR_1026DF9C;
|
||||
float VAR_1026CF7C;
|
||||
|
||||
void FUNC_100B5830(int a1, int nIndex, float *pfOut)
|
||||
{
|
||||
VAR_1026DF9C = VAR_10117400[nIndex];
|
||||
|
||||
DWORD dwFunc = (iGtaVersion != GTASA_VERSION_USA10) ? 0x7F2760 : 0x7F2720;
|
||||
|
||||
_asm lea eax, VAR_1026DF90
|
||||
_asm push eax
|
||||
_asm lea eax, VAR_1026CF7C
|
||||
_asm push eax
|
||||
_asm lea eax, VAR_1026DF9C
|
||||
_asm push eax
|
||||
_asm push a1
|
||||
_asm mov edx, dwFunc
|
||||
_asm call edx
|
||||
_asm pop edx
|
||||
_asm pop edx
|
||||
_asm pop edx
|
||||
_asm pop edx
|
||||
|
||||
*pfOut = VAR_1026CF7C;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
|
||||
void FUNC_100B5480(float *pQuatOut, float *pQuatFrom, float *pQuatTo, float fT)
|
||||
{
|
||||
D3DXQUATERNION qOut;
|
||||
D3DXQUATERNION q1;
|
||||
D3DXQUATERNION q2;
|
||||
|
||||
q1.w = pQuatFrom[0];
|
||||
q1.x = pQuatFrom[1];
|
||||
q1.y = pQuatFrom[2];
|
||||
q1.z = pQuatFrom[3];
|
||||
|
||||
q2.w = pQuatTo[0];
|
||||
q2.x = pQuatTo[1];
|
||||
q2.y = pQuatTo[2];
|
||||
q2.z = pQuatTo[3];
|
||||
|
||||
D3DXQuaternionSlerp(&qOut, &q1, &q2, fT);
|
||||
|
||||
pQuatOut[0] = qOut.w;
|
||||
pQuatOut[1] = qOut.x;
|
||||
pQuatOut[2] = qOut.y;
|
||||
pQuatOut[3] = qOut.z;
|
||||
}
|
||||
@@ -167,6 +167,7 @@ void FUNC_100B5420(float *pQuat, MATRIX4X4 *pMatrix); // .text:100B5420
|
||||
void FUNC_100B57E0(int a1, int nIndex, int a3, int a4); // .text:100B57E0
|
||||
void FUNC_100B5790(int a1, int nIndex, int a3); // .text:100B5790
|
||||
void FUNC_100B5740(int a1, int a2); // .text:100B5740
|
||||
void FUNC_100B5830(int a1, int nIndex, float *pfOut); // .text:100B5830
|
||||
void FUNC_100B5210(int a1, void *a2); // .text:100B5210, __cdecl: the caller's
|
||||
// stack cleanup is folded into the next call's argument setup
|
||||
|
||||
Reference in new issue
Block a user