-;; Generated by Flexlay Editor
(supertux-level
(version 2)
- (name (_ "Scripting Test"))
+ (name (_ "Scripting Test"))
(author "Development Team")
(sector
- (name "main")
- (music "salcon.ogg")
- (gravity 10.000000)
- (tilemap
- (layer "background")
- (solid #f)
- (speed 1.000000)
- (width 25)
- (height 20)
- (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
- 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- ))
- (tilemap
- (layer "interactive")
- (solid #t)
- (speed 1.000000)
- (width 25)
- (height 20)
- (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 122 209 209 123 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 124 98 98 125 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 124 98 98 125 0 0 0 0 0 0 0 0 0
- 0 0 122 123 0 0 0 0 0 0 0 0 124 98 98 125 0 0 0 0 0 1348 0 0 0
- 0 0 124 125 0 0 0 0 0 0 0 0 124 98 98 125 0 0 122 123 0 79 0 0 0
- 0 0 124 125 0 0 0 0 0 0 0 0 124 98 98 125 0 0 124 125 0 79 0 0 0
- 0 0 1345 1344 0 0 0 0 0 0 0 0 1345 1346 1346 1344 0 0 1345 1344 0 1349 0 0 0
- 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- ))
- (tilemap
- (layer "foreground")
- (solid #f)
- (speed 1.000000)
- (width 25)
- (height 20)
- (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 1321 1322 1323 1324 0 0 0 0 0 0 0 0 0 1321 1322 1323 1324 0 0 0 0 0 0 0
- 0 1325 1326 1327 1328 0 0 0 0 0 0 0 0 0 1325 1326 1327 1328 0 0 0 0 0 0 0
- 0 1329 1330 1331 1332 0 0 1350 0 0 0 0 0 0 1329 1330 1331 1332 0 0 0 0 0 0 0
- 0 1333 1334 1335 1336 0 0 0 0 0 0 0 0 0 1333 1334 1335 1336 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- ))
- (camera
- (mode "normal")
- )
-
- (background
- (image "images/background/semi_arctic.jpg")
- (speed 0.500000)
- )
- (spawnpoint (name "main") (x 320) (y 416))
- (particles-snow
- )
- (ambient_sound (x 674) (y 390) (distance_factor 0.01)
- (distance_bias 200.0) (sample "phone")
- )
- (infoblock (x 674) (y 390)
- (message (_ "-VoiceMail
-#
-#(Play phone digit noises)
-#(Play Nolok Sound)
-#(Display text)
-#Tux, I have captured
-#Penny.
-#
-"))
- )
- (scriptedobject
- (name "TUX")
- (x 160)
- (y 448)
- (sprite "images/creatures/yeti/yeti.sprite")
- )
- (scriptedobject
- (name "PENNY")
- (x 390)
- (y 448)
- (sprite "images/creatures/dummyguy/dummyguy.sprite")
- )
- (scriptedobject
- (name "NOLOK")
- (x 420)
- (y 94)
- (sprite "images/creatures/dummyguy/dummyguy.sprite")
- (visible #f)
- (physic-enabled #f)
- (solid #f)
- )
- (init-script "
-
- local logo = FloatingImage(\"images/objects/logo/logo.sprite\");
-
- logo.set_visible(true);
+ (name "main")
+ (music "salcon.ogg")
+ (init-script "
+local logo = FloatingImage(\"images/objects/logo/logo.sprite\");
+logo.set_visible(true);
Text.set_text(translate(\"The Crazy Nolok Dance\"));
Text.fade_in(2);
NOLOK.set_visible(true);
tuxjumps <- 2;
while(true) {
- wait(0.8);
- Sound.play(\"sounds/jump.wav\");
- if(tuxjumps >= 0) {
- TUX.set_velocity(50, 300);
- } else {
- TUX.set_velocity(-50, 300);
- if(tuxjumps < -2)
- tuxjumps = 3;
- }
- tuxjumps--;
- wait(0.5);
- if(PENNY.get_action() == \"stand\") {
- PENNY.set_action(\"throw\");
- } else if(PENNY.get_action() == \"throw\") {
- PENNY.set_action(\"jump\");
- } else if(PENNY.get_action() == \"jump\") {
- PENNY.set_action(\"dead\");
- } else {
- Sound.play(\"sounds/grow.wav\");
- PENNY.set_action(\"stand\");
- PENNY.set_velocity(0, 900);
- }
+ wait(0.8);
+ Sound.play(\"sounds/jump.wav\");
+ if(tuxjumps >= 0) {
+ TUX.set_velocity(50, 300);
+ } else {
+ TUX.set_velocity(-50, 300);
+ if(tuxjumps < -2)
+ tuxjumps = 3;
+ }
+ tuxjumps--;
+ wait(0.5);
+ if(PENNY.get_action() == \"stand\") {
+ PENNY.set_action(\"throw\");
+ } else if(PENNY.get_action() == \"throw\") {
+ PENNY.set_action(\"jump\");
+ } else if(PENNY.get_action() == \"jump\") {
+ PENNY.set_action(\"dead\");
+ } else {
+ Sound.play(\"sounds/grow.wav\");
+ PENNY.set_action(\"stand\");
+ PENNY.set_velocity(0, 900);
+ }
}
")
- )
- )
-
-;; EOF ;;
+ (background
+ (image "images/background/semi_arctic.jpg")
+ (speed 0.5)
+ )
+ (camera
+ (mode "normal")
+ )
+ (spawnpoint
+ (name "main")
+ (x 320)
+ (y 416)
+ )
+ (infoblock
+ (message "-VoiceMail
+#
+#(Play phone digit noises)
+#(Play Nolok Sound)
+#(Display text)
+#Tux, I have captured
+#Penny.
+#
+")
+ (x 674)
+ (y 390)
+ )
+ (scriptedobject
+ (name "TUX")
+ (visible #t)
+ (physic-enabled #f)
+ (solid #f)
+ (x 160)
+ (y 448)
+ (sprite "images/creatures/yeti/yeti.sprite")
+ )
+ (scriptedobject
+ (name "PENNY")
+ (visible #t)
+ (physic-enabled #f)
+ (solid #f)
+ (x 390)
+ (y 448)
+ (sprite "images/creatures/dummyguy/dummyguy.sprite")
+ )
+ (scriptedobject
+ (name "NOLOK")
+ (visible #f)
+ (physic-enabled #f)
+ (solid #f)
+ (x 420)
+ (y 94)
+ (sprite "images/creatures/dummyguy/dummyguy.sprite")
+ )
+ (ambient_sound
+ (sample "phone")
+ (distance_factor 0.01)
+ (distance_bias 200)
+ (volume 0)
+ (width 32)
+ (height 32)
+ (x 674)
+ (y 390)
+ )
+ (particles-snow
+ )
+ (tilemap
+ (layer "background")
+ (solid #f)
+ (speed 1)
+ (width 25)
+ (height 20)
+ (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 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1343 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342)
+ )
+ (tilemap
+ (layer "interactive")
+ (solid #t)
+ (speed 1)
+ (width 25)
+ (height 20)
+ (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 122 209 209 123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124 98 98 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124 98 98 125 0 0 0 0 0 0 0 0 0 0 0 122 123 0 0 0 0 0 0 0 0 124 98 98 125 0 0 0 0 0 1348 0 0 0 0 0 124 125 0 0 0 0 0 0 0 0 124 98 98 125 0 0 122 123 0 79 0 0 0 0 0 124 125 0 0 0 0 0 0 0 0 124 98 98 125 0 0 124 125 0 79 0 0 0 0 0 1345 1344 0 0 0 0 0 0 0 0 1345 1346 1346 1344 0 0 1345 1344 0 1349 0 0 0 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 1342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
+ )
+ (tilemap
+ (layer "foreground")
+ (solid #f)
+ (speed 1)
+ (width 25)
+ (height 20)
+ (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 1321 1322 1323 1324 0 0 0 0 0 0 0 0 0 1321 1322 1323 1324 0 0 0 0 0 0 0 0 1325 1326 1327 1328 0 0 0 0 0 0 0 0 0 1325 1326 1327 1328 0 0 0 0 0 0 0 0 1329 1330 1331 1332 0 0 1350 0 0 0 0 0 0 1329 1330 1331 1332 0 0 0 0 0 0 0 0 1333 1334 1335 1336 0 0 0 0 0 0 0 0 0 1333 1334 1335 1336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
+ )
+ )
+)
#include "special_tile.hpp"
#include "sprite_change.hpp"
#include "control/joystickkeyboardcontroller.hpp"
+#include "scripting/wrapper_util.hpp"
#include "main.hpp"
namespace WorldMapNS
// if this is a special_tile with passive_message, display it
SpecialTile* special_tile = worldmap->at_special_tile();
- if(special_tile && special_tile->passive_message)
+ if(special_tile)
{
// direction and the apply_action_ are opposites, since they "see"
// directions in a different way
(direction == D_WEST && special_tile->apply_action_east) ||
(direction == D_EAST && special_tile->apply_action_west))
{
- worldmap->passive_message = special_tile->map_message;
- worldmap->passive_message_timer.start(map_message_TIME);
+ if(special_tile->passive_message) {
+ worldmap->passive_message = special_tile->map_message;
+ worldmap->passive_message_timer.start(map_message_TIME);
+ } else if(special_tile->script != "") {
+ try {
+ std::istringstream in(special_tile->script);
+ HSQUIRRELVM vm = ScriptManager::instance->create_thread();
+ Scripting::compile_and_run(vm, in, "specialtile");
+ } catch(std::exception& e) {
+ log_warning << "Couldn't execute special tile script: " << e.what()
+ << std::endl;
+ }
+ }
}
}
// stop if we reached a level, a WORLDMAP_STOP tile or a special tile without a passive_message
if ((worldmap->at_level())
|| (worldmap->at(tile_pos)->getData() & Tile::WORLDMAP_STOP)
- || (special_tile && !special_tile->passive_message)) {
+ || (special_tile && !special_tile->passive_message
+ && special_tile->script == "")) {
if(special_tile && !special_tile->map_message.empty()
&& !special_tile->passive_message)
worldmap->passive_message_timer.start(0);