- commited start_pos patch from sik0fewl
authorIngo Ruhnke <grumbel@gmx.de>
Sun, 18 Apr 2004 22:36:03 +0000 (22:36 +0000)
committerIngo Ruhnke <grumbel@gmx.de>
Sun, 18 Apr 2004 22:36:03 +0000 (22:36 +0000)
SVN-Revision: 564

src/level.cpp
src/level.h
src/player.cpp

index b83bdb4..e21be87 100644 (file)
@@ -213,6 +213,8 @@ Level::init_defaults()
   song_title = "Mortimers_chipdisko.mod";
   bkgd_image = "arctis.png";
   width      = 21;
+  start_pos_x = 100;
+  start_pos_y = 170;
   time_left  = 100;
   gravity    = 10.;
   bkgd_top.red   = 0;
@@ -285,9 +287,10 @@ Level::load(const std::string& filename)
   if (strcmp(lisp_symbol(lisp_car(root_obj)), "supertux-level") == 0)
     {
       LispReader reader(lisp_cdr(root_obj));
-
       reader.read_int("version",  &version);
       reader.read_int("width",  &width);
+      if (!reader.read_int("start_pos_x", &start_pos_x)) start_pos_x = 100;
+      if (!reader.read_int("start_pos_y", &start_pos_y)) start_pos_y = 170;
       reader.read_int("time",  &time_left);
 
       reader.read_int("bkgd_top_red",  &bkgd_top.red);
index 3f4bf10..f093683 100644 (file)
@@ -68,6 +68,8 @@ class Level
   Color bkgd_top;
   Color bkgd_bottom;
   int width;
+  int start_pos_x;
+  int start_pos_y;
   int  endpos;
   float gravity;
 
index cc50bdd..cb36fe7 100644 (file)
@@ -64,15 +64,16 @@ void player_input_init(player_input_type* pplayer_input)
 void
 Player::init()
 {
+  Level* plevel = World::current()->get_level();
+
   base.width = 32;
   base.height = 32;
 
   size = SMALL;
   got_coffee = false;
 
-  // FIXME: Make the start position configurable via the levelfile
-  base.x = 100;
-  base.y = 170;
+  base.x = plevel->start_pos_x;
+  base.y = plevel->start_pos_y;
   base.xm = 0;
   base.ym = 0;
   previous_base = old_base = base;