5 #include "DAnimation.h"
11 Tileset
Object::OBJECTS_TILESET( "objects.png" );
13 Object::Object( ObjectClass
&CLASS
, Sint16 X
, Sint16 Y
) : MapObject( X
, Y
)
19 Object::Object( ObjectClass
&CLASS
) : MapObject( 0, 0 )
24 void Object::Init( ObjectClass
&CLASS
)
27 oLoc
= Object::LOC_GROUND
;
31 switch( CLASS
.graphic
)
33 case ObjectClass::GRA_TILE
:
34 graphic
= new DTile( &Object::OBJECTS_TILESET
, CLASS
.tile_id
);
36 case ObjectClass::GRA_ANIMATION
:
42 RefOnActivation
= CLASS
.OnActivation
;
43 RefOnPlayerOnTile
= CLASS
.OnPlayerOnTile
;
44 RefOnPickup
= CLASS
.OnPickup
;
45 RefOnDrop
= CLASS
.OnDrop
;
52 void Object::OnActivation( Player
*p
)
54 if( RefOnActivation
!= LUA_REFNIL
)
56 lua_rawgeti( Game::LUA
, LUA_REGISTRYINDEX
, RefOnActivation
);
57 lua_call( Game::LUA
, 0, 0 );
61 void Object::OnPickup( Player
*p
)
63 if( RefOnPickup
!= LUA_REFNIL
)
65 lua_rawgeti( Game::LUA
, LUA_REGISTRYINDEX
, RefOnPickup
);
66 lua_call( Game::LUA
, 0, 0 );
70 void Object::OnDrop( Player
*p
)
72 if( RefOnDrop
!= LUA_REFNIL
)
74 lua_rawgeti( Game::LUA
, LUA_REGISTRYINDEX
, RefOnDrop
);
75 lua_call( Game::LUA
, 0, 0 );
79 void Object::OnPlayerOnTile( Player
*p
)
81 //if( RefOnPlayerOnTile != LUA_REFNIL )
83 // lua_rawgeti( Game::LUA, LUA_REGISTRYINDEX, RefOnPlayerOnTile );
84 // lua_call( Game::LUA, 0, 0 );