- Implemented a scripted object that can be placed in a level and whose name is
authorMatthias Braun <matze@braunis.de>
Thu, 5 May 2005 23:43:22 +0000 (23:43 +0000)
committerMatthias Braun <matze@braunis.de>
Thu, 5 May 2005 23:43:22 +0000 (23:43 +0000)
exported to scripts.
- Suspending and Resuming Script nearly works (suspending outside the script
  doesn't work yet for some reason...)
- Improved my test script which lets 2 Objects named TUX and PENNY with a nolok
sprite jump around in strange ways ;-)
- Renamed Timer2 to Timer

SVN-Revision: 2413

37 files changed:
data/levels/test/script.stl
data/levels/test/yeti.stl
src/badguy/badguy.h
src/badguy/bomb.h
src/badguy/dispenser.h
src/badguy/flyingsnowball.h
src/badguy/mriceblock.h
src/badguy/mrrocket.h
src/badguy/nolok_01.h
src/badguy/rocketexplosion.h
src/badguy/stalactite.h
src/badguy/yeti.h
src/game_session.h
src/leveleditor.h
src/object/bell.cpp
src/object/camera.h
src/object/fireworks.h
src/object/gameobjs.h
src/object/player.h
src/object/unstable_tile.h
src/scripting/functions.cpp
src/scripting/functions.h
src/scripting/script_interpreter.h
src/scripting/scripted_object.h
src/scripting/semantic.cache
src/scripting/sound.cpp
src/scripting/sound.h
src/scripting/wrapper.cpp
src/scripting/wrapper_util.cpp
src/scripting/wrapper_util.h
src/sector.cpp
src/statistics.h
src/timer.cpp
src/timer.h
src/title.cpp
src/trigger/secretarea_trigger.h
src/worldmap.h

index 3c207ea..75721cd 100644 (file)
@@ -2,14 +2,11 @@
 (supertux-level
   (version 2)
   (name   (_ "Scripting Test"))
 (supertux-level
   (version 2)
   (name   (_ "Scripting Test"))
-  (author "Matthias Braun")
+  (author "totally pointless script maker")
   (sector
     (name  "main")
     (music  "salcon.mod")
     (gravity 10.000000)
   (sector
     (name  "main")
     (music  "salcon.mod")
     (gravity 10.000000)
-    (init-script "wait(2);
-print(\"Hello from the script\\n\");
-")
     (tilemap
       (layer  "background")
       (solid #f)
     (tilemap
       (layer  "background")
       (solid #f)
@@ -105,7 +102,60 @@ print(\"Hello from the script\\n\");
        (spawnpoint (name "main") (x 320) (y 384))
        (particles-snow
        )
        (spawnpoint (name "main") (x 320) (y 384))
        (particles-snow
        )
+       (scriptedobject
+         (name "TUX")
+         (x 160)
+         (y 448)
+         (sprite "dummyguy")
+       )
+       (scriptedobject
+         (name "PENNY")
+         (x 256)
+         (y 448)
+         (sprite "dummyguy")
+       )
+       (scriptedobject
+         (name "NOLOK")
+         (x 420)
+         (y 94)
+         (sprite "dummyguy")
+         (visible #f)
+         (physic-enabled #f)
+       )
+       (init-script "
+print(\"Making tux jump...\");
+TUX.set_animation(\"jump\");
+TUX.set_velocity(150, 200);
+wait(3);
+suspend();
+PENNY.set_velocity(-200, 200);
+tuxjumps <- 2;
+while(true) {
+  wait(0.8);
+  suspend();
+  Sound.play_sound(\"jump\");
+  if(tuxjumps >= 0) {
+    TUX.set_velocity(50, 300);
+  } else {
+    TUX.set_velocity(-50, 300);
+    if(tuxjumps < -2)
+      tuxjumps = 3;
+  }
+  tuxjumps--;
+  wait(0.5);
+  if(PENNY.get_animation() == \"stand\") {
+    PENNY.set_animation(\"throw\");
+  } else if(PENNY.get_animation() == \"throw\") {
+    PENNY.set_animation(\"jump\");
+  } else if(PENNY.get_animation() == \"jump\") {
+    PENNY.set_animation(\"dead\");
+  } else {
+    Sound.play_sound(\"grow\");
+    PENNY.set_animation(\"stand\");
+    PENNY.set_velocity(0, 900);
+  }
+}
+")
    )
    )
- )
+)
 
 
-;; EOF ;;
index db7a912..bb0103b 100644 (file)
@@ -4,197 +4,6 @@
   (name   (_ "Yeti Test"))
   (author "Team")
   (sector
   (name   (_ "Yeti Test"))
   (author "Team")
   (sector
-    (name  "main2")
-    (gravity 10.000000)
-    (tilemap
-      (layer  "background")
-      (solid #f)
-      (speed  1.000000)
-      (width  100)
-      (height 50)
-      (tiles
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        ))
-    (tilemap
-      (layer  "interactive")
-      (solid #t)
-      (speed  1.000000)
-      (width  100)
-      (height 50)
-      (tiles
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        ))
-    (tilemap
-      (layer  "foreground")
-      (solid #f)
-      (speed  1.000000)
-      (width  100)
-      (height 50)
-      (tiles
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        ))
-    (camera
-      (mode "normal")
-    )
-
-       (background
-         (image "arctis.jpg")
-         (speed 0.500000)
-       )
-       (spawnpoint (name "main") (x 256) (y 1120))
-       (door
-         (x 384) (y 1248)         (sector "sector")
-         (spawnpoint "main")
-       )
-   )
-  (sector
     (name  "main")
     (music  "bossattack.mod")
     (gravity 10.000000)
     (name  "main")
     (music  "bossattack.mod")
     (gravity 10.000000)
index d5c948c..ef17b75 100644 (file)
@@ -144,7 +144,7 @@ private:
   void try_activate();
   
   State state;
   void try_activate();
   
   State state;
-  Timer2 state_timer;
+  Timer state_timer;
 };
 
 #endif
 };
 
 #endif
index a76f2a5..edb69f9 100644 (file)
@@ -38,7 +38,7 @@ public:
 
 private:
   int state;
 
 private:
   int state;
-  Timer2 timer;
+  Timer timer;
 };
 
 #endif
 };
 
 #endif
index 470f591..31a57d9 100644 (file)
@@ -38,7 +38,7 @@ protected:
   void launch_badguy();
   float cycle;
   std::string badguy;
   void launch_badguy();
   float cycle;
   std::string badguy;
-  Timer2 dispense_timer;
+  Timer dispense_timer;
 };
 
 #endif
 };
 
 #endif
index 70fc0de..2573c20 100644 (file)
@@ -41,7 +41,7 @@ protected:
   FlyingSnowballMode mode;
   bool collision_squished(Player& player);
 private:
   FlyingSnowballMode mode;
   bool collision_squished(Player& player);
 private:
-  Timer2 timer;
+  Timer timer;
 };
 
 #endif
 };
 
 #endif
index 3a51d9d..9eb8c17 100644 (file)
@@ -46,7 +46,7 @@ private:
     ICESTATE_KICKED
   };
   IceState ice_state;
     ICESTATE_KICKED
   };
   IceState ice_state;
-  Timer2 flat_timer;
+  Timer flat_timer;
   int squishcount;
   bool set_direction;
   Direction initial_direction;  
   int squishcount;
   bool set_direction;
   Direction initial_direction;  
index 1426d4e..181cff3 100644 (file)
@@ -40,7 +40,7 @@ protected:
   bool collision_squished(Player& player);
   bool set_direction;
   Direction initial_direction;
   bool collision_squished(Player& player);
   bool set_direction;
   Direction initial_direction;
-  Timer2 collision_timer;
+  Timer collision_timer;
 };
 
 #endif
 };
 
 #endif
index 673dd8c..320da70 100644 (file)
@@ -38,7 +38,7 @@ public:
   
 protected:
   bool collision_squished(Player& player);
   
 protected:
   bool collision_squished(Player& player);
-  Timer2 action_timer;
+  Timer action_timer;
   enum Actions { WALKING, JUMPING, SHOOTING };
   Actions action;
 };
   enum Actions { WALKING, JUMPING, SHOOTING };
   Actions action;
 };
index 325e5d9..c692660 100644 (file)
@@ -37,7 +37,7 @@ public:
   void explode();
 
 private:
   void explode();
 
 private:
-  Timer2 timer;
+  Timer timer;
 };
 
 #endif
 };
 
 #endif
index 7974692..8b9fbf4 100644 (file)
@@ -38,7 +38,7 @@ public:
   void deactivate();
 
 protected:
   void deactivate();
 
 protected:
-  Timer2 timer;
+  Timer timer;
 
   enum StalactiteState {
     STALACTITE_HANGING,
 
   enum StalactiteState {
     STALACTITE_HANGING,
index 06afed8..edad747 100644 (file)
@@ -52,7 +52,7 @@ private:
   };
   Direction side;
   YetiState state;
   };
   Direction side;
   YetiState state;
-  Timer2 timer;
+  Timer timer;
   int jumpcount;
   Mix_Chunk* sound_gna;
   Mix_Chunk* sound_roar;
   int jumpcount;
   Mix_Chunk* sound_gna;
   Mix_Chunk* sound_roar;
index 72784a3..5c1ec8a 100644 (file)
@@ -59,7 +59,7 @@ public:
 
 public:
   DrawingContext* context;
 
 public:
   DrawingContext* context;
-  Timer2 time_left;
+  Timer time_left;
 
   GameSession(const std::string& levelfile, GameSessionMode mode,
               Statistics* statistics=0);
 
   GameSession(const std::string& levelfile, GameSessionMode mode,
               Statistics* statistics=0);
@@ -106,7 +106,7 @@ private:
   void on_escape_press();
   void process_menu();
 
   void on_escape_press();
   void process_menu();
 
-  Timer2 endsequence_timer;
+  Timer endsequence_timer;
   Level* level;
   Sector* currentsector;
 
   Level* level;
   Sector* currentsector;
 
index de4065b..33b0677 100644 (file)
@@ -131,7 +131,7 @@ private:
   Vector scroll;
   float zoom;
 
   Vector scroll;
   float zoom;
 
-  Timer2 level_name_timer;
+  Timer level_name_timer;
 
   Surface *img_background_bt, *img_foreground_bt, *img_interactive_bt;
   Surface *img_save_level_bt, *img_setup_level_bt, *img_test_level_bt;
 
   Surface *img_background_bt, *img_foreground_bt, *img_interactive_bt;
   Surface *img_save_level_bt, *img_setup_level_bt, *img_test_level_bt;
index f1e46a4..26733f7 100644 (file)
@@ -17,7 +17,6 @@
 //  along with this program; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //  02111-1307, USA.
 //  along with this program; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //  02111-1307, USA.
-
 #include <config.h>
 
 #include "bell.h"
 #include <config.h>
 
 #include "bell.h"
index 3c8d6c0..ac76298 100644 (file)
@@ -103,7 +103,7 @@ private:
   Vector current_dir;
 
   // shaking
   Vector current_dir;
 
   // shaking
-  Timer2 shaketimer;
+  Timer shaketimer;
   float shakespeed;
   float shakedepth_x;
   float shakedepth_y;
   float shakespeed;
   float shakedepth_x;
   float shakedepth_y;
index adf3c5f..575dae3 100644 (file)
@@ -35,7 +35,7 @@ public:
   virtual void draw(DrawingContext& context);
 
 private:
   virtual void draw(DrawingContext& context);
 
 private:
-  Timer2 timer;
+  Timer timer;
 };
 
 #endif
 };
 
 #endif
index 81a336a..69b0f26 100644 (file)
@@ -45,7 +45,7 @@ public:
 private:
   Sprite* sprite;
   Vector position;
 private:
   Sprite* sprite;
   Vector position;
-  Timer2 timer;
+  Timer timer;
 };
 
 class BrokenBrick : public GameObject
 };
 
 class BrokenBrick : public GameObject
@@ -58,7 +58,7 @@ public:
   virtual void draw(DrawingContext& context);
 
 private:
   virtual void draw(DrawingContext& context);
 
 private:
-  Timer2 timer;
+  Timer timer;
   Sprite* sprite;
   Vector position;
   Vector movement;
   Sprite* sprite;
   Vector position;
   Vector movement;
@@ -76,7 +76,7 @@ public:
 private:
   Vector position;
   std::string text;
 private:
   Vector position;
   std::string text;
-  Timer2 timer;  
+  Timer timer;  
 };
 
 extern Sprite *img_smoke_cloud;
 };
 
 extern Sprite *img_smoke_cloud;
@@ -90,7 +90,7 @@ public:
   virtual void draw(DrawingContext& context);
 
 private:
   virtual void draw(DrawingContext& context);
 
 private:
-  Timer2 timer;
+  Timer timer;
   Vector position;
 };
 
   Vector position;
 };
 
