mirror of
https://github.com/CookiePLMonster/SilentPatch.git
synced 2024-12-29 15:23:02 +05:00
Reversed RwMatrixTranslate
This commit is contained in:
parent
a5c0dd54eb
commit
0fa6e0964b
1 changed files with 23 additions and 2 deletions
|
@ -35,8 +35,6 @@ static void* varRpMaterialSetTexture = AddressByVersion<void*>(0x74DBC0, 0x74E4D
|
|||
WRAPPER RpMaterial* RpMaterialSetTexture(RpMaterial* material, RwTexture* texture) { VARJMP(varRpMaterialSetTexture); }
|
||||
static void* varRwFrameGetLTM = AddressByVersion<void*>(0x7F0990, 0x7F1290, 0x82A950);
|
||||
WRAPPER RwMatrix* RwFrameGetLTM(RwFrame* frame) { VARJMP(varRwFrameGetLTM); }
|
||||
static void* varRwMatrixTranslate = AddressByVersion<void*>(0x7F2450, 0x7F2D50, 0x82C410);
|
||||
WRAPPER RwMatrix* RwMatrixTranslate(RwMatrix* matrix, const RwV3d* translation, RwOpCombineType combineOp) { WRAPARG(matrix); WRAPARG(translation); WRAPARG(combineOp); VARJMP(varRwMatrixTranslate); }
|
||||
static void* varRwMatrixRotate = AddressByVersion<void*>(0x7F1FD0, 0x7F28D0, 0x82BF90);
|
||||
WRAPPER RwMatrix* RwMatrixRotate(RwMatrix* matrix, const RwV3d* axis, RwReal angle, RwOpCombineType combineOp) { WRAPARG(matrix); WRAPARG(axis); WRAPARG(angle); WRAPARG(combineOp); VARJMP(varRwMatrixRotate); }
|
||||
static void* varRwD3D9SetRenderState = AddressByVersion<void*>(0x7FC2D0, 0x7FCBD0, 0x836290);
|
||||
|
@ -75,6 +73,29 @@ RwCamera* RwCameraClear(RwCamera* camera, RwRGBA* colour, RwInt32 clearMode)
|
|||
return RWSRCGLOBAL(stdFunc[rwSTANDARDCAMERACLEAR])(camera, colour, clearMode) != FALSE ? camera : NULL;
|
||||
}
|
||||
|
||||
RwMatrix* RwMatrixTranslate(RwMatrix* matrix, const RwV3d* translation, RwOpCombineType combineOp)
|
||||
{
|
||||
if ( combineOp == rwCOMBINEREPLACE )
|
||||
{
|
||||
RwMatrixSetIdentity(matrix);
|
||||
matrix->pos = *translation;
|
||||
}
|
||||
else if ( combineOp == rwCOMBINEPRECONCAT )
|
||||
{
|
||||
matrix->pos.x += matrix->at.x * translation->z + matrix->up.x * translation->y + matrix->right.x * translation->x;
|
||||
matrix->pos.y += matrix->at.y * translation->z + matrix->up.y * translation->y + matrix->right.y * translation->x;
|
||||
matrix->pos.z += matrix->at.z * translation->z + matrix->up.z * translation->y + matrix->right.z * translation->x;
|
||||
}
|
||||
else if ( combineOp == rwCOMBINEPOSTCONCAT )
|
||||
{
|
||||
matrix->pos.x += translation->x;
|
||||
matrix->pos.y += translation->y;
|
||||
matrix->pos.z += translation->z;
|
||||
}
|
||||
rwMatrixSetFlags(matrix, rwMatrixGetFlags(matrix) & ~(rwMATRIXINTERNALIDENTITY));
|
||||
return matrix;
|
||||
}
|
||||
|
||||
RwFrame* RwFrameForAllChildren(RwFrame* frame, RwFrameCallBack callBack, void* data)
|
||||
{
|
||||
for ( RwFrame* curFrame = frame->child; curFrame != nullptr; curFrame = curFrame->next )
|
||||
|
|
Loading…
Reference in a new issue