mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-22 23:17:04 +00:00
Steam rich presence
This commit is contained in:
parent
9d0d0fb182
commit
2ec37a4a6d
@ -834,6 +834,61 @@ EX void achievement_victory(bool hyper) {
|
|||||||
/** call the achievement callbacks */
|
/** call the achievement callbacks */
|
||||||
EX void achievement_pump();
|
EX void achievement_pump();
|
||||||
|
|
||||||
|
EX string get_rich_presence_text() {
|
||||||
|
|
||||||
|
#if CAP_DAILY
|
||||||
|
if(daily::on)
|
||||||
|
return "Strange Challenge #" + its(daily::daily_id) + ", score " + its(gold());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(tour::on)
|
||||||
|
return "Guided Tour";
|
||||||
|
|
||||||
|
string res;
|
||||||
|
if(geometry != gNormal || !BITRUNCATED)
|
||||||
|
res = res + full_geometry_name() + " ";
|
||||||
|
|
||||||
|
if(chaosmode) res += "chaos ";
|
||||||
|
if(shmup::on) res += "shmup ";
|
||||||
|
if(dual::state) res += "dual ";
|
||||||
|
if(randomPatternsMode) res += "random ";
|
||||||
|
if(inv::on) res += "OSM ";
|
||||||
|
if(multi::players > 1) res += "multi ";
|
||||||
|
|
||||||
|
if(cheater || among(cwt.at->land, laCanvas, laCA))
|
||||||
|
return res + "(?)";
|
||||||
|
|
||||||
|
if(yendor::on) {
|
||||||
|
res += "Yendor Challenge: " + yendor::name(yendor::challenge);
|
||||||
|
if(items[itOrbYendor]) res += " (level " + its(items[itOrbYendor]) + ")";
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(peace::on) return res + "peaceful";
|
||||||
|
|
||||||
|
if(tactic::on)
|
||||||
|
return res + "PTM: " + linf[specialland].name + " $" + its(gold());
|
||||||
|
|
||||||
|
if(princess::challenge) return res + "Princess Challenge";
|
||||||
|
|
||||||
|
if(racing::on) {
|
||||||
|
using namespace racing;
|
||||||
|
res = res + "racing in " + linf[specialland].name;
|
||||||
|
|
||||||
|
for(int i=0; i<multi::players; i++) {
|
||||||
|
if(race_finish_tick[i])
|
||||||
|
res += racetimeformat(race_finish_tick[i] - race_start_tick);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
res += linf[cwt.at->land].name;
|
||||||
|
res += ", " + its(gold()) + " $$$";
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef HAVE_ACHIEVEMENTS
|
#ifndef HAVE_ACHIEVEMENTS
|
||||||
void achievement_pump() {}
|
void achievement_pump() {}
|
||||||
#endif
|
#endif
|
||||||
|
20
geom-exp.cpp
20
geom-exp.cpp
@ -504,6 +504,17 @@ EX void select_quotient() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX string full_geometry_name() {
|
||||||
|
string qstring = ginf[geometry].quotient_name;
|
||||||
|
bool variable =
|
||||||
|
!(prod || hybri || bt::in() || WDIM == 3 || kite::in() || arb::in());
|
||||||
|
|
||||||
|
string fgname = XLAT(ginf[geometry].tiling_name);
|
||||||
|
if(qstring != "none") fgname += " " + XLAT(qstring);
|
||||||
|
if(variable) fgname = gp::operation_name() + " " + fgname;
|
||||||
|
return fgname;
|
||||||
|
}
|
||||||
|
|
||||||
EX void showEuclideanMenu() {
|
EX void showEuclideanMenu() {
|
||||||
// for(int i=2; i<lt; i++) landvisited[i] = true;
|
// for(int i=2; i<lt; i++) landvisited[i] = true;
|
||||||
|
|
||||||
@ -662,8 +673,6 @@ EX void showEuclideanMenu() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool variable = false;
|
|
||||||
|
|
||||||
if(prod) {
|
if(prod) {
|
||||||
dialog::addSelItem(XLAT("Z-level height factor"), fts(vid.plevel_factor), 'Z');
|
dialog::addSelItem(XLAT("Z-level height factor"), fts(vid.plevel_factor), 'Z');
|
||||||
dialog::add_action([] {
|
dialog::add_action([] {
|
||||||
@ -689,7 +698,6 @@ EX void showEuclideanMenu() {
|
|||||||
}
|
}
|
||||||
else if(WDIM == 3 || kite::in() || arb::in()) dialog::addBreak(100);
|
else if(WDIM == 3 || kite::in() || arb::in()) dialog::addBreak(100);
|
||||||
else {
|
else {
|
||||||
variable = true;
|
|
||||||
dialog::addSelItem(XLAT("variations"), gp::operation_name(), 'v');
|
dialog::addSelItem(XLAT("variations"), gp::operation_name(), 'v');
|
||||||
dialog::add_action([] {
|
dialog::add_action([] {
|
||||||
if(0) ;
|
if(0) ;
|
||||||
@ -799,11 +807,7 @@ EX void showEuclideanMenu() {
|
|||||||
|
|
||||||
dialog::addBreak(150);
|
dialog::addBreak(150);
|
||||||
|
|
||||||
string fgname = XLAT(ginf[geometry].tiling_name);
|
dialog::addTitle(XLAT("info about: %1", full_geometry_name()), 0xFFFFFF, 150);
|
||||||
if(qstring != "none") fgname += " " + XLAT(qstring);
|
|
||||||
if(variable) fgname = gp::operation_name() + " " + fgname;
|
|
||||||
|
|
||||||
dialog::addTitle(XLAT("info about: %1", fgname), 0xFFFFFF, 150);
|
|
||||||
|
|
||||||
if(WDIM == 2 && !arb::in() && !kite::in()) dialog::addSelItem(XLAT("faces per vertex"), spf, 0);
|
if(WDIM == 2 && !arb::in() && !kite::in()) dialog::addSelItem(XLAT("faces per vertex"), spf, 0);
|
||||||
|
|
||||||
|
39
yendor.cpp
39
yendor.cpp
@ -147,7 +147,6 @@ EX namespace yendor {
|
|||||||
return laNone;
|
return laNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
string name;
|
|
||||||
eLand first, second, last;
|
eLand first, second, last;
|
||||||
|
|
||||||
#if HDR
|
#if HDR
|
||||||
@ -654,6 +653,27 @@ EX namespace yendor {
|
|||||||
return c - 'A' + 1 + 26;
|
return c - 'A' + 1 + 26;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX string name(int i) {
|
||||||
|
yendorlevel& ylev(levels[i]);
|
||||||
|
|
||||||
|
string s = XLATT1(ylev.l);
|
||||||
|
if(!euclid) {
|
||||||
|
if(ylev.flags & YF_CHAOS) { s = "Chaos mode"; }
|
||||||
|
if(ylev.flags & YF_NEAR_IVY) { s += "+"; s += XLATT1(laJungle); }
|
||||||
|
if(ylev.flags & YF_NEAR_FJORD) { s += "+"; s += XLATT1(laLivefjord); }
|
||||||
|
if(ylev.flags & YF_NEAR_TENT) { s += "+"; s += XLATT1(laRlyeh); }
|
||||||
|
if(ylev.flags & YF_NEAR_ELEM) { s += "+"; s += XLATT1(laElementalWall); }
|
||||||
|
if(ylev.flags & YF_NEAR_OVER) { s += "+"; s += XLATT1(laOvergrown); }
|
||||||
|
if(ylev.flags & YF_NEAR_RED) { s += "+"; s += XLATT1(laRedRock); }
|
||||||
|
if(ylev.flags & YF_START_AL) { s += "+"; s += XLATT1(laAlchemist); }
|
||||||
|
if(ylev.flags & YF_DEAD) { s += "+"; s += XLATT1(itGreenStone); }
|
||||||
|
if(ylev.flags & YF_RECALL) { s += "+"; s += XLATT1(itOrbRecall); }
|
||||||
|
}
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EX void showMenu() {
|
EX void showMenu() {
|
||||||
set_priority_board(LB_YENDOR_CHALLENGE);
|
set_priority_board(LB_YENDOR_CHALLENGE);
|
||||||
@ -663,24 +683,9 @@ EX namespace yendor {
|
|||||||
|
|
||||||
for(int i=1; i<YENDORLEVELS; i++) {
|
for(int i=1; i<YENDORLEVELS; i++) {
|
||||||
string s;
|
string s;
|
||||||
yendorlevel& ylev(levels[i]);
|
|
||||||
|
|
||||||
if(autocheat || levelUnlocked(i)) {
|
if(autocheat || levelUnlocked(i)) {
|
||||||
|
s = name(i);
|
||||||
s = XLATT1(ylev.l);
|
|
||||||
|
|
||||||
if(!euclid) {
|
|
||||||
if(ylev.flags & YF_CHAOS) { s = "Chaos mode"; }
|
|
||||||
if(ylev.flags & YF_NEAR_IVY) { s += "+"; s += XLATT1(laJungle); }
|
|
||||||
if(ylev.flags & YF_NEAR_FJORD) { s += "+"; s += XLATT1(laLivefjord); }
|
|
||||||
if(ylev.flags & YF_NEAR_TENT) { s += "+"; s += XLATT1(laRlyeh); }
|
|
||||||
if(ylev.flags & YF_NEAR_ELEM) { s += "+"; s += XLATT1(laElementalWall); }
|
|
||||||
if(ylev.flags & YF_NEAR_OVER) { s += "+"; s += XLATT1(laOvergrown); }
|
|
||||||
if(ylev.flags & YF_NEAR_RED) { s += "+"; s += XLATT1(laRedRock); }
|
|
||||||
if(ylev.flags & YF_START_AL) { s += "+"; s += XLATT1(laAlchemist); }
|
|
||||||
if(ylev.flags & YF_DEAD) { s += "+"; s += XLATT1(itGreenStone); }
|
|
||||||
if(ylev.flags & YF_RECALL) { s += "+"; s += XLATT1(itOrbRecall); }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
Loading…
Reference in New Issue
Block a user