Browse Source

Fix more decompilation in path, ughh

pull/4/head
galaxyhaxz 8 years ago committed by GitHub
parent
commit
dcd2d3dd44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 35
      Source/path.cpp

35
Source/path.cpp

@ -4,10 +4,10 @@
PATHNODE path_nodes[300];
int gdwCurPathStep;
int pnode_vals[26];
int pnode_vals[25];
PATHNODE *pnode_ptr;
PATHNODE *pnode_tblptr[300];
PATHNODE path_2_nodes[300];
PATHNODE *path_2_nodes;
char pathxdir[8] = { -1, -1, 1, 1, -1, 0, 1, 0 };
char pathydir[8] = { -1, 1, -1, 1, 0, -1, 0, 1 };
@ -22,14 +22,14 @@ int __fastcall FindPath(bool (__fastcall *PosOk)(int, int, int), int PosOkArg, i
PATHNODE *v11; // eax
int result; // eax
PATHNODE *v13; // edx
int v14; // eax
PATHNODE **v14; // eax
int v15; // edi
bool v16; // zf
int *v17; // ecx
char v18; // dl
pnode_vals[0] = 0;
*(_DWORD *)&path_2_nodes[0].f = (unsigned int)path_new_step();
path_2_nodes = path_new_step();
gdwCurPathStep = 0;
pnode_ptr = path_new_step();
v8 = path_new_step();
@ -39,7 +39,7 @@ int __fastcall FindPath(bool (__fastcall *PosOk)(int, int, int), int PosOkArg, i
v8->x = sx;
v8->f = v9 + v8->g;
v8->y = sy;
*(_DWORD *)(*(_DWORD *)&path_2_nodes[0].f + 48) = (unsigned int)v8;
path_2_nodes->NextNode = v8;
while ( 1 )
{
v11 = GetNextPath();
@ -51,22 +51,19 @@ int __fastcall FindPath(bool (__fastcall *PosOk)(int, int, int), int PosOkArg, i
return 0;
}
v13 = v11;
v14 = (int)&v11->Parent;
v14 = &v11->Parent;
v15 = 0;
if ( *(_DWORD *)v14 )
if ( *v14 )
{
while ( 1 )
{
v16 = v15 == 25;
if ( v15 >= 25 )
break;
pnode_vals[++v15] = path_directions[3 * (v13->y - *(_DWORD *)(*(_DWORD *)v14 + 8))
- *(_DWORD *)(*(_DWORD *)v14 + 4)
+ 4
+ v13->x];
v13 = *(PATHNODE **)v14;
v14 = *(_DWORD *)v14 + 12;
if ( !*(_DWORD *)v14 )
pnode_vals[++v15] = path_directions[3 * (v13->y - (*v14)->y) - (*v14)->x + 4 + v13->x];
v13 = *v14;
v14 = &(*v14)->Parent;
if ( !*v14 )
{
v16 = v15 == 25;
break;
@ -125,10 +122,10 @@ PATHNODE *__cdecl GetNextPath()
{
PATHNODE *result; // eax
result = *(PATHNODE **)(*(_DWORD *)&path_2_nodes[0].f + 48);
result = path_2_nodes->NextNode;
if ( result )
{
*(_DWORD *)(*(_DWORD *)&path_2_nodes[0].f + 48) = (unsigned int)result->NextNode;
path_2_nodes->NextNode = result->NextNode;
result->NextNode = pnode_ptr->NextNode;
pnode_ptr->NextNode = result;
}
@ -316,7 +313,7 @@ PATHNODE *__fastcall path_get_node1(int dx, int dy)
{
PATHNODE *result; // eax
result = *(PATHNODE **)&path_2_nodes[0].f;
result = path_2_nodes;
do
result = result->NextNode;
while ( result && (result->x != dx || result->y != dy) );
@ -339,8 +336,8 @@ void __fastcall path_next_node(PATHNODE *pPath)
PATHNODE *v1; // edx
PATHNODE *v2; // eax
v1 = *(PATHNODE **)&path_2_nodes[0].f;
v2 = *(PATHNODE **)(*(_DWORD *)&path_2_nodes[0].f + 48);
v1 = path_2_nodes;
v2 = path_2_nodes->NextNode;
if ( v2 )
{
do

Loading…
Cancel
Save