void vm(t_dvm *v, int cperloop) { while (--cperloop > -1) { if (v->graphic && v->pause && data()->mlx.input.up == 0 && !(v->pause_inc)) break ; v->pause_inc = 0; v->cycle++; if (!gameloop(v) || !v->proc) { if (v->dump != -1) vm_dump(v); if (v->graphic && (data()->mlx.scene = END)) return ; else exit3(0, data(), ABS(v->last_live)); } else if (v->dump == v->cycle) { if (v->graphic) display(&(data()->mlx), v); vm_dump(v); } } ft_display_graphic(v); }
int main() { Renderer::init(); gameloop(); return 0; }
int game( char *_fname ) { if( loadpf( _fname ) ) { printf( "file fails\n" ); return 1; } #ifdef cheat_code cheat = 0; #endif score = 1; timeout( 40 ); clear( ); int end = gameloop( ); totalscore += score; clear( ); switch( end ) { case 0: mvaddstr( 10, 10, "n00b, u lost THE GAME" ); break; case 1: mvprintw( 10, 10, "gz, u wind! pisteesi: %i", score ); break; case 2: mvaddstr( 10, 10, "ONNEE! vedit 9001 pistettä eli sait\n huippusalaisen supervoiton\n t: naruto" ); } timeout( 5000 ); getch( ); return 0; }
int main(int argc, char** argv) { if (!glfwInit()) return EXIT_FAILURE; glfwWindowHint(GLFW_DEPTH_BITS, 24); GLFWwindow* window = glfwCreateWindow(WIDTH, HEIGHT, "glhck scene", NULL, NULL); glfwMakeContextCurrent(window); if(!window) return EXIT_FAILURE; glfwSwapInterval(0); glfwSetWindowCloseCallback(window, windowCloseCallback); if(!glhckContextCreate(argc, argv)) return EXIT_FAILURE; if(!glhckDisplayCreate(WIDTH, HEIGHT, GLHCK_RENDER_AUTO)) return EXIT_FAILURE; //glhckSetGlobalPrecision(GLHCK_INDEX_BYTE, GLHCK_VERTEX_V3S); int retval = gameloop(window); glhckContextTerminate(); glfwTerminate(); return retval; }
static void gameproc(void *arg) { char *rsp_static_addr; /* R4300 addr where rsp_static segment loaded */ char *rsp_static_end; /* R4300 addr+1 for end of the load region */ int rsp_static_len; OSIoMesg dmaMb; /* Needed (empty) for call to osEPiStartDma */ /* Message Queue for OS messages indicating DMA completions */ osCreateMesgQueue(&DMAMessageQ, DMAMessages, DMA_MSGQUEUE_SIZE); /* Message Queue for OS messages indicating RDP done */ osCreateMesgQueue(&RDPDoneMessageQ, RDPDoneMessages, RDPDONE_MSGQUEUE_SIZE); osSetEventMesg(OS_EVENT_DP, &RDPDoneMessageQ, dummyMsg); /* Message Queue for OS messages indicating vertical retrace */ osCreateMesgQueue(&RetraceMessageQ, RetraceMessages, RETRACE_MSGQUEUE_SIZE); osViSetEvent(&RetraceMessageQ, dummyMsg, 1); /* * Load the 'rsp_static' segment from the cartridge */ rsp_static_len = _rsp_staticSegmentRomEnd - _rsp_staticSegmentRomStart; /* Place it right after the code/data segment in the 3rd MB of memory. * Will not collide with CFB's or the Z buffer. Because the texture loads * are so frequent, this gives a significant performance enhancement. */ rsp_static_addr = _codeSegmentEnd; /* R4300 address for static segment */ rsp_static_end = _codeSegmentEnd + rsp_static_len; #ifdef DEBUG if (rsp_static_len > 0x00300000) { osSyncPrintf("** Static Segment too large **\n"); } #endif /* Note: dmaMb is working space used by osEPiStartDma */ dmaMb.hdr.pri = OS_MESG_PRI_NORMAL; dmaMb.hdr.retQueue = &DMAMessageQ; dmaMb.dramAddr = rsp_static_addr; dmaMb.devAddr = (u32)_rsp_staticSegmentRomStart; dmaMb.size = rsp_static_len; osEPiStartDma(handler, &dmaMb, OS_READ); osRecvMesg(&DMAMessageQ, NULL, OS_MESG_BLOCK); /* Wait for completion */ /* * Do the one-time setup * (Build both display lists) */ makestuff(); /* * Run the main loop of the game */ gameloop(rsp_static_addr); } /* gameproc */
int main(void) { initbasesys(); refresh(); onebeep(); gameloop(); endbasesys(); return 0; }
int main(int argc, char *argv[]){ printf("Hello World, I'm game!\n"); setupFB(); gameloop(); exit(EXIT_SUCCESS); }
int main (int argc, const char* argv[]) { //Super important note: //MSVS Doesn't allow declarations to follow statements in a block. //It uses an old C90 ruleset. Support for this was added to C in the C99 standard room alpha; room* rooms = alloc_room(); char* t_str = strmalloc(); FILE* world = fopen("WORLD.DAT","r"); //TODO: Add a parameter parser to allow users to specify different worlds. if (world == NULL) { printf("Could not open WORLD.DAT!\n"); return 1; } load_world(rooms, world); //Load our world data into the rooms /// TEST ROUTINES // /*while (rooms != NULL) //NOTE: Using this will break the room looking { printf(rooms->name); printf("\n"); while (rooms->areas != NULL) { printf("\t"); printf(rooms->areas->name); printf("\n"); printf("\t\t"); printf(rooms->areas->desc); printf("\n"); rooms->areas = rooms->areas->next; } rooms = rooms->next; } if (t_str == "") printf("Empty String"); else if (t_str == NULL) printf("NULL String"); else { itoa(strlen(t_str), t_str, 1); printf(t_str); }*/ printf(rooms->doors->name); gameloop(rooms); printf("User Exited. Press any key to quit."); getchar(); /// END TEST ROUTINES // fclose(world); return 0; }
int main(int argc, char** argv) { if(game_config_setup(&(gamestate.config),argc,argv)) { printf("Error processing arguments\n"); return 1; } SDL_Surface* screen = sdl_init_screen(gamestate.config.screen_width, gamestate.config.screen_height); gameloop(screen); SDL_Quit(); return 0; }
void Tetrimino::mainloop() { while (true){ switch (OptionData::tetriminoStatus){ case OptionData::MENULOOP: menuloop(); break; case OptionData::GAMELOOP: gameloop(); break; case OptionData::QUIT: return; } } }
int main(int argc, char **argv) { struct sockaddr_in srvaddr, cliaddr; int sock, pid; unsigned int cliaddrlen = sizeof(cliaddr); memset(&srvaddr, '0', sizeof(srvaddr)); srvaddr.sin_family = AF_INET; srvaddr.sin_port = htons(PORT); srvaddr.sin_addr.s_addr = inet_addr(ADDR); if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); return 1; } if (bind(sock, (const struct sockaddr*)&srvaddr, sizeof(srvaddr)) == -1) { perror("bind"); return 1; } if (listen(sock, CONNQUEUE) == -1) { perror("listen"); return 1; } for(;;) { client = accept(sock, (struct sockaddr *)&cliaddr, &cliaddrlen); pid = fork(); if(pid == 0) { alarm(60); if ((fdclient = fdopen(client, "r+")) == NULL) { perror("fdopen"); close(client); break; } gameloop(); fclose(fdclient); close(client); break; } else { close(client); continue; } } close(sock); return 0; }
int main(int argc, char *argv[]) { initial(); if (!strcmp (argv[1], "-r")) load_game (argv[2]); gameloop(); v_reset_mode(); m_hide(); m_close(); save_game (GAMEFILE); }
void init_new_game(player_data &loaded){ char opt; cout << "Would You like to run the tutorial? " << endl; cin >> opt; if(opt == 'y'){ run_tutorial(); loaded.TH.newgame(); } if(opt == 'n'){ loaded.TH.newgame(); } cout << "Beginning Game " << endl; gameloop(loaded); }
Game::Game() : mRunGame(false), mQuitGame(false), mGameThread( [this](){ gameloop(); } ), mGameWorld( createSimulationWorld() ), mTimeManager( std::make_unique<CTimeManager>() ), mSpawnManager( std::make_unique<spawn::CSpawnManager>( ) ), mWorldView( createObservationWorld() ), mEventStream( std::make_unique<threading::EventStream>()), mActionStream( std::make_unique<threading::ActionStream>()), mExportModule( std::make_shared<threading::CSimulationThreadWriter>( *mEventStream ) ), mImportModule( std::make_shared<threading::CViewThreadReader>( *mEventStream ) ) { mTimeManager->setDesiredFPS(50); mGameWorld->addModule( mExportModule ); mWorldView->addModule( mImportModule ); };
Common::Error DMEngine::run() { initConstants(); // scummvm/engine specific initGraphics(320, 200, false); _console = new Console(this); _displayMan = new DisplayMan(this); _dungeonMan = new DungeonMan(this); _eventMan = new EventManager(this); _menuMan = new MenuMan(this); _championMan = new ChampionMan(this); _objectMan = new ObjectMan(this); _inventoryMan = new InventoryMan(this); _textMan = new TextMan(this); _moveSens = new MovesensMan(this); _groupMan = new GroupMan(this); _timeline = new Timeline(this); _projexpl = new ProjExpl(this); _dialog = new DialogMan(this); _sound = SoundMan::getSoundMan(this, _gameVersion); _displayMan->setUpScreens(320, 200); initializeGame(); while (true) { gameloop(); if (_engineShouldQuit) return Common::kNoError; if (_loadSaveSlotAtRuntime == -1) endGame(_championMan->_partyDead); else { loadGameState(_loadSaveSlotAtRuntime); _menuMan->drawEnabledMenus(); _displayMan->updateScreen(); _loadSaveSlotAtRuntime = -1; } } return Common::kNoError; }
int main() { srand ( time(NULL) ); game_graphics = new SDLGraphics(SCREEN_WIDTH + 150, SCREEN_HEIGHT, "Min Wage", 0,0,0); //game_timer = new Timer(); game_input = new Input(); gameMenu = new menuClass(); gameIndoors = new IndoorHandler(); playerStuff.gameStart(); //There's got to be a better way to do this (generating random tiles for the grass)... //This is probably a better idea: generate the entire backdrop as an SDL_Surface that can be drawn // each time it is needed? int randTiles[(SCREEN_HEIGHT / 32) * (SCREEN_WIDTH / 32)]; int i = 0; for (i = 0; i < (SCREEN_HEIGHT / 32) * (SCREEN_WIDTH / 32); i++) { randTiles[i] = rand() % 4; } //makeMap(); //loadMapFile("datfile.dat"); setupTiles(); showTitle(); gameloop(randTiles); exitGame(); return 0; }
void gameloop(struct game *state) { printf("gameloop: current board '%s' with player %c\n",state->board,state->player); displayGame(state); if(gameover(state) == 1) { return; } makePlayerMove(state,getPlayerMove(state)); displayGame(state); if(gameover(state) == 1) { return; } makeComputerMove(state); gameloop(state); }
void run() { displayTitle(); displayIntroMessage(); outputFlagContainer *outputFlags = malloc(sizeof(outputFlagContainer)); while(true) { displayPreGameMenu(); outputFlags = getUserInput(outputFlags); if (outputFlags->HELP) { displayHelpMessage(); } else if (outputFlags->YES || outputFlags->PLAY) { gameloop(outputFlags); } else if (outputFlags->QUIT || outputFlags->NO) { displayQuitMessage(); break; } else { displayBadInputMessage(); } } free(outputFlags); }
int main() { init(800, 600); gameloop(); shutdown(); }
int main(int argc, char *argv[]) { bool inhibit_loadfade = false; bool error = false; bool freshstart; SetLogFilename("debug.txt"); if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) { staterr("ack, sdl_init failed: %s.", SDL_GetError()); return 1; } atexit(SDL_Quit); // start up inputs first thing because settings_load may remap them input_init(); // load settings, or at least get the defaults, // so we know the initial screen resolution. settings_load(); if (Graphics::init(settings->resolution)) { staterr("Failed to initialize graphics."); return 1; } if (font_init()) { staterr("Failed to load font."); return 1; } //speed_test(); //return 1; #ifdef CONFIG_DATA_EXTRACTOR if (!settings->files_extracted) { if (extract_main()) { Graphics::close(); font_close(); return 0; } else { settings->files_extracted = true; settings_save(); } } #endif if (check_data_exists()) { return 1; } Graphics::ShowLoadingScreen(); if (sound_init()) { fatal("Failed to initialize sound."); return 1; } if (trig_init()) { fatal("Failed trig module init."); return 1; } if (tsc_init()) { fatal("Failed to initialize script engine."); return 1; } if (textbox.Init()) { fatal("Failed to initialize textboxes."); return 1; } if (Carets::init()) { fatal("Failed to initialize carets."); return 1; } if (game.init()) return 1; game.setmode(GM_NORMAL); // set null stage just to have something to do while we go to intro game.switchstage.mapno = 0; //#define REPLAY #ifdef REPLAY game.switchstage.mapno = START_REPLAY; //Replay::set_ffwd(6000); //Replay::set_stopat(3500); game.switchstage.param = 1; #else //game.switchstage.mapno = LOAD_GAME; //game.pause(GP_OPTIONS); if (settings->skip_intro && file_exists(GetProfileName(settings->last_save_slot))) game.switchstage.mapno = LOAD_GAME; else game.setmode(GM_INTRO); #endif // for debug if (game.paused) { game.switchstage.mapno = 0; game.switchstage.eventonentry = 0; } if (game.switchstage.mapno == LOAD_GAME) inhibit_loadfade = true; game.running = true; freshstart = true; stat("Entering main loop..."); #ifdef __SDLSHIM__ set_console_visible(false); #endif //speed_test(); //return 1; while(game.running) { // SSS/SPS persists across stage transitions until explicitly // stopped, or you die & reload. It seems a bit risky to me, // but that's the spec. if (game.switchstage.mapno >= MAPNO_SPECIALS) { StopLoopSounds(); } // enter next stage, whatever it may be if (game.switchstage.mapno == LOAD_GAME || \ game.switchstage.mapno == LOAD_GAME_FROM_MENU) { if (game.switchstage.mapno == LOAD_GAME_FROM_MENU) freshstart = true; stat("= Loading game ="); if (game_load(settings->last_save_slot)) { fatal("savefile error"); goto ingame_error; } Replay::OnGameStarting(); if (!inhibit_loadfade) fade.Start(FADE_IN, FADE_CENTER); else inhibit_loadfade = false; } else if (game.switchstage.mapno == START_REPLAY) { stat(">> beginning replay '%s'", GetReplayName(game.switchstage.param)); StopScripts(); if (Replay::begin_playback(GetReplayName(game.switchstage.param))) { fatal("error starting playback"); goto ingame_error; } } else { if (game.switchstage.mapno == NEW_GAME || \ game.switchstage.mapno == NEW_GAME_FROM_MENU) { bool show_intro = (game.switchstage.mapno == NEW_GAME_FROM_MENU); InitNewGame(show_intro); } // slide weapon bar on first intro to Start Point if (game.switchstage.mapno == STAGE_START_POINT && \ game.switchstage.eventonentry == 91) { freshstart = true; } // switch maps if (load_stage(game.switchstage.mapno)) goto ingame_error; player->x = (game.switchstage.playerx * TILE_W) << CSF; player->y = (game.switchstage.playery * TILE_H) << CSF; } // start the level if (game.initlevel()) return 1; if (freshstart) weapon_introslide(); gameloop(); game.stageboss.OnMapExit(); freshstart = false; } shutdown: ; Replay::close(); game.close(); Carets::close(); Graphics::close(); input_close(); font_close(); sound_close(); tsc_close(); textbox.Deinit(); return error; ingame_error: ; stat(""); stat(" ************************************************"); stat(" * An in-game error occurred. Game shutting down."); stat(" ************************************************"); error = true; goto shutdown; }
void mainloop() { connect: MyColor = None; timer18 = 0; whetherC0 = 0; while (MyColor == None) { Key_Is_Esc(); asm jc end_mainloop connect(); } gameloop(); if (ggs == GGCONNECT) goto connect; end_mainloop: } void gameloop() { byte NG_during_game = 0; newgame: debug_print("Ожидание начала новой игры", 26, 8); ggs = GGSTART; timer18 = 0; timer55 = 0; NG_is_sent = 0; if (NG_during_game) { NG_is_received = 1; NG_during_game = 0; } else { NG_is_received = 0; } getst = GETSTART; isNewCommand = 0; drawn_proposed_by_me = 0; drawn_proposed_by_him = 0; while (1) { Key_Is_Esc(); asm jc send_EX sendSS(); game(); if (ggs == GGNEW) goto newgame; if (ggs == GGCONNECT) goto end_gameloop; } send_EX: send_str("EX", 2); debug_print("EX", 2, Dmy); end_gameloop: } void graph_ini() { // Переход в 10h графический режим asm { mov ah, 00h mov al, 10h int 10h mov ah, 0fh int 10h mov Page, bh } } void graph_rst() { // Возвращение стандартного видео-режима asm { mov ah, 00h mov al, 3h int 10h } } void rectangle(int x1, int x2, int y1, int y2, byte color) { for (int i=y1; i<=y2; i++) { for (int j=x1; j<=x2; j++) { point(j, i, color); } } } #undef byte void read_args() { asm mov al, byte ptr cs:[80h] asm mov argslen, al if (argslen) argslen--; } #define byte unsigned char void point(int x, int y, byte color) { asm { mov ah, 0ch mov al, color mov cx, x mov dx, y mov bh, Page int 10h } } void paint_empty_board() { Mouse_Hide(); byte color = 6; int x1, x2, y1, y2; // Расчерчиваем по вертикали y1 = 0; y2 = 345; x1 = 0; x2 = x1 + 1; for (int i=0; i<=8; i++) { rectangle(x1, x2, y1, y2, color); x1 += 43; x2 += 43; } // Расчерчиваем по горизонтали y1 = 0; y2 = y1 + 1; x1 = 0; x2 = 345; for (int j=0; j<=8; j++) { rectangle(x1, x2, y1, y2, color); y1 += 43; y2 += 43; } Mouse_Show(); }
void collectionmenu(void) { int count; resetmenuitems(); joymenunum=1; while (!menuitem[0].active && !windowinfo.shutdown) { glClearColor(0.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); numofmenuitems=0; createmenuitem(TXT_BACK,0,0,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_ESC); count=320; createmenuitem(TXT_LEVEL" 1",64,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 2",64,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 3",64,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 4",64,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 5",64,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 6",64,count,16,1.0f,1.0f,1.0f,1.0f); count+=16; createmenuitem(TXT_LEVEL" 7",64,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 8",64,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; count=320; createmenuitem(TXT_LEVEL" 9",240,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 10",240,count,16,1.0f,1.0f,1.0f,1.0f); count+=16; createmenuitem(TXT_LEVEL" 11",240,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 12",240,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 13",240,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 14",240,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 15",240,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 16",240,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; count=320; createmenuitem(TXT_LEVEL" 17",416,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 18",416,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 19",416,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 20",416,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 21",416,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 22",416,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_LEVEL" 23",416,count,16,1.0f,1.0f,1.0f,1.0f); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=16; createmenuitem(TXT_HIGH_SCORE,416,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_H); count+=16; checksystemmessages(); checkkeyboard(); checkmouse(); checkjoystick(); checkmenuitems(); updateogg(); checkmusic(); game.songnum=8; soundsimulation(view.position,view.orientation); setuptextdisplay(); glColor4f(1.0f,1.0f,1.0f,1.0f); displaybackground(620); drawtext(TXT_COLLECTION_MODE,(320|TEXT_CENTER),304,16,1.0f,1.0f,1.0f,1.0f); drawmenuitems(); drawmousecursor(768+font.cursornum,mouse.x,mouse.y,16,1.0f,1.0f,1.0f,1.0f); SDL_GL_SwapBuffers(); for (count=1;count<24;count++) if (menuitem[count].active) { game.songnum=-1; checkmusic(); game.editing=0; game.levelnum=0; loadcollectionlevel(count); gameloop(); if (!game.playreplay) if (game.exit==4) highscoremenu(count); joymenunum=count; } if (menuitem[24].active) { game.exit=3; highscoremenu(1); } } resetmenuitems(); }
void pregamemenu(void) { int count,count2; int simtimer; int simcount; int startdelay; game.exit=GAMEEXIT_NONE; startdelay=0; simtimer=SDL_GetTicks(); resetmenuitems(); joymenunum=1; while (!menuitem[0].active && !windowinfo.shutdown) { glClearColor(0.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); numofmenuitems=0; createmenuitem(TXT_BACK,0,0,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_ESC); createmenuitem(TXT_START,(320|TEXT_CENTER),320,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_S); checksystemmessages(); checkkeyboard(); checkmouse(); checkjoystick(); checkmenuitems(); setuptextdisplay(); glColor4f(1.0f,1.0f,1.0f,1.0f); displaybackground(540); if (game.levelnum<35) { count=(game.levelnum-1)/7+1; count2=(game.levelnum-1)%7+1; if (count==1) drawbackground(521,(320|TEXT_CENTER),48,192,192,640,480); if (count==2) drawbackground(522,(320|TEXT_CENTER),48,192,192,640,480); if (count==3) drawbackground(523,(320|TEXT_CENTER),48,192,192,640,480); if (count==4) drawbackground(524,(320|TEXT_CENTER),48,192,192,640,480); if (count==5) drawbackground(525,(320|TEXT_CENTER),48,192,192,640,480); drawtext("/i-/i",(320|TEXT_CENTER),256,16,1.0f,1.0f,1.0f,1.0f,count,count2); drawtext(TXT_LIVES" /i",(320|TEXT_CENTER),272,16,1.0f,1.0f,1.0f,1.0f,game.numoflives); drawtext(TXT_POINTS" /i",(320|TEXT_CENTER),288,16,1.0f,1.0f,1.0f,1.0f,game.totalscore); } if (game.levelnum==64) { drawbackground(526,(320|TEXT_CENTER),48,192,192,640,480); drawtext(" -1",(320|TEXT_CENTER),256,16,1.0f,1.0f,1.0f,1.0f); } if (game.levelnum==65) { drawbackground(526,(320|TEXT_CENTER),48,192,192,640,480); drawtext(" -2",(320|TEXT_CENTER),256,16,1.0f,1.0f,1.0f,1.0f); } if (game.levelnum==66) { drawbackground(526,(320|TEXT_CENTER),48,192,192,640,480); drawtext(" -3",(320|TEXT_CENTER),256,16,1.0f,1.0f,1.0f,1.0f); } if (game.levelnum==67) { drawbackground(526,(320|TEXT_CENTER),48,192,192,640,480); drawtext(TXT_ISLE_OF_THE,(320|TEXT_CENTER),256,16,1.0f,1.0f,1.0f,1.0f); drawtext(TXT_DEAD,(320|TEXT_CENTER),272,16,1.0f,1.0f,1.0f,1.0f); } if (game.levelnum==68) { drawbackground(526,(320|TEXT_CENTER),48,192,192,640,480); drawtext(TXT_SATANS_LAIR,(320|TEXT_CENTER),256,16,1.0f,1.0f,1.0f,1.0f); } drawmenuitems(); drawmousecursor(768+font.cursornum,mouse.x,mouse.y,16,1.0f,1.0f,1.0f,1.0f); SDL_GL_SwapBuffers(); if (menuitem[1].active)// || startdelay>=150) { loadstorylevel(game.levelnum); gameloop(); if (game.exit==GAMEEXIT_EXITGAME || game.exit==GAMEEXIT_DIED) if (game.levelnum<64) { if (game.numoflives<99) game.numoflives--; if (game.numoflives<0) { if (player[playernum].highscore<game.totalscore) player[playernum].highscore=game.totalscore; game.totalscore=0; game.numoflives=5; if (game.difficulty==1) { count2=(game.levelnum-1)%7+1; if (count2!=7) { count=(game.levelnum-1)/7; game.levelnum=count*7+1; } } if (game.difficulty>=2) game.levelnum=0; gameovermenu(); goto changelevelbypass; } } if (game.levelnum==34) if (game.exit==GAMEEXIT_WON || game.exit==GAMEXIT_WARPZONE) { game.score[0]=10000; if (game.levelnum==34 && game.exit==GAMEEXIT_WON) game.score[0]+=1; game.score[0]+=(object[0].hitpoints/50)*10; postgamemenu(); game.totalscore+=game.score[0]; endingmenu(); menuitem[0].active=1; game.levelnum=35; goto changelevelbypass; } if (game.exit==GAMEEXIT_WON) { //if (!game.bosslevel) if (game.levelnum!=68 || game.dialog==0) { if (game.levelnum==6) game.score[0]=1000; if (game.levelnum==13) game.score[0]=2000; if (game.levelnum==20) game.score[0]=3000; if (game.levelnum==27) game.score[0]=4000; if (game.levelnum==33) game.score[0]=5000; if (game.levelnum==34) game.score[0]=10000; if (game.levelnum==68) game.score[0]=20000; //if (game.levelnum==34 && game.exit==won) // game.score[0]+=10; game.oldschool=0; game.score[0]+=(object[0].hitpoints/50)*10; postgamemenu(); game.totalscore+=game.score[0]; if (game.exit==GAMEEXIT_EXITGAME) { game.exit=GAMEEXIT_WON; menuitem[0].active=1; } } if (game.levelnum<35) game.levelnum++; } if (game.levelnum==64) { game.levelnum=4; if (game.over==3) game.levelnum=22; if (game.over==4) game.levelnum=15; if (game.over==5) game.levelnum=8; goto changelevelbypass; } if (game.levelnum==65) { game.levelnum=9; goto changelevelbypass; } if (game.levelnum==66) { game.levelnum=26; goto changelevelbypass; } if (game.levelnum==67) { if (game.exit==GAMEEXIT_EXITGAME || game.exit==GAMEEXIT_DIED) game.levelnum=19; else game.levelnum=68; goto changelevelbypass; } if (game.levelnum==68) { game.levelnum=19; goto changelevelbypass; } if (game.exit==GAMEXIT_WARPZONE) { game.totalscore+=game.score[0]; if (game.levelnum==3) game.levelnum=64; if (game.levelnum==4) game.levelnum=24; if (game.levelnum==8) game.levelnum=65; if (game.levelnum==18) game.levelnum=67; if (game.levelnum==25) game.levelnum=66; goto changelevelbypass; } changelevelbypass:; simtimer=SDL_GetTicks(); startdelay=0; joymenunum=1; } simcount=0; while (SDL_GetTicks()-simtimer>20 && simcount<5) { simcount++; count=SDL_GetTicks()-simtimer-20; simtimer=SDL_GetTicks()-count; //startdelay++; } if (game.exit==GAMEEXIT_EXITGAME) menuitem[0].active=1; } resetmenuitems(); }
void custommenu(void) { int count; resetmenuitems(); joymenunum=1; while (!menuitem[0].active && !windowinfo.shutdown) { glClearColor(0.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); numofmenuitems=0; createmenuitem(TXT_EXIT,0,0,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_ESC); count=352; createmenuitem(TXT_PLAY_CAMPAIGN,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_C); count+=16; createmenuitem(TXT_LOAD_LEVEL,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_L); count+=16; createmenuitem(TXT_LEVEL_EDITOR,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_E); count+=16; createmenuitem(TXT_CAMPAIGN_EDITOR,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_A); count+=16; checksystemmessages(); checkkeyboard(); checkmouse(); checkjoystick(); checkmenuitems(); updateogg(); checkmusic(); game.songnum=8; soundsimulation(view.position,view.orientation); setuptextdisplay(); glColor4f(1.0f,1.0f,1.0f,1.0f); displaybackground(620); drawtext(TXT_CUSTOM_LEVELS,(320|TEXT_CENTER),304,16,1.0f,1.0f,1.0f,1.0f); drawmenuitems(); drawmousecursor(768+font.cursornum,mouse.x,mouse.y,16,1.0f,1.0f,1.0f,1.0f); SDL_GL_SwapBuffers(); if (menuitem[1].active) { game.songnum=-1; checkmusic(); game.editing=0; playcampaignmenu(); } if (menuitem[2].active) { game.songnum=-1; checkmusic(); game.editing=0; loadlevelmenu(); } if (menuitem[3].active) { game.songnum=-1; checkmusic(); game.editing=1; game.levelnum=0; createlevel(); gameloop(); game.editing=0; } if (menuitem[4].active) { newmappackmenu(); } } resetmenuitems(); }
int main(int argc, char *argv[]) { srand(time(NULL)); audio_init(fft); gameloop(); }
void loadlevelmenu(void) { int count,count2; int changeddir; int numoffiles; int pagenum; changeddir=chdir("level"); listfiles("*.lvl",levellist,0); if (changeddir==0) chdir(".."); numoffiles=0; while (levellist[numoffiles][0]!=0) numoffiles++; pagenum=0; resetmenuitems(); joymenunum=1; while (!menuitem[0].active && !windowinfo.shutdown) { glClearColor(0.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); numofmenuitems=0; createmenuitem(TXT_BACK,0,0,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_ESC); count=0; for (count2=0;count2<8;count2++) if (pagenum+count<numoffiles) { createmenuitem(levellist[pagenum+count],64,320+count2*12,12,1.0f,1.0f,1.0f,1.0f); count++; } for (count2=0;count2<8;count2++) if (pagenum+count<numoffiles) { createmenuitem(levellist[pagenum+count],256,320+count2*12,12,1.0f,1.0f,1.0f,1.0f); count++; } for (count2=0;count2<8;count2++) if (pagenum+count<numoffiles) { createmenuitem(levellist[pagenum+count],448,320+count2*12,12,1.0f,1.0f,1.0f,1.0f); count++; } createmenuitem(TXT_PAGE_UP,(304|TEXT_END),416,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_PAGEUP); setmenuitem(MO_SET,&pagenum,pagenum-24); if (pagenum<24) setmenuitem(MO_HIGHLIGHT,0); createmenuitem(TXT_PAGE_DOWN,320,416,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_PAGEDOWN); setmenuitem(MO_SET,&pagenum,pagenum+24); if (pagenum+24>=numoffiles) setmenuitem(MO_HIGHLIGHT,0); checksystemmessages(); checkkeyboard(); checkmouse(); checkjoystick(); checkmenuitems(); setuptextdisplay(); glColor4f(1.0f,1.0f,1.0f,1.0f); displaybackground(620); drawtext(TXT_LOAD_LEVEL,(320|TEXT_CENTER),304,16,1.0f,1.0f,1.0f,1.0f); drawmenuitems(); drawmousecursor(768+font.cursornum,mouse.x,mouse.y,16,1.0f,1.0f,1.0f,1.0f); SDL_GL_SwapBuffers(); for (count=1;count<=24;count++) if (pagenum+count-1<numoffiles) if (menuitem[count].active) { game.editing=0; game.levelnum=0; loadlevel(levellist[pagenum+count-1]); gameloop(); joymenunum=count; } } resetmenuitems(); }
void playerstartmenu(void) { int count,count2,count3; if (playernum==-1) return; resetmenuitems(); joymenunum=1; while (!menuitem[0].active && !windowinfo.shutdown) { glClearColor(0.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); numofmenuitems=0; createmenuitem(TXT_BACK,0,0,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_ESC); count=352; if (player[playernum].levelnum>0) { createmenuitem(TXT_CONTINUE,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_C); count+=16; createmenuitem(TXT_COLLECTION_GAME,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_O); count+=16; createmenuitem(TXT_NEW_GAME,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_N); count+=16; createmenuitem(TXT_PRACTICE,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_P); count+=16; createmenuitem(TXT_REPLAY,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_R); count+=16; #ifndef DEMO /* if (player[playernum].unlock[0]) { createmenuitem(TXT_SINGLE_LEVEL,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_S); count+=16; } else */ createmenuitemempty(); #endif #ifndef DEMO createmenuitem(TXT_CUSTOM_LEVELS,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_U); count+=16; #endif } else { createmenuitem(TXT_NEW_GAME,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_N); count+=16; createmenuitem(TXT_COLLECTION_GAME,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_O); count+=16; createmenuitemempty(); createmenuitem(TXT_PRACTICE,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_P); count+=16; createmenuitem(TXT_REPLAY,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_R); count+=16; /* if (player[playernum].unlock[0]) { createmenuitem(TXT_SINGLE_LEVEL,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_S); count+=16; } else */ createmenuitemempty(); #ifndef DEMO createmenuitem(TXT_CUSTOM_LEVELS,48,count,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_U); count+=16; #endif } checksystemmessages(); checkkeyboard(); checkmouse(); checkjoystick(); checkmenuitems(); updateogg(); checkmusic(); game.songnum=8; soundsimulation(view.position,view.orientation); setuptextdisplay(); glColor4f(1.0f,1.0f,1.0f,1.0f); displaybackground(620); count2=(player[playernum].levelnum-1)/7+1; count3=(player[playernum].levelnum-1)%7+1; if (count3==0) count3=1; if (!player[playernum].gamepassed) { drawtext(player[playernum].name,(320|TEXT_CENTER),304,16,1.0f,1.0f,1.0f,1.0f); if (player[playernum].levelnum>0) { drawtext(TXT_PLAYER_INFO,(320|TEXT_CENTER),320,12,1.0f,1.0f,1.0f,1.0f,count2,count3,player[playernum].numoflives,player[playernum].totalscore,player[playernum].highscore); if (player[playernum].difficulty==0) drawtext(TXT_EASY,(320|TEXT_CENTER),332,12,1.0f,1.0f,1.0f,1.0f); if (player[playernum].difficulty==1) drawtext(TXT_NORMAL,(320|TEXT_CENTER),332,12,1.0f,1.0f,1.0f,1.0f); if (player[playernum].difficulty==2) drawtext(TXT_HARD,(320|TEXT_CENTER),332,12,1.0f,1.0f,1.0f,1.0f); if (player[playernum].difficulty==3) drawtext(TXT_LUDICROUS,(320|TEXT_CENTER),332,12,1.0f,1.0f,1.0f,1.0f); if (player[playernum].difficulty==4) drawtext(TXT_MINI_GISH,(320|TEXT_CENTER),332,12,1.0f,1.0f,1.0f,1.0f); } } else { drawtext(player[playernum].name,(320|TEXT_CENTER),304,16,1.0f,1.0f,0.0f,1.0f); if (player[playernum].levelnum>0) { drawtext(TXT_PLAYER_INFO,(320|TEXT_CENTER),320,12,1.0f,1.0f,0.0f,1.0f,count2,count3,player[playernum].numoflives,player[playernum].totalscore,player[playernum].highscore); if (player[playernum].difficulty==0) drawtext(TXT_EASY,(320|TEXT_CENTER),332,12,1.0f,1.0f,0.0f,1.0f); if (player[playernum].difficulty==1) drawtext(TXT_NORMAL,(320|TEXT_CENTER),332,12,1.0f,1.0f,0.0f,1.0f); if (player[playernum].difficulty==2) drawtext(TXT_HARD,(320|TEXT_CENTER),332,12,1.0f,1.0f,0.0f,1.0f); if (player[playernum].difficulty==3) drawtext(TXT_LUDICROUS,(320|TEXT_CENTER),332,12,1.0f,1.0f,0.0f,1.0f); if (player[playernum].difficulty==4) drawtext(TXT_MINI_GISH,(320|TEXT_CENTER),332,12,1.0f,1.0f,0.0f,1.0f); } } drawmenuitems(); drawmousecursor(768+font.cursornum,mouse.x,mouse.y,16,1.0f,1.0f,1.0f,1.0f); SDL_GL_SwapBuffers(); if (menuitem[1].active) { if (player[playernum].levelnum>0) { game.levelnum=player[playernum].levelnum; game.totalscore=player[playernum].totalscore; game.difficulty=player[playernum].difficulty; game.numoflives=player[playernum].numoflives; } else { playerdifficultymenu(); if (game.difficulty==-1) { game.difficulty=0; goto newgamebypass; } player[playernum].difficulty=game.difficulty; game.levelnum=1; game.totalscore=0; game.numoflives=5; if (player[playernum].difficulty==3) { game.numoflives=0; game.turbomode=1; } storyscreen(); } game.songnum=-1; checkmusic(); pregamemenu(); player[playernum].levelnum=game.levelnum; player[playernum].totalscore=game.totalscore; player[playernum].numoflives=game.numoflives; if (player[playernum].highscore<player[playernum].totalscore) player[playernum].highscore=player[playernum].totalscore; #ifdef DEMO if (player[playernum].levelnum==6) { player[playernum].levelnum=0; player[playernum].totalscore=0; player[playernum].numoflives=5; player[playernum].gamepassed=1; } #endif if (player[playernum].levelnum==35) { if (player[playernum].difficulty==1 || player[playernum].difficulty==2) player[playernum].unlock[0]=1; if (player[playernum].difficulty==2) player[playernum].unlock[1]=1; if (player[playernum].difficulty==3) player[playernum].unlock[2]=1; if (player[playernum].difficulty==4) player[playernum].unlock[3]=1; player[playernum].levelnum=0; player[playernum].totalscore=0; player[playernum].numoflives=5; player[playernum].gamepassed=1; } //game.difficulty=0; //menuitem[0].active=1; newgamebypass:; } if (menuitem[2].active) { collectionmenu(); //menuitem[0].active=1; } if (menuitem[3].active) { playerdifficultymenu(); if (game.difficulty==-1) { game.difficulty=0; goto newgamebypass2; } player[playernum].difficulty=game.difficulty; game.levelnum=1; game.totalscore=0; game.numoflives=5; if (player[playernum].difficulty==3) { game.numoflives=0; game.turbomode=1; } storyscreen(); game.songnum=-1; checkmusic(); pregamemenu(); player[playernum].levelnum=game.levelnum; player[playernum].totalscore=game.totalscore; player[playernum].numoflives=game.numoflives; if (player[playernum].highscore<player[playernum].totalscore) player[playernum].highscore=player[playernum].totalscore; #ifdef DEMO if (player[playernum].levelnum==6) { player[playernum].levelnum=0; player[playernum].totalscore=0; player[playernum].numoflives=5; player[playernum].gamepassed=1; } #endif if (player[playernum].levelnum==35) { if (player[playernum].difficulty==1 || player[playernum].difficulty==2) player[playernum].unlock[0]=1; if (player[playernum].difficulty==2) player[playernum].unlock[1]=1; if (player[playernum].difficulty==3) player[playernum].unlock[2]=1; if (player[playernum].difficulty==4) player[playernum].unlock[3]=1; player[playernum].levelnum=0; player[playernum].totalscore=0; player[playernum].numoflives=5; player[playernum].gamepassed=1; } //game.difficulty=0; //menuitem[0].active=1; newgamebypass2:; } if (menuitem[4].active) { game.songnum=-1; checkmusic(); game.editing=0; game.levelnum=0; loadlevel("playroom.lvl"); gameloop(); } if (menuitem[5].active) { game.songnum=-1; checkmusic(); replaymenu(); } if (menuitem[6].active) { singlelevelmenu(); } if (menuitem[7].active) { custommenu(); } } resetmenuitems(); }
int main() { gameinit(); Print("start\n", 0, 0); gameloop(); }
void singlelevelmenu(void) { int count; resetmenuitems(); joymenunum=1; while (!menuitem[0].active && !windowinfo.shutdown) { glClearColor(0.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); numofmenuitems=0; createmenuitem(TXT_BACK,0,0,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_ESC); count=320; createmenuitem(TXT_LEVEL" 1-1",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 1-2",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 1-3",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 1-4",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 1-5",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 1-6",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 1-7",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 2-1",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 2-2",64,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; count=320; createmenuitem(TXT_LEVEL" 2-3",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 2-4",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 2-5",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 2-6",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 2-7",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 3-1",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 3-2",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 3-3",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 3-4",192,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; count=320; createmenuitem(TXT_LEVEL" 3-5",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 3-6",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 3-7",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 4-1",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 4-2",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 4-3",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 4-4",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 4-5",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 4-6",320,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; count=320; createmenuitem(TXT_LEVEL" 4-7",448,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 5-1",448,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 5-2",448,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 5-3",448,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 5-4",448,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 5-5",448,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; createmenuitem(TXT_LEVEL" 5-6",448,count,12,1.0f,1.0f,1.0f,1.0f); count+=12; checksystemmessages(); checkkeyboard(); checkmouse(); checkjoystick(); checkmenuitems(); updateogg(); checkmusic(); game.songnum=8; soundsimulation(view.position,view.orientation); setuptextdisplay(); glColor4f(1.0f,1.0f,1.0f,1.0f); displaybackground(620); drawtext(TXT_SINGLE_LEVEL,(320|TEXT_CENTER),304,16,1.0f,1.0f,1.0f,1.0f); drawmenuitems(); drawmousecursor(768+font.cursornum,mouse.x,mouse.y,16,1.0f,1.0f,1.0f,1.0f); SDL_GL_SwapBuffers(); for (count=1;count<=34;count++) if (menuitem[count].active) { game.songnum=-1; checkmusic(); game.editing=0; game.levelnum=0; loadstorylevel(count); gameloop(); savereplay(count+100); joymenunum=count; } } resetmenuitems(); }
void versusmodemenu(int versusnum) { int count; int unlocked; char filename[32]; unlocked=0; for (count=0;count<6;count++) if (player[count].unlock[1]) unlocked=1; resetmenuitems(); joymenunum=1; while (!menuitem[0].active && !windowinfo.shutdown) { glClearColor(0.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); numofmenuitems=0; createmenuitem(TXT_EXIT,0,0,16,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_ESC); count=250; createmenuitem(TXT_LEVEL" 1",(320|TEXT_CENTER),count,20,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_1); count+=20; createmenuitem(TXT_LEVEL" 2",(320|TEXT_CENTER),count,20,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_2); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=20; createmenuitem(TXT_LEVEL" 3",(320|TEXT_CENTER),count,20,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_3); #ifdef DEMO setmenuitem(MO_HIGHLIGHT,0); #endif count+=20; #ifndef DEMO if (unlocked) { createmenuitem(TXT_LEVEL" 4",(320|TEXT_CENTER),count,20,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_4); count+=20; } else createmenuitemempty(); #endif #ifndef DEMO count=360; if (versusnum==0 || versusnum==1) { createmenuitem(TXT_LEVEL" 5",(320|TEXT_CENTER),count,20,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_5); count+=20; createmenuitem(TXT_LEVEL" 6",(320|TEXT_CENTER),count,20,1.0f,1.0f,1.0f,1.0f); setmenuitem(MO_HOTKEY,SCAN_6); count+=20; } #endif checksystemmessages(); checkkeyboard(); checkmouse(); checkjoystick(); checkmenuitems(); updateogg(); checkmusic(); game.songnum=8; soundsimulation(view.position,view.orientation); setuptextdisplay(); glColor4f(1.0f,1.0f,1.0f,1.0f); displaybackground(540); drawbackground(530+versusnum,(320|TEXT_CENTER),48,192,192,640,480); drawtext("2 "TXT_PLAYER,(320|TEXT_CENTER),234,16,1.0f,1.0f,1.0f,1.0f); if (versusnum==0 || versusnum==1) drawtext("4 "TXT_PLAYER,(320|TEXT_CENTER),344,16,1.0f,1.0f,1.0f,1.0f); drawmenuitems(); drawmousecursor(768+font.cursornum,mouse.x,mouse.y,16,1.0f,1.0f,1.0f,1.0f); SDL_GL_SwapBuffers(); if (versusnum==0) strcpy(filename,"bathhouse"); if (versusnum==1) strcpy(filename,"field"); if (versusnum==2) strcpy(filename,"amber"); if (versusnum==3) strcpy(filename,"fight"); if (versusnum==4) strcpy(filename,"dragster"); if (versusnum==5) strcpy(filename,"colvs"); if (versusnum==6) strcpy(filename,"racing"); if (menuitem[1].active) { game.songnum=-1; checkmusic(); game.levelnum=0; strcat(filename,".lvl"); loadlevel(filename); gameloop(); } if (menuitem[2].active) { game.songnum=-1; checkmusic(); game.levelnum=0; strcat(filename,"2.lvl"); loadlevel(filename); gameloop(); } if (menuitem[3].active) { game.songnum=-1; checkmusic(); game.levelnum=0; strcat(filename,"3.lvl"); loadlevel(filename); gameloop(); } if (menuitem[4].active) { game.songnum=-1; checkmusic(); game.levelnum=0; strcat(filename,"4.lvl"); loadlevel(filename); gameloop(); } if (menuitem[5].active) { game.songnum=-1; checkmusic(); if (versusnum==0) strcpy(filename,"4bath"); if (versusnum==1) strcpy(filename,"4field"); game.levelnum=0; strcat(filename,".lvl"); loadlevel(filename); gameloop(); } if (menuitem[6].active) { game.songnum=-1; checkmusic(); if (versusnum==0) strcpy(filename,"4bath"); if (versusnum==1) strcpy(filename,"4field"); game.levelnum=0; strcat(filename,"2.lvl"); loadlevel(filename); gameloop(); } } resetmenuitems(); }