548 |
switch (state) { |
switch (state) { |
549 |
case RESTARTLEVEL: |
case RESTARTLEVEL: |
550 |
// Move the main actors to their respective starting positions |
// Move the main actors to their respective starting positions |
551 |
|
load_level(icurrent_level); |
552 |
change_state(INGAME); |
change_state(INGAME); |
553 |
break; |
break; |
554 |
|
|
558 |
handle_events(); |
handle_events(); |
559 |
world::Tick(dtime); |
world::Tick(dtime); |
560 |
display::Tick(dtime); |
display::Tick(dtime); |
|
|
|
561 |
display::Redraw(get_screen()); |
display::Redraw(get_screen()); |
562 |
} else { |
} else { |
563 |
if (conserve_level_p) |
if (ConserveLevel) |
564 |
change_state (RESTARTLEVEL); |
change_state (RESTARTLEVEL); |
565 |
else |
else |
566 |
change_state (RELOADLEVEL); |
change_state (RELOADLEVEL); |
606 |
display::Tick(dtime); |
display::Tick(dtime); |
607 |
{ |
{ |
608 |
display::Redraw(get_screen()); |
display::Redraw(get_screen()); |
|
// display::RedrawAll(get_screen()); |
|
609 |
} |
} |
610 |
break; |
break; |
611 |
|
|
617 |
void |
void |
618 |
Game::load_level(int ilevel) |
Game::load_level(int ilevel) |
619 |
{ |
{ |
620 |
FX_Fade(video::FADEOUT); |
// FX_Fade(video::FADEOUT); |
621 |
|
|
622 |
icurrent_level=ilevel; |
icurrent_level=ilevel; |
623 |
world::Load(levels[icurrent_level].filename); |
world::Load(levels[icurrent_level].filename); |
624 |
|
|
625 |
display::Redraw(get_screen(), false); |
GC gc(video::BackBuffer()); |
626 |
FX_Fade(video::FADEIN); |
display::DrawAll(gc); |
627 |
|
ShowScreen(video::TM_PUSH_RANDOM, video::BackBuffer()); |
628 |
|
// FX_Fade(video::FADEIN); |
629 |
flush_events(); |
flush_events(); |
630 |
last_tick_time = SDL_GetTicks(); |
last_tick_time = SDL_GetTicks(); |
631 |
} |
} |
798 |
Game game_inst; |
Game game_inst; |
799 |
} |
} |
800 |
|
|
801 |
bool enigma::conserve_level_p = true; |
bool enigma::ConserveLevel = false; |
802 |
|
|
803 |
static void |
static void |
804 |
game() |
game() |
814 |
LevelMenu lm; |
LevelMenu lm; |
815 |
|
|
816 |
{ |
{ |
817 |
Surface *sfc = Duplicate(video::GetScreen()); |
Surface *sfc = video::BackBuffer(); |
818 |
lm.paint (sfc); |
lm.paint (sfc); |
819 |
ShowScreen (video::TM_PUSH_RANDOM, sfc); |
ShowScreen (video::TM_PUSH_RANDOM, sfc); |
|
delete sfc; |
|
820 |
} |
} |
821 |
|
|
822 |
while (lm.manage()) |
while (lm.manage()) |