mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2026-11-01 21:44:30 +00:00
refactoring: sval/aitmp is no more, celllister(manual) used instead
This commit is contained in:
1 parent
ed8ff63ce4
commit
d11044a80a
12 files changed
+225
-237
No files matched your search
+6
-7
@@ -242,18 +242,17 @@ int getSeepcount() {
|
||||
}
|
||||
|
||||
bool canReachPlayer(cell *cf, eMonster m) {
|
||||
vector<cell*> v;
|
||||
sval++;
|
||||
v.push_back(cf); cf->aitmp = sval;
|
||||
for(int i=0; i<isize(v); i++) {
|
||||
cell *c = v[i];
|
||||
celllister cl(manual);
|
||||
cl.add(cf);
|
||||
for(int i=0; i<isize(cl.lst) && i < 10000; i++) {
|
||||
cell *c = cl.lst[i];
|
||||
for(int j=0; j<c->type; j++) {
|
||||
cell *c2 = c->mov[j];
|
||||
if(!c2) continue;
|
||||
if(eq(c2->aitmp, sval)) continue;
|
||||
if(cl.listed(c2)) continue;
|
||||
if(!passable_for(m, c2, c, P_MONSTER | P_ONPLAYER | P_CHAIN)) continue;
|
||||
if(isPlayerOn(c2)) return true;
|
||||
c2->aitmp = sval; v.push_back(c2);
|
||||
cl.add(c2);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in new issue
Block a user