// Hyperbolic Rogue -- fake mobile target // Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details #define ISFAKEMOBILE 1 #define MOBPAR_FORMAL int #define MOBPAR_ACTUAL 0 #define MIX_MAX_VOLUME 128 const char *scorefile = "fakemobile_score.txt"; const char *conffile = "fakemobile_config.txt"; #include std::string levelfile = "fakemobile_level.txt"; std::string picfile = "fakemobile_pic.txt"; #include #include "init.cpp" #include #include #undef main transmatrix getOrientation() { return Id; } void playSound(cell *c, const string& fname, int vol) { printf("Play sound: %s\n", fname.c_str()); } SDL_Surface *s; int gdpos = 0; int gdpop() { return graphdata[gdpos++]; } TTF_Font *font[256]; bool rawdisplaystr(int x, int y, int shift, int size, const char *str, int color, int align) { if(strlen(str) == 0) return false; if(size <= 0 || size > 255) { return false; } SDL_Color col; col.r = (color >> 16) & 255; col.g = (color >> 8 ) & 255; col.b = (color >> 0 ) & 255; col.r >>= darken; col.g >>= darken; col.b >>= darken; if(!font[size]) font[size] = TTF_OpenFont("VeraBd.ttf", size); SDL_Surface *txt = TTF_RenderText_Solid(font[size], str, col); if(txt == NULL) return false; SDL_Rect rect; rect.w = txt->w; rect.h = txt->h; rect.x = x - rect.w * align / 16; rect.y = y - rect.h/2; bool clicked = (mousex >= rect.x && mousey >= rect.y && mousex <= rect.x+rect.w && mousey <= rect.y+rect.h); SDL_BlitSurface(txt, NULL, s,&rect); SDL_FreeSurface(txt); return clicked; } int textwidth(int siz, const string &str) { if(size(str) == 0) return 0; if(!font[siz]) font[siz] = TTF_OpenFont("VeraBd.ttf", siz); int w, h; TTF_SizeUTF8(font[siz], str.c_str(), &w, &h); // printf("width = %d [%d]\n", w, size(str)); return w; } char action; int getticks() { return SDL_GetTicks(); } bool currentlyConnecting() { return false; } bool currentlyConnected() { return false; } void viewAchievements() { printf("view Achievements\n"); } void viewLeaderboard(string id) { printf("view Leaderboard :: %s\n", id.c_str()); } void switchGoogleConnection() { printf("sgc\n"); } void shareScore(int) { printf("share\n"); } int main(int argc, char **argv) { initAll(); vid.xres = 800; vid.yres = 450; vid.usingGL = false; // 450; vid.yres = 600; s= SDL_SetVideoMode(vid.xres, vid.yres, 32, 0); if(TTF_Init() != 0) { printf("Failed to initialize TTF.\n"); exit(2); } int mx = 0; int my = 0; bool _clicked = false; inv::on = true; // firstland = laMinefield; // activateSafety(laWhirlwind); items[itGreenStone] = 100; // items[itDiamond] = 50; // for(int i=1; i<10; i++) kills[i] = 5; while(true) { SDL_LockSurface(s); memset(s->pixels, 0, vid.xres * vid.yres * 4); SDL_UnlockSurface(s); mousex = mx; mousey = my; clicked = _clicked; mobile_draw(MOBPAR_ACTUAL); action = 0; gdpos = 0; while(gdpos < size(graphdata)) { switch(gdpop()) { case 2: { int x = gdpop(), y = gdpop(), al = gdpop(); int color = gdpop(); int size = gdpop(); gdpop(); int n = gdpop(); string s; for(int i=0; i \n"); }