mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-11 18:00:34 +00:00
removed junk files
This commit is contained in:
parent
1c99cd647e
commit
6924a0985d
75
certify.cpp
75
certify.cpp
@ -1,75 +0,0 @@
|
||||
// PRIVATE
|
||||
|
||||
namespace anticheat {
|
||||
|
||||
bool tampered;
|
||||
|
||||
void save(FILE *f) {
|
||||
int cert = 0x1234;
|
||||
for(int i=0; i<boxid; i++)
|
||||
cert = 3 * cert + (761349061 + 1463190*i) * savebox[i];
|
||||
if(!tampered) fprintf(f, " C %d\n", cert);
|
||||
}
|
||||
|
||||
bool load(FILE *f, score& sc, string ver) {
|
||||
int cert = 0x1234;
|
||||
for(int i=0; i<boxid; i++)
|
||||
cert = 3 * cert + (761349061 + 1463190*i) * sc.box[i];
|
||||
char cr;
|
||||
int scert;
|
||||
int err = fscanf(f, "%c%d", &cr, &scert);
|
||||
if(err != 2) return true;
|
||||
// if(cr == 'C' && cert == scert) printf("Certificate OK\n");
|
||||
return cert != scert;
|
||||
}
|
||||
|
||||
int vcertify(string ver, string ss, int a, int b, int c, int d) {
|
||||
ss = ver + ss;
|
||||
const char *s = ss.c_str();
|
||||
if(tampered) return -1;
|
||||
int cert = 0x5678;
|
||||
while(*s) cert = cert * 37113 + (*s), s++;
|
||||
cert = cert + a * 681491 + b * 681390411 + c * 581911 + d * 16406101;
|
||||
return cert;
|
||||
}
|
||||
|
||||
int certify(string ss, int a, int b, int c, int d) {
|
||||
return vcertify(VER, ss, a, b, c, d);
|
||||
}
|
||||
|
||||
int check(int cv, const string& ver, const string& s, int a, int b, int c, int d) {
|
||||
if(ver < "8.0f" && cv == d) return true;
|
||||
return cv == vcertify(ver, s, a, b, c, d);
|
||||
}
|
||||
|
||||
void nextid(int& tid, const string& ver, int cert) {
|
||||
if(ver >= "8.0i") tid += 1 + cert + cert * cert / 7;
|
||||
else tid++;
|
||||
}
|
||||
|
||||
// 8.0i: ver included in achievements
|
||||
// 8.0f: fixed in Windows
|
||||
}
|
||||
|
||||
#ifndef MOBILE
|
||||
void SDL_Delay_anticheat(int i) {
|
||||
saveBox();
|
||||
int i0 = 0; savebox[1] = savebox[65] = anticheat::tampered; // do not consider Timer
|
||||
for(int t=0; t<boxid; t++)
|
||||
i0 = 73 * i0 + savebox[t] + savebox[t] * (savebox[t] + 7103);
|
||||
for(int t=0; t<boxid; t++) savebox[t] = 0;
|
||||
SDL_Delay(i);
|
||||
|
||||
saveBox();
|
||||
int i1 = 0; savebox[1] = savebox[65] = anticheat::tampered; // do not consider Timer
|
||||
for(int t=0; t<boxid; t++)
|
||||
i1 = 73 * i1 + savebox[t] + savebox[t] * (savebox[t] + 7103);
|
||||
|
||||
if(i0 != i1) {
|
||||
anticheat::tampered = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#define SDL_Delay SDL_Delay_anticheat
|
||||
|
386
google-games.cpp
386
google-games.cpp
@ -1,386 +0,0 @@
|
||||
// PRIVATE
|
||||
|
||||
void viewAchievements();
|
||||
void viewLeaderboard(string id);
|
||||
void switchGoogleConnection();
|
||||
|
||||
namespace leader {
|
||||
|
||||
bool currentlyConnecting();
|
||||
bool currentlyConnected();
|
||||
|
||||
string leaderboardIDs[NUMLEADER] = {
|
||||
"CgkIspzRq_8NEAIQAg",
|
||||
"CgkIspzRq_8NEAIQKg",
|
||||
"CgkIspzRq_8NEAIQLA",
|
||||
"CgkIspzRq_8NEAIQKw",
|
||||
"CgkIspzRq_8NEAIQLQ",
|
||||
|
||||
"CgkIspzRq_8NEAIQMA",
|
||||
"CgkIspzRq_8NEAIQLg",
|
||||
"CgkIspzRq_8NEAIQNQ",
|
||||
"CgkIspzRq_8NEAIQNg",
|
||||
"CgkIspzRq_8NEAIQMg",
|
||||
|
||||
"CgkIspzRq_8NEAIQLw",
|
||||
"CgkIspzRq_8NEAIQOA",
|
||||
"CgkIspzRq_8NEAIQOg",
|
||||
"CgkIspzRq_8NEAIQPA",
|
||||
"CgkIspzRq_8NEAIQOw",
|
||||
|
||||
"CgkIspzRq_8NEAIQPg", // 15
|
||||
"CgkIspzRq_8NEAIQPQ",
|
||||
"CgkIspzRq_8NEAIQUA",
|
||||
"CgkIspzRq_8NEAIQMw",
|
||||
"CgkIspzRq_8NEAIQUQ",
|
||||
|
||||
"CgkIspzRq_8NEAIQVA", // 20
|
||||
"CgkIspzRq_8NEAIQUw",
|
||||
"CgkIspzRq_8NEAIQVQ",
|
||||
"CgkIspzRq_8NEAIQUg",
|
||||
"CgkIspzRq_8NEAIQcQ", // Grimories
|
||||
"CgkIspzRq_8NEAIQcg", // 25 Holy Grails
|
||||
|
||||
"CgkIspzRq_8NEAIQdA", // 26 Red Gems
|
||||
"CgkIspzRq_8NEAIQcw", // 27 Pirate Treasures
|
||||
|
||||
"CgkIspzRq_8NEAIQ4QE", // 28 Shmup mode
|
||||
|
||||
"CgkIspzRq_8NEAIQ4gE", // 29 Shmup time to win
|
||||
"CgkIspzRq_8NEAIQ4wE", // 30 Shmup knives to win
|
||||
|
||||
"CgkIspzRq_8NEAIQigE", // 31 bombeggs
|
||||
"CgkIspzRq_8NEAIQiwE", // 32 ambers
|
||||
"CgkIspzRq_8NEAIQjAE", // 33 pearls
|
||||
"CgkIspzRq_8NEAIQjQE", // 34 hyperrugs
|
||||
"CgkIspzRq_8NEAIQjgE", // 35 garnets
|
||||
|
||||
"CgkIspzRq_8NEAIQ5gE", // 36 princess challenge
|
||||
|
||||
"CgkIspzRq_8NEAIQnAE", // 37 Ivory Figurines
|
||||
"CgkIspzRq_8NEAIQmgE", // 38 Elemental Gems
|
||||
"CgkIspzRq_8NEAIQmwE", // 39 Onyxes
|
||||
|
||||
|
||||
"CgkIspzRq_8NEAIQwAE", // 40 Yendor Challenge
|
||||
"CgkIspzRq_8NEAIQ5AE", // 41 Pure Tactics Mode
|
||||
|
||||
"CgkIspzRq_8NEAIQpgE", // 42 Mutant Saplings
|
||||
"CgkIspzRq_8NEAIQpQE", // 43 Fulgurites
|
||||
|
||||
"", // 44
|
||||
"", // 45
|
||||
"CgkIspzRq_8NEAIQswE", // 46 Black Lotuses
|
||||
"CgkIspzRq_8NEAIQsgE", // 47 Mutant Fruits
|
||||
"CgkIspzRq_8NEAIQsQE", // 48 White Dove
|
||||
|
||||
"CgkIspzRq_8NEAIQ5QE", // 49 PTM shmup
|
||||
"", // 50
|
||||
|
||||
|
||||
"CgkIspzRq_8NEAIQtQE", // 51 Corals
|
||||
"CgkIspzRq_8NEAIQtgE", // 52 Thornless Roses
|
||||
"CgkIspzRq_8NEAIQtwE", // 53 Chaos Mode
|
||||
|
||||
"CgkIspzRq_8NEAIQwwE", // 54 Tortoise Points
|
||||
"CgkIspzRq_8NEAIQwgE", // 55 Dragon Scales
|
||||
"CgkIspzRq_8NEAIQwQE", // 56 Apples
|
||||
"CgkIspzRq_8NEAIQ4AE", // 57 Heptagonal mode
|
||||
"CgkIspzRq_8NEAIQ3gE", // 58 Sunken treasures
|
||||
"CgkIspzRq_8NEAIQ3QE", // 59 Ancient Jewelry
|
||||
"CgkIspzRq_8NEAIQ3wE", // 60 Golden Eggs
|
||||
|
||||
"", // 61 multiplayer
|
||||
"", // 62 statistics
|
||||
|
||||
"CgkIspzRq_8NEAIQ6gE", // 63 Halloween
|
||||
|
||||
"CgkIspzRq_8NEAIQ9AE", // 64 Amethyst
|
||||
"CgkIspzRq_8NEAIQ9QE", // 65 Slime Molds
|
||||
"CgkIspzRq_8NEAIQ9gE", // 66 Dodecahedra
|
||||
|
||||
"CgkIspzRq_8NEAIQ_gE", // 67 Green Grass
|
||||
"CgkIspzRq_8NEAIQ_QE", // 68 Spinels
|
||||
};
|
||||
|
||||
const char* achievementIDs[] = {
|
||||
"DIAMOND2", "CgkIspzRq_8NEAIQAw",
|
||||
"SPICE2", "CgkIspzRq_8NEAIQBA",
|
||||
"GOLD2", "CgkIspzRq_8NEAIQBQ",
|
||||
"RUBY2", "CgkIspzRq_8NEAIQCQ",
|
||||
"MIRROR2", "CgkIspzRq_8NEAIQBw",
|
||||
"FEATHER2", "CgkIspzRq_8NEAIQDA",
|
||||
"ELIXIR2", "CgkIspzRq_8NEAIQDQ",
|
||||
"STATUE2", "CgkIspzRq_8NEAIQBg",
|
||||
"FERN2", "CgkIspzRq_8NEAIQDg",
|
||||
"TOTEM2", "CgkIspzRq_8NEAIQCA",
|
||||
"DAISY2", "CgkIspzRq_8NEAIQCw",
|
||||
"SAPPHIRE2", "CgkIspzRq_8NEAIQDw",
|
||||
"HYPER2", "CgkIspzRq_8NEAIQCg",
|
||||
"DIAMOND3", "CgkIspzRq_8NEAIQEA",
|
||||
"SPICE3", "CgkIspzRq_8NEAIQEQ",
|
||||
"GOLD3", "CgkIspzRq_8NEAIQEg",
|
||||
"RUBY3", "CgkIspzRq_8NEAIQEw",
|
||||
"MIRROR3", "CgkIspzRq_8NEAIQFA",
|
||||
"FEATHER3", "CgkIspzRq_8NEAIQFQ",
|
||||
"ELIXIR3", "CgkIspzRq_8NEAIQFg",
|
||||
"STATUE3", "CgkIspzRq_8NEAIQFw",
|
||||
"FERN3", "CgkIspzRq_8NEAIQGA",
|
||||
"TOTEM3", "CgkIspzRq_8NEAIQGQ",
|
||||
"DAISY3", "CgkIspzRq_8NEAIQGg",
|
||||
"SAPPHIRE3", "CgkIspzRq_8NEAIQGw",
|
||||
"HYPER3", "CgkIspzRq_8NEAIQHA",
|
||||
"DIAMOND4", "CgkIspzRq_8NEAIQHQ",
|
||||
"SPICE4", "CgkIspzRq_8NEAIQHg",
|
||||
"GOLD4", "CgkIspzRq_8NEAIQHw",
|
||||
"RUBY4", "CgkIspzRq_8NEAIQIA",
|
||||
"MIRROR4", "CgkIspzRq_8NEAIQIQ",
|
||||
"FEATHER4", "CgkIspzRq_8NEAIQIg",
|
||||
"ELIXIR4", "CgkIspzRq_8NEAIQIw",
|
||||
"STATUE4", "CgkIspzRq_8NEAIQJA",
|
||||
"FERN4", "CgkIspzRq_8NEAIQJQ",
|
||||
"TOTEM4", "CgkIspzRq_8NEAIQJg",
|
||||
"DAISY4", "CgkIspzRq_8NEAIQJw",
|
||||
"SAPPHIRE4", "CgkIspzRq_8NEAIQKA",
|
||||
"HYPER4", "CgkIspzRq_8NEAIQKQ",
|
||||
"STABBER2", "CgkIspzRq_8NEAIQPw",
|
||||
"STABBER3", "CgkIspzRq_8NEAIQQA",
|
||||
"FLASH2", "CgkIspzRq_8NEAIQQQ",
|
||||
"FLASH3", "CgkIspzRq_8NEAIQQg",
|
||||
"LIGHTNING2", "CgkIspzRq_8NEAIQQw",
|
||||
"LIGHTNING3", "CgkIspzRq_8NEAIQRA",
|
||||
"FALLDEATH1", "CgkIspzRq_8NEAIQRQ",
|
||||
"GOLEM2", "CgkIspzRq_8NEAIQRg",
|
||||
"GOLEM3", "CgkIspzRq_8NEAIQRw",
|
||||
"MIRAGE", "CgkIspzRq_8NEAIQSA",
|
||||
"MIRRORKILL2", "CgkIspzRq_8NEAIQSQ",
|
||||
"MIRRORKILL3", "CgkIspzRq_8NEAIQSg",
|
||||
"IVYSLAYER", "CgkIspzRq_8NEAIQSw",
|
||||
"DEMONSLAYER", "CgkIspzRq_8NEAIQTA",
|
||||
"YENDOR1", "CgkIspzRq_8NEAIQTQ",
|
||||
"YENDOR2", "CgkIspzRq_8NEAIQTg",
|
||||
|
||||
"WINE2", "CgkIspzRq_8NEAIQVg",
|
||||
"EMERALD2", "CgkIspzRq_8NEAIQVw",
|
||||
"SILVER2", "CgkIspzRq_8NEAIQWA",
|
||||
"JELLY2", "CgkIspzRq_8NEAIQWQ",
|
||||
"POWER2", "CgkIspzRq_8NEAIQWg",
|
||||
|
||||
"WINE3", "CgkIspzRq_8NEAIQWw",
|
||||
"EMERALD3", "CgkIspzRq_8NEAIQXQ",
|
||||
"SILVER3", "CgkIspzRq_8NEAIQXA",
|
||||
"JELLY3", "CgkIspzRq_8NEAIQXg",
|
||||
"POWER3 ", "CgkIspzRq_8NEAIQXw",
|
||||
|
||||
"WINE4", "CgkIspzRq_8NEAIQYA",
|
||||
"EMERALD4", "CgkIspzRq_8NEAIQYQ",
|
||||
"SILVER4", "CgkIspzRq_8NEAIQYg",
|
||||
"JELLY4", "CgkIspzRq_8NEAIQYw",
|
||||
"POWER4", "CgkIspzRq_8NEAIQZA",
|
||||
|
||||
"ORB3", "CgkIspzRq_8NEAIQZQ",
|
||||
"BUG3", "CgkIspzRq_8NEAIQZg",
|
||||
"LIFEBRINGER", "CgkIspzRq_8NEAIQZw",
|
||||
"GARDENER ", "CgkIspzRq_8NEAIQaA",
|
||||
"MELEE3", "CgkIspzRq_8NEAIQaQ",
|
||||
"MELEE5", "CgkIspzRq_8NEAIQag",
|
||||
|
||||
"GRIMOIRE2", "CgkIspzRq_8NEAIQaw",
|
||||
"GRIMOIRE3", "CgkIspzRq_8NEAIQbA",
|
||||
"GRIMOIRE4", "CgkIspzRq_8NEAIQbQ",
|
||||
|
||||
"GRAIL2", "CgkIspzRq_8NEAIQbg",
|
||||
"GRAIL3", "CgkIspzRq_8NEAIQbw",
|
||||
"GRAIL4", "CgkIspzRq_8NEAIQcA",
|
||||
|
||||
"PIRATE2", "CgkIspzRq_8NEAIQdQ",
|
||||
"PIRATE3", "CgkIspzRq_8NEAIQdg",
|
||||
"PIRATE4", "CgkIspzRq_8NEAIQdw",
|
||||
|
||||
"REDGEM2", "CgkIspzRq_8NEAIQeA",
|
||||
"REDGEM3", "CgkIspzRq_8NEAIQeQ",
|
||||
"REDGEM4", "CgkIspzRq_8NEAIQeg",
|
||||
|
||||
"COAST2", "CgkIspzRq_8NEAIQew",
|
||||
"COAST3", "CgkIspzRq_8NEAIQfA",
|
||||
"COAST4", "CgkIspzRq_8NEAIQfQ",
|
||||
|
||||
"WHIRL2", "CgkIspzRq_8NEAIQfg",
|
||||
"WHIRL3", "CgkIspzRq_8NEAIQfw",
|
||||
"WHIRL4", "CgkIspzRq_8NEAIQgAE",
|
||||
|
||||
"MINE2", "CgkIspzRq_8NEAIQgQE",
|
||||
"MINE3", "CgkIspzRq_8NEAIQggE",
|
||||
"MINE4", "CgkIspzRq_8NEAIQgwE",
|
||||
|
||||
"RUG2", "CgkIspzRq_8NEAIQhAE",
|
||||
"RUG3", "CgkIspzRq_8NEAIQhQE",
|
||||
"RUG4", "CgkIspzRq_8NEAIQhgE",
|
||||
|
||||
"GARNET2", "CgkIspzRq_8NEAIQhwE",
|
||||
"GARNET3", "CgkIspzRq_8NEAIQiAE",
|
||||
"GARNET4", "CgkIspzRq_8NEAIQiQE",
|
||||
|
||||
"ZEBRA2", "CgkIspzRq_8NEAIQkQE",
|
||||
"ZEBRA3", "CgkIspzRq_8NEAIQkgE",
|
||||
"ZEBRA4", "CgkIspzRq_8NEAIQkwE",
|
||||
"ELEMENT2", "CgkIspzRq_8NEAIQlAE",
|
||||
"ELEMENT3", "CgkIspzRq_8NEAIQlQE",
|
||||
"ELEMENT4", "CgkIspzRq_8NEAIQlgE",
|
||||
"TOWER2", "CgkIspzRq_8NEAIQlwE",
|
||||
"TOWER3", "CgkIspzRq_8NEAIQmAE",
|
||||
"TOWER4", "CgkIspzRq_8NEAIQmQE",
|
||||
|
||||
"PRINCESS1", "CgkIspzRq_8NEAIQjwE",
|
||||
"PRINCESS_PACIFIST", "CgkIspzRq_8NEAIQkAE",
|
||||
// Achievements.unlock(mGoogleApiClient, "CgkIspzRq_8NEAIQAw"),
|
||||
|
||||
"FULGUR2", "CgkIspzRq_8NEAIQoAE",
|
||||
"FULGUR3", "CgkIspzRq_8NEAIQoQE",
|
||||
"FULGUR4", "CgkIspzRq_8NEAIQogE",
|
||||
"HARDMETAL", "CgkIspzRq_8NEAIQpAE",
|
||||
"ELEC3", "CgkIspzRq_8NEAIQowE",
|
||||
"MUTANT2", "CgkIspzRq_8NEAIQnQE",
|
||||
"MUTANT3", "CgkIspzRq_8NEAIQngE",
|
||||
"MUTANT4", "CgkIspzRq_8NEAIQnwE",
|
||||
|
||||
"DOVE2", "CgkIspzRq_8NEAIQqwE",
|
||||
"DOVE3", "CgkIspzRq_8NEAIQrAE",
|
||||
"DOVE4", "CgkIspzRq_8NEAIQrQE",
|
||||
"LOTUS2", "CgkIspzRq_8NEAIQpwE",
|
||||
"LOTUS3", "CgkIspzRq_8NEAIQqAE",
|
||||
"LOTUS4", "CgkIspzRq_8NEAIQqQE",
|
||||
"FRUIT2", "CgkIspzRq_8NEAIQrgE",
|
||||
"FRUIT3", "CgkIspzRq_8NEAIQrwE",
|
||||
"FRUIT4", "CgkIspzRq_8NEAIQsAE",
|
||||
"COMEBACK", "CgkIspzRq_8NEAIQtAE",
|
||||
"SURVIVAL", "CgkIspzRq_8NEAIQqgE",
|
||||
|
||||
"CORAL2", "CgkIspzRq_8NEAIQuAE",
|
||||
"CORAL3", "CgkIspzRq_8NEAIQuQE",
|
||||
"CORAL4", "CgkIspzRq_8NEAIQugE",
|
||||
"ROSE2", "CgkIspzRq_8NEAIQuwE",
|
||||
"ROSE3", "CgkIspzRq_8NEAIQvAE",
|
||||
"ROSE4", "CgkIspzRq_8NEAIQvQE",
|
||||
"CR4", "CgkIspzRq_8NEAIQvgE",
|
||||
"CHAOS", "CgkIspzRq_8NEAIQvwE",
|
||||
|
||||
"APPLE2", "CgkIspzRq_8NEAIQxAE",
|
||||
"APPLE3", "CgkIspzRq_8NEAIQxQE",
|
||||
"APPLE4", "CgkIspzRq_8NEAIQxgE",
|
||||
"DRAGON2", "CgkIspzRq_8NEAIQxwE",
|
||||
"DRAGON3", "CgkIspzRq_8NEAIQyAE",
|
||||
"DRAGON4", "CgkIspzRq_8NEAIQyQE",
|
||||
"TORTOISE2", "CgkIspzRq_8NEAIQygE",
|
||||
"TORTOISE3", "CgkIspzRq_8NEAIQywE",
|
||||
"TORTOISE4", "CgkIspzRq_8NEAIQzAE",
|
||||
|
||||
"KRAKEN2", "CgkIspzRq_8NEAIQ0QE",
|
||||
"KRAKEN3", "CgkIspzRq_8NEAIQ0gE",
|
||||
"KRAKEN4", "CgkIspzRq_8NEAIQ0wE",
|
||||
"BARROW2", "CgkIspzRq_8NEAIQ1AE",
|
||||
"BARROW3", "CgkIspzRq_8NEAIQ1QE",
|
||||
"BARROW4", "CgkIspzRq_8NEAIQ1gE",
|
||||
"TROLL2", "CgkIspzRq_8NEAIQ1wE",
|
||||
"TROLL3", "CgkIspzRq_8NEAIQ2AE",
|
||||
"TROLL4", "CgkIspzRq_8NEAIQ2QE",
|
||||
"GRAILH", "CgkIspzRq_8NEAIQ2gE",
|
||||
"HARDCORE", "CgkIspzRq_8NEAIQ3AE",
|
||||
"SHMUP", "CgkIspzRq_8NEAIQ2wE",
|
||||
"SLASH2", "CgkIspzRq_8NEAIQzwE",
|
||||
"GOSWORD", "CgkIspzRq_8NEAIQ0AE",
|
||||
|
||||
"HALLOWEEN1", "CgkIspzRq_8NEAIQ5wE",
|
||||
"HALLOWEEN2", "CgkIspzRq_8NEAIQ6AE",
|
||||
"GOBLINSWORD", "CgkIspzRq_8NEAIQ6QE",
|
||||
|
||||
"DOD2", "CgkIspzRq_8NEAIQ6wE",
|
||||
"DOD3", "CgkIspzRq_8NEAIQ7AE",
|
||||
"DOD4", "CgkIspzRq_8NEAIQ7QE",
|
||||
"DUNG2", "CgkIspzRq_8NEAIQ7gE",
|
||||
"DUNG3", "CgkIspzRq_8NEAIQ7wE",
|
||||
"DUNG4", "CgkIspzRq_8NEAIQ8AE",
|
||||
"MOUNT2", "CgkIspzRq_8NEAIQ8QE",
|
||||
"MOUNT3", "CgkIspzRq_8NEAIQ8gE",
|
||||
"MOUNT4", "CgkIspzRq_8NEAIQ8wE",
|
||||
|
||||
"PRAIR2", "CgkIspzRq_8NEAIQ9wE",
|
||||
"PRAIR3", "CgkIspzRq_8NEAIQ-AE",
|
||||
"PRAIR4", "CgkIspzRq_8NEAIQ-QE",
|
||||
"BULL2", "CgkIspzRq_8NEAIQ-gE",
|
||||
"BULL3", "CgkIspzRq_8NEAIQ-wE",
|
||||
"BULL4", "CgkIspzRq_8NEAIQ_AE",
|
||||
NULL
|
||||
};
|
||||
|
||||
const char *getGoogleAchievementID(const string& s) {
|
||||
const char** a = achievementIDs;
|
||||
while(*a && **a) {
|
||||
if(a[0] == s) return a[1];
|
||||
a++;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int qleader, leaders[NUMLEADER];
|
||||
|
||||
int pshift;
|
||||
|
||||
void showMenu() {
|
||||
dialog::init();
|
||||
dialog::addItem(XLAT("return to the game"), ' ');
|
||||
if(!currentlyConnecting())
|
||||
dialog::addBoolItem(XLAT("connected to Google Games"), currentlyConnected(), '1');
|
||||
else
|
||||
dialog::addBreak(100);
|
||||
dialog::addItem(XLAT("view your achievements"), '2');
|
||||
dialog::addItem(XLAT("next page"), '3');
|
||||
|
||||
qleader = 0;
|
||||
for(int i=0; i<NUMLEADER; i++) if(leaderboardIDs[i] != "")
|
||||
leaders[qleader++] = i;
|
||||
|
||||
dialog::addBreak(50);
|
||||
|
||||
for(int i=0; i<10; i++) {
|
||||
int ip = i + pshift;
|
||||
if(ip < qleader) {
|
||||
int id = leaders[ip];
|
||||
int sco = currentscore[id];
|
||||
string ss = sco >= 0 ? its(sco) : SCORE_UNKNOWN ? "?" : "-";
|
||||
dialog::addSelItem(leadernames[id], ss, 'a' + i);
|
||||
}
|
||||
}
|
||||
dialog::display();
|
||||
}
|
||||
|
||||
void handleKey(int sym, int uni) {
|
||||
dialog::handleNavigation(sym, uni);
|
||||
if(uni == '1')
|
||||
switchGoogleConnection();
|
||||
else if(uni == '2')
|
||||
viewAchievements();
|
||||
else if(uni == '3') {
|
||||
pshift += 10;
|
||||
if(pshift >= qleader) pshift = 0;
|
||||
}
|
||||
else if(uni >= 'a' && uni <= 'a' + 10) {
|
||||
int id = (uni - 'a') + pshift;
|
||||
if(id >= qleader) return;
|
||||
viewLeaderboard(leaderboardIDs[leaders[id]]);
|
||||
}
|
||||
else
|
||||
cmode = emNormal;
|
||||
}
|
||||
|
||||
bool ccon = false;
|
||||
bool incon = false;
|
||||
|
||||
bool currentlyConnected() { return ccon; }
|
||||
bool currentlyConnecting() { return incon; }
|
||||
|
||||
int scale(int i) { if(i == 13 || i == 15 || i == 29 || i == 45) return 1000; else return 1; }
|
||||
|
||||
bool isDescending(int i) { return !isAscending(i); }
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user