X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fscripted_object.cpp;h=65dffb49e45ee59e57f49e4f6e305b1be81a1887;hb=ab9eab4c870195c2b60ce76b77044c35b31e8806;hp=67963ec2698e16f27a037f4a05ccb0d0a0958283;hpb=a113d3bd1feddd510e3b2852b0d42522735eee40;p=supertux.git diff --git a/src/object/scripted_object.cpp b/src/object/scripted_object.cpp index 67963ec26..65dffb49e 100644 --- a/src/object/scripted_object.cpp +++ b/src/object/scripted_object.cpp @@ -47,20 +47,28 @@ ScriptedObject::ScriptedObject(const lisp::Lisp& lisp) lisp.get("physic-enabled", physic_enabled); lisp.get("visible", visible); lisp.get("z-pos", layer); - if(solid) - flags |= FLAG_SOLID; + if( solid ){ + if( physic_enabled ){ + set_group( COLGROUP_MOVING ); + } else { + set_group( COLGROUP_STATIC ); + } + } else { + set_group( COLGROUP_DISABLED ); + } } void ScriptedObject::expose(HSQUIRRELVM vm, SQInteger table_idx) { - Scripting::ScriptedObject* interface = static_cast (this); - expose_object(vm, table_idx, interface, name, false); + if (name.empty()) return; + expose_object(vm, table_idx, dynamic_cast(this), name, false); } void ScriptedObject::unexpose(HSQUIRRELVM vm, SQInteger table_idx) { + if (name.empty()) return; Scripting::unexpose_object(vm, table_idx, name); } @@ -125,10 +133,15 @@ void ScriptedObject::set_solid(bool solid) { this->solid = solid; - if(solid) - flags |= FLAG_SOLID; - else - flags ^= FLAG_SOLID; + if( solid ){ + if( physic_enabled ){ + set_group( COLGROUP_MOVING ); + } else { + set_group( COLGROUP_STATIC ); + } + } else { + set_group( COLGROUP_DISABLED ); + } } bool