Ryan (sik0fewl) Flegel
+
-Contrib Programming
Duong-Khang (neoneurone) NGUYEN
Richard Smith
+ Ondra Hosek
+
-Graphics
(sprite (name "yeti")
(action
- (name "normal")
+ (name "right")
(images "creatures/yeti/yeti_b.png")
)
+ (action
+ (name "left")
+ (mirror-action "right")
+ )
)
)
-;; Generated with Flexlay Editor
+; Generated by Flexlay Editor
(supertux-worldmap
- (properties
- (name (_ "Bonus Island I"))
+ (properties
+ (name (_ "Bonus Island I"))
+ (music "salcon.mod")
(start_pos_x 35)
- (start_pos_y 2))
- (tilemap
- (width 70)
+ (start_pos_y 2)
+ )
+ (tilemap
+ (width 70)
(height 50)
- (data
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 16 16 16 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 24 25 26 58 24 26 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 30 29 28 59 31 27 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 22 19 19 19 47 30 28 19 23 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 19 60 47 60 19 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 48 40 43 40 45 40 43 40 39 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 47 19 47 19 47 19 47 19 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 47 19 47 19 47 19 47 19 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 68 19 68 19 68 19 68 19 68 19 17 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 18 18 18 18 18 18 18 18 18 13 9 9 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 11 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 22 59 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 15 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 15 60 47 60 17 9 9 9 9 11 12 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 15 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 9 9 9 14 21 47 20 13 9 9 11 16 22 23 12 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 58 17 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 23 12 9 9 11 16 22 47 23 16 12 9 14 21 20 18 13 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 22 59 23 16 16 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 13 9 9 15 19 19 47 19 19 17 9 9 14 13 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 47 19 19 48 40 39 17 9 9 9 11 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 19 37 40 39 23 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 21 19 47 19 19 47 19 47 17 9 9 9 14 13 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 47 19 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 37 40 40 42 19 47 17 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 11 16 16 16 22 19 19 19 47 19 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 22 19 60 19 19 19 47 17 9 9 9 9 11 16 22 59 23 16 12 9 9 9 9 9 9 9 15 48 40 40 40 40 39 19 37 40 39 23 12 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 22 19 19 19 19 19 19 19 47 17 9 9 9 9 15 19 19 47 19 19 23 12 9 9 9 9 9 9 15 47 19 19 19 19 47 19 19 19 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 15 48 40 40 40 40 40 40 40 42 17 9 9 9 9 14 21 19 37 40 40 39 17 9 9 9 9 9 9 15 47 19 19 19 19 37 40 40 40 42 19 17 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 15 47 19 19 19 19 20 21 19 20 13 9 9 9 9 9 14 21 19 19 19 47 17 9 9 9 9 9 9 15 37 40 39 19 19 19 19 19 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 15 37 40 39 19 20 13 14 18 13 9 9 9 9 9 9 9 15 19 19 19 47 17 9 9 9 9 9 9 15 19 19 37 40 40 40 40 40 39 19 20 13 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 21 47 20 13 9 9 9 9 9 9 9 9 9 9 9 15 19 48 40 42 23 12 9 9 9 9 9 14 21 19 19 19 20 18 18 21 47 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 9 9 9 9 14 21 47 19 19 19 17 9 9 9 9 9 9 14 18 18 18 13 9 9 15 47 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 15 47 20 18 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 14 21 17 9 9 9 9 9 9 9 9 9 9 9 9 14 21 20 13 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 14 13 9 9 9 9 9 9 9 9 9 9 9 9 9 14 13 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 17 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 15 19 19 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 20 13 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 11 16 12 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 9 9 9 9 9 9 15 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 11 22 19 23 12 15 59 23 16 16 12 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 14 21 19 20 13 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 15 19 19 19 23 22 47 48 40 39 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 9 9 9 9 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 15 19 48 40 40 40 42 47 19 47 17 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 11 22 59 23 16 16 16 16 16 12 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 14 21 47 19 19 60 19 47 19 47 23 12 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 22 19 37 40 40 40 39 19 19 17 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 15 37 40 40 40 40 42 19 47 19 17 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 24 25 25 26 19 19 19 47 19 19 17 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 15 19 19 19 19 24 25 26 47 19 17 9 9 9 9 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 31 32 32 27 48 40 40 42 19 20 13 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 15 19 19 19 19 30 29 28 47 20 13 9 9 9 9 9 9 9 9 9 9 15 59 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 30 29 29 28 47 19 19 20 18 13 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 14 21 48 40 40 40 40 40 42 17 9 9 9 9 9 9 11 16 16 16 16 22 47 17 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 14 18 21 19 19 47 19 19 23 12 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 11 16 22 47 19 19 19 19 19 19 17 9 9 9 9 9 9 15 69 40 40 40 40 61 64 63 63 63 63 63 63 63 63 63 62 67 19 23 12 9 9 9 9 9 9 14 21 19 47 19 19 19 23 12 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 15 19 19 37 40 40 40 40 40 39 17 9 9 9 9 9 9 14 18 18 18 18 21 47 17 9 9 9 9 9 9 9 9 9 15 19 19 19 17 9 9 9 9 9 9 9 15 19 37 40 40 39 19 17 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 14 21 19 19 19 19 19 19 19 47 23 12 9 9 9 9 9 9 9 9 9 9 15 47 17 9 9 9 9 9 9 9 9 9 14 18 18 18 13 9 9 9 9 9 9 9 15 19 19 19 19 47 19 17 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 14 18 18 18 18 18 18 21 47 20 13 9 9 9 9 9 9 9 11 16 16 22 47 23 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 18 21 47 20 13 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 15 19 19 19 37 40 39 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 11 16 12 15 19 19 49 50 51 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 22 20 13 15 60 19 52 53 54 47 60 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 17 9 15 19 19 55 56 57 42 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 13 9 15 19 19 19 19 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 18 18 18 18 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
- ))
-
-(special-tiles
- (level (name "bonus-level1.stl")
- (x 35)
- (y 4))
- (level (name "bonus-level2.stl")
- (x 32)
- (y 41))
- (level (name "/bonus-level3.stl")
- (x 30)
- (y 39))
- (level (name "/bonus-level4.stl")
- (extro-filelevel "extro.txt")
- (x 32)
- (y 46))
- (level (name "bonus-level5.stl")
- (x 44)
- (y 39))
- (level (name "abednego-level1.stl")
- (x 12)
- (y 33))
- (level (name "abednego-level2.stl")
- (x 15)
- (y 35))
- (level (name "abednego-level3.stl")
- (x 18)
- (y 36))
- (level (name "abednego-level4.stl")
- (x 16)
- (y 40))
- (level (name "matr1x-level1.stl")
- (x 21)
- (y 17))
- (level (name "matr1x-level2.stl")
- (x 25)
- (y 18))
- (level (name "matr1x-level3.stl")
- (x 20)
- (y 20))
- (level (name "thompson-level1.stl")
- (x 35)
- (y 20))
- (level (name "thompson-level2.stl")
- (x 37)
- (y 22))
- (level (name "torfi-level1.stl")
- (x 58)
- (y 34))
- (level (name "torfi-level2.stl")
- (x 57)
- (y 38))
- (level (name "torfi-level3.stl")
- (x 59)
- (y 40))
- (level (name "wansti-level1.stl")
- (x 51)
- (y 14))
- (level (name "wansti-level2.stl")
- (x 53)
- (y 16))
- (level (name "wansti-level3.stl")
- (x 52)
- (y 20))
- (level (name "wansti-level4.stl")
- (x 47)
- (y 18))
- (level (name "wansti-level5.stl")
- (x 50)
- (y 22))
- (special-tile (map-message (_ "You found a secret place!"))
- (x 33)
- (y 39) (passive-message #t)
- (apply-to-direction "west-north-south"))
-
- (special-tile (map-message
- (_ "Hint: Use igloos to get back here."))
- (x 35)
- (y 5) (passive-message #t)
- (apply-to-direction "north"))
-
- (special-tile
- (x 33)
- (y 8)
- (map-message (_ "Warp to Matr1x' Sector"))
- (teleport-to-x 20)
- (teleport-to-y 14))
- (special-tile
- (x 31)
- (y 8)
- (map-message (_ "Warp to Thompson's Domain"))
- (teleport-to-x 34)
- (teleport-to-y 18))
- (special-tile
- (x 35)
- (y 8)
- (map-message (_ "Warp to the SuperTux Team Island"))
- (teleport-to-x 51)
- (teleport-to-y 10))
- (special-tile
- (x 37)
- (y 8)
- (map-message (_ "Warp to Abednego's Area"))
- (teleport-to-x 15)
- (teleport-to-y 31))
- (special-tile
- (x 39)
- (y 8)
- (map-message (_ "Warp to Torfi's Territory"))
- (teleport-to-x 56)
- (teleport-to-y 33))
- (special-tile
- (x 19)
- (y 24)
- (map-message (_ "Leave Matrix' Sector"))
- (teleport-to-x 32)
- (teleport-to-y 37))
- (special-tile
- (x 35)
- (y 26)
- (map-message (_ "Leave Thompson's Domain"))
- (teleport-to-x 35)
- (teleport-to-y 2))
- (special-tile
- (x 54)
- (y 25)
- (map-message (_ "Leave SuperTux Team Island"))
- (teleport-to-x 35)
- (teleport-to-y 2))
- (special-tile
- (x 18)
- (y 43)
- (map-message (_ "Leave Abednego's Area"))
- (teleport-to-x 35)
- (teleport-to-y 2))
- (special-tile
- (x 60)
- (y 43)
- (map-message (_ "Leave Torfi's Territory"))
- (teleport-to-x 35)
- (teleport-to-y 2))
-
- ;;Back from Castle
- (special-tile
- (x 27)
- (y 39)
- (map-message (_ "Warp home"))
- (teleport-to-x 35)
- (teleport-to-y 2))
-
- ;;Back from Abednego
- (special-tile
- (x 15)
- (y 31)
- (invisible-tile #t)
- (teleport-to-x 35)
- (teleport-to-y 2))
-
- ;; Back from Thompson
- (special-tile
- (x 34)
- (y 18)
- (invisible-tile #t)
- (teleport-to-x 35)
- (teleport-to-y 2))
-
- ;; Back from Matr1x
- (special-tile
- (x 20)
- (y 14)
- (invisible-tile #t)
- (teleport-to-x 35)
- (teleport-to-y 2))
-
- ;; Back from Wansti
- (special-tile
- (x 51)
- (y 10)
- (invisible-tile #t)
- (teleport-to-x 35)
- (teleport-to-y 2))
-
- ;; Back from Torfi
- (special-tile
- (x 56)
- (y 33)
- (invisible-tile #t)
- (teleport-to-x 35)
- (teleport-to-y 2))
-
- )
+ (layer "interactive")
+ (solid #t)
+ (speed 1.000000)
+ (tiles 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 16 16 16 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 24 25 26 58 24 26 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 30 29 28 59 31 27 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 22 19 19 19 47 30 28 19 23 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 19 60 47 60 19 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 48 40 43 40 45 40 43 40 39 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 47 19 47 19 47 19 47 19 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 47 19 47 19 47 19 47 19 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 68 19 68 19 68 19 68 19 68 19 17 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 18 18 18 18 18 18 18 18 18 13 9 9 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 11 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 22 59 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 15 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 15 60 47 60 17 9 9 9 9 11 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 15 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 9 9 9 14 21 47 20 13 9 9 11 16 22 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 58 17 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 23 12 9 9 11 16 22 47 23 16 12 9 14 21 20 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 22 59 23 16 16 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 13 9 9 15 19 19 47 19 19 17 9 9 14 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 47 19 19 48 40 39 17 9 9 9 11 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 19 37 40 39 23 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 21 19 47 19 19 47 19 47 17 9 9 9 14 13 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 47 19 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 37 40 40 42 19 47 17 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 11 16 16 16 22 19 19 19 47 19 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 22 19 60 19 19 19 47 17 9 9 9 9 11 16 22 59 23 16 12 9 9 9 9 9 9 9 15 48 40 40 40 40 39 19 37 40 39 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 22 19 19 19 19 19 19 19 47 17 9 9 9 9 15 19 19 47 19 19 23 12 9 9 9 9 9 9 15 47 19 19 19 19 47 19 19 19 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 15 48 40 40 40 40 40 40 40 42 17 9 9 9 9 14 21 19 37 40 40 39 17 9 9 9 9 9 9 15 47 19 19 19 19 37 40 40 40 42 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 15 47 19 19 19 19 20 21 19 20 13 9 9 9 9 9 14 21 19 19 19 47 17 9 9 9 9 9 9 15 37 40 39 19 19 19 19 19 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 15 37 40 39 19 20 13 14 18 13 9 9 9 9 9 9 9 15 19 19 19 47 17 9 9 9 9 9 9 15 19 19 37 40 40 40 40 40 39 19 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 21 47 20 13 9 9 9 9 9 9 9 9 9 9 9 15 19 48 40 42 23 12 9 9 9 9 9 14 21 19 19 19 20 18 18 21 47 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 9 9 9 9 14 21 47 19 19 19 17 9 9 9 9 9 9 14 18 18 18 13 9 9 15 47 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 15 47 20 18 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 17 9 9 9 9 9 9 9 9 9 9 9 9 14 21 20 13 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 13 9 9 9 9 9 9 9 9 9 9 9 9 9 14 13 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 15 19 19 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 12 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 9 9 9 9 9 9 15 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 22 19 23 12 15 59 23 16 16 12 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 14 21 19 20 13 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 23 22 47 48 40 39 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 17 9 9 9 9 9 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 48 40 40 40 42 47 19 47 17 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 11 22 59 23 16 16 16 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 47 19 19 60 19 47 19 47 23 12 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 22 19 37 40 40 40 39 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 37 40 40 40 40 42 19 47 19 17 9 9 9 9 9 9 9 9 9 9 11 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 24 25 25 26 19 19 19 47 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 19 24 25 26 47 19 17 9 9 9 9 9 9 9 9 9 9 15 58 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 31 32 32 27 48 40 40 42 19 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 19 19 30 29 28 47 20 13 9 9 9 9 9 9 9 9 9 9 15 59 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 30 29 29 28 47 19 19 20 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 48 40 40 40 40 40 42 17 9 9 9 9 9 9 11 16 16 16 16 22 47 17 9 9 9 9 9 9 9 9 9 11 16 16 12 9 9 9 9 9 14 18 21 19 19 47 19 19 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 16 22 47 19 19 19 19 19 19 17 9 9 9 9 9 9 15 69 40 40 40 40 61 64 63 63 63 63 63 63 63 63 63 62 67 19 23 12 9 9 9 9 9 9 14 21 19 47 19 19 19 23 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 19 19 37 40 40 40 40 40 39 17 9 9 9 9 9 9 14 18 18 18 18 21 47 17 9 9 9 9 9 9 9 9 9 15 19 19 19 17 9 9 9 9 9 9 9 15 19 37 40 40 39 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 19 19 19 19 19 19 19 47 23 12 9 9 9 9 9 9 9 9 9 9 15 47 17 9 9 9 9 9 9 9 9 9 14 18 18 18 13 9 9 9 9 9 9 9 15 19 19 19 19 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 18 18 18 18 21 47 20 13 9 9 9 9 9 9 9 11 16 16 22 47 23 16 16 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 18 21 47 20 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 15 19 19 19 37 40 39 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 68 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 11 16 12 15 19 19 49 50 51 47 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 22 20 13 15 60 19 52 53 54 47 60 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 21 17 9 15 19 19 55 56 57 42 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 13 9 15 19 19 19 19 19 19 19 17 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 14 18 18 18 18 18 18 18 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9)
+ )
+ (level
+ (x 35)
+ (y 4)
+ (name "bonus-level1.stl")
+ )
+ (level
+ (x 32)
+ (y 41)
+ (name "bonus-level2.stl")
+ )
+ (level
+ (x 30)
+ (y 39)
+ (name "/bonus-level3.stl")
+ )
+ (level
+ (x 32)
+ (y 46)
+ (name "/bonus-level4.stl")
+ )
+ (level
+ (x 44)
+ (y 39)
+ (name "bonus-level5.stl")
+ )
+ (level
+ (x 12)
+ (y 33)
+ (name "abednego-level1.stl")
+ )
+ (level
+ (x 15)
+ (y 35)
+ (name "abednego-level2.stl")
+ )
+ (level
+ (x 18)
+ (y 36)
+ (name "abednego-level3.stl")
+ )
+ (level
+ (x 16)
+ (y 40)
+ (name "abednego-level4.stl")
+ )
+ (level
+ (x 21)
+ (y 17)
+ (name "matr1x-level1.stl")
+ )
+ (level
+ (x 25)
+ (y 18)
+ (name "matr1x-level2.stl")
+ )
+ (level
+ (x 20)
+ (y 20)
+ (name "matr1x-level3.stl")
+ )
+ (level
+ (x 35)
+ (y 20)
+ (name "thompson-level1.stl")
+ )
+ (level
+ (x 37)
+ (y 22)
+ (name "thompson-level2.stl")
+ )
+ (level
+ (x 58)
+ (y 34)
+ (name "torfi-level1.stl")
+ )
+ (level
+ (x 57)
+ (y 38)
+ (name "torfi-level2.stl")
+ )
+ (level
+ (x 59)
+ (y 40)
+ (name "torfi-level3.stl")
+ )
+ (level
+ (x 51)
+ (y 14)
+ (name "wansti-level1.stl")
+ )
+ (level
+ (x 53)
+ (y 16)
+ (name "wansti-level2.stl")
+ )
+ (level
+ (x 52)
+ (y 20)
+ (name "wansti-level3.stl")
+ )
+ (level
+ (x 47)
+ (y 18)
+ (name "wansti-level4.stl")
+ )
+ (level
+ (x 50)
+ (y 22)
+ (name "wansti-level5.stl")
+ )
+ (special-tile
+ (x 33)
+ (y 39)
+ (map-message (_ "You found a secret place!"))
+ (passive-message #t)
+ (apply-to-direction "west-north-south")
+ )
+ (special-tile
+ (x 35)
+ (y 5)
+ (map-message (_ "Hint: Use igloos to get back here."))
+ (passive-message #t)
+ (apply-to-direction "north")
+ )
+ (special-tile
+ (x 33)
+ (y 8)
+ (map-message (_ "Warp to Matr1x' Sector"))
+ (teleport-to-x 20)
+ (teleport-to-y 14)
+ )
+ (special-tile
+ (x 31)
+ (y 8)
+ (map-message (_ "Warp to Thompson's Domain"))
+ (teleport-to-x 34)
+ (teleport-to-y 18)
+ )
+ (special-tile
+ (x 35)
+ (y 8)
+ (map-message (_ "Warp to the SuperTux Team Island"))
+ (teleport-to-x 51)
+ (teleport-to-y 10)
+ )
+ (special-tile
+ (x 37)
+ (y 8)
+ (map-message (_ "Warp to Abednego's Area"))
+ (teleport-to-x 15)
+ (teleport-to-y 31)
+ )
+ (special-tile
+ (x 39)
+ (y 8)
+ (map-message (_ "Warp to Torfi's Territory"))
+ (teleport-to-x 56)
+ (teleport-to-y 33)
+ )
+ (special-tile
+ (x 19)
+ (y 24)
+ (map-message (_ "Leave Matrix' Sector"))
+ (teleport-to-x 32)
+ (teleport-to-y 37)
+ )
+ (special-tile
+ (x 35)
+ (y 26)
+ (map-message (_ "Leave Thompson's Domain"))
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 54)
+ (y 25)
+ (map-message (_ "Leave SuperTux Team Island"))
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 18)
+ (y 43)
+ (map-message (_ "Leave Abednego's Area"))
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 60)
+ (y 43)
+ (map-message (_ "Leave Torfi's Territory"))
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 27)
+ (y 39)
+ (map-message (_ "Warp home"))
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 15)
+ (y 31)
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 34)
+ (y 18)
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 20)
+ (y 14)
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 51)
+ (y 10)
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
+ (special-tile
+ (x 56)
+ (y 33)
+ (teleport-to-x 35)
+ (teleport-to-y 2)
+ )
)
-
(supertux-worldmap
(properties
(name (_ "Icyisland"))
- (name-pt_PT "Ilha Gelada")
- (name-de "Eisige Insel")
- (name-es "Isla de hielo")
(intro-filename "intro.txt")
(music "salcon.mod")
(start_pos_x 4)
(tilemap
(width 40)
(height 30)
- (data
+ (tiles
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 12 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 11 16 12 11 16 16 16 16 12 9 9 9 9 11 16 16 12 9 9 14 13 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
))
-
- (special-tiles
(level
(x 4)
(y 6)
(extro-filename "extro.txt")
(name "level26.stl")
(quit-worldmap #t))
-; In the future, do this to go to another world:
-; (next-worldmap "forest.stwt)
-
- )
-
-
)
}
void
-BadGuy::action(float elapsed_time)
+BadGuy::update(float elapsed_time)
{
if(!Sector::current()->inside(bbox)) {
remove_me();
switch(state) {
case STATE_ACTIVE:
- active_action(elapsed_time);
+ active_update(elapsed_time);
break;
case STATE_INIT:
case STATE_INACTIVE:
- inactive_action(elapsed_time);
+ inactive_update(elapsed_time);
try_activate();
break;
case STATE_SQUISHED:
}
void
-BadGuy::active_action(float elapsed_time)
+BadGuy::active_update(float elapsed_time)
{
movement = physic.get_movement(elapsed_time);
}
void
-BadGuy::inactive_action(float )
+BadGuy::inactive_update(float )
{
}
*/
virtual void draw(DrawingContext& context);
/** Called each frame. The default implementation checks badguy state and
- * calls active_action and inactive_action
+ * calls active_update and inactive_update
*/
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
/** Called when a collision with another object occured. The default
* implemetnation calls collision_player, collision_solid, collision_badguy
* and collision_squished
virtual bool collision_squished(Player& player);
/** called each frame when the badguy is activated. */
- virtual void active_action(float elapsed_time);
+ virtual void active_update(float elapsed_time);
/** called each frame when the badguy is not activated. */
- virtual void inactive_action(float elapsed_time);
+ virtual void inactive_update(float elapsed_time);
/**
* called when the badguy has been activated. (As a side effect the dir
}
void
-Bomb::active_action(float )
+Bomb::active_update(float )
{
switch(state) {
case 0:
void
Bomb::kill_fall()
{
- explode();
+ if (state != 1) // we don't want it exploding again
+ explode();
}
HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
HitResponse collision_player(Player& player, const CollisionHit& hit);
HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void kill_fall();
void explode();
}
void
-Dispenser::active_action(float )
+Dispenser::active_update(float )
{
if (dispense_timer.check()) {
launch_badguy();
void activate();
void write(lisp::Writer& writer);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
protected:
bool collision_squished(Player& player);
}
void
-Flame::active_action(float elapsed_time)
+Flame::active_update(float elapsed_time)
{
angle = fmodf(angle + elapsed_time * speed, 2*M_PI);
Vector newpos(start_position.x + cos(angle) * radius,
Flame(const lisp::Lisp& reader);
void write(lisp::Writer& write);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void kill_fall();
private:
}
void
-FlyingSnowBall::active_action(float elapsed_time)
+FlyingSnowBall::active_update(float elapsed_time)
{
if(timer.check()) {
if(mode == FLY_UP) {
void activate();
void write(lisp::Writer& writer);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
protected:
enum FlyingSnowballMode {
}
void
-Jumpy::active_action(float elapsed_time)
+Jumpy::active_update(float elapsed_time)
{
- BadGuy::active_action(elapsed_time);
+ BadGuy::active_update(elapsed_time);
dir = Sector::current()->player->get_pos().x > get_pos().x
? RIGHT : LEFT;
+
+ if (!groundhit_pos_set)
+ {
+ sprite->set_action(dir == LEFT ? "left-middle" : "right-middle");
+ return;
+ }
if ( get_pos().y < (pos_groundhit.y - JUMPY_MID_TOLERANCE ) )
sprite->set_action(dir == LEFT ? "left-up" : "right-up");
HitResponse collision_badguy(BadGuy& other, const CollisionHit& hit);
void write(lisp::Writer& writer);
- void active_action(float);
+ void active_update(float);
private:
HitResponse hit(const CollisionHit& hit);
}
void
-MrIceBlock::active_action(float elapsed_time)
+MrIceBlock::active_update(float elapsed_time)
{
if(ice_state == ICESTATE_FLAT && flat_timer.check()) {
ice_state = ICESTATE_NORMAL;
physic.set_velocity_x(dir == LEFT ? -WALKSPEED : WALKSPEED);
sprite->set_action(dir == LEFT ? "left" : "right");
}
- BadGuy::active_action(elapsed_time);
+ BadGuy::active_update(elapsed_time);
}
HitResponse
HitResponse collision_solid(GameObject& object, const CollisionHit& hit);
HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
protected:
bool collision_squished(Player& player);
}
void
-MrRocket::active_action(float elapsed_time)
+MrRocket::active_update(float elapsed_time)
{
if (collision_timer.check()) {
Sector::current()->add_object(new RocketExplosion(get_pos(), dir));
MrRocket(float pos_x, float pos_y, Direction d);
void activate();
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void write(lisp::Writer& writer);
HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
}
void
-Nolok_01::active_action(float elapsed_time)
+Nolok_01::active_update(float elapsed_time)
{
if (action_timer.check()) {
switch (action) {
void activate();
void write(lisp::Writer& writer);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void kill_fall();
HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
}
void
-RocketExplosion::active_action(float )
+RocketExplosion::active_update(float )
{
if(timer.check()) {
remove_me();
HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
HitResponse collision_player(Player& player, const CollisionHit& hit);
HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void kill_fall();
void explode();
}
void
-Spike::active_action(float )
+Spike::active_update(float )
{
}
Spike(const Vector& pos, Direction dir);
Spike(const lisp::Lisp& reader);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void write(lisp::Writer& writer);
void kill_fall();
private:
}
void
-Stalactite::active_action(float elapsed_time)
+Stalactite::active_update(float elapsed_time)
{
if(state == STALACTITE_HANGING) {
Player* player = Sector::current()->player;
public:
Stalactite(const lisp::Lisp& reader);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void write(lisp::Writer& writer);
HitResponse collision_solid(GameObject& other, const CollisionHit& hit);
HitResponse collision_player(Player& player, const CollisionHit& hit);
// 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 <float.h>
reader.get("y", start_position.y);
bbox.set_size(80, 120);
sprite = sprite_manager->create("yeti");
+ sprite->set_action("right");
state = INIT;
side = LEFT;
sound_manager->preload_sound("yeti_gna");
}
void
-Yeti::active_action(float elapsed_time)
+Yeti::active_update(float elapsed_time)
{
switch(state) {
case INIT:
} else if(state == GO_LEFT && !timer.started()) {
side = LEFT;
summon_snowball();
+ sprite->set_action("right");
angry_jumping();
} else if(state == GO_RIGHT && !timer.started()) {
side = RIGHT;
summon_snowball();
+ sprite->set_action("left");
angry_jumping();
} else if(state == ANGRY_JUMPING) {
if(!timer.started()) {
void draw(DrawingContext& context);
void write(lisp::Writer& writer);
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
HitResponse collision_solid(GameObject& object, const CollisionHit& hit);
bool collision_squished(Player& player);
void kill_fall();
}
void
-YetiStalactite::active_action(float elapsed_time)
+YetiStalactite::active_update(float elapsed_time)
{
if(state == STALACTITE_HANGING)
return;
- Stalactite::active_action(elapsed_time);
+ Stalactite::active_update(elapsed_time);
}
IMPLEMENT_FACTORY(YetiStalactite, "yeti_stalactite")
YetiStalactite(const lisp::Lisp& lisp);
virtual ~YetiStalactite();
- void active_action(float elapsed_time);
+ void active_update(float elapsed_time);
void start_shaking();
bool is_hanging();
};
// 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 <sstream>
};
JoystickKeyboardController::JoystickKeyboardController()
- : wait_for_key(-1), wait_for_joybutton(-1)
+ : wait_for_key(-1), wait_for_joybutton(-1), key_options_menu(0),
+ joystick_options_menu(0)
{
memset(last_keys, 0, sizeof(last_keys));
* seconds and should be the base for all timed calculations (don't use
* SDL_GetTicks directly as this will fail in pause mode)
*/
- virtual void action(float elapsed_time) = 0;
+ virtual void update(float elapsed_time) = 0;
/** The GameObject should draw itself onto the provided DrawingContext if this
* function is called.
}
void
-GameSession::action(float elapsed_time)
+GameSession::update(float elapsed_time)
{
// handle controller
if(main_controller->pressed(Controller::PAUSE_MENU))
// advance timers
if(!currentsector->player->growing_timer.started()) {
// Update Tux and the World
- currentsector->action(elapsed_time);
+ currentsector->update(elapsed_time);
}
// respawning in new sector?
{
Menu* menu = Menu::current();
if(menu) {
- menu->action();
+ menu->update();
if(menu == game_menu) {
switch (game_menu->check()) {
// Update the world
check_end_conditions();
if (end_sequence == ENDSEQUENCE_RUNNING)
- action(elapsed_time/2);
+ update(elapsed_time/2);
else if(end_sequence == NO_ENDSEQUENCE)
- action(elapsed_time);
+ update(elapsed_time);
}
else
{
void record_demo(const std::string& filename);
void play_demo(const std::string& filename);
void draw();
- void action(float frame_ratio);
+ void update(float frame_ratio);
void set_current()
{ current_ = this; }
context.draw_surface(background, Vector(0,0), LAYER_BACKGROUND0);
dialog->draw(context);
- dialog->action();
+ dialog->update();
switch (dialog->check())
{
/* Process actions done on the menu */
void
-Menu::action()
+Menu::update()
{
/** check main input controller... */
Uint32 ticks = SDL_GetTicks();
case MN_TEXTFIELD:
case MN_NUMFIELD:
menuaction = MENU_ACTION_DOWN;
- action();
+ update();
break;
case MN_BACK:
};
/** Number of the item that got 'hit' (ie. pressed) in the last
- event()/action() call, -1 if none */
+ event()/update() call, -1 if none */
int hit_item;
// position of the menu (ie. center of the menu, not top/left)
virtual void menu_action(MenuItem* item);
- void action();
+ void update();
/** Remove all entries from the menu */
void clear();
#define MC_STATES_NB 3
enum {
- MC_NORMAL,
+ MC_NORMAL = 0,
MC_CLICK,
MC_LINK,
MC_HIDE
}
void
-AmbientSound::action(float deltat)
+AmbientSound::update(float deltat)
{
if (latency--<=0) {
~AmbientSound();
protected:
virtual void hit(Player& player);
- virtual void action(float time);
+ virtual void update(float time);
virtual void draw(DrawingContext&);
virtual void start_playing();
virtual void stop_playing();
}
void
-Background::action(float)
+Background::update(float)
{
}
Color get_gradient_bottom() const
{ return gradient_bottom; }
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
}
void
-Bell::action(float )
+Bell::update(float )
{
}
~Bell();
void write(lisp::Writer& writer);
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
HitResponse collision(GameObject& other, const CollisionHit& hit);
}
void
-Block::action(float elapsed_time)
+Block::update(float elapsed_time)
{
if(!bouncing)
return;
~Block();
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
protected:
}
void
-Bullet::action(float elapsed_time)
+Bullet::update(float elapsed_time)
{
if(kind == FIRE_BULLET) {
// @not completely framerate independant :-/
Bullet(const Vector& pos, float xm, int dir, int kind);
~Bullet();
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
HitResponse collision(GameObject& other, const CollisionHit& hit);
static const float max_speed_y = 140;
void
-Camera::action(float elapsed_time)
+Camera::update(float elapsed_time)
{
if(mode == NORMAL)
scroll_normal(elapsed_time);
/** @deprecated@ */
const Vector& get_translation() const;
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& )
{
}
void
-Coin::action(float )
+Coin::update(float )
{
}
~Coin();
HitResponse collision(GameObject& other, const CollisionHit& hit);
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
void collect();
}
void
-DisplayEffect::action(float elapsed_time)
+DisplayEffect::update(float elapsed_time)
{
switch(type) {
case NO_FADE:
DisplayEffect();
virtual ~DisplayEffect();
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
void fade_out(float fadetime);
}
void
-Fireworks::action(float )
+Fireworks::update(float )
{
if(timer.check()) {
Sector* sector = Sector::current();
Fireworks();
~Fireworks();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
}
void
-Flower::action(float )
+Flower::update(float )
{
}
Flower(const Vector& pos, Type type);
~Flower();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
}
void
-BouncyCoin::action(float elapsed_time)
+BouncyCoin::update(float elapsed_time)
{
position.y += -200 * elapsed_time;
}
void
-BrokenBrick::action(float elapsed_time)
+BrokenBrick::update(float elapsed_time)
{
position += movement * elapsed_time;
}
void
-FloatingText::action(float elapsed_time)
+FloatingText::update(float elapsed_time)
{
position.y -= 1.4 * elapsed_time;
}
void
-SmokeCloud::action(float elapsed_time)
+SmokeCloud::update(float elapsed_time)
{
position.y -= 120 * elapsed_time;
}
void
-Particles::action(float elapsed_time)
+Particles::update(float elapsed_time)
{
Vector camera = Sector::current()->camera->get_translation();
public:
BouncyCoin(const Vector& pos);
~BouncyCoin();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
BrokenBrick(Sprite* sprite, const Vector& pos, const Vector& movement);
~BrokenBrick();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
FloatingText(const Vector& pos, const std::string& text_);
FloatingText(const Vector& pos, int s); // use this for score, for instance
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
public:
SmokeCloud(const Vector& pos);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
int number, Color color, int size, float life_time, int drawing_layer);
~Particles();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
}
void
-GrowUp::action(float elapsed_time)
+GrowUp::update(float elapsed_time)
{
movement = physic.get_movement(elapsed_time);
}
GrowUp(const Vector& pos);
~GrowUp();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
}
void
-OneUp::action(float elapsed_time)
+OneUp::update(float elapsed_time)
{
if(!Sector::current()->inside(bbox))
remove_me();
OneUp(const Vector& pos);
~OneUp();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
delete snowimages[i];
}
-void SnowParticleSystem::action(float elapsed_time)
+void SnowParticleSystem::update(float elapsed_time)
{
std::vector<Particle*>::iterator i;
for(i = particles.begin(); i != particles.end(); ++i) {
delete rainimages[i];
}
-void RainParticleSystem::action(float elapsed_time)
+void RainParticleSystem::update(float elapsed_time)
{
std::vector<Particle*>::iterator i;
for(i = particles.begin(); i != particles.end(); ++i) {
delete cloudimage;
}
-void CloudParticleSystem::action(float elapsed_time)
+void CloudParticleSystem::update(float elapsed_time)
{
std::vector<Particle*>::iterator i;
for(i = particles.begin(); i != particles.end(); ++i) {
void parse(const lisp::Lisp& lisp);
void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
std::string type() const
{ return "SnowParticleSystem"; }
void parse(const lisp::Lisp& lisp);
void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
std::string type() const
{ return "RainParticleSystem"; }
void parse(const lisp::Lisp& lisp);
void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
std::string type() const
{ return "SnowParticleSystem"; }
}
void
-Platform::action(float )
+Platform::update(float )
{
// just some test code...
if(state == 0) {
~Platform();
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
}
void
-Player::action(float elapsed_time)
+Player::update(float elapsed_time)
{
if(dying && dying_timer.check()) {
dead = true;
void set_controller(Controller* controller);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
}
void
-Rock::action(float elapsed_time)
+Rock::update(float elapsed_time)
{
if(!grabbed) {
flags |= FLAG_SOLID;
virtual ~Rock();
HitResponse collision(GameObject& other, const CollisionHit& hit);
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
void write(lisp::Writer& writer);
}
void
-ScriptedObject::action(float elapsed_time)
+ScriptedObject::update(float elapsed_time)
{
if(!physic_enabled)
return;
ScriptedObject(const lisp::Lisp& lisp);
virtual ~ScriptedObject();
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
HitResponse collision(GameObject& other, const CollisionHit& hit);
}
void
-SpecialRiser::action(float elapsed_time)
+SpecialRiser::update(float elapsed_time)
{
offset += 50 * elapsed_time;
if(offset > 32) {
SpecialRiser(MovingObject* child);
~SpecialRiser();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
private:
}
void
-Star::action(float elapsed_time)
+Star::update(float elapsed_time)
{
movement = physic.get_movement(elapsed_time);
}
Star(const Vector& pos);
~Star();
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
}
void
-TextObject::action(float elapsed_time)
+TextObject::update(float elapsed_time)
{
if(fading > 0) {
fading -= elapsed_time;
bool is_visible();
void draw(DrawingContext& context);
- void action(float elapsed_time);
+ void update(float elapsed_time);
private:
Font* font;
}
void
-TileMap::action(float )
+TileMap::update(float )
{
}
virtual void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
void set(int width, int height, const std::vector<unsigned int>& vec,
}
void
-UnstableTile::action(float elapsed_time)
+UnstableTile::update(float elapsed_time)
{
if(falling) {
movement = physic.get_movement(elapsed_time);
~UnstableTile();
HitResponse collision(GameObject& other, const CollisionHit& hit);
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
private:
{
wrapper_sources += [ SearchSource wrapper.cpp ] ;
}
- echo $(wrapper_sources) ;
wrapper_objects = [ CompileObjects $(wrapper_sources) ] ;
if $(MINISWIG)
{
}
void
-ScriptInterpreter::action(float )
+ScriptInterpreter::update(float )
{
if(!wakeup_timer.check())
return;
~ScriptInterpreter();
void draw(DrawingContext& );
- void action(float );
+ void update(float );
void load_script(std::istream& in, const std::string& sourcename = "");
void start_script();
}
void
-Sector::action(float elapsed_time)
+Sector::update(float elapsed_time)
{
player->check_bounds(camera);
if(!object->is_valid())
continue;
- object->action(elapsed_time);
+ object->update(elapsed_time);
}
#else
/* update objects */
if(!object->is_valid())
continue;
- object->action(elapsed_time);
+ object->update(elapsed_time);
}
#endif
void activate(const std::string& spawnpoint);
void activate(const Vector& player_pos);
- void action(float elapsed_time);
+ void update(float elapsed_time);
void update_game_objects();
void draw(DrawingContext& context);
private:
void fix_old_tiles();
- /// container for newly created objects, they'll be added in Sector::action
+ /// container for newly created objects, they'll be added in Sector::update
GameObjects gameobjects_new;
MusicType currentmusic;
sector->camera->reset(tux->get_pos());
}
- sector->action(elapsed_time);
+ sector->update(elapsed_time);
sector->draw(*titlesession->context);
}
if(menu)
{
menu->draw(context);
- menu->action();
+ menu->update();
if(menu == main_menu)
{
}
void
-Door::action(float )
+Door::update(float )
{
//Check if door animation is complete
if(sprite->check_animation()) {
virtual void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual void event(Player& player, EventType type);
}
void
-Hatch::action(float )
+Hatch::update(float )
{
//Check if hatch animation is complete
if(sprite->check_animation()) {
virtual void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
virtual void draw(DrawingContext& context);
virtual void event(Player& player, EventType type);
}
void
-TriggerBase::action(float )
+TriggerBase::update(float )
{
lasthit = hit;
hit = false;
TriggerBase();
~TriggerBase();
- void action(float elapsed_time);
+ void update(float elapsed_time);
void draw(DrawingContext& context);
HitResponse collision(GameObject& other, const CollisionHit& hit);
}
void
-Tux::action(float delta)
+Tux::update(float delta)
{
// check controller
if(main_controller->pressed(Controller::UP))
const lisp::Lisp* tilemap_lisp = iter.lisp();
tilemap_lisp->get("width", width);
tilemap_lisp->get("height", height);
- tilemap_lisp->get_vector("data", tilemap);
+ tilemap_lisp->get_vector("tiles", tilemap);
} else if(iter.item() == "properties") {
const lisp::Lisp* props = iter.lisp();
props->get("name", name);
props->get("intro-filename", intro_filename);
props->get("start_pos_x", start_x);
props->get("start_pos_y", start_y);
- } else if(iter.item() == "special-tiles") {
- parse_special_tiles(iter.lisp());
+ } else if(iter.item() == "level") {
+ parse_level_tile(iter.lisp());
+ } else if(iter.item() == "special-tile") {
+ parse_special_tile(iter.lisp());
} else {
std::cerr << "Unknown token '" << iter.item() << "' in worldmap.\n";
}
}
void
-WorldMap::parse_special_tiles(const lisp::Lisp* lisp)
+WorldMap::parse_special_tile(const lisp::Lisp* lisp)
{
- lisp::ListIterator iter(lisp);
- while(iter.next()) {
- if(iter.item() == "special-tile") {
- SpecialTile special_tile;
-
- const lisp::Lisp* lisp = iter.lisp();
- lisp->get("x", special_tile.pos.x);
- lisp->get("y", special_tile.pos.y);
- lisp->get("map-message", special_tile.map_message);
- special_tile.passive_message = false;
- lisp->get("passive-message", special_tile.passive_message);
- special_tile.teleport_dest = Vector(-1,-1);
- lisp->get("teleport-to-x", special_tile.teleport_dest.x);
- lisp->get("teleport-to-y", special_tile.teleport_dest.y);
- special_tile.invisible = false;
- lisp->get("invisible-tile", special_tile.invisible);
-
+ SpecialTile special_tile;
+
+ lisp->get("x", special_tile.pos.x);
+ lisp->get("y", special_tile.pos.y);
+ lisp->get("map-message", special_tile.map_message);
+ special_tile.passive_message = false;
+ lisp->get("passive-message", special_tile.passive_message);
+ special_tile.teleport_dest = Vector(-1,-1);
+ lisp->get("teleport-to-x", special_tile.teleport_dest.x);
+ lisp->get("teleport-to-y", special_tile.teleport_dest.y);
+ special_tile.invisible = false;
+ lisp->get("invisible-tile", special_tile.invisible);
+
+ special_tile.apply_action_north = true;
+ special_tile.apply_action_south = true;
+ special_tile.apply_action_east = true;
+ special_tile.apply_action_west = true;
+
+ std::string apply_direction;
+ lisp->get("apply-to-direction", apply_direction);
+ if(!apply_direction.empty()) {
+ special_tile.apply_action_north = false;
+ special_tile.apply_action_south = false;
+ special_tile.apply_action_east = false;
+ special_tile.apply_action_west = false;
+ if(apply_direction.find("north") != std::string::npos)
special_tile.apply_action_north = true;
+ if(apply_direction.find("south") != std::string::npos)
special_tile.apply_action_south = true;
+ if(apply_direction.find("east") != std::string::npos)
special_tile.apply_action_east = true;
+ if(apply_direction.find("west") != std::string::npos)
special_tile.apply_action_west = true;
-
- std::string apply_direction;
- lisp->get("apply-to-direction", apply_direction);
- if(!apply_direction.empty()) {
- special_tile.apply_action_north = false;
- special_tile.apply_action_south = false;
- special_tile.apply_action_east = false;
- special_tile.apply_action_west = false;
- if(apply_direction.find("north") != std::string::npos)
- special_tile.apply_action_north = true;
- if(apply_direction.find("south") != std::string::npos)
- special_tile.apply_action_south = true;
- if(apply_direction.find("east") != std::string::npos)
- special_tile.apply_action_east = true;
- if(apply_direction.find("west") != std::string::npos)
- special_tile.apply_action_west = true;
- }
-
- special_tiles.push_back(special_tile);
- } else if(iter.item() == "level") {
- Level level;
-
- lisp::Lisp* level_lisp = iter.lisp();
- level.solved = false;
-
- level.north = true;
- level.east = true;
- level.south = true;
- level.west = true;
-
- level_lisp->get("extro-filename", level.extro_filename);
- level_lisp->get("next-worldmap", level.next_worldmap);
-
- level.quit_worldmap = false;
- level_lisp->get("quit-worldmap", level.quit_worldmap);
-
- level_lisp->get("name", level.name);
- level_lisp->get("x", level.pos.x);
- level_lisp->get("y", level.pos.y);
-
- level.auto_path = true;
- level_lisp->get("auto-path", level.auto_path);
-
- level.vertical_flip = false;
- level_lisp->get("vertical-flip", level.vertical_flip);
-
- levels.push_back(level);
- } else {
- std::cerr << "Unknown token '" << iter.item() <<
- "' in worldmap special-tiles list.";
- }
}
+
+ special_tiles.push_back(special_tile);
+}
+
+void
+WorldMap::parse_level_tile(const lisp::Lisp* level_lisp)
+{
+ Level level;
+
+ level.solved = false;
+
+ level.north = true;
+ level.east = true;
+ level.south = true;
+ level.west = true;
+
+ level_lisp->get("extro-filename", level.extro_filename);
+ level_lisp->get("next-worldmap", level.next_worldmap);
+
+ level.quit_worldmap = false;
+ level_lisp->get("quit-worldmap", level.quit_worldmap);
+
+ level_lisp->get("name", level.name);
+ level_lisp->get("x", level.pos.x);
+ level_lisp->get("y", level.pos.y);
+
+ level.auto_path = true;
+ level_lisp->get("auto-path", level.auto_path);
+
+ level.vertical_flip = false;
+ level_lisp->get("vertical-flip", level.vertical_flip);
+
+ levels.push_back(level);
}
void
{
Menu* menu = Menu::current();
if(menu) {
- menu->action();
+ menu->update();
if(menu == worldmap_menu) {
switch (worldmap_menu->check())
}
else
{
- tux->action(delta);
+ tux->update(delta);
// tux->set_direction(input_direction);
}
}
~Tux();
void draw(DrawingContext& context);
- void action(float elapsed_time);
+ void update(float elapsed_time);
void set_direction(Direction dir);
private:
void on_escape_press();
- void parse_special_tiles(const lisp::Lisp* lisp);
+ void parse_special_tile(const lisp::Lisp* lisp);
+ void parse_level_tile(const lisp::Lisp* lisp);
};
} // namespace WorldMapNS