mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-30 13:32:59 +00:00 
			
		
		
		
	preparing for daily
This commit is contained in:
		| @@ -90,6 +90,9 @@ bool wrongMode(char flags) { | ||||
|   if((geometry != gNormal) != (flags == rg::geometry)) return true; | ||||
|    | ||||
|   if(shmup::on != (flags == rg::shmup)) return true; | ||||
| #if CAP_DAILY | ||||
|   if(daily::on != (flags == rg::daily)) return true; | ||||
| #endif | ||||
|   if(randomPatternsMode) return true; | ||||
|   if(yendor::on) return true; | ||||
|   if(peace::on) return true; | ||||
| @@ -598,6 +601,9 @@ void achievement_final(bool really_final) { | ||||
|   if(chaosmode) specials++; | ||||
|   if(nonbitrunc) specials++; | ||||
|   if(gp::on) specials++; | ||||
|   #if CAP_DALIY | ||||
|   if(daily::on) return; | ||||
|   #endif | ||||
|   if(inv::on) specials++; | ||||
|   if(specials > 1) return; | ||||
|    | ||||
|   | ||||
							
								
								
									
										4
									
								
								cell.cpp
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								cell.cpp
									
									
									
									
									
								
							| @@ -608,8 +608,8 @@ struct hrmap_quotient : hrmap { | ||||
|       } | ||||
|      | ||||
|     int TOT = connections.size() / S7; | ||||
|     printf("heptagons = %d\n", TOT); | ||||
|     printf("all cells = %d\n", TOT*(S7+S3)/S3); | ||||
|     // printf("heptagons = %d\n", TOT); | ||||
|     // printf("all cells = %d\n", TOT*(S7+S3)/S3); | ||||
|     if(!TOT) exit(1); | ||||
|     allh.resize(TOT); | ||||
|     for(int i=0; i<TOT; i++) allh[i] = new heptagon; | ||||
|   | ||||
							
								
								
									
										31
									
								
								hyper.h
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								hyper.h
									
									
									
									
									
								
							| @@ -378,6 +378,7 @@ namespace rg { | ||||
|   static const char shmup = 's'; | ||||
|   static const char randpattern = 'r'; | ||||
|   static const char princess = 'p'; | ||||
|   static const char daily = 'd'; | ||||
|    | ||||
|   // wrongmode only -- marks 'global' achievements not related to the current mode | ||||
|   static const char global = 'x';  | ||||
| @@ -3269,3 +3270,33 @@ extern int mutantphase; | ||||
| void resize_screen_to(int x, int y); | ||||
| extern bool canvas_invisible; | ||||
| extern cell *pd_from; | ||||
|  | ||||
| namespace daily { | ||||
|   extern bool on; | ||||
|   extern int daily_id; | ||||
|   void setup(); | ||||
|   void split(); | ||||
|   void gifts(); | ||||
|   } | ||||
|  | ||||
| enum eOrbLandRelation {  | ||||
|   olrForbidden, // never appears: forbidden | ||||
|   olrDangerous, // never appears: would be dangerous | ||||
|   olrUseless,   // never appears: useless here | ||||
|   olrNoPrizes,  // no prizes in this land | ||||
|   olrNoPrizeOrb,// orb not allowed as a prize | ||||
|   olrPrize25,   // prize for collecting 25 | ||||
|   olrPrize3,    // prize for collecting 3 | ||||
|   olrNative,    // native orb in this land | ||||
|   olrNative1,   // native orb in this land (1) | ||||
|   olrGuest,     // extra orb in this land | ||||
|   olrPNative,   // Land of Power: native | ||||
|   olrPBasic,    // Land of Power: basic orbs | ||||
|   olrPPrized,   // Land of Power: prized orbs | ||||
|   olrPNever,    // Land of Power: foreign orbs | ||||
|   olrHub,       // hub lands | ||||
|   olrMonster,   // available from a monster | ||||
|   olrAlways,    // always available | ||||
|   olrBurns      // burns | ||||
|   }; | ||||
|  | ||||
|   | ||||
| @@ -337,6 +337,10 @@ namespace inv { | ||||
|     gainOrbs(itMagnet, itOrbMagnetism); | ||||
|     gainOrbs(itRuins, itOrbSlaying); | ||||
|  | ||||
| #if CAP_DAILY     | ||||
|     daily::gifts(); | ||||
| #endif | ||||
|  | ||||
|     if(items[itOrbLove] && !items[itSavedPrincess]) items[itSavedPrincess] = 1; | ||||
|      | ||||
|     int& r = remaining[itGreenStone]; | ||||
|   | ||||
							
								
								
									
										14
									
								
								landgen.cpp
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								landgen.cpp
									
									
									
									
									
								
							| @@ -2333,10 +2333,16 @@ void setdist(cell *c, int d, cell *from) { | ||||
|     if(c->land == laWhirlpool && !tactic::on && !yendor::on) setland(c, laOcean); | ||||
|     if(c->land == laCamelot && !tactic::on) setland(c, laCrossroads); | ||||
|  | ||||
|     if(sphere || torus) setLandSphere(c); | ||||
|     else if(euclid) setLandEuclid(c); | ||||
|     if(weirdhyperbolic) setLandWeird(c); | ||||
|     if(quotient) { setland(c, specialland); setLandQuotient(c); } | ||||
| #if CAP_DAILY | ||||
|     if(!daily::on) { | ||||
| #else | ||||
|     if(true) { | ||||
| #endif | ||||
|       if(sphere || torus) setLandSphere(c); | ||||
|       else if(euclid) setLandEuclid(c); | ||||
|       if(weirdhyperbolic) setLandWeird(c); | ||||
|       if(quotient) { setland(c, specialland); setLandQuotient(c); } | ||||
|       } | ||||
|      | ||||
|     // if(chaosmode) setland(c, getCLand(c)); | ||||
|     } | ||||
|   | ||||
							
								
								
									
										10
									
								
								menus.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								menus.cpp
									
									
									
									
									
								
							| @@ -574,13 +574,13 @@ bool showHalloween() { | ||||
|   return false; | ||||
|   } | ||||
|  | ||||
| int daily; | ||||
| int daily_mode; | ||||
|  | ||||
| void showStartMenu() { | ||||
|   if(!daily) { | ||||
|     daily = hrand(10) + 1; | ||||
|   if(!daily_mode) { | ||||
|     daily_mode = hrand(10) + 1; | ||||
|     if(showHalloween()) | ||||
|       daily = 20; | ||||
|       daily_mode = 20; | ||||
|     } | ||||
|    | ||||
|   gamescreen(2); | ||||
| @@ -608,7 +608,7 @@ void showStartMenu() { | ||||
|   dialog::addInfo(XLAT("learn about hyperbolic geometry!")); | ||||
| #endif | ||||
|  | ||||
|   switch(daily) {  | ||||
|   switch(daily_mode) {  | ||||
|     case 1: | ||||
|       #if CAP_SHMUP_GOOD | ||||
|         dialog::addBreak(100); | ||||
|   | ||||
							
								
								
									
										21
									
								
								orbgen.cpp
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								orbgen.cpp
									
									
									
									
									
								
							| @@ -141,27 +141,6 @@ const orbinfo& getNativityOrbInfo(eItem orb) { | ||||
|   return oi; | ||||
|   } | ||||
|  | ||||
| enum eOrbLandRelation {  | ||||
|   olrForbidden, // never appears: forbidden | ||||
|   olrDangerous, // never appears: would be dangerous | ||||
|   olrUseless,   // never appears: useless here | ||||
|   olrNoPrizes,  // no prizes in this land | ||||
|   olrNoPrizeOrb,// orb not allowed as a prize | ||||
|   olrPrize25,   // prize for collecting 25 | ||||
|   olrPrize3,    // prize for collecting 3 | ||||
|   olrNative,    // native orb in this land | ||||
|   olrNative1,   // native orb in this land (1) | ||||
|   olrGuest,     // extra orb in this land | ||||
|   olrPNative,   // Land of Power: native | ||||
|   olrPBasic,    // Land of Power: basic orbs | ||||
|   olrPPrized,   // Land of Power: prized orbs | ||||
|   olrPNever,    // Land of Power: foreign orbs | ||||
|   olrHub,       // hub lands | ||||
|   olrMonster,   // available from a monster | ||||
|   olrAlways,    // always available | ||||
|   olrBurns      // burns | ||||
|   }; | ||||
|  | ||||
| string olrDescriptions[] = { | ||||
|   "forbidden to find in %the1", | ||||
|   "too dangerous to use in %the1", | ||||
|   | ||||
| @@ -181,6 +181,10 @@ void initgame() { | ||||
|  | ||||
|   if(shmup::on) shmup::init(); | ||||
|    | ||||
|   #if CAP_DAILY | ||||
|   daily::split(); | ||||
|   #endif | ||||
|    | ||||
|   // extern int sightrange; sightrange = 9; | ||||
|   // cwt.c->land = laHell; items[itHell] = 10; | ||||
|   for(int i=BARLEV; i>=7 - getDistLimit() - genrange_bonus; i--) { | ||||
| @@ -1184,6 +1188,8 @@ void restartGame(char switchWhat, bool push, bool keep_screens) { | ||||
|     inv::on = false; | ||||
|     princess::challenge = false; | ||||
|     } | ||||
|   if(switchWhat == rg::daily) | ||||
|     daily::setup(); | ||||
|   if(switchWhat == rg::princess) { | ||||
|     princess::challenge = !princess::challenge; | ||||
|     firstland = princess::challenge ? laPalace : laIce; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue