Tentative checkin of tuxdev's "Object improvement patch, part 1"
[supertux.git] / src / object / display_effect.cpp
index 88a17d1..4e6a352 100644 (file)
 
 static const float BORDER_SIZE = 75;
 
-DisplayEffect::DisplayEffect()
-    : screen_fade(NO_FADE), screen_fadetime(0), screen_fading(0),
-      border_fade(NO_FADE), border_fadetime(0), border_size(0),
-      black(false), borders(false)
+DisplayEffect::DisplayEffect(std::string name) :
+  GameObject(name), screen_fade(NO_FADE), screen_fadetime(0), screen_fading(0),
+  border_fade(NO_FADE), border_fadetime(0), border_size(0), black(false),
+  borders(false)
 {
 }
 
@@ -41,18 +41,15 @@ DisplayEffect::~DisplayEffect()
 void
 DisplayEffect::expose(HSQUIRRELVM vm, SQInteger table_idx)
 {
-  Scripting::DisplayEffect* interface = static_cast<Scripting::DisplayEffect*> (this);
-  expose_object(vm, table_idx, interface, "Effect", false);
+  if (name.empty()) return;
+  expose_object(vm, table_idx, dynamic_cast<Scripting::DisplayEffect *>(this), name, false);
 }
 
 void
 DisplayEffect::unexpose(HSQUIRRELVM vm, SQInteger table_idx)
 {
-  try {
-    Scripting::unexpose_object(vm, table_idx, "Effect");
-  } catch(...) {
-    // for now...
-  }
+  if (name.empty()) return;
+  Scripting::unexpose_object(vm, table_idx, name);
 }
 
 void
@@ -94,12 +91,12 @@ DisplayEffect::update(float elapsed_time)
                 borders = false;
                 border_fade = NO_FADE;
             }
-            border_size = (border_fadetime - border_fading) 
+            border_size = (border_fadetime - border_fading)
                 / border_fadetime * BORDER_SIZE;
             break;
         default:
             assert(false);
-    }       
+    }
 }
 
 void
@@ -108,7 +105,7 @@ DisplayEffect::draw(DrawingContext& context)
     context.push_transform();
     context.set_translation(Vector(0, 0));
 
-    if(black || screen_fade != NO_FADE) {    
+    if(black || screen_fade != NO_FADE) {
       float alpha;
       if(black) {
           alpha = 1.0f;
@@ -196,4 +193,3 @@ DisplayEffect::four_to_three(float fadetime)
     border_fading = border_fadetime;
   }
 }
-