diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/app.d | 1 | ||||
| -rw-r--r-- | source/portals.d | 11 | 
2 files changed, 7 insertions, 5 deletions
| diff --git a/source/app.d b/source/app.d index 7faaa75..ec46012 100644 --- a/source/app.d +++ b/source/app.d @@ -83,6 +83,7 @@ void main() {                  } catch (Exception e) {                  }              } +            disp.print();              break;          case 'l':              auto filename = stdscr.readquery("Load:"); diff --git a/source/portals.d b/source/portals.d index 7bb5dc2..000e182 100644 --- a/source/portals.d +++ b/source/portals.d @@ -23,10 +23,13 @@ struct Portal {      string toString(int[Portal* ] idMap)      in { -        assert(pair in idMap); +        assert(pair == null || pair in idMap);      }      do { -        return format!`%s, %s: %d`(y, x, idMap[pair]); +        if (pair == null) +            return format!`%s, %s: -1`(y, x); +        else +            return format!`%s, %s: %d`(y, x, idMap[pair]);      }      void fromString(string s, Portal[int] portalsById) { @@ -42,9 +45,7 @@ struct Portal {          s.formattedRead!"%d"(id);          auto p = id in portalsById;          if (p) { -            p.pairWith(this); // this is a REALLY big bug. Portal() is -            // being copied by value into the dict, -            // so it's not using its final ref. +            p.pairWith(this);          }      } | 
