* B140: Hack alarm: "fixed" the black-fading screen as requested by jonaskoelker.
authorOndřej Hošek <ondra.hosek@gmail.com>
Wed, 31 Jan 2007 17:07:21 +0000 (17:07 +0000)
committerOndřej Hošek <ondra.hosek@gmail.com>
Wed, 31 Jan 2007 17:07:21 +0000 (17:07 +0000)
* Fixed "emtpy" spelling mistake

SVN-Revision: 4759

data/levels/world1/worldmap.stwm
data/levels/world2/worldmap.stwm
src/physfs/physfs_sdl.cpp
src/physfs/physfs_stream.cpp
src/scripting/functions.cpp
src/scripting/functions.hpp
src/scripting/wrapper.cpp

index 55cc59c..f8b1f10 100644 (file)
@@ -23,6 +23,13 @@ state.world <- \"levels/world2/worldmap.stwm\";")
       (x 37)
       (y 20)
     )
+    (special-tile
+      (invisible-tile #t)
+      (script "abort_screenfade();")
+      (apply-to-direction "south")
+      (x 37)
+      (y 19)
+    )
     (sprite-change
       (change-on-touch #t)
       (initial-stay-action #f)
index 5775ef6..f9a032a 100644 (file)
 state.world <- \"levels/world1/worldmap.stwm\";")
       (x 8)
       (y 45)
+      (apply-to-direction "east")
+    )
+    (special-tile
+      (invisible-tile #t)
+      (script "abort_screenfade();")
+      (x 9)
+      (y 45)
+      (apply-to-direction "west")
     )
     (sprite-change
       (change-on-touch #f)
index 0d6730b..4ad2b6e 100644 (file)
@@ -80,7 +80,7 @@ SDL_RWops* get_physfs_SDLRWops(const std::string& filename)
        // check this as PHYSFS seems to be buggy and still returns a
        // valid pointer in this case
        if(filename == "") {
-               throw std::runtime_error("Couldn't open file: emtpy filename");
+               throw std::runtime_error("Couldn't open file: empty filename");
        }
 
     PHYSFS_file* file = (PHYSFS_file*) PHYSFS_openRead(filename.c_str());
index 1bc8d50..e1d1557 100644 (file)
@@ -31,7 +31,7 @@ IFileStreambuf::IFileStreambuf(const std::string& filename)
        // check this as PHYSFS seems to be buggy and still returns a
        // valid pointer in this case
        if(filename == "") {
-               throw std::runtime_error("Couldn't open file: emtpy filename");
+               throw std::runtime_error("Couldn't open file: empty filename");
        }
     file = PHYSFS_openRead(filename.c_str());
     if(file == 0) {
index c2f8c98..36e4705 100644 (file)
@@ -96,6 +96,11 @@ void shrink_screen(float dest_x, float dest_y, float seconds)
   main_loop->set_screen_fade(new ShrinkFade(Vector(dest_x, dest_y), seconds));
 }
 
+void abort_screenfade()
+{
+  main_loop->set_screen_fade(NULL);
+}
+
 std::string translate(const std::string& text)
 {
   return dictionary_manager.get_dictionary().translate(text);
index b42aff5..d56f6c2 100644 (file)
@@ -88,6 +88,12 @@ void fadeout_screen(float seconds);
 void shrink_screen(float dest_x, float dest_y, float seconds);
 
 /**
+ * Aborts any kind of previous screen fade; the screenchange will happen
+ * anyway.
+ */
+void abort_screenfade();
+
+/**
  * Translate a text into the users language (by looking it up in the .po
  * files)
  */
index 1f8060b..e0ab1c2 100644 (file)
@@ -2861,6 +2861,25 @@ static SQInteger shrink_screen_wrapper(HSQUIRRELVM vm)
 
 }
 
+static SQInteger abort_screenfade_wrapper(HSQUIRRELVM vm)
+{
+  (void) vm;
+
+  try {
+    Scripting::abort_screenfade();
+
+    return 0;
+
+  } catch(std::exception& e) {
+    sq_throwerror(vm, e.what());
+    return SQ_ERROR;
+  } catch(...) {
+    sq_throwerror(vm, _SC("Unexpected exception while executing function 'abort_screenfade'"));
+    return SQ_ERROR;
+  }
+
+}
+
 static SQInteger translate_wrapper(HSQUIRRELVM vm)
 {
   const SQChar* arg0;
@@ -3767,6 +3786,12 @@ void register_supertux_wrapper(HSQUIRRELVM v)
     throw SquirrelError(v, "Couldn't register function 'shrink_screen'");
   }
 
+  sq_pushstring(v, "abort_screenfade", -1);
+  sq_newclosure(v, &abort_screenfade_wrapper, 0);
+  if(SQ_FAILED(sq_createslot(v, -3))) {
+    throw SquirrelError(v, "Couldn't register function 'abort_screenfade'");
+  }
+
   sq_pushstring(v, "translate", -1);
   sq_newclosure(v, &translate_wrapper, 0);
   if(SQ_FAILED(sq_createslot(v, -3))) {