1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-08-28 08:22:18 +00:00

removed thematic -- could not make it cool

This commit is contained in:
Zeno Rogue 2025-07-09 09:42:38 +02:00
parent 48dd34baaf
commit 69840c6716
12 changed files with 9 additions and 272 deletions

View File

@ -1566,7 +1566,6 @@ EX int wallchance(cell *c, bool deepOcean) {
l == laCrossroads4 ? 5000 : l == laCrossroads4 ? 5000 :
l == laCrossroads6 ? 5000 : l == laCrossroads6 ? 5000 :
l == laMasterCrossroads ? 10000 : l == laMasterCrossroads ? 10000 :
isThematic(l) ? 10000 :
(l == laMirror && !yendor::generating) ? 2500 : (l == laMirror && !yendor::generating) ? 2500 :
tactic::on ? 0 : tactic::on ? 0 :
racing::on ? 0 : racing::on ? 0 :
@ -1767,9 +1766,6 @@ EX void build_walls(cell *c, cell *from) {
return; return;
} }
if(specialland == laThematic && good_for_wall(c) && hrand(10000) < 5000)
buildBarrierNowall(c, getNewThematic(c->land));
if(specialland == laMasterCrossroads && c->land == laMasterCrossroads && good_for_wall(c) && hrand(10000) < 100) if(specialland == laMasterCrossroads && c->land == laMasterCrossroads && good_for_wall(c) && hrand(10000) < 100)
buildBarrierNowall(c, laCrossroads4); buildBarrierNowall(c, laCrossroads4);
@ -1847,9 +1843,6 @@ EX void build_walls(cell *c, cell *from) {
return; return;
} }
else if(good_for_wall(c) && ls::any_wall() && isThematic(c->land) && hrand(10000) < 1500 && !c->master->alt && !racing::on &&
buildBarrierNowall(c, getNewThematic(c->land))) ;
else if(good_for_wall(c) && ls::any_wall() && c->land == laCrossroads4 && hrand(10000) < 7000 && c->land && !c->master->alt && !tactic::on && !racing::on && else if(good_for_wall(c) && ls::any_wall() && c->land == laCrossroads4 && hrand(10000) < 7000 && c->land && !c->master->alt && !tactic::on && !racing::on &&
buildBarrierNowall(c, getNewLand(laCrossroads4))) ; buildBarrierNowall(c, getNewLand(laCrossroads4))) ;

View File

