added Christoph's sleepy spiky, created a plant badguy using Grumbel's plant.xcf...
authorStephen Groundwater <slacker@gluebox.com>
Tue, 14 Feb 2006 16:42:29 +0000 (16:42 +0000)
committerStephen Groundwater <slacker@gluebox.com>
Tue, 14 Feb 2006 16:42:29 +0000 (16:42 +0000)
SVN-Revision: 3060

57 files changed:
AUTHORS
data/Jamfile
data/credits.txt
data/images/background/castledoor.jpg
data/images/creatures/mr_tree/small-left-0.png
data/images/creatures/mr_tree/small-left-1.png
data/images/creatures/mr_tree/small-left-2.png
data/images/creatures/mr_tree/small-left-3.png
data/images/creatures/mr_tree/small-left-4.png
data/images/creatures/mr_tree/small-left-5.png
data/images/creatures/nolok/jump-0.png
data/images/creatures/nolok/jump-1.png
data/images/creatures/nolok/nolok.sprite
data/images/creatures/nolok/walk-0.png
data/images/creatures/nolok/walk-1.png
data/images/creatures/nolok/walk-2.png
data/images/creatures/nolok/walk-3.png
data/images/creatures/plant/iced-left.png [new file with mode: 0644]
data/images/creatures/plant/left-0.png [new file with mode: 0644]
data/images/creatures/plant/left-1.png [new file with mode: 0644]
data/images/creatures/plant/left-2.png [new file with mode: 0644]
data/images/creatures/plant/plant-sleep.png [new file with mode: 0644]
data/images/creatures/plant/plant.png [new file with mode: 0644]
data/images/creatures/plant/plant.sprite [new file with mode: 0644]
data/images/creatures/plant/sleeping-left.png [new file with mode: 0644]
data/images/creatures/plant/waking-left-0.png [new file with mode: 0644]
data/images/creatures/plant/waking-left-1.png [new file with mode: 0644]
data/images/creatures/plant/waking-left-2.png [new file with mode: 0644]
data/images/creatures/sspiky/iced-left.png [new file with mode: 0644]
data/images/creatures/sspiky/left-0.png [new file with mode: 0644]
data/images/creatures/sspiky/left-1.png [new file with mode: 0644]
data/images/creatures/sspiky/left-2.png [new file with mode: 0644]
data/images/creatures/sspiky/sleeping-left.png [new file with mode: 0644]
data/images/creatures/sspiky/sspiky.sprite [new file with mode: 0644]
data/images/creatures/sspiky/waking-left-0.png [new file with mode: 0644]
data/images/creatures/sspiky/waking-left-1.png [new file with mode: 0644]
data/images/creatures/sspiky/waking-left-2.png [new file with mode: 0644]
data/images/objects/castledoor/castledoor.png
data/images/objects/castledoor/keyholes.png
data/images/objects/castledoor/torchflame.sprite [new file with mode: 0644]
data/images/objects/castledoor/torchflame.xcf [new file with mode: 0644]
data/images/objects/castledoor/torchflame1.png [new file with mode: 0644]
data/images/objects/castledoor/torchflame2.png [new file with mode: 0644]
data/images/objects/castledoor/torchflame3.png [new file with mode: 0644]
data/images/objects/castledoor/torchflame4.png [new file with mode: 0644]
data/images/objects/castledoor/torchflame5.png [new file with mode: 0644]
data/images/tiles/doodads/clover.png
data/levels/test/door_beta.stl [deleted file]
data/levels/world1/level2.stl
data/levels/world2/castledoor.stl
data/sounds/mr_tree.ogg [new file with mode: 0644]
data/sounds/mr_treehit.ogg [new file with mode: 0644]
src/badguy/mrtree.cpp
src/badguy/plant.cpp [new file with mode: 0644]
src/badguy/plant.hpp [new file with mode: 0644]
src/badguy/sspiky.cpp [new file with mode: 0644]
src/badguy/sspiky.hpp [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
index c41f2df..c6ef81b 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -64,6 +64,9 @@ Graphics
     Settra
     settra@free.fr
 
+    Stephen Groundwater
+    slacker@gluebox.com
+
 Level Design
 ------------
 
index 366b94d..07bbf5c 100644 (file)
@@ -66,6 +66,8 @@ IMAGEPATHS =
        images/creatures/mr_rocket
        images/creatures/bouncing_snowball
        images/creatures/dummyguy
+        images/creatures/plant
+       images/creatures/sspiky
 ;
 
 for p in $(IMAGEPATHS) {
index e30a52a..6ad9a2c 100644 (file)
@@ -41,6 +41,7 @@
 
        Richard Smith
 
+       Christoph Sommer
 
 -Graphics
 
index 7612ff9..dba23b6 100644 (file)
Binary files a/data/images/background/castledoor.jpg and b/data/images/background/castledoor.jpg differ
index 954161a..38cb706 100644 (file)
Binary files a/data/images/creatures/mr_tree/small-left-0.png and b/data/images/creatures/mr_tree/small-left-0.png differ
index 0b350cc..f4219a1 100644 (file)
Binary files a/data/images/creatures/mr_tree/small-left-1.png and b/data/images/creatures/mr_tree/small-left-1.png differ
index b4ccfb3..cc1fe36 100644 (file)
Binary files a/data/images/creatures/mr_tree/small-left-2.png and b/data/images/creatures/mr_tree/small-left-2.png differ
index 37f13cf..0135263 100644 (file)
Binary files a/data/images/creatures/mr_tree/small-left-3.png and b/data/images/creatures/mr_tree/small-left-3.png differ
index c15939a..bfed3fb 100644 (file)
Binary files a/data/images/creatures/mr_tree/small-left-4.png and b/data/images/creatures/mr_tree/small-left-4.png differ
index a823178..412740c 100644 (file)
Binary files a/data/images/creatures/mr_tree/small-left-5.png and b/data/images/creatures/mr_tree/small-left-5.png differ
index efcdbde..1598b6b 100644 (file)
Binary files a/data/images/creatures/nolok/jump-0.png and b/data/images/creatures/nolok/jump-0.png differ
index 43432a4..5369c1a 100644 (file)
Binary files a/data/images/creatures/nolok/jump-1.png and b/data/images/creatures/nolok/jump-1.png differ
index 0e90d6d..f9be990 100644 (file)
@@ -7,6 +7,7 @@
   (images "walk-0.png"
           "walk-1.png"
 "walk-2.png"
+"walk-3.png"
 
 )
  )
index 68baa9e..a0371f1 100644 (file)
Binary files a/data/images/creatures/nolok/walk-0.png and b/data/images/creatures/nolok/walk-0.png differ
index b97e575..7c04f5f 100644 (file)
Binary files a/data/images/creatures/nolok/walk-1.png and b/data/images/creatures/nolok/walk-1.png differ
index d5157d3..2cdef78 100644 (file)
Binary files a/data/images/creatures/nolok/walk-2.png and b/data/images/creatures/nolok/walk-2.png differ
index 46fa66d..b3a31db 100644 (file)
Binary files a/data/images/creatures/nolok/walk-3.png and b/data/images/creatures/nolok/walk-3.png differ
diff --git a/data/images/creatures/plant/iced-left.png b/data/images/creatures/plant/iced-left.png
new file mode 100644 (file)
index 0000000..92f6c51
Binary files /dev/null and b/data/images/creatures/plant/iced-left.png differ
diff --git a/data/images/creatures/plant/left-0.png b/data/images/creatures/plant/left-0.png
new file mode 100644 (file)
index 0000000..0a1c001
Binary files /dev/null and b/data/images/creatures/plant/left-0.png differ
diff --git a/data/images/creatures/plant/left-1.png b/data/images/creatures/plant/left-1.png
new file mode 100644 (file)
index 0000000..431963d
Binary files /dev/null and b/data/images/creatures/plant/left-1.png differ
diff --git a/data/images/creatures/plant/left-2.png b/data/images/creatures/plant/left-2.png
new file mode 100644 (file)
index 0000000..5d1e889
Binary files /dev/null and b/data/images/creatures/plant/left-2.png differ
diff --git a/data/images/creatures/plant/plant-sleep.png b/data/images/creatures/plant/plant-sleep.png
new file mode 100644 (file)
index 0000000..1fe7b90
Binary files /dev/null and b/data/images/creatures/plant/plant-sleep.png differ
diff --git a/data/images/creatures/plant/plant.png b/data/images/creatures/plant/plant.png
new file mode 100644 (file)
index 0000000..c12c229
Binary files /dev/null and b/data/images/creatures/plant/plant.png differ
diff --git a/data/images/creatures/plant/plant.sprite b/data/images/creatures/plant/plant.sprite
new file mode 100644 (file)
index 0000000..159a0a1
--- /dev/null
@@ -0,0 +1,49 @@
+(supertux-sprite
+ (action
+  (name "left")
+  (x-offset 6)
+  (y-offset 10)
+  (images "left-0.png"
+   "left-1.png"
+   "left-2.png"))
+ (action
+  (name "right")
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "left"))
+ (action
+  (name "iced-left")
+  (x-offset 6)
+  (y-offset 10)
+  (images "iced-left.png"))
+ (action
+  (name "iced-right")
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "iced-left")
+ )
+ (action
+  (name "sleeping-left")
+  (x-offset 6)
+  (y-offset 10)
+  (images "sleeping-left.png"))
+ (action
+  (name "sleeping-right")
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "sleeping-left"))
+ (action
+  (name "waking-left")
+  (x-offset 6)
+  (y-offset 10)
+  (fps 6.0)
+  (images "waking-left-0.png"
+   "waking-left-1.png"
+   "waking-left-2.png"))
+ (action
+  (name "waking-right")
+  (fps 6.0)
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "waking-left"))
+)
diff --git a/data/images/creatures/plant/sleeping-left.png b/data/images/creatures/plant/sleeping-left.png
new file mode 100644 (file)
index 0000000..7a92a1f
Binary files /dev/null and b/data/images/creatures/plant/sleeping-left.png differ
diff --git a/data/images/creatures/plant/waking-left-0.png b/data/images/creatures/plant/waking-left-0.png
new file mode 100644 (file)
index 0000000..688e996
Binary files /dev/null and b/data/images/creatures/plant/waking-left-0.png differ
diff --git a/data/images/creatures/plant/waking-left-1.png b/data/images/creatures/plant/waking-left-1.png
new file mode 100644 (file)
index 0000000..7948485
Binary files /dev/null and b/data/images/creatures/plant/waking-left-1.png differ
diff --git a/data/images/creatures/plant/waking-left-2.png b/data/images/creatures/plant/waking-left-2.png
new file mode 100644 (file)
index 0000000..d1801ca
Binary files /dev/null and b/data/images/creatures/plant/waking-left-2.png differ
diff --git a/data/images/creatures/sspiky/iced-left.png b/data/images/creatures/sspiky/iced-left.png
new file mode 100644 (file)
index 0000000..92f6c51
Binary files /dev/null and b/data/images/creatures/sspiky/iced-left.png differ
diff --git a/data/images/creatures/sspiky/left-0.png b/data/images/creatures/sspiky/left-0.png
new file mode 100644 (file)
index 0000000..6715371
Binary files /dev/null and b/data/images/creatures/sspiky/left-0.png differ
diff --git a/data/images/creatures/sspiky/left-1.png b/data/images/creatures/sspiky/left-1.png
new file mode 100644 (file)
index 0000000..2ca33ab
Binary files /dev/null and b/data/images/creatures/sspiky/left-1.png differ
diff --git a/data/images/creatures/sspiky/left-2.png b/data/images/creatures/sspiky/left-2.png
new file mode 100644 (file)
index 0000000..eb845fb
Binary files /dev/null and b/data/images/creatures/sspiky/left-2.png differ
diff --git a/data/images/creatures/sspiky/sleeping-left.png b/data/images/creatures/sspiky/sleeping-left.png
new file mode 100644 (file)
index 0000000..45a847b
Binary files /dev/null and b/data/images/creatures/sspiky/sleeping-left.png differ
diff --git a/data/images/creatures/sspiky/sspiky.sprite b/data/images/creatures/sspiky/sspiky.sprite
new file mode 100644 (file)
index 0000000..159a0a1
--- /dev/null
@@ -0,0 +1,49 @@
+(supertux-sprite
+ (action
+  (name "left")
+  (x-offset 6)
+  (y-offset 10)
+  (images "left-0.png"
+   "left-1.png"
+   "left-2.png"))
+ (action
+  (name "right")
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "left"))
+ (action
+  (name "iced-left")
+  (x-offset 6)
+  (y-offset 10)
+  (images "iced-left.png"))
+ (action
+  (name "iced-right")
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "iced-left")
+ )
+ (action
+  (name "sleeping-left")
+  (x-offset 6)
+  (y-offset 10)
+  (images "sleeping-left.png"))
+ (action
+  (name "sleeping-right")
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "sleeping-left"))
+ (action
+  (name "waking-left")
+  (x-offset 6)
+  (y-offset 10)
+  (fps 6.0)
+  (images "waking-left-0.png"
+   "waking-left-1.png"
+   "waking-left-2.png"))
+ (action
+  (name "waking-right")
+  (fps 6.0)
+  (x-offset 6)
+  (y-offset 10)
+  (mirror-action "waking-left"))
+)
diff --git a/data/images/creatures/sspiky/waking-left-0.png b/data/images/creatures/sspiky/waking-left-0.png
new file mode 100644 (file)
index 0000000..0509325
Binary files /dev/null and b/data/images/creatures/sspiky/waking-left-0.png differ
diff --git a/data/images/creatures/sspiky/waking-left-1.png b/data/images/creatures/sspiky/waking-left-1.png
new file mode 100644 (file)
index 0000000..28cb484
Binary files /dev/null and b/data/images/creatures/sspiky/waking-left-1.png differ
diff --git a/data/images/creatures/sspiky/waking-left-2.png b/data/images/creatures/sspiky/waking-left-2.png
new file mode 100644 (file)
index 0000000..2ca33ab
Binary files /dev/null and b/data/images/creatures/sspiky/waking-left-2.png differ
index b7ff307..1c017fe 100644 (file)
Binary files a/data/images/objects/castledoor/castledoor.png and b/data/images/objects/castledoor/castledoor.png differ
index fd8fa1c..734a567 100644 (file)
Binary files a/data/images/objects/castledoor/keyholes.png and b/data/images/objects/castledoor/keyholes.png differ
diff --git a/data/images/objects/castledoor/torchflame.sprite b/data/images/objects/castledoor/torchflame.sprite
new file mode 100644 (file)
index 0000000..c685b57
--- /dev/null
@@ -0,0 +1,25 @@
+(supertux-sprite
+ (action
+  (name "normal")
+  (x-offset 0)
+  (y-offset 0)
+(fps 4)
+  (images 
+
+"torchflame1.png"
+"torchflame1.png"
+
+"torchflame2.png"
+"torchflame2.png"
+
+
+"torchflame3.png"
+"torchflame3.png"
+
+"torchflame4.png"
+"torchflame4.png"
+"torchflame5.png"
+"torchflame5.png"
+
+))
+)
diff --git a/data/images/objects/castledoor/torchflame.xcf b/data/images/objects/castledoor/torchflame.xcf
new file mode 100644 (file)
index 0000000..7660c2b
Binary files /dev/null and b/data/images/objects/castledoor/torchflame.xcf differ
diff --git a/data/images/objects/castledoor/torchflame1.png b/data/images/objects/castledoor/torchflame1.png
new file mode 100644 (file)
index 0000000..00768c8
Binary files /dev/null and b/data/images/objects/castledoor/torchflame1.png differ
diff --git a/data/images/objects/castledoor/torchflame2.png b/data/images/objects/castledoor/torchflame2.png
new file mode 100644 (file)
index 0000000..0aa4bcf
Binary files /dev/null and b/data/images/objects/castledoor/torchflame2.png differ
diff --git a/data/images/objects/castledoor/torchflame3.png b/data/images/objects/castledoor/torchflame3.png
new file mode 100644 (file)
index 0000000..cdbdd1b
Binary files /dev/null and b/data/images/objects/castledoor/torchflame3.png differ
diff --git a/data/images/objects/castledoor/torchflame4.png b/data/images/objects/castledoor/torchflame4.png
new file mode 100644 (file)
index 0000000..eb2c69f
Binary files /dev/null and b/data/images/objects/castledoor/torchflame4.png differ
diff --git a/data/images/objects/castledoor/torchflame5.png b/data/images/objects/castledoor/torchflame5.png
new file mode 100644 (file)
index 0000000..40eea84
Binary files /dev/null and b/data/images/objects/castledoor/torchflame5.png differ
index 8f024bd..ada0375 100644 (file)
Binary files a/data/images/tiles/doodads/clover.png and b/data/images/tiles/doodads/clover.png differ
diff --git a/data/levels/test/door_beta.stl b/data/levels/test/door_beta.stl
deleted file mode 100644 (file)
index 07f7148..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-;; Generated by Flexlay Editor
-(supertux-level
-  (version 2)
-  (name   (_ "No Name"))
-  (author "No Author")
-  (sector
-    (name  "main")
-    (gravity 10.000000)
-    (tilemap
-      (layer  "background")
-      (solid #f)
-      (speed  1.000000)
-      (width  25)
-      (height 25)
-      (tiles
-        1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        131 131 131 131 131 131 131 131 131 131 131 131 131 131 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1477 1477 1477 1481 1481 1481 1481 1481 1481 1481 1481 1481 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1477 1477 1477 1481 1481 1503 1503 1503 1503 1503 1481 1481 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1477 1477 1481 1481 1503 1503 1503 1503 1503 1503 1503 1481 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1477 1481 1481 1503 1503 1526 1526 1526 1526 1526 1503 1503 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1481 1481 1503 1503 1526 1526 1526 1526 1526 1526 1526 1503 1503 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 
-        1481 1503 1503 1526 1526 1526 1526 1526 1526 1526 1526 1526 1503 1503 131 131 131 131 131 131 131 131 131 131 131 
-        1481 1503 1520 1523 1523 1523 1523 1523 1523 1523 1523 1523 1529 1503 1477 1477 1477 1477 1477 1477 1477 1477 1477 1481 1481 
-        1517 1503 1521 1527 1527 1527 1527 1527 1527 1527 1527 1527 1530 1503 1517 1481 1479 1480 1481 1482 1483 1484 1485 1481 1481 
-        1518 1503 1522 1525 1525 1525 1525 1525 1525 1525 1525 1525 1531 1503 1518 1481 1486 1487 1488 1489 1490 1491 1492 1481 1481 
-        1488 1503 1520 1523 1523 1523 1523 1523 1523 1523 1523 1523 1529 1503 1481 1481 1493 1494 1495 1496 1497 1498 1499 1485 1481 
-        1495 1503 1521 1527 1527 1527 1527 1527 1527 1527 1527 1527 1530 1503 1481 1481 1500 1501 1502 1503 1504 1505 1506 1481 1481 
-        1502 1503 1522 1528 1528 1528 1528 1528 1528 1528 1528 1528 1531 1503 1481 1481 1507 1508 1509 1485 1481 1481 1485 1481 1481 
-        1481 1503 1526 1526 1526 1526 1526 1526 1526 1526 1526 1526 1526 1503 1481 1481 1485 1481 1481 1481 1481 1481 1481 1485 1481 
-        340 340 341 341 341 341 341 341 341 341 341 341 341 342 1481 1485 1481 1485 1481 1481 1481 1481 1485 1481 1481 
-        1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 341 341 341 341 341 341 341 341 341 341 341 342 
-        1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 449 449 449 449 449 449 449 449 449 449 449 449 
-        1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 449 449 449 449 449 449 449 449 449 449 449 449 
-        1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 449 449 
-        1091 1091 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1014 1014 1014 1014 1014 1091 1091 
-        1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1014 1014 1014 1014 1014 1014 1014 1091 1091 
-        1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1146 1146 1146 1146 1146 1146 1146 1091 1091 
-        ))
-    (tilemap
-      (layer  "interactive")
-      (solid #t)
-      (speed  1.000000)
-      (width  25)
-      (height 25)
-      (tiles
-        1510 1510 1510 1510 1510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 132 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 132 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 1348 0 
-        61 61 61 61 61 61 61 61 61 61 61 61 61 61 0 0 0 0 0 0 0 0 0 79 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 0 0 0 0 0 0 0 0 79 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 0 0 0 0 0 0 0 79 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1349 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 61 61 61 61 61 61 61 61 61 61 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 1519 0 0 0 1519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 1519 0 0 0 1519 0 0 0 1519 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        28 28 28 28 29 0 0 0 0 0 27 28 28 28 28 28 28 28 28 28 28 28 28 28 28 
-        0 0 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 27 28 28 28 28 28 28 28 28 28 28 28 28 28 28 29 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 28 28 28 28 28 28 28 29 
-        ))
-    (tilemap
-      (layer  "foreground")
-      (solid #f)
-      (speed  1.000000)
-      (width  25)
-      (height 25)
-      (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 
-        ))
-    (camera
-      (mode "normal")
-    )
-
-       (spawnpoint (name "main") (x 736) (y 640))
-       (hatch
-         (x 736) (y 512)         (sector "main")
-         (spawnpoint "main")
-       )
-       (spidermite (x 201) (y 221))
-       (spidermite (x 338) (y 334))
-       (spidermite (x 86) (y 356))
-      (infoblock (x 736) (y 192)
-        (message (_ "!images/objects/voicemail/voicemail.png
-#Hey Tux,
-#Some friends have 
-#left you voicemail 
-#messages with advice
-#to find Penny. So 
-#don't forget to check
-#your voicemail and 
-#good luck!
-#The SuperTux Team"))
-
-      )
-       (poisonivy (x 112) (y 611))
-        (secretarea (x 460.5625)
-                    (y 209.5625)
-                    (width 224.9375)
-                    (height 89.0)
-                    (message "Use the payphone to check your voicemail Tux."))
-        (secretarea (x 365.3125)
-                    (y 472.4375)
-                    (width 229.625)
-                    (height 90.5625)
-                    (message "Nolok's vault doors can be used as transporters. Use them to explore his hidden areas."))
-   )
- )
-
-;; EOF ;;
index c4b6be9..d4790d8 100644 (file)
       (y 100)
     )
     (bell (x 5568) (y 286))
-    (snowball  (x 873) (y 407))
+    (sspiky  (x 873) (y 407))
     (snowball  (x 2338) (y 149))
     (snowball  (x 4655) (y 313))
     (snowball  (x 4790) (y 368))
index 3ca9e31..713d5b0 100644 (file)
@@ -5,6 +5,7 @@
   (author "SuperTux Development Team")
   (sector
     (name  "main")
+    (music  "music/forest2.ogg")
     (gravity 10.000000)
     (tilemap
       (layer  "background")
         0 0 0 0 0 0 0 0 0 0 0 0 0 1072 1072 1072 1072 1072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 1348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 1002 0 1349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1353 1353 0 1353 1353 1353 1353 1353 1353 1353 1353 1353 0 0 0 0 0 0 0 1353 0 0 0 0 0 0 0 1353 0 0 0 1353 1353 1353 1353 1353 0 0 0 0 0 0 0 0 0 0 0 0 0 
         ))
     (tilemap
         1395 1395 1395 1405 1383 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1379 1368 1369 0 0 0 0 1374 1387 1387 1387 1387 1394 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         1382 1382 1382 1382 1405 1405 1372 1382 1405 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1406 1377 0 1282 1282 1000 1161 1162 1163 1164 1003 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         1382 1382 1382 1382 1382 1372 1405 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1406 1377 0 1242 1242 1242 1004 1006 1006 1006 1006 1007 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1377 0 0 1242 1242 1242 1012 1009 1009 1017 1017 1019 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1377 0 0 1242 1242 1242 1012 1010 1009 1017 1017 1019 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1012 1009 1019 1282 1282 1282 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 337 1532 339 1282 1016 1019 1282 1282 1282 1282 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 27 28 29 1282 1016 1019 1282 1282 1282 1282 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 337 1532 338 1532 339 1282 1282 1282 1282 1282 1282 1282 1282 0 1404 1373 1389 1369 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 27 28 28 28 29 1282 1282 1282 1282 1282 1282 1282 1282 0 1404 1373 1389 1369 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 0 0 1282 1282 1282 1282 1282 1404 1373 1374 1399 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1404 1373 1282 1408 1388 1389 1371 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1002 1002 1002 1002 1002 1002 0 27 29 0 0 1278 1278 1278 1278 1278 1278 1278 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 0 1389 1371 1383 1401 1401 1401 1371 1372 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1005 1005 1005 1005 1005 1005 0 0 27 29 0 0 0 1278 1278 1278 1278 1278 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1353 1374 1394 1372 1372 1372 1372 1372 1372 1372 1406 1376 1376 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1013 1013 1013 1013 1013 1013 0 0 0 0 0 1278 0 0 0 1278 1278 1278 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 0 0 1374 1409 1409 1409 1409 1409 1409 1409 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1013 1013 1013 1013 1013 1013 0 0 0 0 0 1278 1282 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        1282 1282 1282 1282 1282 1282 1282 1282 1282 0 1282 1282 1282 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1002 1002 1002 1002 1002 1003 0 27 29 0 0 1278 1278 1278 1278 1278 1278 1278 1000 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1003 1389 1371 1383 1401 1401 1401 1371 1372 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1005 1005 1005 1005 1005 1007 0 0 27 29 0 0 0 1278 1278 1278 1278 0 1004 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1007 1374 1394 1372 1372 1372 1372 1372 1372 1372 1406 1376 1376 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1013 1013 1013 1013 1013 1011 0 0 0 0 0 1278 0 0 0 1278 1278 1278 1008 1013 1013 1013 1013 1010 1013 1013 1013 1013 1013 1013 1013 1015 0 1374 1409 1409 1409 1409 1409 1409 1409 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1010 1013 1013 1013 1013 1011 0 0 0 0 0 1278 1282 0 0 1282 1282 1282 1016 1017 1017 1017 1017 1017 1017 1017 1017 1017 1017 1017 1017 1015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1017 1017 1017 1017 1017 1019 1282 1282 1282 0 1282 1282 1282 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 1019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 
-        0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 
-        1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1001 1001 1001 1002 1002 1002 1001 1001 1001 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 133 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 132 1002 1002 1002 1002 1002 1002 1002 
-        1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 
+        0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1065 1066 1052 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+        1014 1070 1048 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 132 1002 1002 1002 1001 1001 1001 133 1002 1002 1001 1001 1001 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 0 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 0 1002 1002 1002 1002 1002 1002 1002 
+        1010 1013 1014 1006 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 
         ))
     (tilemap
       (layer  "foreground")
          (speed 1.000000)
        )
       (scriptedobject
-        (x 184) (y 84)
+        (x 262) (y 128)
         (name "CASTLEDOOR")
         (sprite "images/objects/castledoor/castledoor.sprite")
         (layer 100)
         (solid #f)
       )
       (scriptedobject
-        (x 222) (y 411)
+        (x 298) (y 440)
         (name "KEYHOLES")
         (sprite "images/objects/castledoor/keyholes.sprite")
         (layer 100)
         (physic-enabled #f)
         (solid #f)
       )
-     (scriptedobject
-        (x 110) (y 30)
+      (scriptedobject
+        (x 174) (y 153)
         (name "FLAMES")
         (sprite "images/objects/castledoor/torchflame.sprite")
         (layer 100)
         (physic-enabled #f)
         (solid #f)
       )
-     (scriptedobject
-        (x 575) (y 30)
+      (scriptedobject
+        (x 613) (y 153)
         (name "FLAMES")
         (sprite "images/objects/castledoor/torchflame.sprite")
         (layer 100)
         (physic-enabled #f)
         (solid #f)
       )
+      (infoblock (x 128) (y 1408)
+        (message (_ "!images/objects/voicemail/voicemail.png
+#Hey Tux,
+#Some friends have 
+#left you voicemail 
+#messages with advice
+#to find Penny. So 
+#don't forget to check
+#your voicemail and 
+#good luck!
+#The SuperTux Team"))
+      )
+        (secretarea (x 632.0)
+                    (y 807.0)
+                    (width 124.0)
+                    (height 77.0)
+                    (message "check voicemail"))
    )
  )
 
diff --git a/data/sounds/mr_tree.ogg b/data/sounds/mr_tree.ogg
new file mode 100644 (file)
index 0000000..46df85a
Binary files /dev/null and b/data/sounds/mr_tree.ogg differ
diff --git a/data/sounds/mr_treehit.ogg b/data/sounds/mr_treehit.ogg
new file mode 100644 (file)
index 0000000..af72d88
Binary files /dev/null and b/data/sounds/mr_treehit.ogg differ
index b06e5bd..8955e1c 100644 (file)
@@ -22,8 +22,8 @@
 
 #include "mrtree.hpp"
 
-static const float WALKSPEED = 50;
-static const float WALKSPEED_SMALL = 30;
+static const float WALKSPEED = 100;
+static const float WALKSPEED_SMALL =120;
 
 MrTree::MrTree(const lisp::Lisp& reader)
   : mystate(STATE_BIG)
@@ -32,7 +32,7 @@ MrTree::MrTree(const lisp::Lisp& reader)
   reader.get("y", start_position.y);
   stay_on_platform = false;
   reader.get("stay-on-platform", stay_on_platform);
-  bbox.set_size(84.8, 95.8);
+  bbox.set_size(99.8, 99.8);
   sprite = sprite_manager->create("images/creatures/mr_tree/mr_tree.sprite");
 }
 
@@ -55,6 +55,7 @@ MrTree::activate()
     sprite->set_action(dir == LEFT ? "left" : "right");
   } else {
     physic.set_velocity_x(dir == LEFT ? -WALKSPEED_SMALL : WALKSPEED_SMALL);
+    bbox.set_size(31.8, 68.8);
     sprite->set_action(dir == LEFT ? "small-left" : "small-right");
   }
 }
@@ -79,11 +80,15 @@ MrTree::collision_squished(Player& player)
     mystate = STATE_NORMAL;
     activate();
 
-    sound_manager->play("sounds/squish.wav", get_pos());
+  
+    sound_manager->play("sounds/mr_tree.ogg", get_pos());
     player.bounce(*this);
   } else {
-    sprite->set_action(dir == LEFT ? "squished-left" : "squished-right");
-    kill_squished(player);
+bbox.set_size(67.8, 99.8);
+sprite->set_action(dir == LEFT ? "squished-left" : "squished-right");
+sound_manager->play("sounds/mr_treehit.ogg", get_pos());
+player.bounce(*this);
+   
   }
   
   return true;
diff --git a/src/badguy/plant.cpp b/src/badguy/plant.cpp
new file mode 100644 (file)
index 0000000..2017d92
--- /dev/null
@@ -0,0 +1,117 @@
+//  $Id: plant.cpp 2979 2006-01-10 00:00:04Z matzebraun $
+// 
+//  SuperTux
+//  Copyright (C) 2005 Matthias Braun <matze@braunis.de>
+//
+//  This program is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU General Public License
+//  as published by the Free Software Foundation; either version 2
+//  of the License, or (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+// 
+//  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 "plant.hpp"
+
+static const float WALKSPEED = 80;
+static const float WAKE_TIME = .5;
+
+Plant::Plant(const lisp::Lisp& reader)
+{
+  reader.get("x", start_position.x);
+  reader.get("y", start_position.y);
+  bbox.set_size(31.8, 31.8);
+  sprite = sprite_manager->create("images/creatures/plant/plant.sprite");
+  state = PLANT_SLEEPING;
+}
+
+void
+Plant::write(lisp::Writer& writer)
+{
+  writer.start_list("plant");
+
+  writer.write_float("x", start_position.x);
+  writer.write_float("y", start_position.y);
+
+  writer.end_list("plant");
+}
+
+void
+Plant::activate()
+{
+  //FIXME: turns sspiky around for debugging
+  dir = dir == LEFT ? RIGHT : LEFT;
+
+  state = PLANT_SLEEPING;
+  physic.set_velocity_x(0);
+  sprite->set_action(dir == LEFT ? "sleeping-left" : "sleeping-right");
+}
+
+HitResponse
+Plant::collision_solid(GameObject& , const CollisionHit& hit)
+{
+  if(fabsf(hit.normal.y) > .5) { // hit floor or roof?
+    physic.set_velocity_y(0);
+  } else { // hit right or left
+    dir = dir == LEFT ? RIGHT : LEFT;
+    sprite->set_action(dir == LEFT ? "left" : "right");
+    physic.set_velocity_x(-physic.get_velocity_x());
+  }
+
+  return CONTINUE;
+}
+
+HitResponse
+Plant::collision_badguy(BadGuy& , const CollisionHit& hit)
+{
+  if(state != PLANT_WALKING) return CONTINUE;
+
+  if(fabsf(hit.normal.x) > .8) { // left or right
+    dir = dir == LEFT ? RIGHT : LEFT;
+    sprite->set_action(dir == LEFT ? "left" : "right");
+    physic.set_velocity_x(-physic.get_velocity_x());
+  }
+
+  return CONTINUE;
+}
+
+void 
+Plant::active_update(float elapsed_time) {
+  BadGuy::active_update(elapsed_time);
+
+  if(state == PLANT_SLEEPING) {
+    const Vector playerPos = Sector::current()->player->get_pos();
+    const Vector myPos = this->get_pos();
+    float dx = (playerPos.x - myPos.x);
+    float dy = (playerPos.y - myPos.y);
+
+    // if we "see" the player
+    if ((((dir == LEFT) && (dx > -128) && (dx < 0)) || ((dir == RIGHT) && (dx > 0) && (dx < 128))) && (dy > -32) && (dy < 32)) {
+      // wake up
+      sprite->set_action(dir == LEFT ? "waking-left" : "waking-right");
+      if(!timer.started()) timer.start(WAKE_TIME);
+      state = PLANT_WAKING;
+    }
+  }
+
+  if(state == PLANT_WAKING) {
+    if(timer.check()) {
+      // start walking
+      sprite->set_action(dir == LEFT ? "left" : "right");
+      physic.set_velocity_x(dir == LEFT ? -WALKSPEED : WALKSPEED);
+      state = PLANT_WALKING;
+    }
+  }
+
+}
+
+IMPLEMENT_FACTORY(Plant, "plant")
diff --git a/src/badguy/plant.hpp b/src/badguy/plant.hpp
new file mode 100644 (file)
index 0000000..311e8a7
--- /dev/null
@@ -0,0 +1,49 @@
+//  $Id: plant.hpp 2642 2005-06-26 13:38:53Z matzebraun $
+// 
+//  SuperTux
+//  Copyright (C) 2005 Matthias Braun <matze@braunis.de>
+//
+//  This program is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU General Public License
+//  as published by the Free Software Foundation; either version 2
+//  of the License, or (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+// 
+//  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.
+
+#ifndef __PLANT_H__
+#define __PLANT_H__
+
+#include "badguy.hpp"
+
+class Plant : public BadGuy
+{
+public:
+  Plant(const lisp::Lisp& reader);
+
+  void activate();
+  void write(lisp::Writer& writer);
+  HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
+  HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
+  void active_update(float elapsed_time);
+
+protected:
+  Timer timer;
+
+  enum PlantState {
+    PLANT_SLEEPING,
+    PLANT_WAKING,
+    PLANT_WALKING
+  };
+  PlantState state;
+  
+};
+
+#endif
diff --git a/src/badguy/sspiky.cpp b/src/badguy/sspiky.cpp
new file mode 100644 (file)
index 0000000..da8db48
--- /dev/null
@@ -0,0 +1,117 @@
+//  $Id: sspiky.cpp 2979 2006-01-10 00:00:04Z matzebraun $
+// 
+//  SuperTux
+//  Copyright (C) 2005 Matthias Braun <matze@braunis.de>
+//
+//  This program is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU General Public License
+//  as published by the Free Software Foundation; either version 2
+//  of the License, or (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+// 
+//  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 "sspiky.hpp"
+
+static const float WALKSPEED = 80;
+static const float WAKE_TIME = .5;
+
+SSpiky::SSpiky(const lisp::Lisp& reader)
+{
+  reader.get("x", start_position.x);
+  reader.get("y", start_position.y);
+  bbox.set_size(31.8, 31.8);
+  sprite = sprite_manager->create("images/creatures/sspiky/sspiky.sprite");
+  state = SSPIKY_SLEEPING;
+}
+
+void
+SSpiky::write(lisp::Writer& writer)
+{
+  writer.start_list("sspiky");
+
+  writer.write_float("x", start_position.x);
+  writer.write_float("y", start_position.y);
+
+  writer.end_list("sspiky");
+}
+
+void
+SSpiky::activate()
+{
+  //FIXME: turns sspiky around for debugging
+  dir = dir == LEFT ? RIGHT : LEFT;
+
+  state = SSPIKY_SLEEPING;
+  physic.set_velocity_x(0);
+  sprite->set_action(dir == LEFT ? "sleeping-left" : "sleeping-right");
+}
+
+HitResponse
+SSpiky::collision_solid(GameObject& , const CollisionHit& hit)
+{
+  if(fabsf(hit.normal.y) > .5) { // hit floor or roof?
+    physic.set_velocity_y(0);
+  } else { // hit right or left
+    dir = dir == LEFT ? RIGHT : LEFT;
+    sprite->set_action(dir == LEFT ? "left" : "right");
+    physic.set_velocity_x(-physic.get_velocity_x());
+  }
+
+  return CONTINUE;
+}
+
+HitResponse
+SSpiky::collision_badguy(BadGuy& , const CollisionHit& hit)
+{
+  if(state != SSPIKY_WALKING) return CONTINUE;
+
+  if(fabsf(hit.normal.x) > .8) { // left or right
+    dir = dir == LEFT ? RIGHT : LEFT;
+    sprite->set_action(dir == LEFT ? "left" : "right");
+    physic.set_velocity_x(-physic.get_velocity_x());
+  }
+
+  return CONTINUE;
+}
+
+void 
+SSpiky::active_update(float elapsed_time) {
+  BadGuy::active_update(elapsed_time);
+
+  if(state == SSPIKY_SLEEPING) {
+    const Vector playerPos = Sector::current()->player->get_pos();
+    const Vector myPos = this->get_pos();
+    float dx = (playerPos.x - myPos.x);
+    float dy = (playerPos.y - myPos.y);
+
+    // if we "see" the player
+    if ((((dir == LEFT) && (dx > -128) && (dx < 0)) || ((dir == RIGHT) && (dx > 0) && (dx < 128))) && (dy > -32) && (dy < 32)) {
+      // wake up
+      sprite->set_action(dir == LEFT ? "waking-left" : "waking-right");
+      if(!timer.started()) timer.start(WAKE_TIME);
+      state = SSPIKY_WAKING;
+    }
+  }
+
+  if(state == SSPIKY_WAKING) {
+    if(timer.check()) {
+      // start walking
+      sprite->set_action(dir == LEFT ? "left" : "right");
+      physic.set_velocity_x(dir == LEFT ? -WALKSPEED : WALKSPEED);
+      state = SSPIKY_WALKING;
+    }
+  }
+
+}
+
+IMPLEMENT_FACTORY(SSpiky, "sspiky")
diff --git a/src/badguy/sspiky.hpp b/src/badguy/sspiky.hpp
new file mode 100644 (file)
index 0000000..b3a28ec
--- /dev/null
@@ -0,0 +1,49 @@
+//  $Id: sspiky.hpp 2642 2005-06-26 13:38:53Z matzebraun $
+// 
+//  SuperTux
+//  Copyright (C) 2005 Matthias Braun <matze@braunis.de>
+//
+//  This program is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU General Public License
+//  as published by the Free Software Foundation; either version 2
+//  of the License, or (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+// 
+//  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.
+
+#ifndef __SSPIKY_H__
+#define __SSPIKY_H__
+
+#include "badguy.hpp"
+
+class SSpiky : public BadGuy
+{
+public:
+  SSpiky(const lisp::Lisp& reader);
+
+  void activate();
+  void write(lisp::Writer& writer);
+  HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
+  HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
+  void active_update(float elapsed_time);
+
+protected:
+  Timer timer;
+
+  enum SSpikyState {
+    SSPIKY_SLEEPING,
+    SSPIKY_WAKING,
+    SSPIKY_WALKING
+  };
+  SSpikyState state;
+  
+};
+
+#endif