594 lines
13 KiB
C++
594 lines
13 KiB
C++
#include "TRamp.h"
|
|
|
|
//----- (01016AEC) --------------------------------------------------------
|
|
int __thiscall TRamp::get_scoring(TRamp *this, int a2)
|
|
{
|
|
int result; // eax
|
|
|
|
if ( a2 >= 4 )
|
|
result = 0;
|
|
else
|
|
result = *(_DWORD *)((char *)this + 4 * a2 + 78);
|
|
return result;
|
|
}
|
|
|
|
//----- (01016B0A) --------------------------------------------------------
|
|
void __thiscall TRamp::put_scoring(TRamp *this, int a2, int a3)
|
|
{
|
|
if ( a2 < 4 )
|
|
*(_DWORD *)((char *)this + 4 * a2 + 78) = a3;
|
|
}
|
|
|
|
//----- (01016C24) --------------------------------------------------------
|
|
void __thiscall TRamp::Collision(TRamp *this, struct TBall *a2, struct vector_type *a3, struct vector_type *a4, float a5, struct TEdgeSegment *a6)
|
|
{
|
|
TRamp *v6; // edi
|
|
double v7; // st7
|
|
int v8; // eax
|
|
_DWORD *v9; // eax
|
|
double v10; // st7
|
|
double v11; // st6
|
|
double v12; // st6
|
|
double v13; // st7
|
|
|
|
v6 = this;
|
|
TBall::not_again(a2, a6);
|
|
v7 = *(float *)((char *)a2 + 70) - a5;
|
|
*(_DWORD *)((char *)a2 + 42) = *(_DWORD *)a3;
|
|
v8 = *((_DWORD *)a3 + 1);
|
|
*(float *)((char *)a2 + 70) = v7;
|
|
*(_DWORD *)((char *)a2 + 46) = v8;
|
|
v9 = *(_DWORD **)((char *)a6 + 13);
|
|
if ( v9 )
|
|
{
|
|
*(_DWORD *)((char *)a2 + 150) = 1;
|
|
*(_DWORD *)((char *)a2 + 138) = *v9;
|
|
v10 = *(float *)((char *)a2 + 138) * *(float *)((char *)a2 + 42);
|
|
v11 = *(float *)((char *)a2 + 46);
|
|
*(_DWORD *)((char *)a2 + 142) = v9[1];
|
|
v12 = v11 * *(float *)((char *)a2 + 142);
|
|
*(_DWORD *)((char *)a2 + 146) = v9[2];
|
|
*(_DWORD *)((char *)a2 + 94) = v9[11];
|
|
*(_DWORD *)((char *)a2 + 98) = v9[12];
|
|
*(float *)((char *)a2 + 50) = v10 + v12 + *(float *)((char *)a2 + 154) + *(float *)((char *)a2 + 146);
|
|
*(_DWORD *)((char *)a2 + 110) = *(_DWORD *)((char *)v6 + 106);
|
|
return;
|
|
}
|
|
if ( a6 == *(struct TEdgeSegment **)((char *)v6 + 134) )
|
|
{
|
|
if ( !*(_DWORD *)(*(_DWORD *)((char *)v6 + 30) + 370) )
|
|
{
|
|
loader_play_sound(*(_DWORD *)((char *)v6 + 70));
|
|
control_handler(63, v6);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
*(_DWORD *)((char *)a2 + 150) = 0;
|
|
if ( a6 == *(struct TEdgeSegment **)((char *)v6 + 126) )
|
|
{
|
|
*(_DWORD *)((char *)a2 + 110) = *(_DWORD *)((char *)v6 + 138);
|
|
if ( !*(_DWORD *)((char *)v6 + 110) )
|
|
return;
|
|
v13 = *(float *)((char *)a2 + 154) + *(float *)((char *)v6 + 146);
|
|
}
|
|
else
|
|
{
|
|
*(_DWORD *)((char *)a2 + 110) = *(_DWORD *)((char *)v6 + 142);
|
|
if ( !*(_DWORD *)((char *)v6 + 110) )
|
|
return;
|
|
v13 = *(float *)((char *)a2 + 154) + *(float *)((char *)v6 + 150);
|
|
}
|
|
*(float *)((char *)a2 + 50) = v13;
|
|
}
|
|
}
|
|
|
|
//----- (01016D2E) --------------------------------------------------------
|
|
int __thiscall TRamp::FieldEffect(TRamp *this, struct TBall *a2, struct vector_type *a3)
|
|
{
|
|
int result; // eax
|
|
|
|
*(float *)a3 = *(float *)((char *)a2 + 94)
|
|
- *(float *)((char *)a2 + 54) * *(float *)((char *)a2 + 66) * *(float *)((char *)this + 118);
|
|
result = 1;
|
|
*((float *)a3 + 1) = *(float *)((char *)a2 + 98)
|
|
- *(float *)((char *)a2 + 58) * *(float *)((char *)a2 + 66) * *(float *)((char *)this + 118);
|
|
return result;
|
|
}
|
|
|
|
//----- (01019BB8) --------------------------------------------------------
|
|
TRamp *__thiscall TRamp::TRamp(TRamp *this, struct TPinballTable *a2, void *a3)
|
|
{
|
|
void *v3; // ebx
|
|
TRamp *v4; // esi
|
|
_DWORD *v5; // eax
|
|
float *v6; // eax
|
|
float *v7; // edi
|
|
signed __int64 v8; // rax
|
|
void *v9; // ST0C_4
|
|
int v10; // edi
|
|
double v11; // st7
|
|
TLine *v12; // eax
|
|
TLine *v13; // edi
|
|
int v14; // eax
|
|
int v15; // edi
|
|
double v16; // st7
|
|
int v17; // ecx
|
|
TLine *v18; // eax
|
|
TLine *v19; // edi
|
|
int v20; // eax
|
|
int v21; // edi
|
|
double v22; // st7
|
|
int v23; // ecx
|
|
TLine *v24; // eax
|
|
TLine *v25; // edi
|
|
int v26; // eax
|
|
bool v27; // zf
|
|
bool v28; // sf
|
|
int v29; // ecx
|
|
int v30; // eax
|
|
int v31; // ebx
|
|
int v32; // edi
|
|
int v33; // ecx
|
|
double v34; // st7
|
|
double v35; // st7
|
|
double v36; // st7
|
|
double v37; // st7
|
|
float v38; // eax
|
|
double v39; // st7
|
|
double v40; // st7
|
|
float v41; // eax
|
|
double v42; // st7
|
|
double v43; // st7
|
|
double v44; // st7
|
|
double v45; // st7
|
|
float v46; // eax
|
|
double v47; // st7
|
|
double v48; // st7
|
|
double v49; // st7
|
|
double v50; // st7
|
|
float v51; // eax
|
|
double v52; // st7
|
|
void *v53; // eax
|
|
TLine *v54; // eax
|
|
void *v55; // ecx
|
|
void *v56; // eax
|
|
TLine *v57; // eax
|
|
void *v58; // ecx
|
|
void *v59; // eax
|
|
TLine *v60; // eax
|
|
TLine *v61; // edi
|
|
int v62; // ecx
|
|
float *v63; // eax
|
|
int v64; // ecx
|
|
long double v65; // st7
|
|
float v66; // ST0C_4
|
|
double v67; // st7
|
|
int v68; // ecx
|
|
float v69; // ST08_4
|
|
double v70; // st7
|
|
float v71; // ST04_4
|
|
char v73; // [esp+24h] [ebp-84h]
|
|
void *v74; // [esp+58h] [ebp-50h]
|
|
int v75; // [esp+6Ch] [ebp-3Ch]
|
|
int v76; // [esp+70h] [ebp-38h]
|
|
int v77; // [esp+78h] [ebp-30h]
|
|
int v78; // [esp+7Ch] [ebp-2Ch]
|
|
struct vector_type *v79; // [esp+80h] [ebp-28h]
|
|
struct vector_type *v80; // [esp+84h] [ebp-24h]
|
|
struct vector_type *v81; // [esp+88h] [ebp-20h]
|
|
int v82; // [esp+8Ch] [ebp-1Ch]
|
|
int v83; // [esp+90h] [ebp-18h]
|
|
struct vector_type *v84; // [esp+94h] [ebp-14h]
|
|
float v85; // [esp+98h] [ebp-10h]
|
|
float v86; // [esp+9Ch] [ebp-Ch]
|
|
float v87; // [esp+A0h] [ebp-8h]
|
|
float v88; // [esp+A4h] [ebp-4h]
|
|
|
|
v3 = a3;
|
|
v4 = this;
|
|
TCollisionComponent::TCollisionComponent(this, a2, (int)a3, 0);
|
|
*(_DWORD *)v4 = &TRamp::vftable;
|
|
*(_DWORD *)((char *)v4 + 6) = 0;
|
|
*((_BYTE *)v4 + 4) = 1;
|
|
loader_query_visual((int)v3, 0, &v73);
|
|
*(_DWORD *)((char *)v4 + 106) = v74;
|
|
v5 = (_DWORD *)loader_query_float_attribute((int)v3, 0, 701);
|
|
if ( v5 )
|
|
*(_DWORD *)((char *)v4 + 118) = *v5;
|
|
else
|
|
*(_DWORD *)((char *)v4 + 118) = 1045220557;
|
|
v6 = (float *)loader_query_float_attribute((int)v3, 0, 1305);
|
|
if ( v6 )
|
|
*(_DWORD *)((char *)v4 + 110) = (signed __int64)_floor(*v6);
|
|
else
|
|
*(_DWORD *)((char *)v4 + 110) = 0;
|
|
v7 = (float *)loader_query_float_attribute((int)a3, 0, 1300);
|
|
v8 = (signed __int64)_floor(*v7);
|
|
v9 = a3;
|
|
*(_DWORD *)((char *)v4 + 114) = v8;
|
|
*(_DWORD *)((char *)v4 + 122) = v7 + 1;
|
|
v10 = loader_query_float_attribute((int)v9, 0, 1303);
|
|
v11 = _floor(*(float *)v10);
|
|
v75 = *(_DWORD *)(v10 + 8);
|
|
v76 = *(_DWORD *)(v10 + 12);
|
|
v86 = *(float *)(v10 + 16);
|
|
v87 = *(float *)(v10 + 20);
|
|
v12 = (TLine *)operator new(0x55u);
|
|
if ( v12 )
|
|
v13 = TLine::TLine(
|
|
v12,
|
|
v4,
|
|
(char *)v4 + 5,
|
|
1 << (signed __int64)v11,
|
|
(struct vector_type *)&v86,
|
|
(struct vector_type *)&v75);
|
|
else
|
|
v13 = 0;
|
|
*(_DWORD *)((char *)v4 + 134) = v13;
|
|
objlist_class::Add((TRamp *)((char *)v4 + 42), (void *)v13);
|
|
if ( v13 )
|
|
{
|
|
v14 = *(_DWORD *)v13;
|
|
*(_DWORD *)((char *)v13 + 13) = 0;
|
|
(*(void (__thiscall **)(TLine *))(v14 + 8))(v13);
|
|
}
|
|
v15 = loader_query_float_attribute((int)a3, 0, 1301);
|
|
*(_DWORD *)((char *)v4 + 138) = (signed __int64)_floor(*(float *)v15);
|
|
v16 = _floor(*(float *)(v15 + 4));
|
|
v17 = *(_DWORD *)((char *)v4 + 138);
|
|
v78 = (signed __int64)v16;
|
|
v15 += 12;
|
|
*(_DWORD *)((char *)v4 + 138) = 1 << v17;
|
|
*(_DWORD *)((char *)v4 + 146) = *(_DWORD *)(v15 + 16);
|
|
find_closest_edge(
|
|
*(struct ramp_plane_type **)((char *)v4 + 122),
|
|
*(_DWORD *)((char *)v4 + 114),
|
|
(struct wall_point_type *)v15,
|
|
&a2,
|
|
&v80);
|
|
v18 = (TLine *)operator new(0x55u);
|
|
if ( v18 )
|
|
v19 = TLine::TLine(v18, v4, (char *)v4 + 5, *(_DWORD *)((char *)v4 + 106), v80, a2);
|
|
else
|
|
v19 = 0;
|
|
*(_DWORD *)((char *)v4 + 126) = v19;
|
|
objlist_class::Add((TRamp *)((char *)v4 + 42), (void *)v19);
|
|
if ( v19 )
|
|
{
|
|
v20 = *(_DWORD *)v19;
|
|
*(_DWORD *)((char *)v19 + 13) = 0;
|
|
(*(void (__thiscall **)(TLine *))(v20 + 8))(v19);
|
|
}
|
|
v21 = loader_query_float_attribute((int)a3, 0, 1302);
|
|
*(_DWORD *)((char *)v4 + 142) = (signed __int64)_floor(*(float *)v21);
|
|
v22 = _floor(*(float *)(v21 + 4));
|
|
v23 = *(_DWORD *)((char *)v4 + 142);
|
|
v77 = (signed __int64)v22;
|
|
v21 += 12;
|
|
*(_DWORD *)((char *)v4 + 142) = 1 << v23;
|
|
*(_DWORD *)((char *)v4 + 150) = *(_DWORD *)(v21 + 16);
|
|
find_closest_edge(
|
|
*(struct ramp_plane_type **)((char *)v4 + 122),
|
|
*(_DWORD *)((char *)v4 + 114),
|
|
(struct wall_point_type *)v21,
|
|
&v81,
|
|
&v84);
|
|
v24 = (TLine *)operator new(0x55u);
|
|
if ( v24 )
|
|
v25 = TLine::TLine(v24, v4, (char *)v4 + 5, *(_DWORD *)((char *)v4 + 106), v84, v81);
|
|
else
|
|
v25 = 0;
|
|
*(_DWORD *)((char *)v4 + 130) = v25;
|
|
objlist_class::Add((TRamp *)((char *)v4 + 42), (void *)v25);
|
|
if ( v25 )
|
|
{
|
|
v26 = *(_DWORD *)v25;
|
|
*(_DWORD *)((char *)v25 + 13) = 0;
|
|
(*(void (__thiscall **)(TLine *))(v26 + 8))(v25);
|
|
}
|
|
v27 = *(_DWORD *)((char *)v4 + 114) == 0;
|
|
v28 = *(_DWORD *)((char *)v4 + 114) < 0;
|
|
v86 = 1000000000.0;
|
|
v82 = 0;
|
|
v85 = 1000000000.0;
|
|
v88 = -1000000000.0;
|
|
v87 = -1000000000.0;
|
|
if ( !v28 && !v27 )
|
|
{
|
|
do
|
|
{
|
|
v29 = *(_DWORD *)((char *)v4 + 122);
|
|
v83 = 52 * v82;
|
|
v30 = v29 + 52 * v82;
|
|
v31 = v30 + 28;
|
|
v32 = v30 + 12;
|
|
v33 = v30 + 20;
|
|
v34 = *(float *)(v30 + 28);
|
|
v79 = (struct vector_type *)(v30 + 20);
|
|
if ( v34 >= *(float *)(v30 + 12) )
|
|
v35 = *(float *)v32;
|
|
else
|
|
v35 = *(float *)v31;
|
|
if ( v35 <= *(float *)v33 )
|
|
{
|
|
if ( *(float *)v31 >= (double)*(float *)v32 )
|
|
v36 = *(float *)v32;
|
|
else
|
|
v36 = *(float *)v31;
|
|
}
|
|
else
|
|
{
|
|
v36 = *(float *)v33;
|
|
}
|
|
if ( v85 >= v36 )
|
|
{
|
|
if ( *(float *)v31 >= (double)*(float *)v32 )
|
|
v37 = *(float *)v32;
|
|
else
|
|
v37 = *(float *)v31;
|
|
if ( v37 <= *(float *)v33 )
|
|
{
|
|
if ( *(float *)v31 >= (double)*(float *)v32 )
|
|
v38 = *(float *)v32;
|
|
else
|
|
v38 = *(float *)v31;
|
|
}
|
|
else
|
|
{
|
|
v38 = *(float *)v33;
|
|
}
|
|
v85 = v38;
|
|
}
|
|
if ( *(float *)(v31 + 4) >= (double)*(float *)(v32 + 4) )
|
|
v39 = *(float *)(v32 + 4);
|
|
else
|
|
v39 = *(float *)(v31 + 4);
|
|
if ( v39 <= *(float *)(v33 + 4) )
|
|
{
|
|
if ( *(float *)(v31 + 4) >= (double)*(float *)(v32 + 4) )
|
|
v40 = *(float *)(v32 + 4);
|
|
else
|
|
v40 = *(float *)(v31 + 4);
|
|
}
|
|
else
|
|
{
|
|
v40 = *(float *)(v33 + 4);
|
|
}
|
|
if ( v85 >= v40 )
|
|
{
|
|
if ( *(float *)(v31 + 4) >= (double)*(float *)(v32 + 4) )
|
|
v42 = *(float *)(v32 + 4);
|
|
else
|
|
v42 = *(float *)(v31 + 4);
|
|
if ( v42 <= *(float *)(v33 + 4) )
|
|
{
|
|
if ( *(float *)(v31 + 4) >= (double)*(float *)(v32 + 4) )
|
|
v41 = *(float *)(v32 + 4);
|
|
else
|
|
v41 = *(float *)(v31 + 4);
|
|
}
|
|
else
|
|
{
|
|
v41 = *(float *)(v33 + 4);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v41 = v85;
|
|
}
|
|
v43 = *(float *)v31;
|
|
v86 = v41;
|
|
if ( v43 <= *(float *)v32 )
|
|
v44 = *(float *)v32;
|
|
else
|
|
v44 = *(float *)v31;
|
|
if ( v44 >= *(float *)v33 )
|
|
{
|
|
if ( *(float *)v31 <= (double)*(float *)v32 )
|
|
v45 = *(float *)v32;
|
|
else
|
|
v45 = *(float *)v31;
|
|
}
|
|
else
|
|
{
|
|
v45 = *(float *)v33;
|
|
}
|
|
if ( v85 <= v45 )
|
|
{
|
|
if ( *(float *)v31 <= (double)*(float *)v32 )
|
|
v47 = *(float *)v32;
|
|
else
|
|
v47 = *(float *)v31;
|
|
if ( v47 >= *(float *)v33 )
|
|
{
|
|
if ( *(float *)v31 <= (double)*(float *)v32 )
|
|
v46 = *(float *)v32;
|
|
else
|
|
v46 = *(float *)v31;
|
|
}
|
|
else
|
|
{
|
|
v46 = *(float *)v33;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v46 = v85;
|
|
}
|
|
v48 = *(float *)(v31 + 4);
|
|
v87 = v46;
|
|
if ( v48 <= *(float *)(v32 + 4) )
|
|
v49 = *(float *)(v32 + 4);
|
|
else
|
|
v49 = *(float *)(v31 + 4);
|
|
if ( v49 >= *(float *)(v33 + 4) )
|
|
{
|
|
if ( *(float *)(v31 + 4) <= (double)*(float *)(v32 + 4) )
|
|
v50 = *(float *)(v32 + 4);
|
|
else
|
|
v50 = *(float *)(v31 + 4);
|
|
}
|
|
else
|
|
{
|
|
v50 = *(float *)(v33 + 4);
|
|
}
|
|
if ( v85 <= v50 )
|
|
{
|
|
if ( *(float *)(v31 + 4) <= (double)*(float *)(v32 + 4) )
|
|
v52 = *(float *)(v32 + 4);
|
|
else
|
|
v52 = *(float *)(v31 + 4);
|
|
if ( v52 >= *(float *)(v33 + 4) )
|
|
{
|
|
if ( *(float *)(v31 + 4) <= (double)*(float *)(v32 + 4) )
|
|
v51 = *(float *)(v32 + 4);
|
|
else
|
|
v51 = *(float *)(v31 + 4);
|
|
}
|
|
else
|
|
{
|
|
v51 = *(float *)(v33 + 4);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v51 = v85;
|
|
}
|
|
v88 = v51;
|
|
if ( (struct TPinballTable *)v32 != a2 || (struct vector_type *)v33 != v80 )
|
|
{
|
|
if ( (struct vector_type *)v32 != v81 || (struct vector_type *)v33 != v84 )
|
|
{
|
|
v53 = v74;
|
|
goto LABEL_105;
|
|
}
|
|
if ( v77 )
|
|
{
|
|
v53 = *(void **)((char *)v4 + 142);
|
|
goto LABEL_105;
|
|
}
|
|
}
|
|
else if ( v78 )
|
|
{
|
|
v53 = *(void **)((char *)v4 + 138);
|
|
LABEL_105:
|
|
a3 = v53;
|
|
goto LABEL_106;
|
|
}
|
|
a3 = 0;
|
|
LABEL_106:
|
|
if ( a3 )
|
|
{
|
|
v54 = (TLine *)operator new(0x55u);
|
|
a3 = (void *)(v54 ? TLine::TLine(v54, v4, (char *)v4 + 5, (unsigned int)a3, (struct vector_type *)v32, v79) : 0);
|
|
objlist_class::Add((TRamp *)((char *)v4 + 42), a3);
|
|
if ( a3 )
|
|
{
|
|
v55 = a3;
|
|
*(_DWORD *)((char *)a3 + 13) = v83 + *(_DWORD *)((char *)v4 + 122);
|
|
(*(void (**)(void))(*(_DWORD *)v55 + 8))();
|
|
}
|
|
}
|
|
if ( v79 != a2 || (struct vector_type *)v31 != v80 )
|
|
{
|
|
if ( v79 != v81 || (struct vector_type *)v31 != v84 )
|
|
{
|
|
v56 = v74;
|
|
goto LABEL_122;
|
|
}
|
|
if ( v77 )
|
|
{
|
|
v56 = *(void **)((char *)v4 + 142);
|
|
goto LABEL_122;
|
|
}
|
|
}
|
|
else if ( v78 )
|
|
{
|
|
v56 = *(void **)((char *)v4 + 138);
|
|
LABEL_122:
|
|
a3 = v56;
|
|
goto LABEL_123;
|
|
}
|
|
a3 = 0;
|
|
LABEL_123:
|
|
if ( a3 )
|
|
{
|
|
v57 = (TLine *)operator new(0x55u);
|
|
a3 = (void *)(v57 ? TLine::TLine(v57, v4, (char *)v4 + 5, (unsigned int)a3, v79, (struct vector_type *)v31) : 0);
|
|
objlist_class::Add((TRamp *)((char *)v4 + 42), a3);
|
|
if ( a3 )
|
|
{
|
|
v58 = a3;
|
|
*(_DWORD *)((char *)a3 + 13) = v83 + *(_DWORD *)((char *)v4 + 122);
|
|
(*(void (**)(void))(*(_DWORD *)v58 + 8))();
|
|
}
|
|
}
|
|
if ( (struct TPinballTable *)v31 != a2 || (struct vector_type *)v32 != v80 )
|
|
{
|
|
if ( (struct vector_type *)v31 != v81 || (struct vector_type *)v32 != v84 )
|
|
{
|
|
v59 = v74;
|
|
goto LABEL_139;
|
|
}
|
|
if ( v77 )
|
|
{
|
|
v59 = *(void **)((char *)v4 + 142);
|
|
goto LABEL_139;
|
|
}
|
|
}
|
|
else if ( v78 )
|
|
{
|
|
v59 = *(void **)((char *)v4 + 138);
|
|
LABEL_139:
|
|
a3 = v59;
|
|
goto LABEL_140;
|
|
}
|
|
a3 = 0;
|
|
LABEL_140:
|
|
if ( a3 )
|
|
{
|
|
v60 = (TLine *)operator new(0x55u);
|
|
if ( v60 )
|
|
v61 = TLine::TLine(
|
|
v60,
|
|
v4,
|
|
(char *)v4 + 5,
|
|
(unsigned int)a3,
|
|
(struct vector_type *)v31,
|
|
(struct vector_type *)v32);
|
|
else
|
|
v61 = 0;
|
|
objlist_class::Add((TRamp *)((char *)v4 + 42), (void *)v61);
|
|
if ( v61 )
|
|
{
|
|
*(_DWORD *)((char *)v61 + 13) = v83 + *(_DWORD *)((char *)v4 + 122);
|
|
(*(void (__thiscall **)(TLine *))(*(_DWORD *)v61 + 8))(v61);
|
|
}
|
|
}
|
|
v62 = v83;
|
|
*(float *)(v83 + *(_DWORD *)((char *)v4 + 122) + 44) = cos(*(float *)(v83 + *(_DWORD *)((char *)v4 + 122) + 40))
|
|
* sin(*(float *)(v83 + *(_DWORD *)((char *)v4 + 122) + 36))
|
|
* *(float *)(*(_DWORD *)((char *)v4 + 30) + 270);
|
|
v63 = (float *)(v62 + *(_DWORD *)((char *)v4 + 122));
|
|
v64 = *(_DWORD *)((char *)v4 + 30);
|
|
v65 = sin(v63[10]);
|
|
++v82;
|
|
v63[12] = v65 * sin(v63[9]) * *(float *)(v64 + 270);
|
|
}
|
|
while ( v82 < *(_DWORD *)((char *)v4 + 114) );
|
|
}
|
|
v66 = v87;
|
|
v67 = v88;
|
|
*(_DWORD *)((char *)v4 + 94) = (char *)v4 + 5;
|
|
v68 = (int)v74;
|
|
v69 = v67;
|
|
v70 = v85;
|
|
*(_DWORD *)((char *)v4 + 102) = v4;
|
|
v71 = v70;
|
|
*(_DWORD *)((char *)v4 + 98) = v68;
|
|
edges_insert_square(v86, v71, v69, v66, 0, (TRamp *)((char *)v4 + 94));
|
|
return v4;
|
|
}
|
|
// 10026CC: using guessed type void *TRamp::vftable;
|