mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-23 21:07:17 +00:00
some work on daily
This commit is contained in:
parent
586101e0d6
commit
7e0a78f7bb
@ -93,6 +93,8 @@ bool inv::activating;
|
||||
|
||||
#if CAP_DAILY
|
||||
#include "private/daily.cpp"
|
||||
#else
|
||||
namespace daily { bool on; }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
6
hyper.h
6
hyper.h
@ -378,6 +378,7 @@ namespace rg {
|
||||
static const char randpattern = 'r';
|
||||
static const char princess = 'p';
|
||||
static const char daily = 'd';
|
||||
static const char daily_off = 'D';
|
||||
|
||||
// wrongmode only -- marks 'global' achievements not related to the current mode
|
||||
static const char global = 'x';
|
||||
@ -1047,7 +1048,7 @@ extern bool safety;
|
||||
|
||||
#define SAGEMELT .1
|
||||
#define TEMPLE_EACH 6
|
||||
#define PT(x, y) ((tactic::on || quotient == 2) ? (y) : inv::on ? min(2*(y),x) : (x))
|
||||
#define PT(x, y) ((tactic::on || quotient == 2 || daily::on) ? (y) : inv::on ? min(2*(y),x) : (x))
|
||||
#define ROCKSNAKELENGTH 50
|
||||
#define WORMLENGTH 15
|
||||
#define PUREHARDCORE_LEVEL 10
|
||||
@ -3277,6 +3278,9 @@ namespace daily {
|
||||
void setup();
|
||||
void split();
|
||||
void gifts();
|
||||
void turnoff();
|
||||
void showMenu();
|
||||
int find_daily_lbid(int id);
|
||||
}
|
||||
|
||||
enum eOrbLandRelation {
|
||||
|
16
menus.cpp
16
menus.cpp
@ -460,6 +460,9 @@ void showChangeMode() {
|
||||
dialog::addBoolItem(XLAT("Yendor Challenge"), (yendor::on), 'y');
|
||||
dialog::addBoolItem(XLAT("%1 Challenge", moPrincess), (princess::challenge), 'P');
|
||||
dialog::addBoolItem(XLAT("random pattern mode"), (randomPatternsMode), 'r');
|
||||
#if CAP_DAILY
|
||||
dialog::addBoolItem(XLAT("Strange Challenge"), (randomPatternsMode), 'z');
|
||||
#endif
|
||||
|
||||
dialog::addBreak(50);
|
||||
// cheating and map editor
|
||||
@ -480,6 +483,11 @@ void showChangeMode() {
|
||||
|
||||
if(xuni == 'v' || sym == SDLK_ESCAPE) popScreen();
|
||||
|
||||
#if CAP_DAILY
|
||||
else if(uni == 'z')
|
||||
pushScreen(daily::showMenu);
|
||||
#endif
|
||||
|
||||
else if(uni == 'c') {
|
||||
if(tactic::on && gold()) {
|
||||
addMessage(XLAT("Not available in the pure tactics mode!"));
|
||||
@ -799,7 +807,13 @@ void showStartMenu() {
|
||||
|
||||
void setAppropriateOverview() {
|
||||
clearMessages();
|
||||
if(viewdists)
|
||||
if(daily::on) {
|
||||
#if CAP_DAILY
|
||||
achievement_final(false);
|
||||
pushScreen(daily::showMenu);
|
||||
#endif
|
||||
}
|
||||
else if(viewdists)
|
||||
runGeometryExperiments();
|
||||
else if(tactic::on)
|
||||
pushScreen(tactic::showMenu);
|
||||
|
@ -379,6 +379,7 @@ eLand getPrizeLand(cell *c = cwt.c) {
|
||||
|
||||
void placePrizeOrb(cell *c) {
|
||||
if(peace::on) return;
|
||||
if(daily::on) return;
|
||||
|
||||
eLand l = getPrizeLand(c);
|
||||
|
||||
@ -437,6 +438,7 @@ void placeLocalOrbs(cell *c) {
|
||||
if(isGravityLand(l) && cellEdgeUnstable(c)) return;
|
||||
if(isElemental(l)) l = laElementalWall;
|
||||
if(peace::on) return;
|
||||
if(daily::on) return;
|
||||
|
||||
for(int i=0; i<ORBLINES; i++) {
|
||||
const orbinfo& oi(orbinfos[i]);
|
||||
@ -471,7 +473,7 @@ void placeLocalOrbs(cell *c) {
|
||||
}
|
||||
|
||||
void placeLocalSpecial(cell *c, int outof, int loc=1, int priz=1) {
|
||||
if(peace::on || safety) return;
|
||||
if(peace::on || safety || daily::on) return;
|
||||
int i = hrand(outof);
|
||||
if(i < loc && items[treasureType(c->land)] >= treasureForLocal() && !inv::on)
|
||||
c->item = nativeOrbType(c->land);
|
||||
@ -481,6 +483,7 @@ void placeLocalSpecial(cell *c, int outof, int loc=1, int priz=1) {
|
||||
|
||||
void placeCrossroadOrbs(cell *c) {
|
||||
if(peace::on) return;
|
||||
if(daily::on) return;
|
||||
for(int i=0; i<ORBLINES; i++) {
|
||||
const orbinfo& oi(orbinfos[i]);
|
||||
if(!(oi.flags & orbgenflags::CROSS10)) continue;
|
||||
|
9
quit.cpp
9
quit.cpp
@ -513,9 +513,16 @@ int counthints() {
|
||||
void showMissionScreen() {
|
||||
cancel(); cancel = noaction;
|
||||
popScreenAll();
|
||||
pushScreen(showMission);
|
||||
achievement_final(false);
|
||||
|
||||
if(daily::on) {
|
||||
#if CAP_DAILY
|
||||
pushScreen(daily::showMenu);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
pushScreen(showMission);
|
||||
|
||||
#if CAP_TOUR
|
||||
if(!tour::on)
|
||||
#endif
|
||||
|
@ -69,7 +69,7 @@ void welcomeMessage() {
|
||||
addMessage(XLAT("Welcome to HyperRogue!"));
|
||||
}
|
||||
|
||||
if(do_use_special_land() || firstland != laIce) {
|
||||
if(do_use_special_land() || firstland != laIce) if(!daily::on) {
|
||||
auto lv = land_validity(specialland);
|
||||
if(lv.flags & lv::display_error_message)
|
||||
addMessage(XLAT(lv.msg));
|
||||
@ -759,6 +759,7 @@ void saveStats(bool emergency = false) {
|
||||
if(tour::on) return;
|
||||
#endif
|
||||
if(randomPatternsMode) return;
|
||||
if(daily::on) return;
|
||||
if(peace::on) return;
|
||||
if(!gold()) return;
|
||||
|
||||
@ -1191,6 +1192,8 @@ void restartGame(char switchWhat, bool push, bool keep_screens) {
|
||||
#if CAP_DAILY
|
||||
if(switchWhat == rg::daily)
|
||||
daily::setup();
|
||||
if(switchWhat == rg::daily_off)
|
||||
daily::turnoff();
|
||||
#endif
|
||||
if(switchWhat == rg::princess) {
|
||||
princess::challenge = !princess::challenge;
|
||||
|
Loading…
Reference in New Issue
Block a user