X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftitle.cpp;h=38812aebc3c78c9ef5a4959ce0a4640260c6b1d2;hb=aadd77c676baae31db931c8e64cd1713c24289d5;hp=263b18879443766bf206fb657a401bed7d4aa71d;hpb=c4183c0332f8e09dffc70f135689853fb2e3728a;p=supertux.git diff --git a/src/title.cpp b/src/title.cpp index 263b18879..38812aebc 100644 --- a/src/title.cpp +++ b/src/title.cpp @@ -40,7 +40,6 @@ #include "math.h" void loadshared(void); -void activate_particle_systems(void); static texture_type bkg_title; static texture_type logo; @@ -65,10 +64,10 @@ void draw_background() texture_draw_bg(&bkg_title); } -void draw_demo() +void draw_demo(Level* plevel) { - /* DEMO begin */ - /* update particle systems */ + /* FIXME: + // update particle systems std::vector::iterator p; for(p = particle_systems.begin(); p != particle_systems.end(); ++p) { @@ -80,6 +79,7 @@ void draw_demo() { (*p)->draw(scroll_x, 0, 0); } + */ // Draw interactive tiles: for (int y = 0; y < 15; ++y) @@ -87,7 +87,7 @@ void draw_demo() 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)]); + plevel->ia_tiles[(int)y][(int)x + (int)(scroll_x / 32)]); } } @@ -108,9 +108,9 @@ void draw_demo() } // Wrap around at the end of the level back to the beginnig - if(current_level.width * 32 - 320 < titletux.base.x) + if(plevel->width * 32 - 320 < titletux.base.x) { - titletux.base.x = titletux.base.x - (current_level.width * 32 - 640); + titletux.base.x = titletux.base.x - (plevel->width * 32 - 640); scroll_x = titletux.base.x - 320; } @@ -129,9 +129,8 @@ void draw_demo() /* --- TITLE SCREEN --- */ -int title(void) +bool title(void) { - int done; string_list_type level_subsets; st_subset subset; level_subsets = dsubdirs("/levels", "info"); @@ -142,9 +141,9 @@ int title(void) st_pause_ticks_init(); - current_level.load((datadir + "/levels/misc/menu.stl").c_str()); + GameSession session(datadir + "/levels/misc/menu.stl"); loadshared(); - activate_particle_systems(); + //FIXME:activate_particle_systems(); /* Lower the gravity that tux doesn't jump to hectically through the demo */ //gravity = 5; @@ -162,9 +161,7 @@ int title(void) texture_load(&img_choose_subset,datadir + "/images/status/choose-level-subset.png", USE_ALPHA); /* --- Main title loop: --- */ - - done = 0; - quit = 0; + bool done = 0; show_menu = 1; frame = 0; @@ -175,9 +172,8 @@ int title(void) update_time = st_get_ticks(); timer_start(&random_timer, rand() % 2000 + 2000); - while (!done && !quit) + while (!done) { - /* Calculate the movement-factor */ frame_ratio = ((double)(update_time-last_update_time))/((double)FRAME_RATE); if(frame_ratio > 1.5) /* Quick hack to correct the unprecise CPU clocks a little bit. */ @@ -192,13 +188,11 @@ int title(void) menu_event(event); if (event.type == SDL_QUIT) { - /* Quit event - quit: */ - quit = 1; + done = true; } else if (event.type == SDL_KEYDOWN) { /* Keypress... */ - key = event.key.keysym.sym; /* Check for menu events */ @@ -207,16 +201,15 @@ int title(void) if (key == SDLK_ESCAPE) { /* Escape: Quit: */ - - quit = 1; + done = true; } } } /* Draw the background: */ draw_background(); - draw_demo(); - + draw_demo(session.get_level()); + if (current_menu == main_menu) texture_draw(&logo, 160, 30); @@ -237,7 +230,7 @@ int title(void) */ /* Don't draw menu, if quit is true */ - if(show_menu && !quit) + if(show_menu && !done) menu_process_current(); if(current_menu == main_menu) @@ -276,8 +269,7 @@ int title(void) switch(event.type) { case SDL_QUIT: - done = 1; - quit = 1; + done = true; break; case SDL_KEYDOWN: // key pressed // Keypress... @@ -333,13 +325,13 @@ int title(void) break; case 3: done = 1; - quit = leveleditor(1); + done = leveleditor(1); break; case 4: display_credits(); break; case 5: - quit = 1; + done = true; break; } } @@ -382,8 +374,7 @@ int title(void) string_list_free(&level_subsets); /* Return to main! */ - - return(quit); + return done; } #define MAX_VEL 10