From a1a39ccefc3f164f8ab6e9f5dec56bc863922173 Mon Sep 17 00:00:00 2001 From: galaxyhaxz Date: Tue, 26 Jun 2018 16:33:45 -0500 Subject: [PATCH] Fix decompilation of pnode_vals Was originally int[26], should be int[25] with a dword as int[0] --- Source/path.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Source/path.cpp b/Source/path.cpp index 325978757..e9d7e71db 100644 --- a/Source/path.cpp +++ b/Source/path.cpp @@ -4,6 +4,7 @@ PATHNODE path_nodes[300]; int gdwCurPathStep; +int gdwCurNodes; int pnode_vals[25]; PATHNODE *pnode_ptr; PATHNODE *pnode_tblptr[300]; @@ -28,7 +29,7 @@ int __fastcall FindPath(bool (__fastcall *PosOk)(int, int, int), int PosOkArg, i int *v17; // ecx char v18; // dl - pnode_vals[0] = 0; + gdwCurNodes = 0; path_2_nodes = path_new_step(); gdwCurPathStep = 0; pnode_ptr = path_new_step(); @@ -60,7 +61,7 @@ int __fastcall FindPath(bool (__fastcall *PosOk)(int, int, int), int PosOkArg, i v16 = v15 == 25; if ( v15 >= 25 ) break; - pnode_vals[++v15] = path_directions[3 * (v13->y - (*v14)->y) - (*v14)->x + 4 + v13->x]; + pnode_vals[++v15-1] = path_directions[3 * (v13->y - (*v14)->y) - (*v14)->x + 4 + v13->x]; v13 = *v14; v14 = &(*v14)->Parent; if ( !*v14 ) @@ -75,7 +76,7 @@ int __fastcall FindPath(bool (__fastcall *PosOk)(int, int, int), int PosOkArg, i result = 0; if ( v15 > 0 ) { - v17 = &pnode_vals[v15]; + v17 = &pnode_vals[v15-1]; do { v18 = *(_BYTE *)v17; @@ -405,9 +406,9 @@ PATHNODE *__cdecl path_new_step() { PATHNODE *v1; // esi - if ( pnode_vals[0] == 300 ) + if ( gdwCurNodes == 300 ) return 0; - v1 = &path_nodes[pnode_vals[0]++]; + v1 = &path_nodes[gdwCurNodes++]; memset(v1, 0, 0x34u); return v1; }