mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 01:00:25 +00:00
improved valence computation
This commit is contained in:
parent
a04eef75a9
commit
76c303f80a
@ -1205,6 +1205,19 @@ int degree(heptagon *h) {
|
||||
return isize(current.adjacent[id_of(h)]);
|
||||
}
|
||||
|
||||
int valence() {
|
||||
if(PURE) return arcm::current.N;
|
||||
if(BITRUNCATED) return 3;
|
||||
// in DUAL, usually valence would depend on the vertex.
|
||||
// 3 is the most interesting, as it allows us to kill hedgehog warriors
|
||||
int total = 0;
|
||||
for(int i: current.faces) {
|
||||
if(i == 3) return 3;
|
||||
total += i;
|
||||
}
|
||||
return total / isize(current.faces);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
5
hyper.h
5
hyper.h
@ -106,8 +106,6 @@ void addMessage(string s, char spamtype = 0);
|
||||
#define masterless among(geometry, gEuclid, gEuclidSquare, gTorus)
|
||||
#define sphere_narcm (sphere && !archimedean)
|
||||
|
||||
#define AS3 (archimedean?arcm::current.N : S3)
|
||||
|
||||
#define a4 (S3 == 4)
|
||||
#define a45 (S3 == 4 && S7 == 5)
|
||||
#define a46 (S3 == 4 && S7 == 6)
|
||||
@ -138,13 +136,14 @@ void addMessage(string s, char spamtype = 0);
|
||||
#define PURE (variation == eVariation::pure)
|
||||
#define BITRUNCATED (variation == eVariation::bitruncated)
|
||||
#define DUAL (variation == eVariation::dual)
|
||||
#define DUALMUL (DUAL ? 2 : 1)
|
||||
|
||||
#define CHANGED_VARIATION (variation != ginf[geometry].default_variation)
|
||||
|
||||
#define STDVAR (PURE || BITRUNCATED)
|
||||
#define NONSTDVAR (!STDVAR)
|
||||
|
||||
#define VALENCE (BITRUNCATED ? 3 : AS3)
|
||||
#define VALENCE (BITRUNCATED ? 3 : archimedean ? arcm::valence() : S3)
|
||||
|
||||
#define NUMWITCH 7
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user