MCPcopy Create free account
hub / github.com/diasurgical/devilution / M_RoundWalk

Function M_RoundWalk

Source/monster.cpp:2870–2897  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2868}
2869
2870BOOL M_RoundWalk(int i, int md, int *dir)
2871{
2872 int mdtemp;
2873 BOOL ok;
2874 if (*dir)
2875 md = left[left[md]];
2876 else
2877 md = right[right[md]];
2878
2879 ok = DirOK(i, md);
2880 mdtemp = md;
2881 if (!ok) {
2882 if (*dir) {
2883 md = right[mdtemp];
2884 ok = DirOK(i, md) || (md = right[right[mdtemp]], DirOK(i, md));
2885 } else {
2886 md = left[mdtemp];
2887 ok = (DirOK(i, md) || (md = left[left[mdtemp]], DirOK(i, md)));
2888 }
2889 }
2890 if (ok) {
2891 M_WalkDir(i, md);
2892 } else {
2893 *dir = !*dir;
2894 ok = M_CallWalk(i, opposite[mdtemp]);
2895 }
2896 return ok;
2897}
2898
2899void MAI_Zombie(int i)
2900{

Callers 6

MAI_RoundFunction · 0.85
MAI_RoundRangedFunction · 0.85
MAI_RR2Function · 0.85
MAI_SkelKingFunction · 0.85
MAI_RhinoFunction · 0.85
MAI_CounselorFunction · 0.85

Calls 3

DirOKFunction · 0.85
M_WalkDirFunction · 0.85
M_CallWalkFunction · 0.85

Tested by

no test coverage detected