void drawMenu() { s_screen *Image = NULL; char listing[45] = {""}; int list = 0; int shift = 0; int colors = 0; int clipX=0, clipY=0; copyScreens(Source); if(dListTotal < 1) printText((isWide ? 30 : 8), (isWide ? 33 : 24), RED, 0, 0, "No Mods In Paks Folder!"); for(list=0; list<dListTotal; list++) { if(list<18) { shift = 0; colors = GRAY; strncpy(listing, "", (isWide ? 44 : 28)); if(strlen(filelist[list+dListScrollPosition].filename)-4 < (isWide ? 44 : 28)) strncpy(listing, filelist[list+dListScrollPosition].filename, strlen(filelist[list+dListScrollPosition].filename)-4); if(strlen(filelist[list+dListScrollPosition].filename)-4 > (isWide ? 44 : 28)) strncpy(listing, filelist[list+dListScrollPosition].filename, (isWide ? 44 : 28)); if(list == dListCurrentPosition) { shift = 2; colors = RED; Image = NULL; if(Image) { clipX = factor * (isWide ? 286 : 155); clipY = factor * (isWide ? (factor == 4 ? (s16)32.5 : 32) : (factor == 4 ? (s16)21.5 : 21)); } //else printText((isWide ? 288 : 157), (isWide ? 141 : 130), RED, 0, 0, "No Preview Available!"); } printText((isWide ? 30 : 7) + shift, (isWide ? 33 : 22)+(11*list) , colors, 0, 0, "%s", listing); } } printText((isWide ? 26 : 5), (isWide ? 11 : 4), WHITE, 0, 0, "OpenBoR %s", VERSION); printText((isWide ? 392 : 261),(isWide ? 11 : 4), WHITE, 0, 0, __DATE__); printText((isWide ? 23 : 4),(isWide ? 251 : 226), WHITE, 0, 0, "%s: Start Game", control_getkeyname(savedata.keys[0][SDID_ATTACK])); printText((isWide ? 150 : 84),(isWide ? 251 : 226), WHITE, 0, 0, "%s: BGM Player", control_getkeyname(savedata.keys[0][SDID_ATTACK2])); printText((isWide ? 270 : 164),(isWide ? 251 : 226), WHITE, 0, 0, "%s: View Logs", control_getkeyname(savedata.keys[0][SDID_JUMP])); printText((isWide ? 390 : 244),(isWide ? 251 : 226), WHITE, 0, 0, "%s: Quit Game", control_getkeyname(savedata.keys[0][SDID_SPECIAL])); printText((isWide ? 330 : 197),(isWide ? 170 : 155), BLACK, 0, 0, "www.LavaLit.com"); printText((isWide ? 322 : 190),(isWide ? 180 : 165), BLACK, 0, 0, "www.SenileTeam.com"); #ifdef SPK_SUPPORTED printText((isWide ? 324 : 192),(isWide ? 191 : 176), DARK_RED, 0, 0, "SecurePAK Edition"); #endif drawScreens(Image, clipX, clipY); if(Image) { freescreen(&Image); Image = NULL; } }
void drawLogs() { int i=which_logfile, j, k, l, done=0; s_screen *Viewer = NULL; bothkeys = bothnewkeys = 0; Viewer = allocscreen(Source->width, Source->height, Source->pixelformat); clearscreen(Viewer); bothkeys = bothnewkeys = 0; while(!done) { copyScreens(Viewer); //inputrefresh(); refreshInput(); printText((isWide ? 410 : 250), 3, RED, 0, 0, "Quit : 1/B"); if(buttonsPressed & (WIIMOTE_1|CC_B|GC_B)) done = 1; if(logfile[i].ready) { printText(5, 3, RED, 0, 0, "OpenBorLog.txt"); if(buttonsHeld & DIR_UP) --logfile[i].line; if(buttonsHeld & DIR_DOWN) ++logfile[i].line; if(buttonsHeld & DIR_LEFT) logfile[i].line = 0; if(buttonsHeld & DIR_RIGHT) logfile[i].line = logfile[i].rows - (LOG_SCREEN_END - LOG_SCREEN_TOP); if(logfile[i].line > logfile[i].rows - (LOG_SCREEN_END - LOG_SCREEN_TOP) - 1) logfile[i].line = logfile[i].rows - (LOG_SCREEN_END - LOG_SCREEN_TOP) - 1; if(logfile[i].line < 0) logfile[i].line = 0; for(l=LOG_SCREEN_TOP, j=logfile[i].line; j<logfile[i].rows-1; l++, j++) { if(l<LOG_SCREEN_END) { char textpad[480] = {""}; for(k=0; k<480; k++) { if(!logfile[i].buf->ptr[logfile[i].pos[j]+k]) break; textpad[k] = logfile[i].buf->ptr[logfile[i].pos[j]+k]; } if(logfile[i].rows>0xFFFF) printText(5, l*10, WHITE, 0, 0, "0x%08x: %s", j, textpad); else printText(5, l*10, WHITE, 0, 0, "0x%04x: %s", j, textpad); } else break; } } else if(i == SCRIPT_LOG) printText(5, 3, RED, 0, 0, "Log NOT Found: ScriptLog.txt"); else printText(5, 3, RED, 0, 0, "Log NOT Found: OpenBorLog.txt"); drawScreens(NULL, 0, 0); } freescreen(&Viewer); Viewer = NULL; drawMenu(); }
void drawLogo() { unsigned startTime; initMenu(0); copyScreens(Source); drawScreens(NULL, 0, 0); vga_vwait(); startTime = timer_gettick(); // The logo displays for 2 seconds. Let's put that time to good use. dListTotal = findPaks(); while(1) { // display logo for remainder of time if(timer_gettick() - startTime >= 2000) break; } termMenu(); }
void cGame::gameLoop(){ inputHandler(); updateScreens(); drawScreens(); }