From e8c30732672713feae89bfb3430a9e9ab534a031 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Fri, 9 Apr 2004 01:15:31 +0000 Subject: [PATCH] - moved title-demo code into its own function SVN-Revision: 436 --- src/globals.h | 9 +++- src/title.cpp | 129 ++++++++++++++++++++++++++++++++-------------------------- 2 files changed, 79 insertions(+), 59 deletions(-) diff --git a/src/globals.h b/src/globals.h index f31c6b2a4..6ee3240bd 100644 --- a/src/globals.h +++ b/src/globals.h @@ -23,7 +23,14 @@ extern std::string datadir; extern SDL_Surface * screen; -extern text_type black_text, gold_text, white_text, white_small_text, white_big_text, blue_text, red_text, yellow_nums; +extern text_type black_text; +extern text_type gold_text; +extern text_type white_text; +extern text_type white_small_text; +extern text_type white_big_text; +extern text_type blue_text; +extern text_type red_text; +extern text_type yellow_nums; extern MouseCursor * mouse_cursor; diff --git a/src/title.cpp b/src/title.cpp index 2b5d1f70c..1f7b699f8 100644 --- a/src/title.cpp +++ b/src/title.cpp @@ -46,6 +46,10 @@ static texture_type bkg_title; static texture_type logo; static texture_type img_choose_subset; +static bool walking; +static Player titletux; +static timer_type random_timer; + static SDL_Event event; static SDLKey key; static int frame, i; @@ -61,6 +65,61 @@ void draw_background() texture_draw_bg(&bkg_title); } +void draw_demo() +{ + /* DEMO begin */ + /* update particle systems */ + std::vector::iterator p; + for(p = particle_systems.begin(); p != particle_systems.end(); ++p) + { + (*p)->simulate(frame_ratio); + } + + /* Draw particle systems (background) */ + for(p = particle_systems.begin(); p != particle_systems.end(); ++p) + { + (*p)->draw(scroll_x, 0, 0); + } + + /* Draw interactive tiles: */ + + for (int y = 0; y < 15; ++y) + { + for (int x = 0; x < 21; ++x) + { + drawshape(32*x - fmodf(scroll_x, 32), y * 32, + current_level.ia_tiles[(int)y][(int)x + (int)(scroll_x / 32)]); + } + } + + global_frame_counter++; + titletux.key_event(SDLK_RIGHT,DOWN); + + if(timer_check(&random_timer)) + { + if(walking) + titletux.key_event(SDLK_UP,UP); + else + titletux.key_event(SDLK_UP,DOWN); + } + else + { + timer_start(&random_timer, rand() % 3000 + 3000); + walking = !walking; + } + + if(current_level.width * 32 - 320 < titletux.base.x) + { + titletux.base.x = 160; + scroll_x = 0; + } + + titletux.action(); + titletux.draw(); + + /* DEMO end */ +} + /* --- TITLE SCREEN --- */ int title(void) @@ -69,11 +128,11 @@ int title(void) string_list_type level_subsets; st_subset subset; level_subsets = dsubdirs("/levels", "info"); - timer_type random_timer; timer_init(&random_timer, true); - bool walking = true; - Player titletux; + + walking = true; titletux.init(); + st_pause_ticks_init(); level_load(¤t_level, (datadir + "/levels/misc/menu.stl").c_str()); @@ -149,59 +208,15 @@ int title(void) /* Draw the background: */ draw_background(); - - /* DEMO begin */ - /* update particle systems */ - std::vector::iterator p; - for(p = particle_systems.begin(); p != particle_systems.end(); ++p) - { - (*p)->simulate(frame_ratio); - } - - /* Draw particle systems (background) */ - for(p = particle_systems.begin(); p != particle_systems.end(); ++p) - { - (*p)->draw(scroll_x, 0, 0); - } - - /* Draw interactive tiles: */ - - for (int y = 0; y < 15; ++y) - { - for (int x = 0; x < 21; ++x) - { - drawshape(32*x - fmodf(scroll_x, 32), y * 32, - current_level.ia_tiles[(int)y][(int)x + (int)(scroll_x / 32)]); - } - } - - global_frame_counter++; - titletux.key_event(SDLK_RIGHT,DOWN); - - - if(timer_check(&random_timer)) - { - if(walking) - titletux.key_event(SDLK_UP,UP); - else - titletux.key_event(SDLK_UP,DOWN); - } - else - { - timer_start(&random_timer, rand() % 3000 + 3000); - walking = !walking; - } - - if(current_level.width * 32 - 320 < titletux.base.x) - { - titletux.base.x = 160; - scroll_x = 0; - } - - titletux.action(); - titletux.draw(); - - /* DEMO end */ + draw_demo(); + texture_draw(&logo, 160, 30); + text_draw(&white_small_text, + " SuperTux " VERSION "\n" + "Copyright (c) 2003 SuperTux Devel Team\n" + "This game comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n" + "are welcome to redistribute it under certain conditions; see the file COPYING\n" + "for details.\n", + 0, 420, 0); /* Draw the high score: */ /* @@ -320,8 +335,6 @@ int title(void) process_save_load_game_menu(false); } - texture_draw(&logo, 160, 30); - mouse_cursor->draw(); flipscreen(); -- 2.11.0