projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
renamed timer_type to Timer
[supertux.git]
/
src
/
title.cpp
diff --git
a/src/title.cpp
b/src/title.cpp
index
38812ae
..
deddd5a
100644
(file)
--- a/
src/title.cpp
+++ b/
src/title.cpp
@@
-38,16
+38,15
@@
#include "scene.h"
#include "player.h"
#include "math.h"
#include "scene.h"
#include "player.h"
#include "math.h"
-
-void loadshared(void);
+#include "tile.h"
+#include "resources.h"
static texture_type bkg_title;
static texture_type logo;
static texture_type img_choose_subset;
static bool walking;
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 Timer random_timer;
static SDL_Event event;
static SDLKey key;
static SDL_Event event;
static SDLKey key;
@@
-64,8
+63,13
@@
void draw_background()
texture_draw_bg(&bkg_title);
}
texture_draw_bg(&bkg_title);
}
-void draw_demo(
Level* plevel
)
+void draw_demo(
GameSession* session, double frame_ratio
)
{
{
+ World::set_current(session->get_world());
+ //World* world = session->get_world();
+ Level* plevel = session->get_level();
+ Player* tux = session->get_world()->get_tux();
+
/* FIXME:
// update particle systems
std::vector<ParticleSystem*>::iterator p;
/* FIXME:
// update particle systems
std::vector<ParticleSystem*>::iterator p;
@@
-86,66
+90,65
@@
void draw_demo(Level* plevel)
{
for (int x = 0; x < 21; ++x)
{
{
for (int x = 0; x < 21; ++x)
{
-
drawshape
(32*x - fmodf(scroll_x, 32), y * 32,
- plevel->ia_tiles[(int)y][(int)x + (int)(scroll_x / 32)]);
+
Tile::draw
(32*x - fmodf(scroll_x, 32), y * 32,
+
plevel->ia_tiles[(int)y][(int)x + (int)(scroll_x / 32)]);
}
}
global_frame_counter++;
}
}
global_frame_counter++;
- t
itletux.
key_event(SDLK_RIGHT,DOWN);
+ t
ux->
key_event(SDLK_RIGHT,DOWN);
- if(
timer_check(&random_timer
))
+ if(
random_timer.check(
))
{
if(walking)
{
if(walking)
- t
itletux.
key_event(SDLK_UP,UP);
+ t
ux->
key_event(SDLK_UP,UP);
else
else
- t
itletux.
key_event(SDLK_UP,DOWN);
+ t
ux->
key_event(SDLK_UP,DOWN);
}
else
{
}
else
{
-
timer_start(&random_timer,
rand() % 3000 + 3000);
+
random_timer.start(
rand() % 3000 + 3000);
walking = !walking;
}
// Wrap around at the end of the level back to the beginnig
walking = !walking;
}
// Wrap around at the end of the level back to the beginnig
- if(plevel->width * 32 - 320 < t
itletux.
base.x)
+ if(plevel->width * 32 - 320 < t
ux->
base.x)
{
{
- t
itletux.base.x = titletux.
base.x - (plevel->width * 32 - 640);
- scroll_x = t
itletux.
base.x - 320;
+ t
ux->base.x = tux->
base.x - (plevel->width * 32 - 640);
+ scroll_x = t
ux->
base.x - 320;
}
}
- float last_tux_x_pos = titletux.base.x;
- titletux.action();
+
+
+ float last_tux_x_pos = tux->base.x;
+ tux->action(frame_ratio);
// Jump if tux stays in the same position for one loop, ie. if he is
// stuck behind a wall
// Jump if tux stays in the same position for one loop, ie. if he is
// stuck behind a wall
- if (last_tux_x_pos == t
itletux.
base.x)
+ if (last_tux_x_pos == t
ux->
base.x)
walking = false;
walking = false;
- t
itletux.
draw();
+ t
ux->
draw();
/* DEMO end */
}
/* --- TITLE SCREEN --- */
/* DEMO end */
}
/* --- TITLE SCREEN --- */
-
bool title(void)
{
string_list_type level_subsets;
st_subset subset;
level_subsets = dsubdirs("/levels", "info");
bool title(void)
{
string_list_type level_subsets;
st_subset subset;
level_subsets = dsubdirs("/levels", "info");
-
timer_init(&random_timer,
true);
+
random_timer.init(
true);
walking = true;
walking = true;
- titletux.init();
st_pause_ticks_init();
GameSession session(datadir + "/levels/misc/menu.stl");
loadshared();
st_pause_ticks_init();
GameSession session(datadir + "/levels/misc/menu.stl");
loadshared();
+
//FIXME:activate_particle_systems();
//FIXME:activate_particle_systems();
- /* Lower the gravity that tux doesn't jump to hectically through the demo */
- //gravity = 5;
/* Reset menu variables */
menu_reset();
/* Reset menu variables */
menu_reset();
@@
-170,12
+173,12
@@
bool title(void)
load_hs();
update_time = st_get_ticks();
load_hs();
update_time = st_get_ticks();
-
timer_start(&random_timer,
rand() % 2000 + 2000);
+
random_timer.start(
rand() % 2000 + 2000);
while (!done)
{
/* Calculate the movement-factor */
while (!done)
{
/* Calculate the movement-factor */
- frame_ratio = ((double)(update_time-last_update_time))/((double)FRAME_RATE);
+
double
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. */
frame_ratio = 1.5 + (frame_ratio - 1.5) * 0.85;
/* Lower the frame_ratio that Tux doesn't jump to hectically throught the demo. */
if(frame_ratio > 1.5) /* Quick hack to correct the unprecise CPU clocks a little bit. */
frame_ratio = 1.5 + (frame_ratio - 1.5) * 0.85;
/* Lower the frame_ratio that Tux doesn't jump to hectically throught the demo. */
@@
-208,7
+211,7
@@
bool title(void)
/* Draw the background: */
draw_background();
/* Draw the background: */
draw_background();
- draw_demo(
session.get_level()
);
+ draw_demo(
&session, frame_ratio
);
if (current_menu == main_menu)
texture_draw(&logo, 160, 30);
if (current_menu == main_menu)
texture_draw(&logo, 160, 30);
@@
-343,9
+346,10
@@
bool title(void)
{
if (process_load_game_menu())
{
{
if (process_load_game_menu())
{
+ // FIXME: shouldn't be needed if GameSession doesn't relay on global variables
// reset tux
scroll_x = 0;
// reset tux
scroll_x = 0;
- titletux.level_begin();
+
//
titletux.level_begin();
update_time = st_get_ticks();
}
}
update_time = st_get_ticks();
}
}
@@
-385,7
+389,7
@@
void display_credits()
{
int done;
int scroll, speed;
{
int done;
int scroll, speed;
-
timer_type
timer;
+
Timer
timer;
int n,d;
int length;
FILE* fi;
int n,d;
int length;
FILE* fi;
@@
-412,8
+416,8
@@
void display_credits()
}
}
- timer
_init(&timer,
SDL_GetTicks());
- timer
_start(&timer,
50);
+ timer
.init(
SDL_GetTicks());
+ timer
.start(
50);
scroll = 0;
speed = 2;
scroll = 0;
speed = 2;
@@
-498,10
+502,10
@@
void display_credits()
SDL_Delay(35);
SDL_Delay(35);
- if(timer
_get_left(&timer
) < 0)
+ if(timer
.get_left(
) < 0)
{
frame++;
{
frame++;
- timer
_start(&timer,
50);
+ timer
.start(
50);
}
}
string_list_free(&names);
}
}
string_list_free(&names);