1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-09-12 15:26:00 +00:00

fixed potential crashes on Ivy errors

This commit is contained in:
Zeno Rogue
2020-12-26 17:22:32 +01:00
parent c906a2b906
commit f3040d439c
2 changed files with 5 additions and 1 deletions

View File

@@ -931,6 +931,8 @@ EX void ivynext(cell *c) {
cell *c2 = c;
while(true) {
if(c2->monst == moIvyRoot) break;
if(!proper(c2, c2->mondir))
return; /* incorrect data */
if(!isIvy(c2->monst)) break;
if(c2->c.mirror(c2->mondir)) cw.mirrored = !cw.mirrored;
c2 = c2->move(c2->mondir);
@@ -1031,6 +1033,7 @@ EX void moveivy() {
mto->monst = moIvyHead; co->monst = moIvyBranch;
}
}
else if(!proper(co, co->mondir) || !co->move(co->mondir)) ; /* should not happen */
else if(co->move(co->mondir)->monst != moIvyRoot) {
// shrink useless branches, but do not remove them completely (at the root)
if(co->monst == moIvyHead) co->move(co->mondir)->monst = moIvyHead;