1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-12-20 23:50:27 +00:00

fixed general_barrier not working correctly at all with CEPOSNEG

This commit is contained in:
Zeno Rogue 2021-08-04 17:43:51 +02:00
parent fdf2162b36
commit 3c4e3f0e3e

View File

@ -157,9 +157,6 @@ EX bool general_barrier_advance(cellwalker& bb, int& dir, eLand& l1, eLand& l2,
bool at_corner = among(ws, NOWALLSEP_WALL_CPOS, NOWALLSEP_WALL_CNEG); bool at_corner = among(ws, NOWALLSEP_WALL_CPOS, NOWALLSEP_WALL_CNEG);
cell *current = bb.at; cell *current = bb.at;
if(current->bardir != NODIR) ok = false;
if(current->mpdist < BARLEV) ok = false;
if(setit && current->bardir == NODIR) current->barleft = NOWALLSEP_USED;
// if at_corner: bb is facing the tile 1 before the first inside // if at_corner: bb is facing the tile 1 before the first inside
int t = bb.at->type; int t = bb.at->type;
@ -256,7 +253,7 @@ EX bool checkBarriersNowall(cellwalker bb, int q, int dir, eLand ws, eLand l1 IS
} }
} }
if(l1 != l2 && bb.at->barleft != NOWALLSEP_USED && !on_wall(ws)) { if(l1 != l2 && bb.at->barleft != NOWALLSEP_USED) {
bb.at->bardir = bb.spin; bb.at->barright = l2; bb.at->barleft = ws; bb.at->bardir = bb.spin; bb.at->barright = l2; bb.at->barleft = ws;
setland(bb.at, l1); setland(bb.at, l1);
} }
@ -509,7 +506,7 @@ EX void extendBarrier(cell *c) {
return; // == INFD) return; return; // == INFD) return;
} }
if(c->barleft == NOWALLSEP || c->barleft == NOWALLSEP_SWAP || c->barleft == NOWALLSEP_WALL) { if(c->barleft == NOWALLSEP || c->barleft == NOWALLSEP_SWAP || c->barleft == NOWALLSEP_WALL || on_wall(c->barleft)) {
#if MAXMDIM >= 4 #if MAXMDIM >= 4
if(WDIM == 3) extend3D(c); if(WDIM == 3) extend3D(c);
else else