mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	removed thematic -- could not make it cool
This commit is contained in:
		| @@ -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))) ; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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; | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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))  | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								content.cpp
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								content.cpp
									
									
									
									
									
								
							| @@ -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)) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								help.cpp
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								help.cpp
									
									
									
									
									
								
							| @@ -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; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								landgen.cpp
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								landgen.cpp
									
									
									
									
									
								
							| @@ -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) | ||||||
|   | |||||||
							
								
								
									
										140
									
								
								landlock.cpp
									
									
									
									
									
								
							
							
						
						
									
										140
									
								
								landlock.cpp
									
									
									
									
									
								
							| @@ -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 | ||||||
|   | |||||||
| @@ -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; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue