Made lua run under MSWin with Dev-Cpp 4.9.9.2
[sdlbotor.git] / Object.cpp
blobf4281d90c2436e0e0ad7c714ba6a460c859cc9ff
1 #include <iostream>
2 #include "Object.h"
3 #include "Game.h"
4 #include "DTile.h"
5 #include "DAnimation.h"
6 #include "Player.h"
8 namespace botor
11 Tileset Object::OBJECTS_TILESET( "objects.png" );
13 Object::Object( ObjectClass &CLASS, Sint16 X, Sint16 Y ) : MapObject( X, Y )
15 Init( CLASS );
19 Object::Object( ObjectClass &CLASS ) : MapObject( 0, 0 )
21 Init( CLASS );
24 void Object::Init( ObjectClass &CLASS )
27 oLoc = Object::LOC_GROUND;
29 nUse = CLASS.nUse;
31 switch( CLASS.graphic )
33 case ObjectClass::GRA_TILE:
34 graphic = new DTile( &Object::OBJECTS_TILESET, CLASS.tile_id );
35 break;
36 case ObjectClass::GRA_ANIMATION:
37 break;
38 default:
39 break;
42 RefOnActivation = CLASS.OnActivation;
43 RefOnPlayerOnTile = CLASS.OnPlayerOnTile;
44 RefOnPickup = CLASS.OnPickup;
45 RefOnDrop = CLASS.OnDrop;
49 Object::~Object() {}
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 )
82 //{
83 // lua_rawgeti( Game::LUA, LUA_REGISTRYINDEX, RefOnPlayerOnTile );
84 // lua_call( Game::LUA, 0, 0 );
85 //}
87 p->Pickup( this );