mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-27 14:37:16 +00:00
default allcells builds the list on all quotient spaces, and generates some list if there is no dcal
This commit is contained in:
parent
e6be9231c9
commit
374d52bb58
19
cell.cpp
19
cell.cpp
@ -15,7 +15,7 @@ struct hrmap {
|
||||
virtual heptagon *getOrigin() { return NULL; }
|
||||
virtual cell *gamestart() { return getOrigin()->c7; }
|
||||
virtual ~hrmap() { };
|
||||
virtual vector<cell*>& allcells() { return dcal; }
|
||||
virtual vector<cell*>& allcells();
|
||||
virtual void verify() { }
|
||||
virtual void link_alt(const cellwalker& hs) { }
|
||||
virtual void generateAlts(heptagon *h, int levs = IRREGULAR ? 1 : S3 >= OINF ? 1 : S3-3, bool link_cdata = true);
|
||||
@ -66,6 +66,23 @@ struct hrmap_hyperbolic : hrmap_standard {
|
||||
};
|
||||
#endif
|
||||
|
||||
vector<cell*>& hrmap::allcells() {
|
||||
static vector<cell*> default_allcells;
|
||||
println(hlog, "bounded = ", !!bounded, " dcal = ", isize(dcal));
|
||||
if(bounded) {
|
||||
celllister cl(gamestart(), 1000000, 1000000, NULL);
|
||||
default_allcells = cl.lst;
|
||||
return default_allcells;
|
||||
}
|
||||
if(isize(dcal) <= 1) {
|
||||
extern cellwalker cwt;
|
||||
celllister cl(cwt.at, 1, 1000, NULL);
|
||||
default_allcells = cl.lst;
|
||||
return default_allcells;
|
||||
}
|
||||
return dcal;
|
||||
}
|
||||
|
||||
EX int dirdiff(int dd, int t) {
|
||||
dd %= t;
|
||||
if(dd<0) dd += t;
|
||||
|
Loading…
Reference in New Issue
Block a user