mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 17:10:36 +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)]);
|
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 masterless among(geometry, gEuclid, gEuclidSquare, gTorus)
|
||||||
#define sphere_narcm (sphere && !archimedean)
|
#define sphere_narcm (sphere && !archimedean)
|
||||||
|
|
||||||
#define AS3 (archimedean?arcm::current.N : S3)
|
|
||||||
|
|
||||||
#define a4 (S3 == 4)
|
#define a4 (S3 == 4)
|
||||||
#define a45 (S3 == 4 && S7 == 5)
|
#define a45 (S3 == 4 && S7 == 5)
|
||||||
#define a46 (S3 == 4 && S7 == 6)
|
#define a46 (S3 == 4 && S7 == 6)
|
||||||
@ -138,13 +136,14 @@ void addMessage(string s, char spamtype = 0);
|
|||||||
#define PURE (variation == eVariation::pure)
|
#define PURE (variation == eVariation::pure)
|
||||||
#define BITRUNCATED (variation == eVariation::bitruncated)
|
#define BITRUNCATED (variation == eVariation::bitruncated)
|
||||||
#define DUAL (variation == eVariation::dual)
|
#define DUAL (variation == eVariation::dual)
|
||||||
|
#define DUALMUL (DUAL ? 2 : 1)
|
||||||
|
|
||||||
#define CHANGED_VARIATION (variation != ginf[geometry].default_variation)
|
#define CHANGED_VARIATION (variation != ginf[geometry].default_variation)
|
||||||
|
|
||||||
#define STDVAR (PURE || BITRUNCATED)
|
#define STDVAR (PURE || BITRUNCATED)
|
||||||
#define NONSTDVAR (!STDVAR)
|
#define NONSTDVAR (!STDVAR)
|
||||||
|
|
||||||
#define VALENCE (BITRUNCATED ? 3 : AS3)
|
#define VALENCE (BITRUNCATED ? 3 : archimedean ? arcm::valence() : S3)
|
||||||
|
|
||||||
#define NUMWITCH 7
|
#define NUMWITCH 7
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user