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

Loading…
Cancel
Save