@@ -107,7 +107,7 @@ public:
 
 private:
   Vector accel;
 
 private:
   Vector accel;
-  Timer2 timer;
+  Timer timer;
   bool live_forever;
 
   Color color;
   bool live_forever;
 
   Color color;
index c7693b4..2d4364c 100644 (file)
@@ -117,15 +117,15 @@ public:
   enum { MAREK_FLAP, RICARDO_FLAP, RYAN_FLAP, NO_FLAP };
   int flapping_mode;
 
   enum { MAREK_FLAP, RICARDO_FLAP, RYAN_FLAP, NO_FLAP };
   int flapping_mode;
 
-  Timer2 invincible_timer;
-  Timer2 skidding_timer;
-  Timer2 safe_timer;
-  Timer2 kick_timer;
-  Timer2 shooting_timer;   // used to show the arm when Tux is shooting
-  Timer2 dying_timer;
-  Timer2 growing_timer;
-  Timer2 idle_timer;
-  Timer2 flapping_timer;
+  Timer invincible_timer;
+  Timer skidding_timer;
+  Timer safe_timer;
+  Timer kick_timer;
+  Timer shooting_timer;   // used to show the arm when Tux is shooting
+  Timer dying_timer;
+  Timer growing_timer;
+  Timer idle_timer;
+  Timer flapping_timer;
   Physic physic;
   
 public:
   Physic physic;
   
 public:
index 77a7cc2..f6ffb96 100644 (file)
@@ -42,7 +42,7 @@ public:
 private:
   Physic physic;
   Sprite* sprite;
 private:
   Physic physic;
   Sprite* sprite;
-  Timer2 timer;
+  Timer timer;
   bool hit;
   bool falling;
 };
   bool hit;
   bool falling;
 };
index b0b9429..fbff6d8 100644 (file)
@@ -1,13 +1,13 @@
 #include <stdio.h>
 #include "functions.h"
 #include <stdio.h>
 #include "functions.h"
+#include "script_interpreter.h"
 
 namespace Scripting
 {
 
 
 namespace Scripting
 {
 
-void wait(float secs)
+void wait(float seconds)
 {
 {
-    (void) secs;
-    printf("Wait not implemented.\n");
+  ScriptInterpreter::current()->suspend(seconds);
 }
 
 }
 }
 
 }
index e1769c0..3121889 100644 (file)
@@ -4,7 +4,8 @@
 namespace Scripting
 {
 
 namespace Scripting
 {
 
-void wait(float secs);
+/** Suspends the script execution for the specified number of seconds */
+void wait(float seconds);
 
 }
 
 
 }
 
index 54618c4..ff3d77e 100644 (file)
@@ -3,20 +3,32 @@
 
 #include <squirrel.h>
 #include <iostream>
 
 #include <squirrel.h>
 #include <iostream>
+#include "timer.h"
 
 class ScriptInterpreter
 {
 public:
 
 class ScriptInterpreter
 {
 public:
-    ScriptInterpreter();
-    ~ScriptInterpreter();
+  ScriptInterpreter();
+  ~ScriptInterpreter();
 
 
-    void load_script(std::istream& in, const std::string& sourcename = "");
-    void run_script();
-    void resume_script();
-    bool script_suspended();
+  void load_script(std::istream& in, const std::string& sourcename = "");
+  void run_script();
+  
+  void expose_object(void* object, const std::string& name,
+                     const std::string& type);
+
+  void suspend(float seconds);
+  void update();
+
+  static ScriptInterpreter* current()
+  {
+    return _current;
+  }
 
 private:
 
 private:
-    HSQUIRRELVM v;
+  HSQUIRRELVM v;
+  static ScriptInterpreter* _current;
+  Timer resume_timer;
 };
 
 #endif
 };
 
 #endif
index 4ac8177..c39def1 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef __SCRIPTED_OBJECT_H__
-#define __SCRIPTED_OBJECT_H__
+#ifndef __SCRIPTED_OBJECT_INTERFACE_H__
+#define __SCRIPTED_OBJECT_INTERFACE_H__
 
 namespace Scripting
 {
 
 namespace Scripting
 {
@@ -19,9 +19,15 @@ public:
   virtual void set_pos(float x, float y) = 0;
   virtual float get_pos_x() = 0;
   virtual float get_pos_y() = 0;
   virtual void set_pos(float x, float y) = 0;
   virtual float get_pos_x() = 0;
   virtual float get_pos_y() = 0;
+  
   virtual void set_velocity(float x, float y) = 0;
   virtual float get_velocity_x() = 0;
   virtual float get_velocity_y() = 0;
   virtual void set_velocity(float x, float y) = 0;
   virtual float get_velocity_x() = 0;
   virtual float get_velocity_y() = 0;
+  
+  virtual void set_visible(bool visible) = 0;
+  virtual bool is_visible() = 0;
+
+  virtual std::string get_name() = 0;
 };
 
 }
 };
 
 }
index 1055560..d693016 100644 (file)
     )
    (semanticdb-table "scripted_object.h"
     :file "scripted_object.h"
     )
    (semanticdb-table "scripted_object.h"
     :file "scripted_object.h"
-    :pointmax 514
+    :pointmax 699
     :major-mode 'c++-mode
     :major-mode 'c++-mode
-    :tokens '(("__SCRIPTED_OBJECT_H__" variable nil nil ((const . t)) nil nil [31 71]) ("Scripting" type "namespace" (("ScriptedObject" type "class" (("public" label ((reparse-symbol . classsubparts)) [108 115]) ("ScriptedObject" function ("ScriptedObject" type "class") nil ((constructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [142 159]) ("ScriptedObject" function "void" nil ((typemodifiers "virtual") (destructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [164 190]) ("set_animation" function ("void") (("animation" variable ("std::string" type "class") nil ((const . t)) nil nil [222 251])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [203 252]) ("get_animation" function ("std::string" type "class") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [257 285]) ("move" function ("void") (("x" variable "float" nil nil nil nil [301 309]) ("y" variable "float" nil nil nil nil [310 318])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [291 319]) ("set_pos" function ("void") (("x" variable "float" nil nil nil nil [337 345]) ("y" variable "float" nil nil nil nil [346 354])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [324 355]) ("get_pos_x" function ("float") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [360 378]) ("get_pos_y" function ("float") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [383 401]) ("set_velocity" function ("void") (("x" variable "float" nil nil nil nil [424 432]) ("y" variable "float" nil nil nil nil [433 441])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [406 442]) ("get_velocity_x" function ("float") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [447 470]) ("get_velocity_y" function ("float") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [475 498])) nil nil nil ((reparse-symbol . namespacesubparts)) [85 501])) nil nil nil nil [62 504]))
+    :tokens '(("__SCRIPTED_OBJECT_H__" variable nil nil ((const . t)) nil nil [41 91]) ("Scripting" type "namespace" (("ScriptedObject" type "class" (("public" label ((reparse-symbol . classsubparts)) [128 135]) ("ScriptedObject" function ("ScriptedObject" type "class") nil ((constructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [160 177]) ("ScriptedObject" function "void" nil ((typemodifiers "virtual") (destructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [180 206]) ("set_animation" function ("void") (("animation" variable ("std::string" type "class") nil ((const . t)) nil nil [244 273])) ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [217 278]) ("get_animation" function ("std::string" type "class") nil ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [281 321]) ("move" function ("void") (("x" variable "float" nil nil nil nil [343 351]) ("y" variable "float" nil nil nil nil [352 360])) ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [325 365]) ("set_pos" function ("void") (("x" variable "float" nil nil nil nil [389 397]) ("y" variable "float" nil nil nil nil [398 406])) ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [368 411]) ("get_pos_x" function ("float") nil ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [414 444]) ("get_pos_y" function ("float") nil ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [447 477]) ("set_velocity" function ("void") (("x" variable "float" nil nil nil nil [506 514]) ("y" variable "float" nil nil nil nil [515 523])) ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [480 528]) ("get_velocity_x" function ("float") nil ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [531 566]) ("get_velocity_y" function ("float") nil ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [569 604]) ("set_visible" function ("void") (("visible" variable ("bool" type "class") nil nil nil nil [632 645])) ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [607 650]) ("is_visible" function ("bool" type "class") nil ((typemodifiers "virtual") (prototype . t) (pure-virtual . t)) nil ((reparse-symbol . classsubparts)) [653 683])) nil nil nil ((reparse-symbol . namespacesubparts)) [105 686])) nil nil nil nil [82 689]))
+    :unmatched-syntax 'nil
     )
    (semanticdb-table "display.cpp"
     :file "display.cpp"
     )
    (semanticdb-table "display.cpp"
     :file "display.cpp"
@@ -73,9 +74,9 @@
     )
    (semanticdb-table "script_interpreter.cpp"
     :file "script_interpreter.cpp"
     )
    (semanticdb-table "script_interpreter.cpp"
     :file "script_interpreter.cpp"
-    :pointmax 2199
+    :pointmax 3471
     :major-mode 'c++-mode
     :major-mode 'c++-mode
-    :tokens '(("config.h" include t nil nil [1 20]) ("script_interpreter.h" include nil nil nil [22 53]) ("stdarg.h" include t nil nil [55 74]) ("stdexcept" include t nil nil [75 95]) ("sstream" include t nil nil [96 114]) ("sqstdio.h" include t nil nil [115 135]) ("sqstdaux.h" include t nil nil [136 157]) ("sqstdblob.h" include t nil nil [158 180]) ("sqstdsystem.h" include t nil nil [181 205]) ("sqstdmath.h" include t nil nil [206 228]) ("sqstdstring.h" include t nil nil [229 253]) ("wrapper.h" include nil nil nil [255 275]) ("wrapper_util.h" include nil nil nil [276 301]) ("printfunc" function ("void") (("" variable ("HSQUIRRELVM" type "class") nil nil nil nil [325 337]) ("str" variable "char" nil ((const . t) (pointer . 1)) nil nil [338 354]) ("..." ((reparse-symbol . arg-sub-list)) [355 359])) ((typemodifiers "static")) nil nil [303 452]) ("ScriptInterpreter" function ("ScriptInterpreter" type "class") nil ((parent . "ScriptInterpreter") (constructor . t)) nil nil [454 1375]) ("ScriptInterpreter" function "void" nil ((parent . "ScriptInterpreter") (destructor . t)) nil nil [1377 1420]) ("squirrel_read_char" function ("SQInteger" type "class") (("file" variable ("SQUserPointer" type "class") nil nil nil nil [1458 1477])) ((typemodifiers "static")) nil nil [1422 1595]) ("load_script" function ("void") (("in" variable ("std::istream" type "class") nil nil nil nil [1634 1651]) ("sourcename" variable ("std::string" type "class") nil ((const . t)) nil nil [1652 1682])) ((parent . "ScriptInterpreter")) nil nil [1598 1814]) ("run_script" function ("void") nil ((parent . "ScriptInterpreter")) nil nil [1816 1986]) ("resume_script" function ("void") nil ((parent . "ScriptInterpreter")) nil nil [1988 2124]) ("script_suspended" function ("bool" type "class") nil ((parent . "ScriptInterpreter")) nil nil [2126 2198]))
+    :tokens '(("config.h" include t nil nil [1 20]) ("script_interpreter.h" include nil nil nil [22 53]) ("stdarg.h" include t nil nil [55 74]) ("stdexcept" include t nil nil [75 95]) ("sstream" include t nil nil [96 114]) ("sqstdio.h" include t nil nil [115 135]) ("sqstdaux.h" include t nil nil [136 157]) ("sqstdblob.h" include t nil nil [158 180]) ("sqstdsystem.h" include t nil nil [181 205]) ("sqstdmath.h" include t nil nil [206 228]) ("sqstdstring.h" include t nil nil [229 253]) ("wrapper.h" include nil nil nil [255 275]) ("wrapper_util.h" include nil nil nil [276 301]) ("printfunc" function ("void") (("" variable ("HSQUIRRELVM" type "class") nil nil nil nil [325 337]) ("str" variable "char" nil ((const . t) (pointer . 1)) nil nil [338 354]) ("..." ((reparse-symbol . arg-sub-list)) [355 359])) ((typemodifiers "static")) nil nil [303 452]) ("ScriptInterpreter::_current" variable ("ScriptInterpreter" type "class") "0" ((pointer . 1)) nil nil [454 505]) ("ScriptInterpreter" function ("ScriptInterpreter" type "class") nil ((parent . "ScriptInterpreter") (constructor . t)) nil nil [507 1428]) ("ScriptInterpreter" function "void" nil ((parent . "ScriptInterpreter") (destructor . t)) nil nil [1430 1473]) ("squirrel_read_char" function ("SQInteger" type "class") (("file" variable ("SQUserPointer" type "class") nil nil nil nil [1511 1530])) ((typemodifiers "static")) nil nil [1475 1663]) ("load_script" function ("void") (("in" variable ("std::istream" type "class") nil nil nil nil [1702 1719]) ("sourcename" variable ("std::string" type "class") nil ((const . t)) nil nil [1720 1750])) ((parent . "ScriptInterpreter")) nil nil [1666 1882]) ("run_script" function ("void") nil ((parent . "ScriptInterpreter")) nil nil [1884 2061]) ("expose_object" function ("void") (("object" variable "void" nil ((pointer . 1)) nil nil [2101 2114]) ("name" variable ("std::string" type "class") nil ((const . t)) nil nil [2115 2139]) ("type" variable ("std::string" type "class") nil ((const . t)) nil nil [2173 2197])) ((parent . "ScriptInterpreter")) nil nil [2063 3161]) ("suspend" function ("void") (("seconds" variable "float" nil nil nil nil [3195 3209])) ((parent . "ScriptInterpreter")) nil nil [3163 3263]) ("update" function ("void") nil ((parent . "ScriptInterpreter")) nil nil [3265 3470]))
     :unmatched-syntax 'nil
     )
    (semanticdb-table "wrapper_util.h"
     :unmatched-syntax 'nil
     )
    (semanticdb-table "wrapper_util.h"
@@ -94,9 +95,9 @@
     )
    (semanticdb-table "script_interpreter.h"
     :file "script_interpreter.h"
     )
    (semanticdb-table "script_interpreter.h"
     :file "script_interpreter.h"
-    :pointmax 392
+    :pointmax 633
     :major-mode 'c++-mode
     :major-mode 'c++-mode
-    :tokens '(("__SCRIPT_INTERPRETER_H__" variable nil nil ((const . t)) nil nil [34 69]) ("squirrel.h" include t nil nil [68 89]) ("iostream" include t nil nil [90 109]) ("ScriptInterpreter" type "class" (("public" label ((reparse-symbol . classsubparts)) [137 144]) ("ScriptInterpreter" function ("ScriptInterpreter" type "class") nil ((constructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [149 169]) ("ScriptInterpreter" function "void" nil ((destructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [174 195]) ("load_script" function ("void") (("in" variable ("std::istream" type "class") nil nil nil nil [218 235]) ("sourcename" variable ("std::string" type "class") "\"\"" ((const . t)) nil nil [236 270])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [201 272]) ("run_script" function ("void") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [277 295]) ("resume_script" function ("void") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [300 321]) ("script_suspended" function ("bool" type "class") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [326 350]) ("private" label ((reparse-symbol . classsubparts)) [352 360]) ("v" variable ("HSQUIRRELVM" type "class") nil nil nil nil [365 379])) nil nil nil nil [111 382]))
+    :tokens '(("__SCRIPT_INTERPRETER_H__" variable nil nil ((const . t)) nil nil [34 69]) ("squirrel.h" include t nil nil [68 89]) ("iostream" include t nil nil [90 109]) ("timer.h" include nil nil nil [110 128]) ("ScriptInterpreter" type "class" (("public" label ((reparse-symbol . classsubparts)) [156 163]) ("ScriptInterpreter" function ("ScriptInterpreter" type "class") nil ((constructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [166 186]) ("ScriptInterpreter" function "void" nil ((destructor . t) (prototype . t)) nil ((reparse-symbol . classsubparts)) [189 210]) ("load_script" function ("void") (("in" variable ("std::istream" type "class") nil nil nil nil [231 248]) ("sourcename" variable ("std::string" type "class") "\"\"" ((const . t)) nil nil [249 283])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [214 285]) ("run_script" function ("void") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [288 306]) ("expose_object" function ("void") (("object" variable "void" nil ((pointer . 1)) nil nil [331 344]) ("name" variable ("std::string" type "class") nil ((const . t)) nil nil [345 369]) ("type" variable ("std::string" type "class") nil ((const . t)) nil nil [391 415])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [312 416]) ("suspend" function ("void") (("seconds" variable "float" nil nil nil nil [433 447])) ((prototype . t)) nil ((reparse-symbol . classsubparts)) [420 448]) ("update" function ("void") nil ((prototype . t)) nil ((reparse-symbol . classsubparts)) [451 465]) ("current" function ("ScriptInterpreter" type "class") nil ((typemodifiers "static") (pointer . 1)) nil ((reparse-symbol . classsubparts)) [469 533]) ("private" label ((reparse-symbol . classsubparts)) [535 543]) ("v" variable ("HSQUIRRELVM" type "class") nil nil nil nil [546 560]) ("_current" variable ("ScriptInterpreter" type "class") nil ((typemodifiers "static") (pointer . 1)) nil nil [563 598]) ("resume_timer" variable ("Timer" type "class") nil nil nil nil [601 620])) nil nil nil nil [130 623]))
     :unmatched-syntax 'nil
     )
    )
     :unmatched-syntax 'nil
     )
    )
index a0589c7..f3c77f7 100644 (file)
@@ -3,6 +3,8 @@
 #include <string>
 #include <stdio.h>
 #include "sound.h"
 #include <string>
 #include <stdio.h>
 #include "sound.h"
+#include "resources.h"
+#include "audio/sound_manager.h"
 
 #define NOIMPL      printf("%s not implemented.\n", __PRETTY_FUNCTION__);
 
 
 #define NOIMPL      printf("%s not implemented.\n", __PRETTY_FUNCTION__);
 
@@ -22,8 +24,8 @@ namespace Scripting
   }
 
   void
   }
 
   void
-  Sound::play_sound(const std::string& )
+  Sound::play_sound(const std::string& name)
   {
   {
-    NOIMPL;
+    sound_manager->play_sound(name);
   }
 }
   }
 }
index 66ac95a..9467c1f 100644 (file)
@@ -7,12 +7,12 @@ namespace Scripting
 class Sound
 {
 public:
 class Sound
 {
 public:
-    void play_music(const std::string& musicfile);
-    void play_sound(const std::string& soundfile);
+  void play_music(const std::string& musicfile);
+  void play_sound(const std::string& soundfile);
 
 #ifndef SCRIPTING_API
 
 #ifndef SCRIPTING_API
-    Sound();
-    ~Sound();
+  Sound();
+  ~Sound();
 #endif
 };
 
 #endif
 };
 
