void draw_scene() { CHECK_GL_ERRORS(); glClearColor(skybox_fog_color[0], skybox_fog_color[1], skybox_fog_color[2], 0.0); if(!shadows_on || !have_stencil)glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT); else glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); if (!have_display) { new_zoom_level = zoom_level; // No scrolling when switching modes... if (quickbar_relocatable && quickbar_win >= 0) // Hack { if (get_show_window (quickbar_win) && windows_list.window[quickbar_win].cur_x < window_width - hud_x && window_height - windows_list.window[quickbar_win].cur_y > hud_y) hide_window (quickbar_win); } } glLoadIdentity (); // Reset The Matrix Enter2DMode (); display_windows (1); // Have to draw the dragged item *after* all windows glColor3f(1.0f,1.0f,1.0f); if (item_dragged != -1) drag_item (item_dragged, 0, 0); else if (use_item != -1 && current_cursor == CURSOR_USE_WITEM) drag_item (use_item, 0, 1); else if (storage_item_dragged != -1) drag_item (storage_item_dragged, 1, 0); draw_special_cursors(); Leave2DMode (); if(elwin_mouse >= 0) { if (current_cursor != elwin_mouse) change_cursor(elwin_mouse); elwin_mouse = -1; } SDL_GL_SwapBuffers(); CHECK_GL_ERRORS(); /* start or stop the harvesting effect depending on harvesting state */ check_harvesting_effect(); if (draw_delay > 0) { SDL_Delay (draw_delay); draw_delay = 0; } }
void draw_scene() { CHECK_GL_ERRORS(); glClearColor(skybox_fog_color[0], skybox_fog_color[1], skybox_fog_color[2], 0.0); if(!shadows_on || !have_stencil)glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT); else glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); if (!have_display) { // No scrolling when switching modes... new_zoom_level = zoom_level; // Hide the moveable hud windows if they are not on the bottom or side hud bar hide_moved_hud_windows(); } glLoadIdentity (); // Reset The Matrix Enter2DMode (); display_windows (1); // Have to draw the dragged item *after* all windows glColor3f(1.0f,1.0f,1.0f); if (item_dragged != -1) drag_item (item_dragged, 0, 0); else if (use_item != -1 && current_cursor == CURSOR_USE_WITEM) drag_item (use_item, 0, 1); else if (storage_item_dragged != -1) drag_item (storage_item_dragged, 1, 0); draw_special_cursors(); Leave2DMode (); if(elwin_mouse >= 0) { if (current_cursor != elwin_mouse) change_cursor(elwin_mouse); elwin_mouse = -1; } SDL_GL_SwapBuffers(); CHECK_GL_ERRORS(); /* stuff to do not every frame, twice a second is fine */ { static Uint32 last_half_second_timer = 0; static int first_time = 1; Uint32 current_time = SDL_GetTicks(); if (first_time) { last_half_second_timer = current_time; first_time = 0; } if ((current_time - last_half_second_timer) > 500u) { /* start or stop the harvesting effect depending on harvesting state */ check_harvesting_effect(); /* check for and possibly do auto save */ auto_save_local_and_server(); /* action on afk state changes */ check_afk_state(); /* the timer in the hud */ update_hud_timer(); /* check if we need to do buff duration requests */ check_then_do_buff_duration_request(); /* check if we are doing a server connection test */ check_if_testing_server_connection(); /* until next time */ last_half_second_timer = current_time; } } if (draw_delay > 0) { SDL_Delay (draw_delay); draw_delay = 0; } }