mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	Fix #145: add a shading cheat
This commit is contained in:
		| @@ -96,6 +96,7 @@ EX colortable westwall_colors = { 0x211F6F, 0x413F8F }; | |||||||
| EX colortable endorian_colors = { 0x202010, 0x404030, 0x0000D0 }; | 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 }; | ||||||
|  | EX colortable haunted_cheat_colors = { 0x609F60, 0xC0FFC0, 0x003F00 }; | ||||||
|  |  | ||||||
| /** 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) { | ||||||
| @@ -105,7 +106,8 @@ EX colortable* special_colortable_for(cell *c) { | |||||||
|   if(c->land == laWestWall) return &westwall_colors; |   if(c->land == laWestWall) return &westwall_colors; | ||||||
|   if(c->land == laEndorian && !c->wall) return &endorian_colors; |   if(c->land == laEndorian && !c->wall) return &endorian_colors; | ||||||
|   if(c->land == laEndorian && c->wall == waCanopy) return &canopy_colors; |   if(c->land == laEndorian && c->wall == waCanopy) return &canopy_colors; | ||||||
|   if(c->land == laCamelot && camelotcheat) return &camelot_cheat_colors; |   if(c->land == laCamelot && (camelotcheat || shadingcheat)) return &camelot_cheat_colors; | ||||||
|  |   if(isHaunted(c->land) && shadingcheat) return &haunted_cheat_colors; | ||||||
|   return nullptr; |   return nullptr; | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -275,6 +277,8 @@ void celldrawer::setcolors() { | |||||||
|     case laCaribbean:  |     case laCaribbean:  | ||||||
|       if(c->wall != waCIsland && c->wall != waCIsland2) |       if(c->wall != waCIsland && c->wall != waCIsland2) | ||||||
|         fcol = floorcolors[c->land]; |         fcol = floorcolors[c->land]; | ||||||
|  |       else if(shadingcheat) | ||||||
|  |         fcol = celldistAlt(c) % 2 ? winf[waCIsland].color : winf[waCIsland2].color; | ||||||
|       break; |       break; | ||||||
|  |  | ||||||
|     case laReptile: |     case laReptile: | ||||||
| @@ -429,11 +433,10 @@ void celldrawer::setcolors() { | |||||||
|       int d = ((eubinary||c->master->alt) ? celldistAltRelative(c) : 0); |       int d = ((eubinary||c->master->alt) ? celldistAltRelative(c) : 0); | ||||||
|   #if CAP_TOUR |   #if CAP_TOUR | ||||||
|       if(!tour::on) camelotcheat = false; |       if(!tour::on) camelotcheat = false; | ||||||
|       if(camelotcheat)  |  | ||||||
|         fcol = get_color_auto3(d, camelot_cheat_colors); |  | ||||||
|       else  |  | ||||||
|   #endif |   #endif | ||||||
|       if(d < 0) { |       if(camelotcheat || shadingcheat) | ||||||
|  |         fcol = get_color_auto3(d, camelot_cheat_colors); | ||||||
|  |       else if(d < 0) { | ||||||
|         fcol = floorcolors[c->land]; |         fcol = floorcolors[c->land]; | ||||||
|         } |         } | ||||||
|       else { |       else { | ||||||
| @@ -512,6 +515,11 @@ void celldrawer::setcolors() { | |||||||
|         if(c->wall == waSmallTree) wcol = 0x608000; |         if(c->wall == waSmallTree) wcol = 0x608000; | ||||||
|         }   |         }   | ||||||
|       if(isHaunted(c->land)) { |       if(isHaunted(c->land)) { | ||||||
|  |         if(shadingcheat) { | ||||||
|  |           int d = getHauntedDepth(c); | ||||||
|  |           if(d == 0) fcol = haunted_cheat_colors[2]; | ||||||
|  |           else fcol = get_color_auto3(d, haunted_cheat_colors, 1); | ||||||
|  |         } else { | ||||||
|           int itcolor = 0; |           int itcolor = 0; | ||||||
|           for(int i=0; i<c->type; i++) if(c->move(i) && c->move(i)->item) |           for(int i=0; i<c->type; i++) if(c->move(i) && c->move(i)->item) | ||||||
|             itcolor = 1; |             itcolor = 1; | ||||||
| @@ -523,6 +531,7 @@ void celldrawer::setcolors() { | |||||||
|  |  | ||||||
|           if(c->monst == moFriendlyGhost) |           if(c->monst == moFriendlyGhost) | ||||||
|             fcol = gradient(fcol, fghostcolor(c), 0, .5, 1); |             fcol = gradient(fcol, fghostcolor(c), 0, .5, 1); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         if (!higher_contrast) { |         if (!higher_contrast) { | ||||||
|           if(c->wall == waSmallTree) wcol = 0x004000; |           if(c->wall == waSmallTree) wcol = 0x004000; | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ | |||||||
| namespace hr { | namespace hr { | ||||||
|  |  | ||||||
| EX bool camelotcheat; | EX bool camelotcheat; | ||||||
|  | EX bool shadingcheat; | ||||||
|  |  | ||||||
| EX colortable minecolors = { | EX colortable minecolors = { | ||||||
|   0xFFFFFF, 0xF0, 0xF060, 0xF00000,  |   0xFFFFFF, 0xF0, 0xF060, 0xF00000,  | ||||||
|   | |||||||
| @@ -3342,6 +3342,9 @@ EX namespace mapeditor { | |||||||
|       } |       } | ||||||
|     else dialog::addBreak(100); |     else dialog::addBreak(100); | ||||||
|  |  | ||||||
|  |     dialog::addBoolItem_action(XLAT("shading cheat"), shadingcheat, 'h'); | ||||||
|  |     dialog::addInfo(XLAT("(useful in Camelot, Caribbean, and Haunted Woods)")); | ||||||
|  |  | ||||||
|     dialog::addBoolItem_action(XLAT("simple pattern generation"), reptilecheat, 'p'); |     dialog::addBoolItem_action(XLAT("simple pattern generation"), reptilecheat, 'p'); | ||||||
|     dialog::addInfo(XLAT("(e.g. pure Reptile pattern)")); |     dialog::addInfo(XLAT("(e.g. pure Reptile pattern)")); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -409,6 +409,7 @@ EX void initgame() { | |||||||
|     if(!autocheat && !cheater && geometry == gNormal) patterns::whichShape = 0; |     if(!autocheat && !cheater && geometry == gNormal) patterns::whichShape = 0; | ||||||
|     hauntedWarning = false; |     hauntedWarning = false; | ||||||
|     if(!autocheat) { |     if(!autocheat) { | ||||||
|  |       shadingcheat = false; | ||||||
|       timerghost = true; |       timerghost = true; | ||||||
|       gen_wandering = true; |       gen_wandering = true; | ||||||
|       } |       } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Joseph C. Sible
					Joseph C. Sible