bool Pipeline::loadCommands(TiXmlElement *xml) { for (TiXmlElement *stageelem = xml->FirstChildElement("Stage"); stageelem != 0; stageelem = stageelem->NextSiblingElement("Stage")) { PipelineStage *newstage = new PipelineStage; newstage->enabled = true; const char *name = stageelem->Attribute("name"); if (name) newstage->name = name; if (!loadStage(stageelem, newstage)) { delete newstage; return false; } stages.push_back(newstage); } return true; }
Level::Level(string folder_p, string game_name) { folder = folder_p; terrain_info_file = "terrain"; direct_light_name = ""; spawn_yaw = 0.0f; spawn_dead_height = -3000.0f; spawn_camera_view = LIBGENS_LEVEL_CAMERA_VIEW_FORWARD; spawn_position = Vector3(0.0f, 0.0f, 0.0f); spawn_mode = "Stand"; spawn_speed = 0.0f; spawn_time = 0.0f; game_mode = LIBGENS_LEVEL_GAME_GENERATIONS; if (game_name == LIBGENS_LEVEL_GAME_STRING_UNLEASHED) { game_mode = LIBGENS_LEVEL_GAME_UNLEASHED; } loadStage(); loadSceneEffect(); loadSets(); loadTerrain(); }
void MenuUpdate() { Uint8 *keys; static float pulse=0.5f; static int delay=190; static int flag=0; static float fadein =0.1f; static int cursor=0; keys = SDL_GetKeyState(NULL); if(inMenu == 2) { if(fadein < 1 && delay > 80) { fadein += 0.03f; }else if(fadein > 0 && delay < 80)fadein -= 0.02f; glColor4f(fadein,fadein,fadein,fadein); DrawSprite(zfactory,(S_Data.xres*0.5f)-480,(S_Data.yres*0.5f)-450,0,0.8f); glColor4f(1,1,1,1); if(delay > 0) delay--; if(delay == 0) { delay=250; fadein =0.1f; inMenu = 3; return; } } if(inMenu == 3) { if(fadein < 1 && delay > 80) { fadein += 0.03f; }else if(fadein > 0 && delay < 60)fadein -= 0.02f; glColor4f(fadein,fadein,fadein,fadein); playVideo("images/regoEngine",(S_Data.xres*0.5f)-128,(S_Data.yres*0.5f)-128, 256, 256, 150); glColor4f(1,1,1,1); if(delay > 0) delay--; if(delay == 0) { delay=10; fadein =0.1f; playergraphic(0,-10,0); inMenu = 1; return; } } if(inMenu == 1) { if(delay > 0) delay--; if((keys[SDLK_UP] || SDL_JoystickGetAxis(Stick,yaxis) < -32000 || SDL_JoystickGetButton(Stick,up)) && delay <= 0) { if(cursor != 0)cursor--; delay=10; } if((keys[SDLK_DOWN] || SDL_JoystickGetAxis(Stick,yaxis) > 32000 || SDL_JoystickGetButton(Stick,down)) && delay <= 0) { if(cursor != 2)cursor++; delay=10; } if(fadein < 1) fadein += 0.01f; if(flag == 0) { if(pulse < 1) { pulse += 0.08f; }else flag = 1; } if(flag == 1) { if(pulse > 0.5f) { pulse -= 0.08f; }else flag = 0; } if((keys[SDLK_RETURN]|| SDL_JoystickGetButton(Stick,fireNormalGun))&& delay <= 0) { if(cursor == 1) { inMenu=0; fadein =0.0f; loadStage("stages/stage1normal"); return; } if(cursor == 0) { inMenu=0; fadein =0.0f; loadStage("stages/stage1easy"); return; } if(cursor == 2) { inMenu=0; fadein =0.0f; loadStage("stages/stage1"); return; } } drawScene(); glColor4f(fadein,fadein,fadein,fadein); glEnable(GL_BLEND); DrawTxt("Shape Shifter",videobuffer,0,200,Red_,F_Medium); glDisable(GL_BLEND); if(fadein >= 0.6f) { if(cursor == 0) { glColor4f(pulse,0,0,1); DrawTxt("Easy",videobuffer,128,S_Data.yres - (700*0.5f),Red_,F_Small); glColor4f(1,1,1,1); }else DrawTxt("Easy",videobuffer,128,S_Data.yres - (700*0.5f),Red_,F_Small); if(cursor == 1) { glColor4f(pulse,0,0,1); DrawTxt("Normal",videobuffer,128,S_Data.yres - (500*0.5f),Red_,F_Small); glColor4f(1,1,1,1); }else DrawTxt("Normal",videobuffer,128,S_Data.yres - (500*0.5f),Red_,F_Small); if(cursor == 2) { glColor4f(pulse,0,0,1); DrawTxt("Extreme",videobuffer,128,S_Data.yres - (300*0.5f),Red_,F_Small); glColor4f(1,1,1,1); }else DrawTxt("Extreme",videobuffer,128,S_Data.yres - (300*0.5f),Red_,F_Small); }else delay = 2; glColor4f(1,1,1,1); } }