Browse Source

Clean up M_RoundWalk.

pull/100/head
Sergey Semushin 7 years ago committed by Anders Jenbo
parent
commit
8dfa8ad757
  1. 76
      Source/monster.cpp
  2. 2
      Source/monster.h

76
Source/monster.cpp

@ -2882,59 +2882,33 @@ BOOL M_DumbWalk(int i, int md)
return ok;
}
BOOLEAN M_RoundWalk(int i, int md, int *dir)
{
int *v3; // ebp
int v4; // ebx
int v5; // esi
//int v6; // eax
BOOLEAN v7; // di
int v8; // edi
//int v9; // eax
//int v10; // eax
int *v11; // ebp
//int v12; // eax
//int v13; // eax
v3 = dir;
v4 = i;
BOOL M_RoundWalk(int i, int md, int *dir)
{
int mdtemp;
BOOL ok;
if (*dir)
v5 = left[left[md]];
md = left[left[md]];
else
v5 = right[right[md]];
//_LOBYTE(v6) = DirOK(i, v5);
v7 = DirOK(i, v5);
if (v7)
goto LABEL_12;
v8 = v5;
if (!*dir) {
v11 = &left[v8];
v5 = left[v8];
//_LOBYTE(v12) = DirOK(v4, left[v8]);
if (DirOK(v4, left[v8]))
goto LABEL_11;
v5 = left[*v11];
//_LOBYTE(v13) = DirOK(v4, left[*v11]);
if (DirOK(v4, left[*v11]))
goto LABEL_11;
v3 = dir;
LABEL_14:
*v3 = *v3 == 0;
return M_CallWalk(v4, opposite[v8]);
}
v5 = right[v8];
//_LOBYTE(v9) = DirOK(v4, right[v8]);
if (!DirOK(v4, right[v8])) {
v5 = right[right[v8]];
//_LOBYTE(v10) = DirOK(v4, v5);
if (!DirOK(v4, v5))
goto LABEL_14;
}
LABEL_11:
v7 = 1;
LABEL_12:
M_WalkDir(v4, v5);
return v7;
md = right[right[md]];
ok = DirOK(i, md);
mdtemp = md;
if (!ok) {
if (*dir) {
md = right[mdtemp];
ok = DirOK(i, md) || (md = right[right[mdtemp]], DirOK(i, md));
} else {
md = left[mdtemp];
ok = (DirOK(i, md) || (md = left[left[mdtemp]], DirOK(i, md)));
}
}
if (ok) {
M_WalkDir(i, md);
} else {
*dir = !*dir;
ok = M_CallWalk(i, opposite[mdtemp]);
}
return ok;
}
void MAI_Zombie(int i)

2
Source/monster.h

@ -92,7 +92,7 @@ BOOL M_CallWalk(int i, int md);
BOOL M_PathWalk(int i);
BOOL M_CallWalk2(int i, int md);
BOOL M_DumbWalk(int i, int md);
BOOLEAN M_RoundWalk(int i, int md, int *dir);
BOOL M_RoundWalk(int i, int md, int *dir);
void MAI_Zombie(int i);
void MAI_SkelSd(int i);
BOOL MAI_Path(int i);

Loading…
Cancel
Save