void GameEngine::init() { Preferences* p_pref = pref_get_instance(); switch(p_pref->render_target) { #ifdef WITH_DX_9 case Preferences::DX_9: target_DX9.set_current(); break; #endif case Preferences::OPENGL_1: target_GL1.set_current(); break; case Preferences::SOFTWARE: target_GDI.set_current(); break; case Preferences::OPENGL_2: target_GL2.set_current(); break; } _running = true; CommonResources* p_resources = common_resources_get_instance(); p_resources -> init(this); _window.manage(*this); CL_GraphicContext gc = _window.get_gc(); _skins_manager.init(); _common_state.init(); _ingame_state.init(); _gameover_state.init(); _pausemenu_state.init(); _skinsmenu_state.init(); _optionsmenu_state.init(); _title_state.init(); _quitmenu_state.init(); set_skin(p_pref -> skin); _framerate_counter.set_fps_limit(p_pref -> maxfps); }
void GameEngine::set_skin(std::string skin) { CommonResources* p_resources = common_resources_get_instance(); _p_loading_screen = my_new LoadingScreen(_window); _p_loading_screen -> init(); _p_loading_screen -> set_progression(0.0f); Preferences* p_pref = pref_get_instance(); std::string old_skin = p_pref -> skin; CL_GraphicContext& gc = _window.get_gc(); try { p_pref -> skin = skin; if (!_running) return; { p_resources -> load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(1.0f / 10.0f); } if (!_running) return; { _title_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(2.0f / 10.0f); } if (!_running) return; { _common_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(3.0f / 10.0f); } if (!_running) return; { _ingame_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(4.0f / 10.0f); } if (!_running) return; { _gameover_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(5.0f / 10.0f); } if (!_running) return; { _pausemenu_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(6.0f / 10.0f); } if (!_running) return; { _skinsmenu_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(7.0f / 10.0f); } if (!_running) return; { _optionsmenu_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(8.0f / 10.0f); } if (!_running) return; { _title_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(9.0f / 10.0f); } if (!_running) return; { _quitmenu_state.load_gfx(gc, p_pref -> skin); _p_loading_screen -> set_progression(10.0f / 10.0f); } p_pref -> write(); } catch (CL_Exception& err) { CL_ConsoleWindow console("OpenAlchemist Console", 80, 300); CL_Console::write_line("Skin error : " + err.message); CL_Console::write_line("Error in : " + skin); if (old_skin.compare(skin)) { CL_Console::write_line(""); CL_Console::write_line("Now loading default skin."); skin = get_skins_path() + get_path_separator() + "aqua.zip"; CL_Console::write_line(skin); console.display_close_message(); set_skin(skin); } else { throw err; } } my_delete(_p_loading_screen); _p_loading_screen = NULL; }
int main(int argc, char *argv[]) { char option[2]; int n; int err=0; if(!argc) usage(argv[0]); clone_args( argv, argc ); #if !GLIB_CHECK_VERSION(2,36,0) g_type_init(); #endif gtk_init( &argc, &argv ); // default host to connect to snprintf(hostname,sizeof(hostname), "127.0.0.1"); while( ( n = getopt( argc, argv, "s:h:p:tabnvLHfX:P:Vl:T:m:g:")) != EOF ) { sprintf(option, "%c", n ); err += set_option( option, optarg); if(err) usage(argv[0]); } if( optind > argc ) err ++; if( err ) usage(argv[0]); glade_init(); vj_mem_init(); vevo_strict_init(); find_user_themes(gveejay_theme); vj_gui_set_debug_level( verbosity , n_tracks,0,0); set_skin( selected_skin, gveejay_theme ); default_bank_values( &col, &row ); gui_load_theme(); register_signals(); vj_gui_init( skins[selected_skin].file, launcher, hostname, port_num, use_threads, load_midi, midi_file,beta,auto_connect); vj_gui_style_setup(); if( preview ) { veejay_msg(VEEJAY_MSG_INFO, "Starting with preview enabled"); gveejay_preview(preview); } if( launcher ) { reloaded_launcher( hostname, port_num ); } memset( &time_last_, 0, sizeof(struct timeval)); while(gveejay_running()) { if(gveejay_idle(NULL)==FALSE) break; while( gtk_events_pending() ) gtk_main_iteration(); } veejay_msg(VEEJAY_MSG_INFO, "See you!"); return 0; }