+ Scripting::register_supertux_wrapper(v);
+
+ // expose some "global" objects
+ sound = new Scripting::Sound();
+ expose_object(sound, "Sound");
+
+ level = new Scripting::Level();
+ expose_object(level, "Level");
+}
+
+void
+ScriptInterpreter::register_sector(Sector* sector)
+{
+ // expose ScriptedObjects to the script
+ for(Sector::GameObjects::iterator i = sector->gameobjects.begin();
+ i != sector->gameobjects.end(); ++i) {
+ GameObject* object = *i;
+ Scripting::ScriptedObject* scripted_object
+ = dynamic_cast<Scripting::ScriptedObject*> (object);
+ if(!scripted_object)
+ continue;
+
+ expose_object(scripted_object, scripted_object->get_name());
+ }
+
+ expose_object(static_cast<Scripting::Player*> (sector->player), "Tux");
+ TextObject* text_object = new TextObject();
+ sector->add_object(text_object);
+ Scripting::Text* text = static_cast<Scripting::Text*> (text_object);
+ expose_object(text, "Text");
+
+ DisplayEffect* display_effect = new DisplayEffect();
+ sector->add_object(display_effect);
+ Scripting::DisplayEffect* display_effect_api
+ = static_cast<Scripting::DisplayEffect*> (display_effect);
+ expose_object(display_effect_api, "DisplayEffect");