Icyisland intro is now an ordinary level set to "auto-play". /
authorChristoph Sommer <mail@christoph-sommer.de>
Fri, 18 Aug 2006 00:03:58 +0000 (00:03 +0000)
committerChristoph Sommer <mail@christoph-sommer.de>
Fri, 18 Aug 2006 00:03:58 +0000 (00:03 +0000)
Intro now plays music as music, not as sound. /
Added teleporter from world2 back to world1

SVN-Revision: 4197

data/levels/world1/intro.nut
data/levels/world1/intro.stl
data/levels/world1/worldmap.stwm
data/levels/world2/worldmap.stwm
src/worldmap/level.cpp
src/worldmap/level.hpp
src/worldmap/worldmap.cpp

index 04ac920..b38be37 100644 (file)
@@ -13,7 +13,6 @@ function intro()
   //begin scrolling sequence
   Effect.fade_in(2);
   Camera.scroll_to(0, 945, 15);
-  play_sound("music/intro.ogg");
   wait(3);
   Text.set_text("Somewhere at the shores\nof Antarctica...");
   Text.fade_in(2);
index ecc4b79..1fd6326 100644 (file)
@@ -8,7 +8,7 @@ Level.finish(true);
 ")
   (sector
     (name "main")
-    (music "")
+    (music "music/intro.ogg")
     (init-script "
       import(\"levels/world1/intro.nut\");
       intro();
index 1fccca2..4742c63 100644 (file)
@@ -8,7 +8,7 @@
     (worldmap-spawnpoint
       (name "main")
       (x 22)
-      (y 5)
+      (y 4)
     )
     (worldmap-spawnpoint
       (name "world2")
       (x 22)
       (y 4)
       (sprite "images/objects/invisible/invisible.sprite")
+      (auto-play #t)
     )
     (special-tile
       (teleport-to-x 0)
index 626799b..60acfd3 100644 (file)
       (y 34)
       (sprite "images/worldmap/common/shroom.sprite")
     )
-    (special-tile
-      (invisible-tile #t)
-      (script "fadeout_screen( 2 );")
+    (teleporter
+      (worldmap "levels/world1/worldmap.stwm")
+      (spawnpoint "world2")
+      (automatic #t)
       (x 2)
       (y 54)
     )
index 129f493..aafa660 100644 (file)
@@ -32,12 +32,13 @@ namespace WorldMapNS
 {
 
 LevelTile::LevelTile(const std::string& basedir, const lisp::Lisp* lisp)
-  : solved(false), auto_path(true), basedir(basedir), picture_cached(false),
+  : solved(false), auto_play(false), auto_path(true), basedir(basedir), picture_cached(false),
     picture(0)
 {
   lisp->get("name", name);
   lisp->get("x", pos.x);
   lisp->get("y", pos.y);
+  lisp->get("auto-play", auto_play);
 
   std::string spritefile = "images/worldmap/common/leveldot.sprite";
   lisp->get("sprite", spritefile);
index dabd4d7..eb577f2 100644 (file)
@@ -44,6 +44,7 @@ public:
   Vector pos;
   std::string title;
   bool solved;
+  bool auto_play; /**< true if Tux should automatically enter this level if it's unfinished */
 
   std::auto_ptr<Sprite> sprite;
 
index 23c99d8..920cf8c 100644 (file)
@@ -539,6 +539,13 @@ WorldMap::update(float delta)
     }
   }
 
+  // check for auto-play levels
+  LevelTile* level = at_level();
+  if (level && (level->auto_play) && (!level->solved) && (!tux->is_moving())) {
+    enter_level = true;
+    level->solved = true;
+  }
+
   if (enter_level && !tux->is_moving())
     {
       /* Check level action */