@ -97,11 +97,6 @@ EX colortable endorian_colors = { 0x202010, 0x404030, 0x0000D0 };
EX colortable canopy_colors = { 0x60C060, 0x489048 }; EX colortable canopy_colors = { 0x60C060, 0x489048 };
EX colortable camelot_cheat_colors = { 0x606060, 0xC0C0C0 }; EX colortable camelot_cheat_colors = { 0x606060, 0xC0C0C0 };
bool thembound(cell *c) {
forCellEx(c1, c) if(c1->land != c->land && c1->land != laBarrier) return true;
return false;
}
/** return the special colortable for the given cell -- color menu uses this to know that a colortable should be edited */ /** return the special colortable for the given cell -- color menu uses this to know that a colortable should be edited */
EX colortable* special_colortable_for(cell *c) { EX colortable* special_colortable_for(cell *c) {
if(c->land == laPrairie && prairie::isriver(c)) return &prairie_colors; if(c->land == laPrairie && prairie::isriver(c)) return &prairie_colors;
@ -197,9 +192,6 @@ void celldrawer::setcolors() {
case laAlchemist: case laFrog: case laCursed: case laDice: case laAlchemist: case laFrog: case laCursed: case laDice:
fcol = floorcolors[c->land]; break; fcol = floorcolors[c->land]; break;
case laThematic: case laThematicNature: case laThematicUrban: case laThematicDeath: case laThematicAbstract: case laThematicWater: case laThematicEarth: case laThematicHeat:
fcol = floorcolors[laThematic]; break;
case laCA: case laCA:
fcol = floorcolors[c->land]; fcol = floorcolors[c->land];
if(geosupport_chessboard()) { if(geosupport_chessboard()) {
@ -1241,61 +1233,6 @@ void celldrawer::set_land_floor(const shiftmatrix& Vf) {
queuepoly(Vf * ddspin(c, i, M_PI/S7) * xpush(cgi.rhexf), cgi.shSwitchDisk, darkena(minf[active_switch()].color, fd, 0xFF)); queuepoly(Vf * ddspin(c, i, M_PI/S7) * xpush(cgi.rhexf), cgi.shSwitchDisk, darkena(minf[active_switch()].color, fd, 0xFF));
break; break;
case laThematicNature:
if(c->wall == waNone) {
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
queuepolyat(Vf, cgi.shTreeIcon, darkena(linf[laThematicNature].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
}
break;
case laThematicUrban:
if(c->wall == waNone) {
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
queuepolyat(Vf, cgi.shHumanoid, darkena(linf[laThematicUrban].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
}
break;
case laThematicEarth:
if(c->wall == waNone) {
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
queuepolyat(Vf, cgi.shLightningBolt, darkena(linf[laThematicEarth].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
}
break;
case laThematicWater:
if(c->wall == waNone) {
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
queuepolyat(Vf, cgi.shSmallPike, darkena(linf[laThematicWater].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
}
break;
case laThematicAbstract:
if(c->wall == waNone) {
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
queuepolyat(Vf, cgi.shDodeca, darkena(linf[laThematicAbstract].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
}
break;
case laThematicDeath:
if(c->wall == waNone) {
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
queuepolyat(Vf, cgi.shMiniGhost, darkena(linf[laThematicDeath].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
}
break;
case laThematicHeat:
if(c->wall == waNone) {
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
float h = HEAT(c);
color_t col;
if(h < -1) col = 0xFF;
else if(h < 0) col = gradient(0xFFFFFF, 0xFF, 0, h, -1);
else if(h < 1) col = gradient(0xFFFFFF, 0xFFFF00, 0, h, 1);
else col = 0xFFFF00;
queuepolyat(Vf, cgi.shGem[0], darkena(col, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
}
break;
case laStorms: case laStorms:
set_floor(cgi.shChargedFloor); set_floor(cgi.shChargedFloor);
break; break;

View File

@ -420,9 +420,6 @@ const char *ruindesc =
const char *rock_description = const char *rock_description =
"Shoot the Space Rocks for score. Large Rocks will split into two smaller rocks."; "Shoot the Space Rocks for score. Large Rocks will split into two smaller rocks.";
const char *thematic_crossroads =
"The Thematic Crossroads has various sections that connect to lands with specific theme.";
#if HDR #if HDR
enum eSlimegroup { sgNone, sgCave, sgWater, sgFloorA, sgFloorB, sgVine, sgTree }; enum eSlimegroup { sgNone, sgCave, sgWater, sgFloorA, sgFloorB, sgVine, sgTree };
#endif #endif

View File

@ -2064,7 +2064,6 @@ EX namespace heat {
EX double absheat(cell *c) { EX double absheat(cell *c) {
if(c->land == laCocytus) return HEAT(c) -.6; if(c->land == laCocytus) return HEAT(c) -.6;
if(c->land == laIce || c->land == laBlizzard || c->land == laEclectic) return HEAT(c) -.4; if(c->land == laIce || c->land == laBlizzard || c->land == laEclectic) return HEAT(c) -.4;
if(c->land == laThematicHeat) return HEAT(c) - 0.2;
return 0; return 0;
} }
@ -2168,8 +2167,6 @@ EX namespace heat {
hmod += xrate*.1; hmod += xrate*.1;
if(ct->land == laVolcano) if(ct->land == laVolcano)
hmod += xrate * (ct->wall == waMagma ? .4 : .2); hmod += xrate * (ct->wall == waMagma ? .4 : .2);
else if(c->land == laThematicHeat && !isThematic(ct->land) && !isIcyLand(ct->land) && ct->land != laBarrier)
hmod += xrate * .3;
} }
for(cell* ct: ls) { for(cell* ct: ls) {
@ -2218,7 +2215,7 @@ EX namespace heat {
addMessage(XLAT("%The1 melts away!", c->monst)); addMessage(XLAT("%The1 melts away!", c->monst));
fallMonster(c); fallMonster(c);
} }
if(c->wall == waIcewall && HEAT(c) > (c->land == laThematicHeat ? .2 : .4)) if(c->wall == waIcewall && HEAT(c) > .4)
drawParticles(c, MELTCOLOR, 4, 60), drawParticles(c, MELTCOLOR, 4, 60),
c->wall = waNone, kills[0]++; c->wall = waNone, kills[0]++;
if(c->wall == waFrozenLake && HEAT(c) > (c->land == laCocytus ? .6 : .4)) if(c->wall == waFrozenLake && HEAT(c) > (c->land == laCocytus ? .6 : .4))

View File

@ -1754,30 +1754,6 @@ LAND( 0x7030A0, "Crossroads VI", laCrossroads6, ZERO, itHyperstone, RESERVED, "A
NATIVE(0) NATIVE(0)
REQ(ITEMS(itCursed, 5)) REQ(ITEMS(itCursed, 5))
LAND( 0xFF0060, "Crossroads VII", laThematic, ZERO, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0x308030, "Crossroads VII (Nature)", laThematicNature, ZERO, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0x60C0C0, "Crossroads VII (Urban)", laThematicUrban, ZERO, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0x606060, "Crossroads VII (Death)", laThematicDeath, ZERO, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0xC060C0, "Crossroads VII (Abstract)", laThematicAbstract, ZERO, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0x6060C0, "Crossroads VII (Water)", laThematicWater, ZERO, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0x1030F0, "Crossroads VII (Fire/Ice)", laThematicHeat, LF_ICY, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0xFFFF00, "Crossroads VII (Earth/Air)", laThematicEarth, ZERO, itHyperstone, RESERVED, thematic_crossroads)
NATIVE(0) REQ(GOLD(R400))
LAND( 0xC0B090, "Master Crossroads", laMasterCrossroads, ZERO, itHyperstone, RESERVED, "A crossroads that connects only to other crossroads.") LAND( 0xC0B090, "Master Crossroads", laMasterCrossroads, ZERO, itHyperstone, RESERVED, "A crossroads that connects only to other crossroads.")
NATIVE(0) REQ(GOLD(R500)) NATIVE(0) REQ(GOLD(R500))

View File

@ -855,13 +855,6 @@ EX string generateHelpForLand(eLand l) {
} }
#endif #endif
if(isThematic(l)) {
s += XLAT("\n\nThe following lands connect to this part: ");
int qty = 0;
for(eLand l1: land_over) if(isLandIngame(l1) && which_thematic(l1) == l) { if(qty) s += ", "; qty++; s += XLATN(linf[l1].name); }
}
return s; return s;
} }

View File

@ -166,10 +166,8 @@
[92] */music/hr3-laboratory.ogg [92] */music/hr3-laboratory.ogg
# Crossroads VI # Crossroads VI
[93] */music/hr3-crossroads.ogg [93] */music/hr3-crossroads.ogg
# Crossroads VII
[94] */music/hr3-crossroads.ogg
# Master Crossroads # Master Crossroads
[:2] */music/hr3-crossroads.ogg [94] */music/hr3-crossroads.ogg
# None [00] (used when the window is out of focus) # None [00] (used when the window is out of focus)

View File

@ -2521,27 +2521,13 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
case laCrossroads5: case laCrossroads5:
case laCrossroads6: case laCrossroads6:
case laMasterCrossroads: case laMasterCrossroads:
case laThematic: case laThematicNature: case laThematicUrban: case laThematicDeath: case laThematicAbstract: case laThematicWater: case laThematicEarth: case laThematicHeat:
if(c->wall == waTower) c->land = laCamelot; if(c->wall == waTower) c->land = laCamelot;
ONEMPTY { ONEMPTY {
if(isThematic(c->land) && hrand(100) < 10) switch(c->land) {
case laThematicNature: c->wall = pick(waSmallTree, waBigTree); break;
case laThematicUrban: c->wall = pick(waRuinWall, waPalace); break;
case laThematicDeath: c->wall = pick(waAncientGrave, waFreshGrave); break;
case laThematicAbstract: c->wall = pick(waFloorA, waFloorB, waTrapdoor); break;
case laThematicWater: { c->wall = waShallow; forCellCM(c1, c) if(c1->land == c->land) c1->wall = waShallow; } break;
case laThematicEarth: c->wall = waStone; break;
case laThematicHeat: c->wall = pick(waBonfireOff, waIcewall); break;
default: ;
}
int them_abstract = c->land == laThematicAbstract ? 3 : isThematic(c->land) ? 0 : 1;
if(!BITRUNCATED && c->land == laCrossroads5 && hrand(100) < 60) if(!BITRUNCATED && c->land == laCrossroads5 && hrand(100) < 60)
c->wall = waBarrier; c->wall = waBarrier;
else if(!inv::on && items[itShard] >= 10 && hrand(8000) < 120*orbcrossfun(items[itShard]) && mirror::build(c)) ; else if(!inv::on && items[itShard] >= 10 && hrand(8000) < 120*orbcrossfun(items[itShard]) && mirror::build(c)) ;
else if(hyperstonesUnlocked() && !racing::on && hrand(8000) < 100 * them_abstract && mirror::build(c)) ; else if(hyperstonesUnlocked() && !racing::on && hrand(8000) < 100 && mirror::build(c)) ;
else if(tactic::on && isCrossroads(specialland) && hrand(8000) < 120 * them_abstract && mirror::build(c)) ; else if(tactic::on && isCrossroads(specialland) && hrand(8000) < 120 && mirror::build(c)) ;
else if(c->land == laCrossroads4 && hrand(24000) < 10 && tactic::on) else if(c->land == laCrossroads4 && hrand(24000) < 10 && tactic::on)
c->wall = waRose; c->wall = waRose;
else { else {
@ -2877,7 +2863,7 @@ EX void repairLandgen(cell *c) {
if(c->land == laAlchemist && c->wall != waFloorA && c->wall != waFloorB) if(c->land == laAlchemist && c->wall != waFloorA && c->wall != waFloorB)
c->wall = waFloorA; c->wall = waFloorA;
if(c->wall == waIcewall && !among(c->land, laIce, laCocytus, laBlizzard, laEclectic, laThematicHeat)) if(c->wall == waIcewall && !among(c->land, laIce, laCocytus, laBlizzard, laEclectic))
c->wall = waNone; c->wall = waNone;
if(c->wall == waRed3 && c->land != laRedRock && c->land != laSnakeNest && c->land != laBrownian && c->land != laEclectic) if(c->wall == waRed3 && c->land != laRedRock && c->land != laSnakeNest && c->land != laBrownian && c->land != laEclectic)

View File

@ -53,7 +53,7 @@ EX int landMultiplier(eLand l) {
} }
EX bool isCrossroads(eLand l) { EX bool isCrossroads(eLand l) {
return among(l, laCrossroads, laCrossroads2, laCrossroads3, laCrossroads4, laCrossroads5, laCrossroads6, laMasterCrossroads) || isThematic(l); return among(l, laCrossroads, laCrossroads2, laCrossroads3, laCrossroads4, laCrossroads5, laCrossroads6, laMasterCrossroads);
} }
EX bool isCrossroadsNM(eLand l) { EX bool isCrossroadsNM(eLand l) {
@ -61,7 +61,7 @@ EX bool isCrossroadsNM(eLand l) {
} }
EX bool bearsCamelot(eLand l) { EX bool bearsCamelot(eLand l) {
return isCrossroads(l) && !among(l, laCrossroads2, laCrossroads5, laMasterCrossroads) && (l == laThematicUrban || !isThematic(l)); return isCrossroads(l) && !among(l, laCrossroads2, laCrossroads5, laMasterCrossroads);
} }
EX bool inmirror(const cellwalker& cw) { EX bool inmirror(const cellwalker& cw) {
@ -339,8 +339,6 @@ EX bool voronoi_sea_incompatible(eLand l1, eLand l2) {
EX bool incompatible1(eLand l1, eLand l2) { EX bool incompatible1(eLand l1, eLand l2) {
if(l1 == laMasterCrossroads && !isCrossroads(l2)) return true; if(l1 == laMasterCrossroads && !isCrossroads(l2)) return true;
if(isThematic(l1) && which_thematic(l2) != l1) return true;
if(isCrossroadsNM(l1) && isCrossroadsNM(l2)) return true; if(isCrossroadsNM(l1) && isCrossroadsNM(l2)) return true;
if(l1 == laJungle && l2 == laMotion) return true; if(l1 == laJungle && l2 == laMotion) return true;
if(l1 == laMirrorOld && l2 == laMotion) return true; if(l1 == laMirrorOld && l2 == laMotion) return true;
@ -463,14 +461,6 @@ EX bool all_unlocked = false;
EX vector<eLand> cheatdest_list; EX vector<eLand> cheatdest_list;
EX eLand getNewThematic(eLand l) {
for(int it=0; it<100; it++) {
eLand l1 = pick(laThematicNature, laThematicUrban, laThematicDeath, laThematicAbstract, laThematicHeat, laThematicWater, laThematicEarth);
if(l1 != l) return l1;
}
return l;
}
EX eLand getNewLand(eLand old) { EX eLand getNewLand(eLand old) {
#if CAP_LEGACY #if CAP_LEGACY
@ -583,8 +573,7 @@ EX eLand getNewLand(eLand old) {
laDeadCaves, laRedRock, laVariant, laHell, laCocytus, laPower, laDeadCaves, laRedRock, laVariant, laHell, laCocytus, laPower,
laBull, laTerracotta, laRose, laGraveyard, laHive, laDragon, laTrollheim, laBull, laTerracotta, laRose, laGraveyard, laHive, laDragon, laTrollheim,
laWet, laFrog, laEclectic, laCursed, laDice, laWet, laFrog, laEclectic, laCursed, laDice,
laCrossroads5, laCrossroads6, laMasterCrossroads, laCrossroads5, laCrossroads6, laMasterCrossroads
laThematicNature, laThematicUrban, laThematicDeath, laThematicAbstract, laThematicHeat, laThematicWater, laThematicEarth
}) })
if(landUnlocked(l)) tab[cnt++] = l; if(landUnlocked(l)) tab[cnt++] = l;
@ -755,132 +744,11 @@ EX vector<eLand> land_over = {
laPrairie, laBull, laTerracotta, laRose, laPrairie, laBull, laTerracotta, laRose,
laElementalWall, laTrollheim, laElementalWall, laTrollheim,
laHell, laCrossroads3, laCocytus, laPower, laCrossroads4, laHell, laCrossroads3, laCocytus, laPower, laCrossroads4,
laCrossroads5, laCrossroads6, laMasterCrossroads, laThematic, laCrossroads5, laCrossroads6, laMasterCrossroads,
// EXTRA // EXTRA
laWildWest, laHalloween, laDual, laSnakeNest, laMagnetic, laCA, laAsteroids laWildWest, laHalloween, laDual, laSnakeNest, laMagnetic, laCA, laAsteroids
}; };
EX bool isThematic(eLand l) {
return among(l, laThematic, laThematicNature, laThematicUrban, laThematicDeath, laThematicAbstract, laThematicHeat, laThematicWater, laThematicEarth);
}
EX eLand which_thematic(eLand l) {
// note: even if some lands are not directly accessible from Thematic, they still affect orb generation in it
switch(l) {
case laJungle:
case laEndorian:
case laWineyard:
case laOvergrown:
case laFrog:
case laRose:
case laDryForest:
case laPrairie:
case laBull:
case laMountain: // not via crossroads
case laClearing: // not via crossroads
case laTortoise: // not via crossroads
return laThematicNature;
case laAlchemist:
case laMotion:
case laMirror:
case laMirrorOld:
case laMinefield:
case laSwitch:
case laReptile:
case laZebra:
case laDice:
case laWestWall:
case laHalloween: // not standard
case laDual: // not standard
return laThematicAbstract;
case laIvoryTower:
case laPalace:
case laDungeon:
case laRuins:
case laEclectic:
case laRlyeh:
case laVariant:
case laMasterCrossroads:
case laCamelot: // in
case laTemple: // not via crossroads
case laPrincessQuest: // not via crossroads
case laWildWest: // not standard
return laThematicUrban;
case laHunting:
case laGraveyard:
case laBurial:
case laCursed:
case laDeadCaves:
case laTerracotta:
case laHive:
case laHaunted: case laHauntedWall: case laHauntedBorder: // not via crossroads
return laThematicDeath;
case laIce:
case laVolcano:
case laDragon:
case laHell:
case laCocytus:
case laPower:
case laBlizzard:
case laEFire:
return laThematicHeat;
case laNone:
case laBarrier:
case laOceanWall:
case laCA:
case laCanvas:
case laElementalWall:
case laMercuryRiver:
case laMirrorWall:
case laMirrorWall2:
case laMirrored:
case laMirrored2:
case laMemory:
case landtypes:
return laNone;
case laCrossroads:
case laCrossroads2:
case laCrossroads3:
case laCrossroads4:
case laCrossroads5:
case laCrossroads6:
case laThematic:
case laThematicAbstract:
case laThematicNature:
case laThematicUrban:
case laThematicDeath:
case laThematicHeat:
case laThematicWater:
case laThematicEarth:
case laMagnetic:
case laAsteroids:
return laThematic;
case laOcean:
case laDocks:
case laWet:
case laWarpCoast: case laWarpSea:
case laLivefjord:
case laKraken: // not direct
case laCaribbean: // not direct
case laBrownian: // not direct
case laWhirlpool: // not direct
case laEWater:
return laThematicWater;
case laRedRock:
case laDesert:
case laCaves:
case laStorms:
case laWhirlwind:
case laEmerald:
case laEEarth:
case laEAir:
case laTrollheim:
case laSnakeNest: // not standard
return laThematicEarth;
}
return laThematic;
}
EX vector<eLand> landlist; EX vector<eLand> landlist;
#if HDR #if HDR

View File

@ -600,12 +600,6 @@ EX void placeCrossroadOrbs(cell *c) {
int gch = oi.gchance; int gch = oi.gchance;
if(!inv::on) gch /= orbcrossfun(treas); else gch /= 2; if(!inv::on) gch /= orbcrossfun(treas); else gch /= 2;
if(isThematic(c->land)) {
bool local = which_thematic(oi.l) == c->land;
if(!local) continue;
mul *= 7;
}
if(hrand(gch) >= mul) continue; if(hrand(gch) >= mul) continue;
if(hrand(50+items[itHyperstone]) >= 50) continue; if(hrand(50+items[itHyperstone]) >= 50) continue;

View File

@ -32,7 +32,6 @@ EX eLand getCurrentLandForMusic() {
if(isHaunted(id)) id = laHaunted; if(isHaunted(id)) id = laHaunted;
if(id == laWarpSea) id = laWarpCoast; if(id == laWarpSea) id = laWarpCoast;
if(id == laMercuryRiver) id = laTerracotta; if(id == laMercuryRiver) id = laTerracotta;
if(isThematic(id)) id = laThematic;
return id; return id;
} }

View File

@ -241,7 +241,6 @@ EX void initgame() {
splitrocks = 0; splitrocks = 0;
if(firstland == laElementalWall) cwt.at->land = randomElementalLand(); if(firstland == laElementalWall) cwt.at->land = randomElementalLand();
if(firstland == laThematic) cwt.at->land = getNewThematic(firstland);
resetview(); resetview();
createMov(cwt.at, 0); createMov(cwt.at, 0);