1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2026-05-21 13:32:07 +00:00

item/monster/wall/land types done with X-macros; flags given too

This commit is contained in:
Zeno Rogue
2019-03-23 16:26:53 +01:00
parent f3e0ae4904
commit 02a174b3ca
7 changed files with 299 additions and 2131 deletions
+6 -143
View File
@@ -236,114 +236,13 @@ int isNative(eLand l, eMonster m) {
case laMagnetic:
return isMagneticPole(m) ? 2 : 0;
case landtypes: return 0;
}
return false;
}
eItem treasureType(eLand l) {
switch(l) {
case laBrownian:
return itBrownian;
case laIce: return itDiamond;
case laJungle: return itRuby;
case laCaves: return itGold;
case laDesert: return itSpice;
case laAlchemist: return itElixir;
case laMirror: case laMirrored: case laMirrorWall: case laMirrorWall2: case laMirrored2:
case laMirrorOld:
return itShard;
case laMotion: return itFeather;
case laGraveyard: return itBone;
case laRlyeh: return itStatue;
case laDryForest: return itFernFlower;
case laHell: return itHell;
case laCocytus: return itSapphire;
case laCrossroads: return itHyperstone;
case laCrossroads2: return itHyperstone;
case laCrossroads3: return itHyperstone;
case laCrossroads4: return itHyperstone;
case laCrossroads5: return itHyperstone;
case laNone: return itNone;
case laBarrier: return itNone;
case laOceanWall: return itNone;
case laCanvas: return itNone;
case laMemory: return itNone;
case laEmerald: return itEmerald;
case laWineyard: return itWine;
case laHive: return itRoyalJelly;
case laDeadCaves: return itSilver;
case laPower: return itPower;
case laCamelot: return itHolyGrail;
case laTemple: return itGrimoire;
case laCaribbean: return itPirate;
case laRedRock: return itRedGem;
case laMinefield: return itBombEgg;
case laOcean: return itCoast;
case laWhirlpool: return itWhirlpool;
case laPalace: return itPalace;
case laLivefjord: return itFjord;
case laIvoryTower: return itIvory;
case laZebra: return itZebra;
case laEAir: case laEEarth: case laEWater: case laEFire:
case laElementalWall: return itElemental;
case laPrincessQuest: return itSavedPrincess;
case laStorms: return itFulgurite;
case laOvergrown: return itMutant;
case laWildWest: return itBounty;
case laHalloween: return itTreat;
case laClearing: return itMutant2;
case laHaunted: case laHauntedWall: case laHauntedBorder: return itLotus;
case laWhirlwind: return itWindstone;
case laRose: return itRose;
case laWarpCoast: case laWarpSea: return itCoral;
case laDragon: return itDragon;
case laEndorian: return itApple;
case laTortoise: return itBabyTortoise;
case laTrollheim: return itTrollEgg;
case laKraken: return itKraken;
case laBurial: return itBarrow;
case laDungeon: return itSlime;
case laMountain: return itAmethyst;
case laReptile: return itDodeca;
case laBull: return itBull;
case laPrairie: return itGreenGrass;
case laVolcano: return itLavaLily;
case laTerracotta: case laMercuryRiver: return itTerra;
case laBlizzard: return itBlizzard;
case laHunting: return itHunting;
case laDual: return itGlowCrystal;
case laSnakeNest: return itSnake;
case laDocks: return itDock;
case laRuins: return itRuins;
case laSwitch: return itSwitch;
case laMagnetic: return itMagnet;
case laVariant: return itVarTreasure;
case laWestWall: return itWest;
case laCA: return itNone;
}
return itNone;
}
eItem treasureType(eLand l) { return linf[l].treasure; }
eItem treasureTypeUnlock(eLand l, eItem u) {
if(u != itOrbLove && l == laPrincessQuest)
@@ -356,38 +255,11 @@ eLand landof(eItem it) {
return laNone;
}
bool isSealand(eLand l) {
return l == laOcean || l == laCaribbean || l == laWhirlpool || l == laLivefjord ||
l == laOceanWall || l == laWarpSea || l == laKraken || l == laDocks;
}
bool isCoastal(eLand l) {
return l == laWarpSea || l == laWarpCoast || l == laLivefjord || l == laOcean;
}
bool isPureSealand(eLand l) {
return l == laCaribbean || l == laKraken || l == laBrownian;
}
bool isElemental(eLand l) {
return l == laEAir || l == laEWater || l == laEEarth || l == laEFire ||
l == laElementalWall;
}
bool isHaunted(eLand l) {
return l == laHaunted || l == laHauntedBorder || l == laHauntedWall;
}
int landMultiplier(eLand l) {
if(l == laCamelot || l == laPrincessQuest) return 10;
return 1;
}
bool isTrollLand(eLand l) {
return l == laCaves || l == laStorms || l == laOvergrown ||
l == laDeadCaves || l == laLivefjord || l == laRedRock;
}
bool isCrossroads(eLand l) {
return l == laCrossroads || l == laCrossroads2 || l == laCrossroads3 ||
l == laCrossroads4 || l == laCrossroads5;
@@ -397,18 +269,6 @@ bool bearsCamelot(eLand l) {
return isCrossroads(l) && l != laCrossroads2 && l != laCrossroads5;
}
bool inmirror(eLand l) {
return l == laMirrored || l == laMirrorWall2 || l == laMirrored2;
}
bool inmirrororwall(eLand l) {
return l == laMirrored || l == laMirrorWall2 || l == laMirrored2 || l == laMirrorWall;
}
bool inmirror(cell *c) {
return inmirror(c->land);
}
bool inmirror(const cellwalker& cw) {
return inmirror(cw.at->land);
}
@@ -601,6 +461,9 @@ bool landUnlocked(eLand l) {
case laMagnetic:
return false; // not implemented
case landtypes:
return false;
}
return false;
}