43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#include "pinball.h"
|
|
|
|
//----- (0101CB8E) --------------------------------------------------------
|
|
void vector_add(struct vector_type *a1, struct vector_type *a2)
|
|
{
|
|
*(float *)a1 = *(float *)a1 + *(float *)a2;
|
|
*((float *)a1 + 1) = *((float *)a2 + 1) + *((float *)a1 + 1);
|
|
}
|
|
|
|
//----- (0101CCF3) --------------------------------------------------------
|
|
void RotateVector(struct vector_type *a1, float a2)
|
|
{
|
|
long double v2; // st7
|
|
long double v3; // st6
|
|
long double v4; // st5
|
|
|
|
v2 = sin(a2);
|
|
v3 = cos(a2);
|
|
v4 = v3 * *(float *)a1 - v2 * *((float *)a1 + 1);
|
|
*(float *)a1 = v4;
|
|
*((float *)a1 + 1) = v4 * v2 + v3 * *((float *)a1 + 1);
|
|
}
|
|
|
|
//----- (0101B0A4) --------------------------------------------------------
|
|
void vswap(struct vector_type *a1, struct vector_type *a2)
|
|
{
|
|
int v2; // ST08_4
|
|
int v3; // ST0C_4
|
|
int v4; // ST10_4
|
|
DWORD *v5; // edi
|
|
|
|
v2 = *(DWORD *)a1;
|
|
v3 = *((DWORD *)a1 + 1);
|
|
v4 = *((DWORD *)a1 + 2);
|
|
*(DWORD *)a1 = *(DWORD *)a2;
|
|
v5 = (DWORD *)((char *)a1 + 4);
|
|
*v5 = *((DWORD *)a2 + 1);
|
|
v5[1] = *((DWORD *)a2 + 2);
|
|
*(DWORD *)a2 = v2;
|
|
*((DWORD *)a2 + 1) = v3;
|
|
*((DWORD *)a2 + 2) = v4;
|
|
}
|