projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Magic Blocks. (DrawingContext::get_light is not working yet.)
[supertux.git]
/
src
/
object
/
scripted_object.cpp
diff --git
a/src/object/scripted_object.cpp
b/src/object/scripted_object.cpp
index
67963ec
..
65dffb4
100644
(file)
--- 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);
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)
{
}
void
ScriptedObject::expose(HSQUIRRELVM vm, SQInteger table_idx)
{
-
Scripting::ScriptedObject* interface = static_cast<Scripting::ScriptedObject*> (this)
;
- expose_object(vm, table_idx,
interface
, name, false);
+
if (name.empty()) return
;
+ expose_object(vm, table_idx,
dynamic_cast<Scripting::ScriptedObject *>(this)
, name, false);
}
void
ScriptedObject::unexpose(HSQUIRRELVM vm, SQInteger table_idx)
{
}
void
ScriptedObject::unexpose(HSQUIRRELVM vm, SQInteger table_idx)
{
+ if (name.empty()) return;
Scripting::unexpose_object(vm, table_idx, name);
}
Scripting::unexpose_object(vm, table_idx, name);
}
@@
-125,10
+133,15
@@
void
ScriptedObject::set_solid(bool solid)
{
this->solid = solid;
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
}
bool