2043 lines
56 KiB
C
2043 lines
56 KiB
C
#include "pinball.h"
|
|
|
|
|
|
undefined4 __thiscall FUN_01017074(void *this,int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
if (param_1 == 0x3f6) {
|
|
if (*(int *)((int)this + 0x72) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x72));
|
|
}
|
|
*(undefined4 *)((int)this + 0x72) = 0;
|
|
}
|
|
else {
|
|
if (param_1 == 0x3fe) {
|
|
if (*(int *)((int)this + 0x72) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x72));
|
|
}
|
|
*(undefined4 *)((int)this + 0x72) = 0;
|
|
if (*(char *)((int)this + 5) != '\0') {
|
|
iVar1 = FUN_010074b7(0x40a00000,(int)this,(int)FUN_01016eed);
|
|
*(int *)((int)this + 0x72) = iVar1;
|
|
}
|
|
}
|
|
else {
|
|
if (param_1 == 0x400) {
|
|
if (*(int *)((int)this + 0x66) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x66));
|
|
}
|
|
*(undefined4 *)((int)this + 0x66) = 0;
|
|
if (*(int *)((int)this + 0x6a) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x6a));
|
|
}
|
|
*(undefined4 *)((int)this + 0x6a) = 0;
|
|
if (*(int *)((int)this + 0x5e) != 0) {
|
|
FUN_01016dc0(0,(int)this);
|
|
}
|
|
if (*(int *)((int)this + 0x62) != 0) {
|
|
FUN_01016d8d(0,(int)this);
|
|
}
|
|
if (*(int *)((int)this + 0x6e) != 0) {
|
|
FUN_01016d62(0,(int)this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
void FUN_01017130(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = *(int *)(*(int *)(*(int *)(param_2 + 0x1e) + 0x106) + 8);
|
|
*(undefined4 *)(iVar1 + 0x6a) = 0;
|
|
*(undefined *)(iVar1 + 5) = 1;
|
|
*(undefined4 *)(iVar1 + 0x2a) = *(undefined4 *)(param_2 + 0x56);
|
|
*(undefined4 *)(iVar1 + 0x2e) = *(undefined4 *)(param_2 + 0x5a);
|
|
FUN_01015935(iVar1,(undefined4 *)(param_2 + 0x62),*(float *)(param_2 + 0x6e),
|
|
*(float *)(param_2 + 0x72),*(float *)(param_2 + 0x76));
|
|
if (*(int *)(param_2 + 0x7e) != 0) {
|
|
FUN_01009895(*(int *)(param_2 + 0x7e));
|
|
}
|
|
*(undefined4 *)(param_2 + 0x4e) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_01017197(int iParm1,int param_1,float param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
int iVar2;
|
|
bool in_PF;
|
|
|
|
if (param_1 == 0x38) {
|
|
if (!in_PF) {
|
|
param_2 = *(float *)(iParm1 + 0x52);
|
|
}
|
|
iVar2 = FUN_010074b7(param_2,iParm1,(int)FUN_01017130);
|
|
*(int *)(iParm1 + 0x4e) = iVar2;
|
|
}
|
|
else {
|
|
if (param_1 == 0x3fc) {
|
|
*(undefined4 *)(iParm1 + 0x8e + *(int *)(*(int *)(iParm1 + 0x1e) + 0xda) * 4) =
|
|
*(undefined4 *)(iParm1 + 6);
|
|
floor((double)param_2);
|
|
iVar2 = _ftol();
|
|
*(undefined4 *)(iParm1 + 6) = *(undefined4 *)(iParm1 + 0x8e + iVar2 * 4);
|
|
}
|
|
else {
|
|
if (param_1 == 0x400) {
|
|
if (*(int *)(iParm1 + 0x4e) != 0) {
|
|
FUN_01007659(*(int *)(iParm1 + 0x4e));
|
|
}
|
|
*(undefined4 *)(iParm1 + 0x4e) = 0;
|
|
*(undefined4 *)(iParm1 + 6) = 0;
|
|
iVar2 = 0;
|
|
if (0 < *(int *)(*(int *)(iParm1 + 0x1e) + 0xd6)) {
|
|
puVar1 = (undefined4 *)(iParm1 + 0x8e);
|
|
do {
|
|
*puVar1 = 0;
|
|
iVar2 = iVar2 + 1;
|
|
puVar1 = puVar1 + 1;
|
|
} while (iVar2 < *(int *)(*(int *)(iParm1 + 0x1e) + 0xd6));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_01017262(void *this,int param_1)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
|
|
if (param_1 < 3) {
|
|
uVar1 = *(undefined4 *)((int)this + param_1 * 4 + 0x82);
|
|
}
|
|
else {
|
|
uVar1 = 0;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_01017283(void *this,int param_1,undefined4 param_2)
|
|
|
|
{
|
|
if (param_1 < 3) {
|
|
*(undefined4 *)((int)this + param_1 * 4 + 0x82) = param_2;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_010172a3(void *this,int param_1)
|
|
|
|
{
|
|
if (param_1 == 0x400) {
|
|
if (*(int *)((int)this + 0x56) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x56));
|
|
*(undefined4 *)((int)this + 0x56) = 0;
|
|
}
|
|
*(undefined4 *)(*(int *)((int)this + 0x1e) + 0x4e) = 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
void FUN_010172d8(undefined4 param_1,undefined **param_2)
|
|
|
|
{
|
|
FUN_01011ec9(0x3c,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void FUN_010172f0(undefined4 param_1,undefined **param_2)
|
|
|
|
{
|
|
*(undefined4 *)((int)param_2 + 0x4e) = 0;
|
|
(**(code **)*param_2)(0x3f7,0);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void FUN_01017314(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
float fVar2;
|
|
float fVar3;
|
|
int iVar4;
|
|
|
|
fVar2 = (float)*(int *)(param_2 + 0x5a) + *(float *)(param_2 + 0x3e);
|
|
*(float *)(param_2 + 0x3e) = fVar2;
|
|
fVar3 = (float)*(int *)(param_2 + 0x56);
|
|
if ((ushort)((ushort)(fVar2 < fVar3) << 8 | (ushort)(fVar2 == fVar3) << 0xe) == 0) {
|
|
*(undefined4 *)(param_2 + 0x4e) = 0;
|
|
*(float *)(param_2 + 0x3e) = fVar3;
|
|
}
|
|
else {
|
|
iVar4 = FUN_010074b7(*(undefined4 *)(param_2 + 0x5e),param_2,(int)FUN_01017314);
|
|
*(int *)(param_2 + 0x4e) = iVar4;
|
|
}
|
|
floor((double)((float)(*(int *)(*(int *)(*(int *)(param_2 + 0x22) + 4) + 4) + -1) *
|
|
(*(float *)(param_2 + 0x3e) / (float)*(int *)(param_2 + 0x56))));
|
|
iVar4 = _ftol();
|
|
iVar4 = iVar4 * 4 + 8;
|
|
iVar1 = *(int *)(iVar4 + *(int *)(*(int *)(param_2 + 0x22) + 4));
|
|
FUN_01013974(*(undefined4 **)(param_2 + 0x1a),iVar1,
|
|
*(undefined4 *)(*(int *)(*(int *)(param_2 + 0x26) + 4) + iVar4),
|
|
*(int *)(iVar1 + 0x1d) - *(int *)(*(int *)(param_2 + 0x1e) + 0xea),
|
|
*(int *)(iVar1 + 0x21) - *(int *)(*(int *)(param_2 + 0x1e) + 0xee));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void FUN_010173c8(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
*(undefined4 *)(param_2 + 0x42) = 0x4e6e6b28;
|
|
*(undefined4 *)(param_2 + 0x3e) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_010173e7(void *this,int param_1,float *param_2)
|
|
|
|
{
|
|
float fVar1;
|
|
int iVar2;
|
|
|
|
fVar1 = *(float *)((int)this + 0x62);
|
|
iVar2 = rand();
|
|
*param_2 = fVar1 - ((0.50000000 - (float)iVar2 * 0.00003052) + *(float *)(param_1 + 0x36)) *
|
|
*(float *)(param_1 + 0x42) * *(float *)((int)this + 0x6e);
|
|
param_2[1] = *(float *)((int)this + 0x66) -
|
|
*(float *)(param_1 + 0x3a) * *(float *)(param_1 + 0x42) *
|
|
*(float *)((int)this + 0x6e);
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
void * __thiscall FUN_01017441(void *this,byte param_1)
|
|
|
|
{
|
|
FUN_0100b9b3((int)this);
|
|
if ((param_1 & 1) != 0) {
|
|
operator_delete(this);
|
|
}
|
|
return this;
|
|
}
|
|
|
|
|
|
|
|
void FUN_01017467(undefined4 param_1,undefined **param_2)
|
|
|
|
{
|
|
*(undefined4 *)((int)param_2 + 0x5a) = 0;
|
|
(**(code **)*param_2)(0x3f5,0);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void FUN_0101748b(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
code **ppcVar1;
|
|
int iVar2;
|
|
LPSTR pCVar3;
|
|
int iVar4;
|
|
undefined4 local_10;
|
|
|
|
iVar2 = param_2;
|
|
*(undefined4 *)(param_2 + 0x5e) = 0;
|
|
FUN_0101479b();
|
|
param_2 = *(int *)(*(int *)(param_2 + 0xfe) + 4);
|
|
if (-1 < param_2 + -1) {
|
|
iVar4 = (param_2 + -1) * 4 + 8;
|
|
do {
|
|
(**(code **)**(code ***)(iVar4 + *(int *)(iVar2 + 0xfe)))(0x3fe,0);
|
|
iVar4 = iVar4 + -4;
|
|
param_2 = param_2 + -1;
|
|
} while (param_2 != 0);
|
|
}
|
|
ppcVar1 = *(code ***)(iVar2 + 0xe6);
|
|
if (ppcVar1 != (code **)0x0) {
|
|
(**(code **)*ppcVar1)(0x3fe,0);
|
|
}
|
|
FUN_01011ec9(0x43,DAT_01025654);
|
|
local_10 = 0xbf800000;
|
|
pCVar3 = FUN_01003752(0x18);
|
|
FUN_010144b7(pCVar3,local_10);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
int __thiscall FUN_01017526(void *this,int param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
|
|
if (*(int *)((int)this + 0x13e) != 0) {
|
|
piVar1 = (int *)((int)this + 0x13a);
|
|
*piVar1 = *piVar1 + param_1;
|
|
if (5000000 < *piVar1) {
|
|
*piVar1 = 5000000;
|
|
}
|
|
}
|
|
if (*(int *)((int)this + 0x136) != 0) {
|
|
piVar1 = (int *)((int)this + 0x132);
|
|
*piVar1 = *piVar1 + param_1;
|
|
if (5000000 < *piVar1) {
|
|
*piVar1 = 5000000;
|
|
}
|
|
}
|
|
iVar2 = *(int *)(&DAT_01024758 + *(int *)((int)this + 0x126) * 4) * param_1 +
|
|
*(int *)((int)this + 0x12a);
|
|
piVar1 = (int *)((int)this + 0x52);
|
|
*piVar1 = *piVar1 + iVar2;
|
|
if (1000000000 < *piVar1) {
|
|
*(int *)((int)this + 0x56) = *(int *)((int)this + 0x56) + 1;
|
|
*piVar1 = *piVar1 + -1000000000;
|
|
}
|
|
FUN_01013c89(*(undefined4 **)((int)this + 0x32),*piVar1);
|
|
return iVar2;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_010175aa(void *this,int param_1)
|
|
|
|
{
|
|
*(int *)((int)this + 0x146) = param_1;
|
|
if (param_1 < 1) {
|
|
FUN_01013caa(*(int *)((int)this + 0x36),1);
|
|
}
|
|
else {
|
|
FUN_01013c89(*(undefined4 **)((int)this + 0x36),(*(int *)((int)this + 0x14a) - param_1) + 1);
|
|
FUN_01013d2d(*(int **)((int)this + 0x36));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void FUN_010175ef(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
*(undefined4 *)(param_2 + 0x162) = 0;
|
|
*(undefined4 *)(param_2 + 0x166) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
int __thiscall FUN_01017648(void *this,LPCSTR param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
LPCSTR lpString1;
|
|
int iVar3;
|
|
int iVar4;
|
|
int local_8;
|
|
|
|
local_8 = 0;
|
|
iVar1 = *(int *)(*(int *)((int)this + 0xfe) + 4);
|
|
if (0 < iVar1) {
|
|
iVar4 = 8;
|
|
do {
|
|
iVar2 = *(int *)(iVar4 + *(int *)((int)this + 0xfe));
|
|
lpString1 = *(LPCSTR *)(iVar2 + 10);
|
|
if ((lpString1 != (LPCSTR)0x0) && (iVar3 = lstrcmpA(lpString1,param_1), iVar3 == 0)) {
|
|
return iVar2;
|
|
}
|
|
local_8 = local_8 + 1;
|
|
iVar4 = iVar4 + 4;
|
|
} while (local_8 < iVar1);
|
|
}
|
|
MessageBoxA((HWND)0x0,"Table cant find:",param_1,0x2000);
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_010176be(void *this,int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int *piVar2;
|
|
int iVar3;
|
|
char local_d0 [200];
|
|
undefined4 local_8;
|
|
|
|
local_8 = DAT_01024778;
|
|
iVar1 = *(int *)(*(int *)((int)this + 0xfe) + 4);
|
|
iVar3 = 0;
|
|
if (0 < iVar1) {
|
|
piVar2 = (int *)(*(int *)((int)this + 0xfe) + 8);
|
|
do {
|
|
if (param_1 == *(int *)(*piVar2 + 0x16)) goto LAB_01017725;
|
|
iVar3 = iVar3 + 1;
|
|
piVar2 = piVar2 + 1;
|
|
} while (iVar3 < iVar1);
|
|
}
|
|
_itoa(param_1,local_d0,10);
|
|
MessageBoxA((HWND)0x0,"Table cant find (lh):",local_d0,0x2000);
|
|
LAB_01017725:
|
|
FUN_0101cd9e();
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void FUN_01017738(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
undefined local_10 [12];
|
|
|
|
*(undefined4 *)(param_2 + 0x62) = 0;
|
|
if (*(int *)(param_2 + 0x172) != 0) {
|
|
iVar1 = *(int *)(*(int *)(param_2 + 0x106) + 4);
|
|
puVar2 = (undefined4 *)(*(int *)(param_2 + 0x106) + 8);
|
|
if (0 < iVar1) {
|
|
do {
|
|
(**(code **)(**(int **)(param_2 + 0xe2) + 0x14))(*puVar2,local_10,local_10,0,0);
|
|
puVar2 = puVar2 + 1;
|
|
iVar1 = iVar1 + -1;
|
|
} while (iVar1 != 0);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_01017791(void *this,undefined4 param_1)
|
|
|
|
{
|
|
LPSTR pCVar1;
|
|
int iVar2;
|
|
undefined4 local_18;
|
|
int local_8;
|
|
|
|
if ((*(int *)((int)this + 0x172) == 0) && (*(int *)((int)this + 0x4e) == 0)) {
|
|
FUN_01014143(DAT_01025650);
|
|
FUN_01014143(DAT_01025654);
|
|
local_18 = 0xbf800000;
|
|
pCVar1 = FUN_01003752(0x23);
|
|
FUN_010144b7(pCVar1,local_18);
|
|
FUN_01009895(*(int *)((int)this + 0x4a));
|
|
iVar2 = FUN_010074b7(0x41f00000,(int)this,(int)FUN_01017738);
|
|
*(int *)((int)this + 0x62) = iVar2;
|
|
local_8 = *(int *)(*(int *)((int)this + 0xfe) + 4);
|
|
(***(code ***)this)(0x3f3,0xbf800000);
|
|
if (0 < local_8) {
|
|
iVar2 = 8;
|
|
do {
|
|
(**(code **)**(code ***)(iVar2 + *(int *)((int)this + 0xfe)))(0x3f3,param_1);
|
|
iVar2 = iVar2 + 4;
|
|
local_8 = local_8 + -1;
|
|
} while (local_8 != 0);
|
|
}
|
|
(**(code **)**(code ***)((int)this + 0x10a))(8,0);
|
|
*(undefined4 *)((int)this + 0x172) = 1;
|
|
FUN_0100c0be(0x3f3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
float10 FUN_01017883(int param_1,undefined4 *param_2,float *param_3,float param_4,float param_5,
|
|
float param_6,float param_7)
|
|
|
|
{
|
|
float *pfVar1;
|
|
float fVar2;
|
|
float fVar3;
|
|
float fVar4;
|
|
float fVar5;
|
|
float10 fVar6;
|
|
|
|
*(undefined4 *)(param_1 + 0x2a) = *param_2;
|
|
*(undefined4 *)(param_1 + 0x2e) = param_2[1];
|
|
fVar2 = *param_3;
|
|
fVar3 = param_3[1];
|
|
pfVar1 = (float *)(param_1 + 0x36);
|
|
param_2 = (undefined4 *)-(fVar2 * *pfVar1 + fVar3 * *(float *)(param_1 + 0x3a));
|
|
if ((ushort)((ushort)((float)param_2 < 0.00000000) << 8 |
|
|
(ushort)((float)param_2 == 0.00000000) << 0xe) == 0) {
|
|
*pfVar1 = ((float)param_2 * fVar2 + *pfVar1) * param_5 + (float)param_2 * fVar2 * param_4;
|
|
*(float *)(param_1 + 0x3a) =
|
|
(fVar3 * (float)param_2 + *(float *)(param_1 + 0x3a)) * param_5 +
|
|
fVar3 * (float)param_2 * param_4;
|
|
FUN_01008ae9(pfVar1);
|
|
}
|
|
else {
|
|
param_2 = (undefined4 *)-(float)param_2;
|
|
}
|
|
fVar4 = (float)param_2 * *(float *)(param_1 + 0x42);
|
|
fVar5 = *(float *)(param_1 + 0x42) - (1.00000000 - param_4) * fVar4;
|
|
*(float *)(param_1 + 0x42) = fVar5;
|
|
if (param_6 <= fVar4) {
|
|
*pfVar1 = fVar2 * param_7 + fVar5 * *pfVar1;
|
|
*(float *)(param_1 + 0x3a) = fVar3 * param_7 + fVar5 * *(float *)(param_1 + 0x3a);
|
|
fVar6 = (float10)FUN_01008ae9(pfVar1);
|
|
*(float *)(param_1 + 0x42) = (float)fVar6;
|
|
}
|
|
return (float10)fVar4;
|
|
}
|
|
|
|
|
|
|
|
void FUN_0101798c(undefined4 param_1,undefined **param_2)
|
|
|
|
{
|
|
*(undefined4 *)((int)param_2 + 0x2a) = 0;
|
|
FUN_01011ec9(0x3c,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
int * FUN_010179a9(float *param_1,int param_2,undefined4 param_3,undefined4 param_4,float param_5,
|
|
undefined4 param_6)
|
|
|
|
{
|
|
float fVar1;
|
|
void *this;
|
|
int *this_00;
|
|
float *pfVar2;
|
|
bool in_PF;
|
|
float local_70 [2];
|
|
float local_68;
|
|
float local_60;
|
|
float local_58;
|
|
float local_54;
|
|
undefined4 local_50;
|
|
float local_4c;
|
|
float local_48;
|
|
undefined4 local_44;
|
|
float local_40;
|
|
float local_3c;
|
|
float local_34;
|
|
float local_30;
|
|
float local_28;
|
|
float local_24;
|
|
float local_1c;
|
|
float local_18;
|
|
float *local_10;
|
|
int local_c;
|
|
int *local_8;
|
|
|
|
pfVar2 = param_1;
|
|
floor((double)*param_1);
|
|
local_c = _ftol();
|
|
local_10 = param_1 + 1;
|
|
if (local_c == 0) {
|
|
local_1c = *local_10;
|
|
local_18 = param_1[2];
|
|
this = operator_new(0x25);
|
|
if (this == (void *)0x0) {
|
|
this_00 = (int *)0x0;
|
|
}
|
|
else {
|
|
this_00 = FUN_01015898(this,param_2,param_3,param_4,&local_1c,param_5 + param_1[3]);
|
|
}
|
|
local_8 = this_00;
|
|
if (this_00 == (int *)0x0) goto LAB_01017a97;
|
|
*(undefined4 *)((int)this_00 + 0xd) = param_6;
|
|
local_8 = this_00;
|
|
}
|
|
else {
|
|
if (local_c != 1) {
|
|
local_40 = param_1[local_c * 2 + -1];
|
|
param_1 = (float *)0x0;
|
|
local_44 = 0;
|
|
local_50 = 0;
|
|
local_3c = pfVar2[local_c * 2];
|
|
pfVar2 = local_10;
|
|
if (local_c < 1) {
|
|
return local_8;
|
|
}
|
|
do {
|
|
if ((int)param_1 < local_c + -1) {
|
|
fVar1 = pfVar2[2];
|
|
local_60 = pfVar2[3];
|
|
}
|
|
else {
|
|
fVar1 = *local_10;
|
|
local_60 = local_10[1];
|
|
}
|
|
local_1c = *pfVar2;
|
|
local_18 = pfVar2[1];
|
|
if (in_PF) {
|
|
local_58 = local_1c - local_40;
|
|
local_54 = local_18 - local_3c;
|
|
local_4c = fVar1 - local_1c;
|
|
local_48 = local_60 - local_18;
|
|
FUN_01008db8(&local_58,&local_4c,local_70);
|
|
if ((((ushort)((ushort)(local_68 < 0.00000000) << 8 |
|
|
(ushort)(local_68 == 0.00000000) << 0xe) == 0) &&
|
|
((ushort)((ushort)(param_5 < 0.00000000) << 8 | (ushort)(param_5 == 0.00000000) << 0xe
|
|
) == 0)) || ((!in_PF && (!in_PF)))) {
|
|
this = operator_new(0x25);
|
|
if (this == (void *)0x0) {
|
|
this_00 = (int *)0x0;
|
|
}
|
|
else {
|
|
this_00 = FUN_01015898(this,param_2,param_3,param_4,&local_1c,param_5 * 1.00099993);
|
|
}
|
|
if (this_00 != (int *)0x0) {
|
|
*(undefined4 *)((int)this_00 + 0xd) = param_6;
|
|
(**(code **)(*this_00 + 8))();
|
|
FUN_0100acf3((void *)(param_2 + 0x2a),(int)this_00);
|
|
}
|
|
}
|
|
}
|
|
local_34 = *pfVar2;
|
|
local_30 = pfVar2[1];
|
|
local_28 = pfVar2[2];
|
|
local_24 = pfVar2[3];
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
this_00 = (int *)0x0;
|
|
}
|
|
else {
|
|
this_00 = FUN_0101c77e(this,param_2,param_3,param_4,&local_34,&local_28);
|
|
}
|
|
local_8 = this_00;
|
|
if (this_00 != (int *)0x0) {
|
|
*(undefined4 *)((int)this_00 + 0xd) = param_6;
|
|
local_8 = this_00;
|
|
FUN_0101c813(this_00,param_5);
|
|
(**(code **)(*this_00 + 8))();
|
|
FUN_0100acf3((void *)(param_2 + 0x2a),(int)this_00);
|
|
}
|
|
param_1 = (float *)((int)param_1 + 1);
|
|
local_40 = local_1c;
|
|
local_3c = local_18;
|
|
pfVar2 = pfVar2 + 2;
|
|
} while ((int)param_1 < local_c);
|
|
return local_8;
|
|
}
|
|
local_34 = *local_10;
|
|
local_30 = param_1[2];
|
|
local_28 = param_1[3];
|
|
local_24 = param_1[4];
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
this_00 = (int *)0x0;
|
|
}
|
|
else {
|
|
this_00 = FUN_0101c77e(this,param_2,param_3,param_4,&local_34,&local_28);
|
|
}
|
|
if (this_00 == (int *)0x0) {
|
|
return (int *)0;
|
|
}
|
|
*(undefined4 *)((int)this_00 + 0xd) = param_6;
|
|
local_8 = this_00;
|
|
FUN_0101c813(this_00,param_5);
|
|
}
|
|
(**(code **)(*this_00 + 8))();
|
|
LAB_01017a97:
|
|
FUN_0100acf3((void *)(param_2 + 0x2a),(int)this_00);
|
|
return local_8;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01017c6d(void *this,int param_1,int param_2,int param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined4 uVar4;
|
|
int iVar5;
|
|
void *this_00;
|
|
int *piVar6;
|
|
int iVar7;
|
|
undefined local_70 [64];
|
|
int local_30;
|
|
int local_2c;
|
|
int local_28;
|
|
int local_24;
|
|
undefined4 local_20;
|
|
undefined4 local_1c;
|
|
int local_18;
|
|
int local_14;
|
|
undefined4 local_10;
|
|
undefined4 local_c;
|
|
int local_8;
|
|
|
|
iVar3 = param_1;
|
|
*(undefined4 *)this = 0x10024a8;
|
|
*(undefined4 *)((int)this + 6) = 0;
|
|
*(undefined *)((int)this + 4) = 0;
|
|
*(undefined *)((int)this + 5) = 0;
|
|
*(int *)((int)this + 0x1e) = param_1;
|
|
*(undefined4 *)((int)this + 0x1a) = 0;
|
|
if (param_1 != 0) {
|
|
FUN_0100acf3((void *)(param_1 + 0xfa),(int)this);
|
|
}
|
|
if (-1 < param_2) {
|
|
uVar4 = FUN_0100975d(param_2);
|
|
*(undefined4 *)((int)this + 10) = uVar4;
|
|
}
|
|
if ((param_3 != 0) && (-1 < param_2)) {
|
|
iVar5 = FUN_01009207(param_2);
|
|
param_1 = 0;
|
|
if (0 < iVar5) {
|
|
do {
|
|
FUN_0100950a(param_2,param_1,local_70);
|
|
if (local_30 != 0) {
|
|
if (*(int *)((int)this + 0x22) == 0) {
|
|
this_00 = operator_new(8);
|
|
if (this_00 == (void *)0x0) {
|
|
this_00 = (void *)0x0;
|
|
}
|
|
else {
|
|
this_00 = FUN_010158f0(this_00,iVar5,4);
|
|
}
|
|
*(void **)((int)this + 0x22) = this_00;
|
|
}
|
|
if (*(void **)((int)this + 0x22) != (void *)0x0) {
|
|
FUN_0100acf3(*(void **)((int)this + 0x22),local_30);
|
|
}
|
|
}
|
|
if (local_2c != 0) {
|
|
if (*(int *)((int)this + 0x26) == 0) {
|
|
this_00 = operator_new(8);
|
|
if (this_00 == (void *)0x0) {
|
|
this_00 = (void *)0x0;
|
|
}
|
|
else {
|
|
this_00 = FUN_010158f0(this_00,iVar5,4);
|
|
}
|
|
*(void **)((int)this + 0x26) = this_00;
|
|
}
|
|
if (*(void **)((int)this + 0x26) != (void *)0x0) {
|
|
FUN_0100acf3(*(void **)((int)this + 0x26),local_2c);
|
|
}
|
|
}
|
|
param_1 = param_1 + 1;
|
|
} while (param_1 < iVar5);
|
|
}
|
|
if (*(int *)((int)this + 0x26) != 0) {
|
|
local_8 = *(int *)(*(int *)(*(int *)((int)this + 0x26) + 4) + 8);
|
|
}
|
|
iVar1 = *(int *)((int)this + 0x22);
|
|
if (iVar1 != 0) {
|
|
iVar2 = *(int *)(*(int *)(iVar1 + 4) + 8);
|
|
local_18 = *(int *)(iVar2 + 0x1d) - *(int *)(iVar3 + 0xea);
|
|
local_14 = *(int *)(iVar2 + 0x21) - *(int *)(iVar3 + 0xee);
|
|
iVar7 = 1;
|
|
local_10 = *(undefined4 *)(iVar2 + 0xc);
|
|
local_c = *(undefined4 *)(iVar2 + 0x10);
|
|
if (1 < *(int *)(*(int *)(iVar1 + 4) + 4)) {
|
|
param_1 = 0xc;
|
|
do {
|
|
iVar1 = *(int *)(param_1 + *(int *)(*(int *)((int)this + 0x22) + 4));
|
|
local_28 = *(int *)(iVar1 + 0x1d) - *(int *)(iVar3 + 0xea);
|
|
local_24 = *(int *)(iVar1 + 0x21) - *(int *)(iVar3 + 0xee);
|
|
local_20 = *(undefined4 *)(iVar1 + 0xc);
|
|
local_1c = *(undefined4 *)(iVar1 + 0x10);
|
|
FUN_010040c2(&local_18,&local_28,&local_18);
|
|
param_1 = param_1 + 4;
|
|
iVar7 = iVar7 + 1;
|
|
} while (iVar7 < *(int *)(*(int *)(*(int *)((int)this + 0x22) + 4) + 4));
|
|
}
|
|
iVar1 = *(int *)(*(int *)(*(int *)((int)this + 0x22) + 4) + 8);
|
|
piVar6 = FUN_0101385c((uint)(0 < iVar5),iVar1,local_8,
|
|
*(int *)(iVar1 + 0x1d) - *(int *)(iVar3 + 0xea),
|
|
*(int *)(iVar1 + 0x21) - *(int *)(iVar3 + 0xee),&local_18);
|
|
*(int **)((int)this + 0x1a) = piVar6;
|
|
}
|
|
}
|
|
*(int *)((int)this + 0x16) = param_2;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
void * __thiscall FUN_01017e5c(void *this,byte param_1)
|
|
|
|
{
|
|
FUN_01013c6f(*(int *)((int)this + 4));
|
|
if ((param_1 & 1) != 0) {
|
|
operator_delete(this);
|
|
}
|
|
return this;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_01017e85(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
float10 fVar2;
|
|
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
fVar2 = FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),
|
|
*(float *)((int)this + 0x3a),*(float *)((int)this + 0x42),
|
|
*(float *)((int)this + 0x3e));
|
|
if ((ushort)((ushort)(fVar2 < (float10)*(float *)((int)this + 0x42)) << 8 |
|
|
(ushort)(fVar2 == (float10)*(float *)((int)this + 0x42)) << 0xe) == 0) {
|
|
iVar1 = *(int *)((int)this + 0x4a);
|
|
}
|
|
else {
|
|
if ((ushort)((ushort)(fVar2 < (float10)0.20000000) << 8 |
|
|
(ushort)(fVar2 == (float10)0.20000000) << 0xe) != 0) {
|
|
return;
|
|
}
|
|
iVar1 = *(int *)((int)this + 0x46);
|
|
}
|
|
if (iVar1 != 0) {
|
|
FUN_01009895(iVar1);
|
|
}
|
|
}
|
|
else {
|
|
FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),*(float *)((int)this + 0x3a),
|
|
1000000000.00000000,0.00000000);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_01017f29(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
float10 fVar1;
|
|
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
fVar1 = FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),
|
|
*(float *)((int)this + 0x3a),*(float *)((int)this + 0x42),
|
|
*(float *)((int)this + 0x3e));
|
|
if ((ushort)((ushort)(fVar1 < (float10)*(float *)((int)this + 0x42)) << 8 |
|
|
(ushort)(fVar1 == (float10)*(float *)((int)this + 0x42)) << 0xe) == 0) {
|
|
if (*(int *)((int)this + 0x4a) != 0) {
|
|
FUN_01009895(*(int *)((int)this + 0x4a));
|
|
}
|
|
return 1;
|
|
}
|
|
if (((ushort)((ushort)(fVar1 < (float10)0.20000000) << 8 |
|
|
(ushort)(fVar1 == (float10)0.20000000) << 0xe) == 0) &&
|
|
(*(int *)((int)this + 0x46) != 0)) {
|
|
FUN_01009895(*(int *)((int)this + 0x46));
|
|
}
|
|
}
|
|
else {
|
|
FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),*(float *)((int)this + 0x3a),
|
|
1000000000.00000000,0.00000000);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_01017fde(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_01017f29(this,param_1,param_2,param_3);
|
|
if (iVar1 != 0) {
|
|
if (*(int *)((int)this + 0x52) != 0) {
|
|
FUN_010139b6(*(int *)((int)this + 0x1a),*(int *)((int)this + 0x52));
|
|
iVar1 = FUN_010074b7(0x3dcccccd,(int)this,(int)FUN_01015ace);
|
|
*(int *)((int)this + 0x4e) = iVar1;
|
|
}
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall
|
|
FUN_01018032(void *this,void *param_1,undefined4 *param_2,float *param_3,float param_4,int param_5)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
float10 fVar2;
|
|
|
|
if (param_5 == *(int *)((int)this + 0x52)) {
|
|
FUN_0101590f(param_1,param_5);
|
|
*(undefined4 *)((int)param_1 + 0x2a) = *param_2;
|
|
uVar1 = param_2[1];
|
|
*(float *)((int)param_1 + 0x46) = *(float *)((int)param_1 + 0x46) - param_4;
|
|
*(undefined4 *)((int)param_1 + 0x2e) = uVar1;
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
if (*(int *)((int)this + 0x4a) != 0) {
|
|
FUN_01009895(*(int *)((int)this + 0x4a));
|
|
}
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
}
|
|
}
|
|
else {
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
fVar2 = FUN_01017883((int)param_1,param_2,param_3,*(float *)((int)this + 0x36),
|
|
*(float *)((int)this + 0x3a),*(float *)((int)this + 0x42),
|
|
*(float *)((int)this + 0x3e));
|
|
if (((ushort)((ushort)(fVar2 < (float10)0.20000000) << 8 |
|
|
(ushort)(fVar2 == (float10)0.20000000) << 0xe) == 0) &&
|
|
(*(int *)((int)this + 0x46) != 0)) {
|
|
FUN_01009895(*(int *)((int)this + 0x46));
|
|
}
|
|
}
|
|
else {
|
|
FUN_01017883((int)param_1,param_2,param_3,*(float *)((int)this + 0x36),
|
|
*(float *)((int)this + 0x3a),1000000000.00000000,0.00000000);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_0101811d(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_01017f29(this,param_1,param_2,param_3);
|
|
if (iVar1 != 0) {
|
|
FUN_01015d0f((int)this);
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall
|
|
FUN_01018150(undefined1 (*pauParm1) [10],void *param_1,undefined4 *param_2,undefined4 param_3,
|
|
float param_4,int param_5)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
undefined **extraout_EDX;
|
|
bool in_PF;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x2a) = *param_2;
|
|
uVar1 = param_2[1];
|
|
*(float *)((int)param_1 + 0x46) = *(float *)((int)param_1 + 0x46) - param_4;
|
|
*(undefined4 *)((int)param_1 + 0x2e) = uVar1;
|
|
FUN_0101590f(param_1,param_5);
|
|
*(uint *)(pauParm1 + 9 + 4) = (uint)(*(int *)(pauParm1 + 10 + 6) != param_5) * 2 + -1;
|
|
if (in_PF) {
|
|
*(float *)(pauParm1 + 7 + 8) = *(float *)((int)param_1 + 0x42) * 20.00000000;
|
|
}
|
|
else {
|
|
*(undefined4 *)(pauParm1 + 7 + 8) = *(undefined4 *)(pauParm1 + 8 + 6);
|
|
*(undefined4 *)(pauParm1 + 7 + 8) = *(undefined4 *)(pauParm1 + 8 + 6);
|
|
}
|
|
if ((ushort)((ushort)(*(float *)(pauParm1 + 7 + 8) < *(float *)(pauParm1 + 8 + 2)) << 8 |
|
|
(ushort)(*(float *)(pauParm1 + 7 + 8) == *(float *)(pauParm1 + 8 + 2)) << 0xe) == 0) {
|
|
*(undefined4 *)(pauParm1 + 7 + 8) = *(undefined4 *)(pauParm1 + 8 + 2);
|
|
}
|
|
FUN_01015f4e(pauParm1,extraout_EDX);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_010181ed(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
float10 fVar1;
|
|
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
fVar1 = FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),
|
|
*(float *)((int)this + 0x3a),*(float *)((int)this + 0x42),
|
|
*(float *)((int)this + 0x3e));
|
|
if ((ushort)((ushort)(fVar1 < (float10)*(float *)((int)this + 0x42)) << 8 |
|
|
(ushort)(fVar1 == (float10)*(float *)((int)this + 0x42)) << 0xe) == 0) {
|
|
if (*(int *)((int)this + 0x4a) != 0) {
|
|
FUN_01009895(*(int *)((int)this + 0x4a));
|
|
}
|
|
(***(code ***)this)(0x31,0);
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
}
|
|
}
|
|
else {
|
|
FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),*(float *)((int)this + 0x3a),
|
|
1000000000.00000000,0.00000000);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_01018295(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_01017f29(this,param_1,param_2,param_3);
|
|
if (iVar1 != 0) {
|
|
(***(code ***)this)(0x31,0);
|
|
iVar1 = FUN_010074b7(*(undefined4 *)((int)this + 0x56),(int)this,(int)FUN_0101620b);
|
|
*(int *)((int)this + 0x52) = iVar1;
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_010182e4(void *this,int param_1)
|
|
|
|
{
|
|
float *pfVar1;
|
|
void *pvVar2;
|
|
int iVar3;
|
|
undefined4 local_58;
|
|
undefined4 uVar4;
|
|
undefined4 uVar5;
|
|
undefined local_4c [52];
|
|
undefined4 local_18;
|
|
|
|
FUN_0100950a(param_1,0,local_4c);
|
|
uVar5 = 600;
|
|
local_58 = 0;
|
|
iVar3 = (int)this + 5;
|
|
pvVar2 = this;
|
|
uVar4 = local_18;
|
|
pfVar1 = FUN_0100978e(param_1,0,600);
|
|
FUN_010179a9(pfVar1,pvVar2,iVar3,uVar4,local_58,uVar5);
|
|
local_58 = 0x25b;
|
|
uVar4 = 0;
|
|
iVar3 = (int)this + 0x4e;
|
|
pfVar1 = FUN_0100978e(param_1,0,0x25b);
|
|
FUN_010179a9(pfVar1,this,iVar3,local_18,uVar4,local_58);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall
|
|
FUN_01018351(void *this,void *param_1,undefined4 *param_2,undefined4 param_3,float param_4,
|
|
undefined4 param_5)
|
|
|
|
{
|
|
int iVar1;
|
|
bool bVar2;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x2a) = *param_2;
|
|
*(undefined4 *)((int)param_1 + 0x2e) = param_2[1];
|
|
*(float *)((int)param_1 + 0x46) = *(float *)((int)param_1 + 0x46) - param_4;
|
|
FUN_0101590f(param_1,param_5);
|
|
iVar1 = 0;
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
if (*(char *)((int)this + 0x4e) == '\0') {
|
|
FUN_01009895(*(int *)((int)this + 0x46));
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
}
|
|
else {
|
|
FUN_010074b7(0x3dcccccd,(int)this,(int)FUN_0101644b);
|
|
*(undefined *)((int)this + 5) = 0;
|
|
}
|
|
bVar2 = *(char *)((int)this + 0x4e) == '\0';
|
|
*(bool *)((int)this + 0x4e) = bVar2;
|
|
if (*(int *)((int)this + 0x22) != 0) {
|
|
if (!bVar2) {
|
|
iVar1 = *(int *)(*(int *)(*(int *)((int)this + 0x22) + 4) + 8);
|
|
}
|
|
FUN_010139b6(*(int *)((int)this + 0x1a),iVar1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_010183e8(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
if (*(int *)((int)this + 0x5a) == 0) {
|
|
*(undefined4 *)((int)this + 0x42) = 0x4e6e6b28;
|
|
*(undefined4 *)((int)this + 0x5a) = 1;
|
|
iVar1 = FUN_010074b7(*(undefined4 *)((int)this + 0x4e),(int)this,(int)FUN_0101663f);
|
|
*(int *)((int)this + 0x56) = iVar1;
|
|
}
|
|
iVar1 = FUN_01017f29(this,param_1,param_2,param_3);
|
|
if (iVar1 != 0) {
|
|
*(undefined4 *)((int)this + 0x5a) = 0;
|
|
}
|
|
}
|
|
else {
|
|
FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),*(float *)((int)this + 0x3a),
|
|
0.00000000,*(float *)((int)this + 0x3e));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_01018476(void *this,int param_1)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int iVar2;
|
|
|
|
if (*(int *)((int)this + 0x4e) == 0) {
|
|
*(undefined4 *)((int)this + 0x52) = 0;
|
|
*(undefined4 *)((int)this + 0x42) = 0x4e6e6b28;
|
|
*(undefined4 *)((int)this + 0x4e) = 1;
|
|
*(void **)(param_1 + 0x6a) = this;
|
|
*(undefined4 *)(param_1 + 0x2a) = *(undefined4 *)((int)this + 0x72);
|
|
uVar1 = *(undefined4 *)((int)this + 0x76);
|
|
*(undefined4 *)(param_1 + 0x3e) = 0;
|
|
*(undefined4 *)(param_1 + 0x2e) = uVar1;
|
|
iVar2 = FUN_010074b7(0x3f000000,(int)this,(int)FUN_010169a4);
|
|
*(int *)((int)this + 0x56) = iVar2;
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
FUN_01009895(*(int *)((int)this + 0x4a));
|
|
FUN_01011ec9(0x39,(undefined **)this);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_010184ed(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) == 0) {
|
|
*(undefined *)(param_1 + 5) = 0;
|
|
FUN_010139b6(*(int *)(param_1 + 0x1a),0);
|
|
FUN_01009895(*(int *)((int)this + 0x7a));
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
}
|
|
else {
|
|
FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),*(float *)((int)this + 0x3a),
|
|
1000000000.00000000,0.00000000);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_01018562(void *this,undefined **param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
(**(code **)*param_1)(0x400,0);
|
|
*(undefined4 *)(*(int *)((int)this + 0x1e) + 0x4e) = 1;
|
|
iVar1 = FUN_010074b7(*(undefined4 *)((int)this + 0x4e),(int)this,(int)FUN_010172d8);
|
|
*(int *)((int)this + 0x56) = iVar1;
|
|
FUN_01011ec9(0x3f,(undefined **)this);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_010185ad(void *this,int param_1)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
code **ppcVar2;
|
|
int iVar3;
|
|
|
|
switch(param_1) {
|
|
case 0x3ec:
|
|
if (*(int *)((int)this + 0x4e) == 0) {
|
|
*(undefined4 *)((int)this + 0x3e) = 0;
|
|
*(undefined4 *)((int)this + 0x42) = 0x4e6e6b28;
|
|
FUN_01009895(*(int *)((int)this + 0x4a));
|
|
FUN_01017314(0,(int)this);
|
|
}
|
|
break;
|
|
case 0x3f7:
|
|
ppcVar2 = *(code ***)(*(int *)(*(int *)((int)this + 0x1e) + 0xfe) + 8);
|
|
(**(code **)*ppcVar2)(0x400,0);
|
|
*(undefined4 *)((int)ppcVar2 + 0x2a) = *(undefined4 *)(*(int *)((int)this + 0x1e) + 0x11e);
|
|
*(undefined4 *)((int)ppcVar2 + 0x2e) = *(undefined4 *)(*(int *)((int)this + 0x1e) + 0x122);
|
|
*(undefined *)((int)ppcVar2 + 5) = 1;
|
|
*(undefined4 *)(*(int *)((int)this + 0x1e) + 0x4e) = 0;
|
|
FUN_01014d59();
|
|
FUN_01011ec9(param_1,(undefined **)this);
|
|
break;
|
|
case 0x3f8:
|
|
if (*(int *)((int)this + 0x52) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x52));
|
|
}
|
|
iVar3 = FUN_010074b7(0x3f75c28f,(int)this,(int)FUN_010172f0);
|
|
*(int *)((int)this + 0x52) = iVar3;
|
|
FUN_01009895(*(int *)((int)this + 0x62));
|
|
FUN_01011ec9(param_1,(undefined **)this);
|
|
break;
|
|
case 0x3f9:
|
|
*(undefined4 *)((int)this + 0x42) = 0;
|
|
*(float *)((int)this + 0x3e) = (float)*(int *)((int)this + 0x56);
|
|
uVar1 = 0x3e4ccccd;
|
|
LAB_01018712:
|
|
FUN_010074b7(uVar1,(int)this,(int)FUN_010173c8);
|
|
break;
|
|
case 0x400:
|
|
if (*(int *)((int)this + 0x52) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x52));
|
|
}
|
|
*(undefined4 *)((int)this + 0x52) = 0;
|
|
case 0x3ed:
|
|
case 0x3f1:
|
|
case 0x3f2:
|
|
*(undefined4 *)((int)this + 0x42) = 0;
|
|
if (*(int *)((int)this + 0x4e) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x4e));
|
|
}
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
if (param_1 == 0x3ed) {
|
|
FUN_01009895(*(int *)((int)this + 0x66));
|
|
}
|
|
iVar3 = *(int *)(*(int *)(*(int *)((int)this + 0x22) + 4) + 8);
|
|
FUN_01013974(*(undefined4 **)((int)this + 0x1a),iVar3,
|
|
*(undefined4 *)(*(int *)(*(int *)((int)this + 0x26) + 4) + 8),
|
|
*(int *)(iVar3 + 0x1d) - *(int *)(*(int *)((int)this + 0x1e) + 0xea),
|
|
*(int *)(iVar3 + 0x21) - *(int *)(*(int *)((int)this + 0x1e) + 0xee));
|
|
uVar1 = *(undefined4 *)((int)this + 0x5e);
|
|
goto LAB_01018712;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_0101875f(void *this,int param_1,undefined4 *param_2,float *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
if (*(int *)(*(int *)((int)this + 0x1e) + 0x172) != 0) {
|
|
(***(code ***)this)(0x3f9,0);
|
|
}
|
|
iVar1 = rand();
|
|
FUN_01017883(param_1,param_2,param_3,*(float *)((int)this + 0x36),*(float *)((int)this + 0x3a),
|
|
*(float *)((int)this + 0x42),
|
|
(float)iVar1 * 0.00003052 * *(float *)((int)this + 0x3e) * 0.09999999 +
|
|
*(float *)((int)this + 0x3e));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_010187d6(void *this,int param_1,undefined4 *param_2)
|
|
|
|
{
|
|
LPSTR pCVar1;
|
|
int iVar2;
|
|
code **ppcVar3;
|
|
int iVar4;
|
|
undefined4 *puVar5;
|
|
float10 fVar6;
|
|
double dVar7;
|
|
short sVar8;
|
|
void *pvVar9;
|
|
code *pcVar10;
|
|
undefined4 uVar11;
|
|
undefined8 local_20;
|
|
|
|
switch(param_1) {
|
|
case 1000:
|
|
if (*(int *)((int)this + 0x172) != 0) break;
|
|
ppcVar3 = *(code ***)((int)this + 0x2a);
|
|
goto LAB_01018e4f;
|
|
case 0x3e9:
|
|
if (*(int *)((int)this + 0x172) != 0) break;
|
|
ppcVar3 = *(code ***)((int)this + 0x2a);
|
|
goto LAB_01018e34;
|
|
case 0x3ea:
|
|
if (*(int *)((int)this + 0x172) != 0) break;
|
|
ppcVar3 = *(code ***)((int)this + 0x2e);
|
|
LAB_01018e4f:
|
|
local_20 = CONCAT44(param_2,1);
|
|
goto LAB_01018e68;
|
|
case 0x3eb:
|
|
if (*(int *)((int)this + 0x172) != 0) break;
|
|
ppcVar3 = *(code ***)((int)this + 0x2e);
|
|
LAB_01018e34:
|
|
local_20 = CONCAT44(param_2,2);
|
|
goto LAB_01018e68;
|
|
case 0x3ec:
|
|
case 0x3ed:
|
|
ppcVar3 = *(code ***)((int)this + 0xde);
|
|
local_20 = CONCAT44(param_2,param_1);
|
|
goto LAB_01018e68;
|
|
case 0x3f0:
|
|
case 0x3f1:
|
|
case 0x3f2:
|
|
iVar2 = *(int *)(*(int *)((int)this + 0xfe) + 4);
|
|
if (-1 < iVar2 + -1) {
|
|
iVar4 = (iVar2 + -1) * 4 + 8;
|
|
do {
|
|
(**(code **)**(code ***)(iVar4 + *(int *)((int)this + 0xfe)))(param_1,param_2);
|
|
iVar4 = iVar4 + -4;
|
|
iVar2 = iVar2 + -1;
|
|
} while (iVar2 != 0);
|
|
}
|
|
break;
|
|
case 0x3f4:
|
|
(**(code **)**(code ***)((int)this + 0x10a))();
|
|
if (*(int *)((int)this + 0x172) != 0) {
|
|
*(int *)((int)this + 0x172) = 0;
|
|
if (*(int *)((int)this + 0x62) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x62));
|
|
}
|
|
*(undefined4 *)((int)this + 0x62) = 0;
|
|
}
|
|
break;
|
|
case 0x3f5:
|
|
(**(code **)**(code ***)(code **)((int)this + 0x10a))(0x22,0);
|
|
(**(code **)**(code ***)(code **)((int)this + 0x10a))();
|
|
(**(code **)**(code ***)((int)this + 0xde))(0x3f8,0);
|
|
uVar11 = 0xbf800000;
|
|
if (*(char *)(*(int *)((int)this + 0xe6) + 5) == '\0') {
|
|
sVar8 = 0x1a;
|
|
}
|
|
else {
|
|
sVar8 = 0x1e;
|
|
}
|
|
pCVar1 = FUN_01003752(sVar8);
|
|
FUN_010144b7(pCVar1,uVar11);
|
|
ppcVar3 = *(code ***)((int)this + 0xe6);
|
|
if (ppcVar3 == (code **)0x0) break;
|
|
local_20 = 0x3f6;
|
|
LAB_01018e68:
|
|
(**(code **)*ppcVar3)(local_20);
|
|
break;
|
|
case 0x3f6:
|
|
if (*(int *)((int)this + 0x5e) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x5e));
|
|
FUN_0101748b(0,(int)this);
|
|
FUN_0101461a(1);
|
|
}
|
|
if (*(int *)((int)this + 0x5a) == 0) {
|
|
*(undefined4 *)((int)this + 0x3e) = 0;
|
|
FUN_010187d6(this,0x400,(undefined4 *)0x0);
|
|
iVar2 = *(int *)(*(int *)((int)this + 0x106) + 8);
|
|
*(undefined4 *)(iVar2 + 0x2e) = 0;
|
|
*(undefined4 *)(iVar2 + 0x2a) = 0;
|
|
*(undefined4 *)(iVar2 + 0x32) = 0xbf4ccccd;
|
|
floor((double)(float)param_2);
|
|
iVar2 = _ftol();
|
|
*(int *)((int)this + 0xd6) = iVar2;
|
|
if (iVar2 < 1) {
|
|
*(undefined4 *)((int)this + 0xd6) = 1;
|
|
}
|
|
else {
|
|
if (4 < iVar2) {
|
|
*(undefined4 *)((int)this + 0xd6) = 4;
|
|
}
|
|
}
|
|
*(undefined4 *)((int)this + 0xda) = 0;
|
|
*(undefined4 **)((int)this + 0x32) = *(undefined4 **)((int)this + 0x66);
|
|
*(undefined4 *)((int)this + 0x52) = 0;
|
|
FUN_01013c89(*(undefined4 **)((int)this + 0x66),0);
|
|
*(undefined4 *)((int)this + 0x126) = 0;
|
|
param_2 = (undefined4 *)0x1;
|
|
if (1 < *(int *)((int)this + 0xd6)) {
|
|
puVar5 = (undefined4 *)((int)this + 0x86);
|
|
do {
|
|
FUN_01013c89((undefined4 *)puVar5[-1],0);
|
|
param_2 = (undefined4 *)((int)param_2 + 1);
|
|
*puVar5 = 0;
|
|
puVar5[1] = 0;
|
|
puVar5[3] = *(undefined4 *)((int)this + 0x14a);
|
|
puVar5[4] = *(undefined4 *)((int)this + 0x14e);
|
|
puVar5[5] = *(undefined4 *)((int)this + 0x156);
|
|
puVar5[2] = *(undefined4 *)((int)this + 0x13a);
|
|
puVar5 = puVar5 + 7;
|
|
} while ((int)param_2 < *(int *)((int)this + 0xd6));
|
|
}
|
|
*(int *)((int)this + 0x146) = *(int *)((int)this + 0x14a);
|
|
FUN_01006bb8();
|
|
FUN_010175aa(this,*(int *)((int)this + 0x146));
|
|
FUN_01013c89(*(undefined4 **)((int)this + 0x3a),*(int *)((int)this + 0xda) + 1);
|
|
FUN_01013d2d(*(int **)((int)this + 0x3a));
|
|
FUN_01006bb8();
|
|
iVar2 = *(int *)((int)this + 0xd6);
|
|
if (iVar2 < 4) {
|
|
param_2 = (undefined4 *)(iVar2 * 0x1c + 0x66 + (int)this);
|
|
iVar2 = 4 - iVar2;
|
|
do {
|
|
FUN_01013c89((undefined4 *)*param_2,0xffffffff);
|
|
param_2 = param_2 + 7;
|
|
iVar2 = iVar2 + -1;
|
|
} while (iVar2 != 0);
|
|
}
|
|
FUN_01006bb8();
|
|
*(undefined4 *)((int)this + 0x13e) = 0;
|
|
*(undefined4 *)((int)this + 0x136) = 0;
|
|
*(undefined4 *)((int)this + 0x142) = 0;
|
|
FUN_01014143(DAT_01025650);
|
|
FUN_01006bb8();
|
|
FUN_01014143(DAT_01025654);
|
|
FUN_01006bb8();
|
|
(**(code **)**(code ***)((int)this + 0x10a))();
|
|
pcVar10 = FUN_01017467;
|
|
pvVar9 = this;
|
|
fVar6 = FUN_01009895(*(int *)((int)this + 0x42));
|
|
iVar2 = FUN_010074b7((float)fVar6,(int)pvVar9,(int)pcVar10);
|
|
*(int *)((int)this + 0x5a) = iVar2;
|
|
}
|
|
else {
|
|
FUN_01007659(*(int *)((int)this + 0x5a));
|
|
*(undefined4 *)((int)this + 0x5a) = 0;
|
|
FUN_010187d6(this,0x3f5,(undefined4 *)0x0);
|
|
}
|
|
break;
|
|
case 0x3fa:
|
|
if (*(int *)((int)this + 0x166) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x166));
|
|
}
|
|
pcVar10 = FUN_010175ef;
|
|
pvVar9 = this;
|
|
dVar7 = floor((double)(float)param_2);
|
|
iVar2 = FUN_010074b7((float)dVar7,(int)pvVar9,(int)pcVar10);
|
|
*(int *)((int)this + 0x166) = iVar2;
|
|
*(undefined4 *)((int)this + 0x162) = 1;
|
|
break;
|
|
case 0x3fd:
|
|
if (*(int *)((int)this + 0xd6) < 2) {
|
|
uVar11 = 0xbf800000;
|
|
if (*(char *)(*(int *)((int)this + 0xe6) + 5) == '\0') {
|
|
sVar8 = 0x1a;
|
|
}
|
|
else {
|
|
sVar8 = 0x1e;
|
|
}
|
|
pCVar1 = FUN_01003752(sVar8);
|
|
FUN_010144b7(pCVar1,uVar11);
|
|
break;
|
|
}
|
|
iVar2 = (*(int *)((int)this + 0xda) + 1) % *(int *)((int)this + 0xd6);
|
|
pvVar9 = (void *)(iVar2 * 0x1c + (int)this);
|
|
if (*(int *)((int)pvVar9 + 0x76) < 1) break;
|
|
*(undefined4 *)(*(int *)((int)this + 0xda) * 0x1c + 0x6a + (int)this) =
|
|
*(undefined4 *)((int)this + 0x52);
|
|
*(undefined4 *)(*(int *)((int)this + 0xda) * 0x1c + 0x6e + (int)this) =
|
|
*(undefined4 *)((int)this + 0x56);
|
|
*(undefined4 *)(*(int *)((int)this + 0xda) * 0x1c + 0x76 + (int)this) =
|
|
*(undefined4 *)((int)this + 0x146);
|
|
*(undefined4 *)(*(int *)((int)this + 0xda) * 0x1c + 0x7a + (int)this) =
|
|
*(undefined4 *)((int)this + 0x14e);
|
|
*(undefined4 *)(*(int *)((int)this + 0xda) * 0x1c + 0x7e + (int)this) =
|
|
*(undefined4 *)((int)this + 0x156);
|
|
*(undefined4 *)(*(int *)((int)this + 0xda) * 0x1c + 0x72 + (int)this) =
|
|
*(undefined4 *)((int)this + 0x13a);
|
|
*(undefined4 *)((int)this + 0x52) = *(undefined4 *)((int)pvVar9 + 0x6a);
|
|
*(undefined4 *)((int)this + 0x56) = *(undefined4 *)((int)pvVar9 + 0x6e);
|
|
*(undefined4 *)((int)this + 0x146) = *(undefined4 *)((int)pvVar9 + 0x76);
|
|
*(undefined4 *)((int)this + 0x14e) = *(undefined4 *)((int)pvVar9 + 0x7a);
|
|
*(undefined4 *)((int)this + 0x156) = *(undefined4 *)((int)pvVar9 + 0x7e);
|
|
*(undefined4 *)((int)this + 0x13a) = *(undefined4 *)((int)pvVar9 + 0x72);
|
|
puVar5 = *(undefined4 **)((int)pvVar9 + 0x66);
|
|
*(undefined4 **)((int)this + 0x32) = puVar5;
|
|
FUN_01013c89(puVar5,*(undefined4 *)((int)this + 0x52));
|
|
*(undefined4 *)(*(int *)((int)this + 0x32) + 4) = 1;
|
|
FUN_010175aa(this,*(int *)((int)this + 0x146));
|
|
FUN_01013c89(*(undefined4 **)((int)this + 0x3a),iVar2 + 1);
|
|
FUN_01013d2d(*(int **)((int)this + 0x3a));
|
|
iVar4 = 0;
|
|
if (0 < *(int *)(*(int *)((int)this + 0xfe) + 4)) {
|
|
param_2 = (undefined4 *)0x8;
|
|
do {
|
|
(**(code **)**(code ***)((int)param_2 + *(int *)((int)this + 0xfe)))(0x3fc,(float)iVar2);
|
|
param_2 = param_2 + 1;
|
|
iVar4 = iVar4 + 1;
|
|
} while (iVar4 < *(int *)(*(int *)((int)this + 0xfe) + 4));
|
|
}
|
|
if (iVar2 == 0) {
|
|
if (*(char *)(*(int *)((int)this + 0xe6) + 5) == '\0') {
|
|
sVar8 = 0x1a;
|
|
}
|
|
else {
|
|
sVar8 = 0x1e;
|
|
}
|
|
LAB_01018d9e:
|
|
uVar11 = 0xbf800000;
|
|
pCVar1 = FUN_01003752(sVar8);
|
|
FUN_010144b7(pCVar1,uVar11);
|
|
}
|
|
else {
|
|
if (iVar2 == 1) {
|
|
if (*(char *)(*(int *)((int)this + 0xe6) + 5) == '\0') {
|
|
sVar8 = 0x1b;
|
|
}
|
|
else {
|
|
sVar8 = 0x1f;
|
|
}
|
|
goto LAB_01018d9e;
|
|
}
|
|
if (iVar2 == 2) {
|
|
if (*(char *)(*(int *)((int)this + 0xe6) + 5) == '\0') {
|
|
sVar8 = 0x1c;
|
|
}
|
|
else {
|
|
sVar8 = 0x20;
|
|
}
|
|
goto LAB_01018d9e;
|
|
}
|
|
if (iVar2 == 3) {
|
|
if (*(char *)(*(int *)((int)this + 0xe6) + 5) == '\0') {
|
|
sVar8 = 0x1d;
|
|
}
|
|
else {
|
|
sVar8 = 0x21;
|
|
}
|
|
goto LAB_01018d9e;
|
|
}
|
|
}
|
|
*(undefined4 *)((int)this + 0x13e) = 0;
|
|
*(undefined4 *)((int)this + 0x136) = 0;
|
|
*(undefined4 *)((int)this + 0x142) = 0;
|
|
*(int *)((int)this + 0xda) = iVar2;
|
|
break;
|
|
case 0x3fe:
|
|
FUN_01009895(*(int *)((int)this + 0x46));
|
|
FUN_01014143(DAT_01025654);
|
|
uVar11 = 0xbf800000;
|
|
pCVar1 = FUN_01003752(0x22);
|
|
FUN_010144b7(pCVar1,uVar11);
|
|
iVar2 = FUN_010074b7(0x40400000,(int)this,(int)FUN_0101748b);
|
|
*(int *)((int)this + 0x5e) = iVar2;
|
|
break;
|
|
case 0x400:
|
|
iVar2 = *(int *)(*(int *)((int)this + 0xfe) + 4);
|
|
if (-1 < iVar2 + -1) {
|
|
iVar4 = (iVar2 + -1) * 4 + 8;
|
|
do {
|
|
(**(code **)**(code ***)(iVar4 + *(int *)((int)this + 0xfe)))();
|
|
iVar4 = iVar4 + -4;
|
|
iVar2 = iVar2 + -1;
|
|
} while (iVar2 != 0);
|
|
}
|
|
if (*(int *)((int)this + 0x166) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x166));
|
|
}
|
|
*(undefined4 *)((int)this + 0x166) = 0;
|
|
if (*(int *)((int)this + 0x5a) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x5a));
|
|
(**(code **)**(code ***)((int)this + 0x10a))(0x22,0);
|
|
}
|
|
*(undefined4 *)((int)this + 0x5a) = 0;
|
|
*(undefined4 *)((int)this + 0x126) = 0;
|
|
*(undefined4 *)((int)this + 0x12a) = 0;
|
|
*(undefined4 *)((int)this + 0x12e) = 0;
|
|
*(undefined4 *)((int)this + 0x132) = 10000;
|
|
*(undefined4 *)((int)this + 0x136) = 0;
|
|
*(undefined4 *)((int)this + 0x13a) = 20000;
|
|
*(undefined4 *)((int)this + 0x13e) = 0;
|
|
*(undefined4 *)((int)this + 0x142) = 0;
|
|
*(undefined4 *)((int)this + 0x14e) = 0;
|
|
*(undefined4 *)((int)this + 0x152) = 0;
|
|
*(undefined4 *)((int)this + 0x156) = 0;
|
|
*(undefined4 *)((int)this + 0x15a) = 0;
|
|
*(undefined4 *)((int)this + 0x15e) = 0;
|
|
*(undefined4 *)((int)this + 0x162) = 0;
|
|
*(undefined4 *)((int)this + 0x166) = 0;
|
|
*(undefined4 *)((int)this + 0x172) = 0;
|
|
}
|
|
FUN_0100c0be(param_1);
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_01018f5b(void *this,int param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
if (param_1 == 0x3b) {
|
|
if (*(int *)((int)this + 0x2a) != 0) {
|
|
FUN_01007659(*(int *)((int)this + 0x2a));
|
|
}
|
|
iVar1 = FUN_010074b7(param_2,(int)this,(int)FUN_0101798c);
|
|
*(int *)((int)this + 0x2a) = iVar1;
|
|
}
|
|
else {
|
|
if ((((param_1 == 0x3f3) || (param_1 == 0x3fe)) || (param_1 == 0x400)) &&
|
|
(*(int *)((int)this + 0x2a) != 0)) {
|
|
FUN_01007659(*(int *)((int)this + 0x2a));
|
|
*(undefined4 *)((int)this + 0x2a) = 0;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
void __fastcall FUN_01018fbc(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = 0x10024a8;
|
|
if (*(int *)((int)param_1 + 0x1e) != 0) {
|
|
FUN_01012e7a(*(int *)(*(int *)((int)param_1 + 0x1e) + 0xfe),(int)param_1);
|
|
}
|
|
if (*(void **)((int)param_1 + 0x22) != (void *)0x0) {
|
|
FUN_01017e5c(*(void **)((int)param_1 + 0x22),1);
|
|
}
|
|
if (*(void **)((int)param_1 + 0x26) != (void *)0x0) {
|
|
FUN_01017e5c(*(void **)((int)param_1 + 0x26),1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01018ffd(void *this,void *param_1,int param_2)
|
|
|
|
{
|
|
short *psVar1;
|
|
int iVar2;
|
|
void *local_8;
|
|
|
|
local_8 = this;
|
|
FUN_01017c6d(this,(int)param_1,param_2,0);
|
|
*(undefined4 *)this = 0x10024d8;
|
|
FUN_010098d3((void *)((int)this + 0x2a),4,4);
|
|
*(undefined4 *)((int)this + 0x32) = 0;
|
|
if (0 < param_2) {
|
|
psVar1 = FUN_0100981a(param_2,0x403,(int *)&local_8);
|
|
param_2 = 0;
|
|
if (0 < (int)local_8) {
|
|
do {
|
|
iVar2 = FUN_010176be(param_1,(int)*psVar1);
|
|
if (iVar2 != 0) {
|
|
FUN_0100acf3((void *)((int)this + 0x2a),iVar2);
|
|
}
|
|
param_2 = param_2 + 1;
|
|
psVar1 = psVar1 + 1;
|
|
} while (param_2 < (int)local_8);
|
|
}
|
|
}
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
void __fastcall FUN_01019082(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = 0x10024d8;
|
|
if (*(int *)((int)param_1 + 0x32) != 0) {
|
|
FUN_01007659(*(int *)((int)param_1 + 0x32));
|
|
*(undefined4 *)((int)param_1 + 0x32) = 0;
|
|
}
|
|
FUN_01013c6f(*(int *)((int)param_1 + 0x2e));
|
|
FUN_01018fbc(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_010190b3(void *this,int param_1,int param_2,int param_3)
|
|
|
|
{
|
|
float *pfVar1;
|
|
void *pvVar2;
|
|
undefined *puVar3;
|
|
undefined4 local_60;
|
|
undefined4 uVar4;
|
|
undefined4 local_4c;
|
|
undefined4 local_48;
|
|
undefined4 local_3c;
|
|
undefined4 local_38;
|
|
undefined4 local_34;
|
|
undefined4 local_1c;
|
|
undefined4 local_18;
|
|
|
|
FUN_01017c6d(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x10024ec;
|
|
FUN_010098d3((void *)((int)this + 0x2a),4,4);
|
|
puVar3 = (undefined *)((int)this + 5);
|
|
*puVar3 = 1;
|
|
if (*(int *)((int)this + 10) != 0) {
|
|
*(undefined *)((int)this + 4) = 1;
|
|
}
|
|
if (param_2 < 1) {
|
|
FUN_01008fe0(&local_4c);
|
|
}
|
|
else {
|
|
FUN_0100950a(param_2,0,&local_4c);
|
|
if (param_3 != 0) {
|
|
local_60 = *(undefined4 *)(param_1 + 0x11a);
|
|
uVar4 = 0;
|
|
pvVar2 = this;
|
|
pfVar1 = FUN_0100978e(param_2,0,600);
|
|
FUN_010179a9(pfVar1,pvVar2,puVar3,local_18,local_60,uVar4);
|
|
}
|
|
}
|
|
*(undefined4 *)((int)this + 0x42) = local_38;
|
|
*(undefined4 *)((int)this + 0x36) = local_48;
|
|
*(undefined4 *)((int)this + 0x3a) = local_4c;
|
|
*(undefined4 *)((int)this + 0x3e) = local_34;
|
|
*(undefined4 *)((int)this + 0x4a) = local_1c;
|
|
*(undefined4 *)((int)this + 0x46) = local_3c;
|
|
*(int *)((int)this + 0x16) = param_2;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
void __fastcall FUN_01019172(undefined4 *param_1)
|
|
|
|
{
|
|
void *pvVar1;
|
|
int iVar2;
|
|
|
|
*param_1 = 0x10024ec;
|
|
iVar2 = *(int *)(*(int *)((int)param_1 + 0x2e) + 4);
|
|
while (iVar2 != 0) {
|
|
pvVar1 = *(void **)(*(int *)((int)param_1 + 0x2e) + 8);
|
|
FUN_01012e7a(*(int *)((int)param_1 + 0x2e),(int)pvVar1);
|
|
operator_delete(pvVar1);
|
|
iVar2 = *(int *)(*(int *)((int)param_1 + 0x2e) + 4);
|
|
}
|
|
FUN_01013c6f(*(int *)((int)param_1 + 0x2e));
|
|
FUN_01018fbc(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_010191ba(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x1002508;
|
|
if (*(int *)((int)this + 0x1a) != 0) {
|
|
FUN_010139b6(*(int *)((int)this + 0x1a),0);
|
|
}
|
|
if (*(int *)((int)this + 0x22) != 0) {
|
|
*(undefined4 *)((int)this + 0x52) =
|
|
*(undefined4 *)(*(int *)(*(int *)((int)this + 0x22) + 4) + 8);
|
|
}
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019204(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
void *this_00;
|
|
undefined4 *this_01;
|
|
int *this_02;
|
|
undefined local_64 [8];
|
|
int local_5c;
|
|
undefined4 *local_58;
|
|
undefined4 local_30;
|
|
undefined4 local_1c;
|
|
undefined4 local_18;
|
|
undefined4 local_10;
|
|
undefined4 local_c;
|
|
|
|
this_02 = (int *)0x0;
|
|
FUN_010190b3(this,param_1,param_2,0);
|
|
*(undefined4 *)this = 0x1002530;
|
|
FUN_0100950a(param_2,0,local_64);
|
|
if (local_5c == 2) {
|
|
local_10 = *local_58;
|
|
local_c = local_58[1];
|
|
local_1c = local_58[2];
|
|
local_18 = local_58[3];
|
|
this_00 = operator_new(0x55);
|
|
if (this_00 != (void *)0x0) {
|
|
this_02 = FUN_0101c77e(this_00,this,(int)this + 5,local_30,&local_10,&local_1c);
|
|
}
|
|
if (this_02 != (int *)0x0) {
|
|
FUN_0101c813(this_02,*(float *)(param_1 + 0x11a));
|
|
(**(code **)(*this_02 + 8))();
|
|
FUN_0100acf3((void *)((int)this + 0x2a),(int)this_02);
|
|
}
|
|
this_00 = operator_new(0x55);
|
|
if (this_00 == (void *)0x0) {
|
|
this_01 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
this_01 = FUN_0101c77e(this_00,this,(int)this + 5,local_30,&local_1c,&local_10);
|
|
}
|
|
*(undefined4 **)((int)this + 0x52) = this_01;
|
|
if (this_01 != (undefined4 *)0x0) {
|
|
FUN_0101c813(this_01,-(*(float *)(param_1 + 0x11a) * 0.79999995));
|
|
(**(code **)(**(int **)((int)this + 0x52) + 8))();
|
|
FUN_0100acf3((void *)((int)this + 0x2a),*(int *)((int)this + 0x52));
|
|
}
|
|
}
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019309(void *this,int param_1)
|
|
|
|
{
|
|
void *this_00;
|
|
int iVar1;
|
|
float *pfVar2;
|
|
int *piVar3;
|
|
float10 fVar4;
|
|
undefined local_54 [64];
|
|
int local_14;
|
|
int local_c;
|
|
float *local_8;
|
|
|
|
FUN_01017c6d(this,param_1,-1,0);
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
*(undefined4 *)this = 0x1002554;
|
|
*(undefined4 *)((int)this + 0x46) = 0;
|
|
*(undefined *)((int)this + 5) = 1;
|
|
*(undefined4 *)((int)this + 0x6a) = 0;
|
|
*(undefined4 *)((int)this + 0x86) = 0;
|
|
*(undefined4 *)((int)this + 0x4a) = 0;
|
|
*(undefined4 *)((int)this + 0x6e) = 1;
|
|
*(undefined4 *)((int)this + 0x96) = 0;
|
|
*(undefined4 *)((int)this + 0x42) = 0;
|
|
*(undefined4 *)((int)this + 0x3a) = 0;
|
|
*(undefined4 *)((int)this + 0x36) = 0;
|
|
*(undefined4 *)((int)this + 0x56) = 0x4e6e6b28;
|
|
*(undefined4 *)((int)this + 0x52) = 0x4e6e6b28;
|
|
*(undefined4 *)((int)this + 0x2a) = 0;
|
|
*(undefined4 *)((int)this + 0x2e) = 0;
|
|
this_00 = operator_new(8);
|
|
if (this_00 == (void *)0x0) {
|
|
this_00 = (void *)0x0;
|
|
}
|
|
else {
|
|
FUN_010098d3(this_00,0,4);
|
|
}
|
|
*(void **)((int)this + 0x22) = this_00;
|
|
iVar1 = FUN_010091eb("ball");
|
|
pfVar2 = FUN_0100978e(iVar1,0,500);
|
|
*(float *)((int)this + 0x9a) = *pfVar2;
|
|
local_c = FUN_01009207(iVar1);
|
|
param_1 = 0;
|
|
if (0 < local_c) {
|
|
local_8 = (float *)((int)this + 0xa2);
|
|
do {
|
|
FUN_0100950a(iVar1,param_1,local_54);
|
|
if (*(void **)((int)this + 0x22) != (void *)0x0) {
|
|
FUN_0100acf3(*(void **)((int)this + 0x22),local_14);
|
|
}
|
|
pfVar2 = FUN_0100978e(iVar1,param_1,0x1f5);
|
|
fVar4 = (float10)FUN_01008ed8(pfVar2);
|
|
param_1 = param_1 + 1;
|
|
*local_8 = (float)fVar4;
|
|
local_8 = local_8 + 1;
|
|
} while (param_1 < local_c);
|
|
}
|
|
piVar3 = FUN_0101385c(2,0,0,0,0,(int *)0x0);
|
|
*(int **)((int)this + 0x1a) = piVar3;
|
|
*(undefined4 *)(*(int *)((int)this + 0x1e) + 0x11a) = *(undefined4 *)((int)this + 0x9a);
|
|
*(undefined4 *)((int)this + 0x32) = *(undefined4 *)((int)this + 0x9a);
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101944a(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
undefined local_4c [56];
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
*(undefined4 *)((int)this + 0x52) = 0;
|
|
*(undefined4 *)this = 0x100256c;
|
|
pfVar1 = FUN_0100978e(param_2,0,0x197);
|
|
*(float *)((int)this + 0x56) = *pfVar1;
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
*(undefined4 *)((int)this + 0x5e) = local_14;
|
|
*(undefined4 *)((int)this + 0x62) = local_10;
|
|
*(undefined4 *)((int)this + 0x5a) = *(undefined4 *)((int)this + 0x42);
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_010194b0(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
void *this_00;
|
|
int *piVar1;
|
|
float *pfVar2;
|
|
undefined local_64 [12];
|
|
undefined4 *local_58;
|
|
undefined4 local_30;
|
|
undefined4 local_1c;
|
|
undefined4 local_18;
|
|
undefined4 local_10;
|
|
undefined4 local_c;
|
|
|
|
FUN_010190b3(this,param_1,param_2,0);
|
|
*(undefined4 *)this = 0x1002588;
|
|
*(undefined4 *)((int)this + 0x66) = 0;
|
|
FUN_0100950a(param_2,0,local_64);
|
|
local_1c = *local_58;
|
|
local_18 = local_58[1];
|
|
local_10 = local_58[2];
|
|
local_c = local_58[3];
|
|
this_00 = operator_new(0x55);
|
|
if (this_00 == (void *)0x0) {
|
|
piVar1 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar1 = FUN_0101c77e(this_00,this,(int)this + 5,local_30,&local_10,&local_1c);
|
|
}
|
|
if (piVar1 != (int *)0x0) {
|
|
(**(code **)(*piVar1 + 8))();
|
|
FUN_0100acf3((void *)((int)this + 0x2a),(int)piVar1);
|
|
}
|
|
this_00 = operator_new(0x55);
|
|
if (this_00 == (void *)0x0) {
|
|
piVar1 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar1 = FUN_0101c77e(this_00,this,(int)this + 5,local_30,&local_1c,&local_10);
|
|
}
|
|
*(int **)((int)this + 0x6a) = piVar1;
|
|
if (piVar1 != (int *)0x0) {
|
|
(**(code **)(*piVar1 + 8))();
|
|
FUN_0100acf3((void *)((int)this + 0x2a),*(int *)((int)this + 0x6a));
|
|
}
|
|
*(undefined4 *)((int)this + 0x5a) = 0x3f266666;
|
|
*(undefined4 *)((int)this + 0x52) = 0x47435000;
|
|
*(undefined4 *)((int)this + 0x56) = 0x40a00000;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x4b2);
|
|
if (pfVar2 != (float *)0x0) {
|
|
*(float *)((int)this + 0x5a) = *pfVar2;
|
|
}
|
|
pfVar2 = FUN_0100978e(param_2,0,0x4b0);
|
|
if (pfVar2 != (float *)0x0) {
|
|
*(float *)((int)this + 0x52) = *pfVar2;
|
|
}
|
|
pfVar2 = FUN_0100978e(param_2,0,0x4b1);
|
|
if (pfVar2 != (float *)0x0) {
|
|
*(float *)((int)this + 0x56) = *pfVar2;
|
|
}
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_010195e0(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
float fVar1;
|
|
float *pfVar2;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x10025a4;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x197);
|
|
fVar1 = *pfVar2;
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
*(float *)((int)this + 0x52) = fVar1;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101961f(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
undefined local_4c [56];
|
|
undefined4 local_14;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)((int)this + 0x52) = 0;
|
|
*(undefined4 *)this = 0x10025c0;
|
|
*(undefined4 *)((int)this + 0x56) = 0x3dcccccd;
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
*(undefined4 *)((int)this + 0x5a) = local_14;
|
|
FUN_01016230(this,0x32);
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019677(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
undefined local_4c [56];
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x10025dc;
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
*(undefined4 *)((int)this + 0x5a) = local_14;
|
|
*(undefined4 *)((int)this + 0x5e) = local_10;
|
|
*(undefined4 *)((int)this + 0x4e) = 0x37;
|
|
*(undefined4 *)((int)this + 0x52) = 5;
|
|
*(undefined4 *)((int)this + 0x42) = 0x4e6e6b28;
|
|
*(undefined4 *)((int)this + 0x56) = 0;
|
|
*(undefined4 *)((int)this + 6) = 0;
|
|
*(undefined *)((int)this + 5) = 0;
|
|
FUN_010139b6(*(int *)((int)this + 0x1a),0);
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined ** __thiscall FUN_010196e5(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
undefined local_4c [56];
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x10025f8;
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
*(undefined4 *)((int)this + 0x4e) = local_14;
|
|
*(undefined4 *)((int)this + 0x52) = local_10;
|
|
*(undefined *)((int)this + 5) = 1;
|
|
FUN_010139b6(*(int *)((int)this + 0x1a),*(int *)(*(int *)(*(int *)((int)this + 0x22) + 4) + 8));
|
|
FUN_01011ec9(0x400,(undefined **)this);
|
|
return (undefined **)this;
|
|
}
|
|
|
|
|