1 #include "enemymanager.h"
5 static int regenemy (lua_State
*L
) {
6 lua_settable(L
, LUA_REGISTRYINDEX
);
9 EnemyManager::EnemyManager(Game
* g
) {
14 void EnemyManager::loadEnemies() {
15 std::set
<Enemy
*>::iterator it
;
16 for (it
= enemies
.begin();it
!= enemies
.end(); it
++) {
23 registerFunction(lstate
,"regenemy",regenemy
);
24 doLuaFile(lstate
,"enemymanager.lua");
25 doLuaFile(lstate
,"enemies.lua");
28 void EnemyManager::desenha() {
29 std::set
<Enemy
*>::iterator it
;
30 for (it
= enemies
.begin();it
!= enemies
.end(); it
++) {
35 void EnemyManager::move() {
36 std::set
<Enemy
*>::iterator it
;
37 for (it
= enemies
.begin();it
!= enemies
.end(); it
++) {
42 void EnemyManager::animate() {
43 std::set
<Enemy
*>::iterator it
;
44 for (it
= enemies
.begin();it
!= enemies
.end(); it
++) {
49 void EnemyManager::think() {
50 std::set
<Enemy
*>::iterator it
;
51 for (it
= enemies
.begin();it
!= enemies
.end(); it
++) {
56 void EnemyManager::remove(Enemy
* enemy
) {
57 enemies
.erase(enemies
.find(enemy
));
60 Enemy
* EnemyManager::createEnemy(std::string name
) {
61 lua_pushstring(lstate
,name
.c_str());
62 lua_gettable(lstate
, LUA_REGISTRYINDEX
);
63 if (lua_pcall(lstate
,0,2,0) != 0) /* do the call */
64 printf("error: %s", lua_tostring(lstate
, -1));
65 std::string weaponname
= lua_tostring(lstate
, 1);
67 Enemy
* ret
= new Enemy(game
);
69 game
->gravityManager
->subscribe(ret
);
70 game
->collisionManager
->subscribe(ret
);
71 ret
->equip(game
->weaponManager
->getWeapon(weaponname
));