Ogre3DApplication::Ogre3DApplication () { root_ = OGRE_NEW Ogre::Root (); setup_resources (); root_-> restoreConfig(); win_ = root_-> initialise (true); scenemgr_ = root_-> createSceneManager (Ogre::ST_GENERIC, "SceneManager"); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); model_ = new WorldModel (scenemgr_); view_ = new WorldView (model_, win_); controller_ = new WorldController (model_); //winctrl_ = new WindowController (win_); root_-> addFrameListener (controller_); //root_-> addFrameListener (winctrl_); // show available render targets //Ogre::RenderSystem::RenderTargetIterator it (root_->getRenderSystem()->getRenderTargetIterator()); //while (it.hasMoreElements()) // std::cout << "Render Target: " << it.getNext()-> getName() << std::endl; }
Ogre3DApplication::Ogre3DApplication (QOgreUIView *uiview) { std::string plugincfg; #ifdef Q_WS_WIN if (DEBUG_MODE) plugincfg = "plugins_win_d.cfg"; else plugincfg = "plugins_win.cfg"; #elif defined Q_WS_X11 plugincfg = "plugins.cfg"; #endif root_ = new Ogre::Root (plugincfg); setup_resources (); root_-> restoreConfig(); root_-> initialise (false); win_ = uiview-> CreateRenderWindow (); scenemgr_ = root_-> createSceneManager (Ogre::ST_GENERIC, "SceneManager"); Ogre::ResourceGroupManager::getSingleton(). initialiseAllResourceGroups (); model_ = new WorldModel (scenemgr_); controller_ = new WorldController (model_); view_ = new WorldView (model_, win_); uiview-> SetWorldView (view_); root_-> addFrameListener (controller_); }
void __init setup_arch(char **cmdline_p) { /* * print what head.S has found out about the machine */ #ifndef CONFIG_64BIT printk((MACHINE_IS_VM) ? "We are running under VM (31 bit mode)\n" : "We are running native (31 bit mode)\n"); printk((MACHINE_HAS_IEEE) ? "This machine has an IEEE fpu\n" : "This machine has no IEEE fpu\n"); #else /* CONFIG_64BIT */ printk((MACHINE_IS_VM) ? "We are running under VM (64 bit mode)\n" : "We are running native (64 bit mode)\n"); #endif /* CONFIG_64BIT */ /* Save unparsed command line copy for /proc/cmdline */ strlcpy(boot_command_line, COMMAND_LINE, COMMAND_LINE_SIZE); *cmdline_p = COMMAND_LINE; *(*cmdline_p + COMMAND_LINE_SIZE - 1) = '\0'; ROOT_DEV = Root_RAM0; init_mm.start_code = PAGE_OFFSET; init_mm.end_code = (unsigned long) &_etext; init_mm.end_data = (unsigned long) &_edata; init_mm.brk = (unsigned long) &_end; if (MACHINE_HAS_MVCOS) memcpy(&uaccess, &uaccess_mvcos, sizeof(uaccess)); else memcpy(&uaccess, &uaccess_std, sizeof(uaccess)); parse_early_param(); setup_memory_end(); setup_addressing_mode(); setup_memory(); setup_resources(); setup_lowcore(); cpu_init(); __cpu_logical_map[0] = S390_lowcore.cpu_data.cpu_addr; smp_setup_cpu_possible_map(); /* * Create kernel page tables and switch to virtual addressing. */ paging_init(); /* Setup default console */ conmode_default(); }
static void test_cr_mallorn(CuTest *tc) { stream strm; char line[1024]; faction *f; region *r; setup_resources(); f = test_create_faction(NULL); r = test_create_region(0, 0, NULL); r->land->horses = 1; r->land->peasants = 200; r->land->money = 300; r->flags |= RF_MALLORN; rsettrees(r, 0, 1); rsettrees(r, 1, 2); rsettrees(r, 2, 3); mstream_init(&strm); cr_output_resources(&strm, f, r, false); strm.api->rewind(strm.handle); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "3;Baeume", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "2;Schoesslinge", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "1;Mallorn", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Mallornschoesslinge\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "2;number", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Mallorn\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "3;number", line); mstream_done(&strm); test_teardown(); }
bool application::setup() { root = new Ogre::Root(plugin_cfg); setup_resources(); if (!configure()) return false; choose_scene_mgr(); create_camera(); create_viewports(); Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); create_resource_listener(); load_resources(); create_scene(); create_frame_listener(); return true; }
void __init setup_arch(char **cmdline_p) { /* * print what head.S has found out about the machine */ #ifndef CONFIG_64BIT if (MACHINE_IS_VM) pr_info("Linux is running as a z/VM " "guest operating system in 31-bit mode\n"); else if (MACHINE_IS_LPAR) pr_info("Linux is running natively in 31-bit mode\n"); if (MACHINE_HAS_IEEE) pr_info("The hardware system has IEEE compatible " "floating point units\n"); else pr_info("The hardware system has no IEEE compatible " "floating point units\n"); #else /* CONFIG_64BIT */ if (MACHINE_IS_VM) pr_info("Linux is running as a z/VM " "guest operating system in 64-bit mode\n"); else if (MACHINE_IS_KVM) pr_info("Linux is running under KVM in 64-bit mode\n"); else if (MACHINE_IS_LPAR) pr_info("Linux is running natively in 64-bit mode\n"); #endif /* CONFIG_64BIT */ /* Have one command line that is parsed and saved in /proc/cmdline */ /* boot_command_line has been already set up in early.c */ *cmdline_p = boot_command_line; ROOT_DEV = Root_RAM0; init_mm.start_code = PAGE_OFFSET; init_mm.end_code = (unsigned long) &_etext; init_mm.end_data = (unsigned long) &_edata; init_mm.brk = (unsigned long) &_end; if (MACHINE_HAS_MVCOS) memcpy(&uaccess, &uaccess_mvcos, sizeof(uaccess)); else memcpy(&uaccess, &uaccess_std, sizeof(uaccess)); parse_early_param(); setup_ipl(); setup_memory_end(); setup_addressing_mode(); setup_memory(); setup_resources(); setup_lowcore(); cpu_init(); s390_init_cpu_topology(); /* * Setup capabilities (ELF_HWCAP & ELF_PLATFORM). */ setup_hwcaps(); /* * Create kernel page tables and switch to virtual addressing. */ paging_init(); /* Setup default console */ conmode_default(); set_preferred_console(); /* Setup zfcpdump support */ setup_zfcpdump(console_devno); }
int main() { setup_resources(); config::register_var("screen_width", "1000"); config::register_var("screen_height", "562"); config::register_var("master_volume", "10"); config::register_var("music_volume", "5"); platform platform; if (!platform.init(config::get_var_int("screen_width"), config::get_var_int("screen_height"), "Open Horizon 7th demo")) return -1; std::vector<joystick_config> joysticks; for (int i = 0; glfwJoystickPresent(i); ++i) { const char *name = glfwGetJoystickName(i); joystick_config j; j.init(name); joysticks.push_back(j); int axis_count = 0, buttons_count = 0; glfwGetJoystickAxes(i, &axis_count); glfwGetJoystickButtons(i, &buttons_count); printf("joy%d: %s %d axis %d buttons\n", i, name, axis_count, buttons_count); } renderer::scene scene; sound::world sound_world; game::world world(scene, sound_world, scene.hud); game::mission game_mode_ms(world); game::free_flight game_mode_ff(world); game::deathmatch game_mode_dm(world); game::team_deathmatch game_mode_tdm(world); game::hangar hangar(scene); game::game_mode *active_game_mode = 0; game::plane_controls controls; game::network_client client; game::network_server server; gui::menu menu(sound_world); gui::menu_controls menu_controls; platform::key_callback kcb = std::bind(&gui::menu::on_input, &menu, std::placeholders::_1); platform.set_keyboard_callback(kcb); int mx = platform.get_mouse_x(), my = platform.get_mouse_y(); int screen_width = platform.get_width(), screen_height = platform.get_height(); scene.resize(screen_width, screen_height); scene.loading(true); nya_render::clear(true, true); scene.draw(); platform.end_frame(); sound_world.set_volume(config::get_var_int("master_volume") / 10.0f); sound_world.set_music_volume(config::get_var_int("music_volume") / 10.0f); menu.init(); sound_world.set_music("BGM_menu"); bool viewer_mode = false; bool is_client = false, is_server = false; gui::menu::on_action on_menu_action = [&](const std::string &event) { if (event == "start") { sound_world.stop_music(); const char *music_names[] = {"BGM_ms10_08", "BGM_ms06", "BGM_ms08x", "BGM_ms11a", "BGM_ms11b", "BGM_ms12_02"}; sound_world.set_music(music_names[rand() % (sizeof(music_names) / sizeof(music_names[0]))]); auto location = menu.get_var("map"); auto plane = menu.get_var("ac"); const int color = atoi(menu.get_var("color").c_str()); is_client = false, is_server = false; scene.loading(true); nya_render::clear(true, true); scene.draw(); platform.end_frame(); scene.loading(false); auto mode = menu.get_var("mode"); auto mp_var = menu.get_var("multiplayer"); if (mp_var == "server") { world.set_network(&server); auto port = menu.get_var_int("port"); server.open(port, config::get_var("name").c_str(), mode.c_str(), menu.get_var("map").c_str(), menu.get_var_int("max_players")); if (menu.get_var("mp_public") == "true") game::servers_list::register_server(port); is_server = true; } else if (mp_var == "client") { world.set_network(&client); client.start(); is_client = true; } if (mode == "ms") { active_game_mode = &game_mode_ms; game_mode_ms.start(plane.c_str(), color, menu.get_var("mission").c_str()); } else if (mode == "dm") { const int bots_count = (is_client || is_server) ? 0 : 11; active_game_mode = &game_mode_dm; game_mode_dm.start(plane.c_str(), color, 0, location.c_str(), bots_count); } else if (mode == "tdm") { const int bots_count = (is_client || is_server) ? 0 : 7; active_game_mode = &game_mode_tdm; game_mode_tdm.start(plane.c_str(), color, 0, location.c_str(), bots_count); } else if (mode == "ff") { active_game_mode = &game_mode_ff; game_mode_ff.start(plane.c_str(), color, location.c_str()); } } else if (event == "connect") { menu.set_error(""); client.disconnect(); auto port = menu.get_var_int("port"); if (client.connect(menu.get_var("address").c_str(), port)) { menu.send_event("map=" + client.get_server_info().location); menu.send_event("mode=" + client.get_server_info().game_mode); menu.send_event("screen=ac_select"); } else menu.set_error(client.get_error()); } else if (event == "viewer_start") { viewer_mode = true; scene.camera.add_delta_rot(0.2f, 2.5f); } else if (event == "viewer_update_bg") { hangar.set_bkg(menu.get_var("bkg").c_str()); } else if (event == "viewer_update_ac") { const auto dr = scene.camera.get_delta_rot(); hangar.set_plane(menu.get_var("ac").c_str()); scene.camera.add_delta_rot(dr.x, dr.y - 3.14f); } else if (event == "viewer_update_color") { const auto dr = scene.camera.get_delta_rot(); const int color = atoi(menu.get_var("color").c_str()); hangar.set_plane_color(color); scene.camera.add_delta_rot(dr.x, dr.y - 3.14f); } else if (event == "viewer_end") { viewer_mode = false; hangar.end(); } else if (event == "update_volume") { sound_world.set_volume(config::get_var_int("master_volume") / 10.0f); sound_world.set_music_volume(config::get_var_int("music_volume") / 10.0f); } else if (event == "update_joy_config") { if (!joysticks.empty()) joysticks.front().update_config(); } else if (event == "exit") { server.close(); client.disconnect(); platform.terminate(); } else printf("unknown event: %s\n", event.c_str()); }; menu.set_callback(on_menu_action); bool reset_camera = false; unsigned long app_time = nya_system::get_time(); while (!platform.should_terminate()) { unsigned long time = nya_system::get_time(); int dt = int(time - app_time); if (dt > 1000 && !is_client && !is_server) dt = 1000; app_time = time; static bool speed10x = false, last_pause = false, paused = false; if (platform.get_width() != screen_width || platform.get_height() != screen_height) { screen_width = platform.get_width(), screen_height = platform.get_height(); scene.resize(screen_width, screen_height); config::set_var("screen_width", std::to_string(screen_width)); config::set_var("screen_height", std::to_string(screen_height)); } if (!active_game_mode) menu.update(dt, menu_controls); if (active_game_mode) { if (!paused) { active_game_mode->update(speed10x ? dt * 10 : dt, controls); //camera - tracking enemy auto p = world.get_player(); if (p && p->change_target_hold_time >= game::plane::change_target_hold_max_time && !p->targets.empty() && !p->targets.front().target.expired()) { static auto last_target = p->targets.front().target; if (last_target.expired() || last_target.lock() != p->targets.front().target.lock()) { last_target = p->targets.front().target; p->change_target_hold_time = game::plane::change_target_hold_max_time; } auto t = p->targets.front().target.lock(); auto tdir = t->get_pos() - p->get_pos(); // + (t->get_vel() - p->get_vel()) * (dt * 0.001f) nya_math::quat q(nya_math::vec3::forward(), tdir); q = nya_math::quat::invert(p->get_rot()) * q; auto da = q.get_euler(); scene.camera.reset_delta_rot(); const float k = nya_math::min((p->change_target_hold_time - game::plane::change_target_hold_max_time) / 500.0f, 1.0); scene.camera.add_delta_rot(da.x * k, -da.y * k); reset_camera = true; } } scene.draw(); //util debug draw nya_render::clear(false, true); nya_render::set_state(nya_render::state()); nya_render::set_modelview_matrix(nya_scene::get_camera().get_view_matrix()); get_debug_draw().set_line_width(2.0f); get_debug_draw().set_point_size(3.0f); get_debug_draw().draw(); } else { nya_render::clear(true, true); if (viewer_mode) { hangar.update(dt); scene.draw(); } menu.draw(scene.ui_render); } const char *ui_ref = 0; //ui_ref = "ui_ref4.tga"; if (ui_ref) { static nya_scene::texture ui_ref_texture(ui_ref); static std::vector<gui::rect_pair> ui_ref_rects(1); ui_ref_rects[0].r.w = scene.ui_render.get_width(); ui_ref_rects[0].r.y = scene.ui_render.get_height(); ui_ref_rects[0].r.h = -scene.ui_render.get_height(); ui_ref_rects[0].tc.w = ui_ref_texture.get_width(); ui_ref_rects[0].tc.h = ui_ref_texture.get_height(); static int alpha_anim = 0; alpha_anim += dt; alpha_anim = alpha_anim % 4000; //alpha_anim = 1000; scene.ui_render.draw(ui_ref_rects, ui_ref_texture, nya_math::vec4(1.0, 1.0, 1.0, fabsf(alpha_anim / 2000.0f - 1.0))); } platform.end_frame(); //controls controls = game::plane_controls(); menu_controls = gui::menu_controls(); if (platform.get_mouse_lbtn()) scene.camera.add_delta_rot((platform.get_mouse_y() - my) * 0.03, (platform.get_mouse_x() - mx) * 0.03); if (platform.get_mouse_rbtn()) scene.camera.add_delta_pos(0, 0, my - platform.get_mouse_y()); mx = platform.get_mouse_x(), my = platform.get_mouse_y(); bool pause = false; for (int i = 0; i < (int)joysticks.size(); ++i) { int axes_count = 0, buttons_count = 0; const float *axes = glfwGetJoystickAxes(i, &axes_count); const unsigned char *buttons = glfwGetJoystickButtons(i, &buttons_count); joysticks[i].update(axes, axes_count, buttons, buttons_count); joysticks[i].apply_controls(controls, pause); if (!active_game_mode) { if (i == 0 && !menu.joy_update(axes, axes_count, buttons, buttons_count)) joysticks[i].apply_controls(menu_controls); } } if (platform.get_key(GLFW_KEY_W)) controls.throttle = 1.0f; if (platform.get_key(GLFW_KEY_S)) controls.brake = 1.0f; if (platform.get_key(GLFW_KEY_A)) controls.rot.y = -1.0f; if (platform.get_key(GLFW_KEY_D)) controls.rot.y = 1.0f; if (platform.get_key(GLFW_KEY_UP)) controls.rot.x = 1.0f, menu_controls.up = true; if (platform.get_key(GLFW_KEY_DOWN)) controls.rot.x = -1.0f, menu_controls.down = true; if (platform.get_key(GLFW_KEY_LEFT)) controls.rot.z = -1.0f, menu_controls.left = true; if (platform.get_key(GLFW_KEY_RIGHT)) controls.rot.z = 1.0f, menu_controls.right = true; if (platform.get_key(GLFW_KEY_LEFT_CONTROL)) controls.mgun = true; if (platform.get_key(GLFW_KEY_LEFT_SHIFT)) controls.mgun = true; if (platform.get_key(GLFW_KEY_SPACE)) controls.missile = true, menu_controls.next = true; if (platform.get_key(GLFW_KEY_F)) controls.flares = true; if (platform.get_key(GLFW_KEY_Q)) controls.change_weapon = true; if (platform.get_key(GLFW_KEY_E)) controls.change_target = true; if (platform.get_key(GLFW_KEY_R)) controls.change_radar = true; if (platform.get_key(GLFW_KEY_V)) controls.change_camera = true; if (platform.was_pressed(GLFW_KEY_ESCAPE)) menu_controls.prev = true; if (platform.was_pressed(GLFW_KEY_ENTER)) menu_controls.next = true; if (active_game_mode) { if (((pause && pause != last_pause) || platform.was_pressed(GLFW_KEY_P)) && !is_server && !is_client) scene.pause(paused = !paused); last_pause = pause; bool should_stop = platform.was_pressed(GLFW_KEY_ESCAPE); if (is_client && !client.is_up()) should_stop = true; if (is_server && !server.is_up()) should_stop = true; if (should_stop) { if (paused) scene.pause(paused = !paused); active_game_mode->end(); active_game_mode = 0; server.close(); client.disconnect(); world.set_network(0); sound_world.stop_sounds(); menu_controls.prev = false; if (is_client) menu.send_event("screen=mp_connect"); sound_world.set_music("BGM_menu"); } } speed10x = platform.get_key(GLFW_KEY_RIGHT_SHIFT) && !is_client && !is_server; if (controls.change_camera || (reset_camera && !controls.change_target)) { scene.camera.reset_delta_rot(); reset_camera = false; } if (!joysticks.empty() && !platform.get_mouse_lbtn() && !controls.change_target) { scene.camera.reset_delta_rot(); scene.camera.add_delta_rot(-controls.cam_rot.x * nya_math::constants::pi_2, -controls.cam_rot.y * nya_math::constants::pi); } if (platform.was_pressed(GLFW_KEY_COMMA)) debug_variable::set(debug_variable::get() - 1); if (platform.was_pressed(GLFW_KEY_PERIOD)) debug_variable::set(debug_variable::get() + 1); if (!active_game_mode) //force limit 60 fps in menu { int sleep_time = 1000/60 - int(nya_system::get_time() - time); if (sleep_time > 0) std::this_thread::sleep_for(std::chrono::milliseconds(sleep_time)); } } server.close(); client.disconnect(); sound::release_context(); platform.terminate(); return 0; }
int main(int argc, char *argv[]) #endif { /* C90 requires all vars to be declared at top of function */ CoiHandle entity; CoiHandle node; CoiHandle light; CoiHandle rendersystem; CoiHandle renderwindow; CoiHandle viewport; CoiHandle plane; CoiHandle plane_entity; CoiHandle plane_node; CoiHandle terrain_group; CoiHandle terrain_iterator; CoiHandle import_data; CoiHandle image; float direction[3]; float colour[4]; #if defined(LLCOI_TEST_USE_OPENINPUT) // Openinput oi_event evt; char openinput_window_params[100]; unsigned int windowHnd = 0; #if defined(PLATFORM_LINUX) Display *disp; Window win; unsigned int scrn; #endif #endif //LLCOI_TEST_USE_OPENINPUT keep_going = 1; long loop_x = 0; long loop_y = 0; // setup create_root("plugins.cfg", "ogre.cfg", "ogre.log"); if (!(restore_config() || show_config_dialog())) { return 1; } setup_resources("resources.cfg"); renderwindow = root_initialise(1, "Ogre Renderwindow"); set_default_num_mipmaps(5); initialise_all_resource_groups(); create_scene_manager("OctreeSceneManager", "The SceneManager"); myCamera = create_camera(get_scene_manager(), "mycam"); camera_set_position(myCamera, 1683, 50, 2116); camera_lookat(myCamera, 1963, -50, 1660); camera_set_near_clip_distance(myCamera, 1); camera_set_far_clip_distance(myCamera, 50000); viewport = add_viewport(myCamera); viewport_set_background_colour(viewport, 0, 0, 0); camera_set_aspect_ratio(myCamera, 800, 600); // entities plane = create_plane_from_normal(0, 1, 0, 0); mesh_manager_create_plane("ground", "General", plane, 1500, 1500, 20, 20, 1, 1, 5, 5, 0, 0, 1); plane_entity = create_entity(get_scene_manager(), "plane", "ground"); entity_set_material_name(plane_entity, "Dev/Red"); plane_node = create_child_scene_node(get_scene_manager(), "planenode"); scene_node_attach_entity(plane_node, plane_entity); entity = create_entity(get_scene_manager(), "OgreHead", "ogrehead.mesh"); node = create_child_scene_node(get_scene_manager(), "headNode"); scene_node_attach_entity(node, entity); scene_manager_set_ambient_light_rgb(get_scene_manager(), 0.5f, 0.5f, 0.5f); light = create_light(get_scene_manager(), "mainLight"); light_set_position(light, 20, 80, 50); // terrain create_terrain_global_options(); terrain_group = create_terrain_group(get_scene_manager(), ALIGN_X_Z, 513, 12000.0f); terrain_group_set_filename_convention(terrain_group, "BasicTutorial3Terrain", "dat"); terrain_group_set_origin(terrain_group, 0, 0, 0); // terrain defaults terrain_global_options_set_max_pixel_error(8); terrain_global_options_set_composite_map_distance(3000); terrain_global_options_set_light_map_direction_vector3(light_get_derived_direction(light)); terrain_global_options_set_composite_map_ambient_colour(scene_manager_get_ambient_light(get_scene_manager()));// sm terrain_global_options_set_composite_map_diffuse_colour(light_get_diffuse_colour(light));// light import_data = terrain_group_get_default_import_settings(terrain_group); terrain_group_import_data_set_terrain_size(import_data, 513); terrain_group_import_data_set_world_size(import_data, 12000.0f); terrain_group_import_data_set_input_scale(import_data, 600); terrain_group_import_data_set_min_batch_size(import_data, 33); terrain_group_import_data_set_max_batch_size(import_data, 65); terrain_group_import_data_resize_layers(import_data, 3); terrain_group_import_data_set_layer(import_data, 0, 100, "nvidia/dirt_grayrocky_diffusespecular.dds", "nvidia/dirt_grayrocky_normalheight.dds"); terrain_group_import_data_set_layer(import_data, 1, 30, "nvidia/grass_green-01_diffusespecular.dds", "nvidia/grass_green-01_normalheight.dds"); terrain_group_import_data_set_layer(import_data, 2, 200, "nvidia/growth_weirdfungus-03_diffusespecular.dds", "nvidia/growth_weirdfungus-03_normalheight.dds"); // define terrains for (loop_x; loop_x <= 0; ++loop_x) { for (loop_y; loop_y <= 0; ++loop_y) { if (resource_exists(terrain_group_get_resource_group(terrain_group), terrain_group_generate_filename(terrain_group, loop_x, loop_y))) { terrain_group_define_terrain(terrain_group, loop_x, loop_y); } else { image = create_image(); image_load(image, "terrain.png"); if (loop_x % 2 != 0) { image_flip_around_y(image); } if (loop_y % 2 != 0) { image_flip_around_x(image); } terrain_group_define_terrain_image(terrain_group, loop_x, loop_y, image); image_delete(image); image = NULL; } } } terrain_group_load_all_terrains(terrain_group, 1); // blend maps /* terrain_iterator = terrain_group_get_terrain_iterator(terrain_group); while(terrain_iterator_has_more_elements(terrain_iterator)) { CoiHandle terrain = terrain_iterator_get_next(terrain_iterator); int blend_map_size = terrain_get_layer_blend_map_size(terrain); CoiHandle blend_map_0 = terrain_get_layer_blend_map(terrain, 1); CoiHandle blend_map_1 = terrain_get_layer_blend_map(terrain, 2); float min_height_0 = 70; float fade_dist_0 = 40; float min_height_1 = 70; float fade_dist_1 = 15; float* blend_1 = terrain_layer_blend_map_get_blend_pointer(blend_map_1); for(unsigned int y = 0; y < blend_map_size; ++y) { for(unsigned int x = 0; x < blend_map_size; ++x) { float tx, ty; terrain_layer_blend_map_convert_image_to_terrain_space(x, y, &tx, &ty); float height = terrain_get_height_at_terrain_position(tx, ty); float val = (height - min_height_0) / fade_dist_0; val = math_clamp_f(val, 0.0f, 1.0f); val = (height - min_height_1) / fade_dist_1; val = math_clamp_f(val, 0.0f, 1.0f); *blend_1++ = val; } } terrain_layer_blend_map_dirty(blend_map_0); terrain_layer_blend_map_dirty(blend_map_1); terrain_layer_blend_map_update(blend_map_0); terrain_layer_blend_map_update(blend_map_1); } */ terrain_group_free_temporary_resources(terrain_group); // listeners add_frame_listener(frame_listener_test,EVENT_FRAME_RENDERING_QUEUED|EVENT_FRAME_STARTED); add_window_listener(renderwindow, window_event_listener_test); input_manager = create_input_system(render_window_get_hwnd(renderwindow)); input_listener = create_input_listener(); keyboard = create_keyboard_object(input_manager, 1); mouse = create_mouse_object(input_manager, 1); attach_keyboard_listener(keyboard, input_listener); attach_mouse_listener(mouse, input_listener); add_key_pressed_listener(input_listener, key_pressed_test); while(keep_going) { keyboard_capture(keyboard); mouse_capture(mouse); // Pump window messages for nice behaviour pump_messages(); // Render a frame render_one_frame(); if (render_window_closed(renderwindow)) { keep_going = 0; } } #if defined(LLCOI_TEST_USE_OPENINPUT) windowHnd = render_window_get_hwnd(renderwindow); #if defined(PLATFORM_LINUX) disp = XOpenDisplay( NULL ); scrn = DefaultScreen(disp); sprintf(openinput_window_params, "c:%u s:%u w:%u", (unsigned int)disp, (unsigned int)scrn, windowHnd); #else sprintf(openinput_window_params, "c:%u s:%u w:%u", 0, 0, windowHnd); #endif oi_init(openinput_window_params, 0); log_message("***************************"); log_message("*** All Systems online! ***"); log_message("***************************"); //render_loop(); while (keep_going) { // ask oi to wait for events oi_events_poll(&evt); switch(evt.type) { case OI_QUIT: // Quit keep_going = 0; break; case OI_KEYDOWN: // Keyboard button down //WTF?? Better way to check this, please.. if(evt.key.keysym.sym == OIK_ESC) keep_going = 0; break; default: break; } // Pump window messages for nice behaviour pump_messages(); // Render a frame render_one_frame(); if (render_window_closed()) { keep_going = 0; } } oi_close(); #endif //LLCOI_TEST_USE_OPENINPUT remove_window_listener(renderwindow); destroy_keyboard_object(input_manager, keyboard); destroy_mouse_object(input_manager, mouse); destroy_input_system(input_manager); release_engine(); return 0; }
static void test_cr_resources(CuTest *tc) { stream strm; char line[1024]; faction *f; region *r; unit *u; setup_resources(); f = test_create_faction(NULL); r = test_create_region(0, 0, NULL); u = test_create_unit(f, r); set_level(u, SK_QUARRYING, 1); r->land->horses = 1; r->land->peasants = 200; r->land->money = 300; rsettrees(r, 0, 1); rsettrees(r, 1, 2); rsettrees(r, 2, 3); region_setresource(r, get_resourcetype(R_STONE), 1); mstream_init(&strm); cr_output_resources(&strm, f, r, true); strm.api->rewind(strm.handle); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "3;Baeume", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "2;Schoesslinge", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "1;Steine", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Schoesslinge\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "2;number", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Blumen\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "3;number", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Silber\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "300;number", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Bauern\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "200;number", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Pferde\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "1;number", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertIntEquals(tc, 0, memcmp(line, "RESOURCE ", 9)); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "\"Steine\";type", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "1;skill", line); CuAssertIntEquals(tc, 0, strm.api->readln(strm.handle, line, sizeof(line))); CuAssertStrEquals(tc, "1;number", line); mstream_done(&strm); test_teardown(); }
void __init setup_arch(char **cmdline_p) { /* * print what head.S has found out about the machine */ #ifndef CONFIG_64BIT printk((MACHINE_IS_VM) ? "We are running under VM (31 bit mode)\n" : "We are running native (31 bit mode)\n"); printk((MACHINE_HAS_IEEE) ? "This machine has an IEEE fpu\n" : "This machine has no IEEE fpu\n"); #else /* CONFIG_64BIT */ if (MACHINE_IS_VM) printk("We are running under VM (64 bit mode)\n"); else if (MACHINE_IS_KVM) { printk("We are running under KVM (64 bit mode)\n"); add_preferred_console("hvc", 0, NULL); s390_virtio_console_init(); } else printk("We are running native (64 bit mode)\n"); #endif /* CONFIG_64BIT */ /* Have one command line that is parsed and saved in /proc/cmdline */ /* boot_command_line has been already set up in early.c */ *cmdline_p = boot_command_line; ROOT_DEV = Root_RAM0; init_mm.start_code = PAGE_OFFSET; init_mm.end_code = (unsigned long) &_etext; init_mm.end_data = (unsigned long) &_edata; init_mm.brk = (unsigned long) &_end; if (MACHINE_HAS_MVCOS) memcpy(&uaccess, &uaccess_mvcos, sizeof(uaccess)); else memcpy(&uaccess, &uaccess_std, sizeof(uaccess)); parse_early_param(); setup_ipl(); setup_memory_end(); setup_addressing_mode(); setup_memory(); setup_resources(); setup_lowcore(); cpu_init(); __cpu_logical_map[0] = S390_lowcore.cpu_data.cpu_addr; s390_init_cpu_topology(); /* * Setup capabilities (ELF_HWCAP & ELF_PLATFORM). */ setup_hwcaps(); /* * Create kernel page tables and switch to virtual addressing. */ paging_init(); /* Setup default console */ conmode_default(); /* Setup zfcpdump support */ setup_zfcpdump(console_devno); }