index 5cb15e3..42c7bad 100644 (file)
@@ -199,6 +199,40 @@ static int ScriptedObject_get_velocity_y_wrapper(HSQUIRRELVM v)
   return 1;
 }
 
   return 1;
 }
 
+static int ScriptedObject_set_visible_wrapper(HSQUIRRELVM v)
+{
+  Scripting::ScriptedObject* _this;
+  sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
+  SQBool arg0;
+  sq_getbool(v, 2, &arg0);
+  
+  _this->set_visible(arg0);
+  
+  return 0;
+}
+
+static int ScriptedObject_is_visible_wrapper(HSQUIRRELVM v)
+{
+  Scripting::ScriptedObject* _this;
+  sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
+  
+  bool return_value = _this->is_visible();
+  
+  sq_pushbool(v, return_value);
+  return 1;
+}
+
+static int ScriptedObject_get_name_wrapper(HSQUIRRELVM v)
+{
+  Scripting::ScriptedObject* _this;
+  sq_getinstanceup(v, 1, (SQUserPointer*) &_this, 0);
+  
+  std::string return_value = _this->get_name();
+  
+  sq_pushstring(v, return_value.c_str(), return_value.size());
+  return 1;
+}
+
 static int Sound_play_music_wrapper(HSQUIRRELVM v)
 {
   Scripting::Sound* _this;
 static int Sound_play_music_wrapper(HSQUIRRELVM v)
 {
   Scripting::Sound* _this;
@@ -263,6 +297,9 @@ static WrappedFunction supertux_ScriptedObject_methods[] = {
   { "set_velocity", &ScriptedObject_set_velocity_wrapper },
   { "get_velocity_x", &ScriptedObject_get_velocity_x_wrapper },
   { "get_velocity_y", &ScriptedObject_get_velocity_y_wrapper },
   { "set_velocity", &ScriptedObject_set_velocity_wrapper },
   { "get_velocity_x", &ScriptedObject_get_velocity_x_wrapper },
   { "get_velocity_y", &ScriptedObject_get_velocity_y_wrapper },
+  { "set_visible", &ScriptedObject_set_visible_wrapper },
+  { "is_visible", &ScriptedObject_is_visible_wrapper },
+  { "get_name", &ScriptedObject_get_name_wrapper },
 };
 
 static WrappedFunction supertux_Sound_methods[] = {
 };
 
 static WrappedFunction supertux_Sound_methods[] = {
index f52ecba..86e7c4d 100644 (file)
@@ -104,39 +104,6 @@ void print_squirrel_stack(HSQUIRRELVM v)
     printf("--------------------------------------------------------------\n");
 }
 
     printf("--------------------------------------------------------------\n");
 }
 
-void expose_object(HSQUIRRELVM v, void* object, const char* type,
-        const char* name)
-{
-    // part1 of registration of the instance in the root table
-    sq_pushroottable(v);
-    sq_pushstring(v, name, -1);
-
-    // resolve class name
-    sq_pushroottable(v);
-    sq_pushstring(v, type, -1);
-    if(sq_get(v, -2) < 0) {
-        std::ostringstream msg;
-        msg << "Couldn't resolve squirrel type '" << type << "'.";
-        throw std::runtime_error(msg.str());
-    }
-    sq_remove(v, -2); // remove roottable
-
-    // create an instance and set pointer to c++ object
-    if(sq_createinstance(v, -1) < 0 || sq_setinstanceup(v, -1, object)) {
-      std::ostringstream msg;
-      msg << "Couldn't setup squirrel instance for object '"
-          << name << "' of type '" << type << "'.";
-      throw SquirrelError(v, msg.str());
-    }
-    
-    sq_remove(v, -2); // remove class from stack
-
-    // part2 of registration of the instance in the root table
-    if(sq_createslot(v, -3) < 0)
-      throw SquirrelError(v, "Couldn't register object in squirrel root table");
-    sq_pop(v, 2);
-}
-
 //----------------------------------------------------------------------------
 
 SquirrelError::SquirrelError(HSQUIRRELVM v, const std::string& message) throw()
 //----------------------------------------------------------------------------
 
 SquirrelError::SquirrelError(HSQUIRRELVM v, const std::string& message) throw()
index e8f457a..63e185d 100644 (file)
@@ -28,8 +28,6 @@ private:
 void register_functions(HSQUIRRELVM v, WrappedFunction* functions);
 void register_classes(HSQUIRRELVM v, WrappedClass* classes);
 
 void register_functions(HSQUIRRELVM v, WrappedFunction* functions);
 void register_classes(HSQUIRRELVM v, WrappedClass* classes);
 
-void expose_object(HSQUIRRELVM v, void* object, const char* type,
-        const char* name);
 void print_squirrel_stack(HSQUIRRELVM v);
 
 #endif
 void print_squirrel_stack(HSQUIRRELVM v);
 
 #endif
index 657996f..dfb2679 100644 (file)
@@ -16,7 +16,6 @@
 //  You should have received a copy of the GNU General Public License
 //  along with this program; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //  You should have received a copy of the GNU General Public License
 //  along with this program; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
 #include <config.h>
 
 #include <memory>
 #include <config.h>
 
 #include <memory>
@@ -58,6 +57,8 @@
 #include "trigger/sequence_trigger.h"
 #include "player_status.h"
 #include "scripting/script_interpreter.h"
 #include "trigger/sequence_trigger.h"
 #include "player_status.h"
 #include "scripting/script_interpreter.h"
+#include "scripting/sound.h"
+#include "scripting/scripted_object.h"
 
 //#define USE_GRID
 
 
 //#define USE_GRID
 
@@ -424,6 +425,24 @@ Sector::activate(const std::string& spawnpoint)
       delete interpreter;
       interpreter = 0;
       interpreter = new ScriptInterpreter();
       delete interpreter;
       interpreter = 0;
       interpreter = new ScriptInterpreter();
+
+      // expose ScriptedObjects to the script
+      for(GameObjects::iterator i = gameobjects.begin();
+          i != gameobjects.end(); ++i) {
+        GameObject* object = *i;
+        Scripting::ScriptedObject* scripted_object
+          = dynamic_cast<Scripting::ScriptedObject*> (object);
+        if(!scripted_object)
+          continue;
+
+        std::cout << "Exposing " << scripted_object->get_name() << "\n";
+        interpreter->expose_object(scripted_object,
+                                   scripted_object->get_name(),
+                                   "ScriptedObject");
+      }
+      Scripting::Sound* sound = new Scripting::Sound();
+      interpreter->expose_object(sound, "Sound", "Sound");
+
       std::string sourcename = std::string("Sector(") + name + ") - init";
       std::istringstream in(init_script);
       printf("Load script.\n");
       std::string sourcename = std::string("Sector(") + name + ") - init";
       std::istringstream in(init_script);
       printf("Load script.\n");
@@ -456,6 +475,9 @@ Sector::get_active_region()
 void
 Sector::action(float elapsed_time)
 {
 void
 Sector::action(float elapsed_time)
 {
+  if(interpreter)
+    interpreter->update();
+  
   player->check_bounds(camera);
 
 #if 0
   player->check_bounds(camera);
 
 #if 0
index 2030b28..430e216 100644 (file)
@@ -77,7 +77,7 @@ public:
 private:
   int stats[NUM_STATS][2];
 
 private:
   int stats[NUM_STATS][2];
 
-  Timer2 timer;
+  Timer timer;
   int display_stat;
 };
 
   int display_stat;
 };
 
index 8166e85..273cf8e 100644 (file)
 
 float global_time = 0;
 
 
 float global_time = 0;
 
-Timer2::Timer2()
+Timer::Timer()
   : period(0), cycle_start(0), cyclic(false)
 {
 }
 
   : period(0), cycle_start(0), cyclic(false)
 {
 }
 
-Timer2::~Timer2()
+Timer::~Timer()
 {
 }
 
 void
 {
 }
 
 void
-Timer2::start(float period, bool cyclic)
+Timer::start(float period, bool cyclic)
 {
   this->period = period;
   this->cyclic = cyclic;
 {
   this->period = period;
   this->cyclic = cyclic;
@@ -42,7 +42,7 @@ Timer2::start(float period, bool cyclic)
 }
 
 bool
 }
 
 bool
-Timer2::check()
+Timer::check()
 {
   if(period == 0)
     return false;
 {
   if(period == 0)
     return false;
index d7f0373..42e1b8f 100644 (file)
@@ -25,11 +25,11 @@ extern float global_time;
 /**
  * new simpler timer designed to be used in the update functions of objects
  */
 /**
  * new simpler timer designed to be used in the update functions of objects
  */
-class Timer2 // TODO rename later
+class Timer
 {
 public:
 {
 public:
-  Timer2();
-  ~Timer2();
+  Timer();
+  ~Timer();
 
   /** start the timer with the given period (in seconds).
    * If cyclic=true then the timer willl be reset after each period.
 
   /** start the timer with the given period (in seconds).
    * If cyclic=true then the timer willl be reset after each period.
index 3ae54f6..ebaf5b7 100644 (file)
@@ -69,7 +69,7 @@ static Surface* logo;
 static Surface* img_choose_subset;
 
 static bool walking;
 static Surface* img_choose_subset;
 
 static bool walking;
-static Timer2 random_timer;
+static Timer random_timer;
 
 static int frame;
 
 
 static int frame;
 
index 0dba229..71c4d17 100644 (file)
@@ -39,7 +39,7 @@ public:
   
 private:
   std::string message;
   
 private:
   std::string message;
-  Timer2 message_timer;
+  Timer message_timer;
   bool message_displayed;
 };
 
   bool message_displayed;
 };
 
index 5899f8c..8c19d74 100644 (file)
@@ -178,7 +178,7 @@ public:
   };
 
   /** Variables to deal with the passive map messages */
   };
 
   /** Variables to deal with the passive map messages */
-  Timer2 passive_message_timer;
+  Timer passive_message_timer;
   std::string passive_message;
 
 private:
   std::string passive_message;
 
 private: