diff --git a/achievement.cpp b/achievement.cpp index 242db3ea..f83f6a07 100644 --- a/achievement.cpp +++ b/achievement.cpp @@ -166,7 +166,7 @@ EX void achievement_gain_once(const string& s, char flags IS(0)) { namespace rg { char check(bool b, char val = special_geometry) { return b ? val : fail; } - }; + } EX char specgeom_zebra() { return rg::check(geometry == gZebraQuotient && !disksize && BITRUNCATED && firstland == laDesert); } EX char specgeom_lovasz() { return rg::check(geometry == gKleinQuartic && variation == eVariation::untruncated && gp::param == gp::loc(1,1) && !disksize && in_lovasz()); } diff --git a/system.cpp b/system.cpp index 4b5ff5e8..6ffb1e9a 100644 --- a/system.cpp +++ b/system.cpp @@ -446,7 +446,7 @@ EX namespace scores { /** \brief the amount of boxes reserved for each hr::score item */ #define MAXBOX 500 /** \brief currently used boxes in hr::score */ -#define POSSCORE 410 +#define POSSCORE 412 /** \brief a struct to keep local score from an earlier game */ struct score { /** \brief version used */ @@ -598,17 +598,19 @@ EX void applyBoxes() { for(int i=0; i<43; i++) { if(loading) kills[i] = 0; - bool fake = (i == moREMOVED || i == moLesserM || i == moTentacletail); if(i == moWormtail) applyBoxM(moCrystalSage); else if(i == moWormwait) applyBoxM(moFireFairy); else if(i == moTentacleEscaping) applyBoxM(moMiner); + else if(i == moREMOVED) applyBoxI(itFatigue); else if(i == moGolemMoved) applyBoxM(moIllusion); + else if(i == moTentacletail) applyBoxI(itSnake); else if(i == moTentaclewait) applyBoxOrb(itOrbThorns); else if(i == moGreater) applyBoxOrb(itOrbDragon); else if(i == moGreaterM) applyBoxOrb(itOrbIllusion); + else if(i == moLesserM) applyBoxM(moFriendlyGhost); else if(i == moWolfMoved) applyBoxM(moWorldTurtle); else if(i == moNone) applyBoxNum(kills[i], "icewalls melted"); - else applyBoxM(eMonster(i), fake); + else applyBoxM(eMonster(i)); } if(saving) { @@ -949,6 +951,9 @@ EX void applyBoxes() { applyBoxOrb(itOrbFish); list_invorb(); + applyBoxNum(items[itCrossbow]); + applyBoxNum(items[itRevolver]); + if(POSSCORE != boxid) printf("ERROR: %d boxes\n", boxid); if(isize(invorb)) { println(hlog, "ERROR: Orbs not taken into account"); exit(1); } }