diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-04-03 14:32:57 +0200 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-04-03 21:52:03 +0200 |
commit | 4b57962ee4c10e48956c2888199605bebdb17b8f (patch) | |
tree | 261b141a1ad61a64e93a7b99a8c68debfb48d055 /src/game-server/state.cpp | |
parent | 4a8080dcf73dab2b6e62b8500fec3bb996bcbf17 (diff) | |
download | manaserv-4b57962ee4c10e48956c2888199605bebdb17b8f.tar.gz manaserv-4b57962ee4c10e48956c2888199605bebdb17b8f.tar.xz manaserv-4b57962ee4c10e48956c2888199605bebdb17b8f.zip |
Moved the Monster class to a Component
Things done:
- Allowed to create new Attributes outside of the protected scope of Being
- Moved Monster to MonsterComponent
- Some minor cleanup in the Attribute setting code of monsters
Diffstat (limited to 'src/game-server/state.cpp')
-rw-r--r-- | src/game-server/state.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/game-server/state.cpp b/src/game-server/state.cpp index d3a2986..74bd87e 100644 --- a/src/game-server/state.cpp +++ b/src/game-server/state.cpp @@ -270,9 +270,10 @@ static void informPlayer(MapComposite *map, Character *p) case OBJECT_MONSTER: { - Monster *q = static_cast< Monster * >(o); - enterMsg.writeInt16(q->getSpecy()->getId()); - enterMsg.writeString(q->getName()); + MonsterComponent *monsterComponent = + o->getComponent<MonsterComponent>(); + enterMsg.writeInt16(monsterComponent->getSpecy()->getId()); + enterMsg.writeString(o->getName()); } break; case OBJECT_NPC: @@ -567,10 +568,13 @@ bool GameState::insert(Entity *ptr) break; case OBJECT_MONSTER: + { + MonsterComponent *monsterComponent = + obj->getComponent<MonsterComponent>(); LOG_DEBUG("Monster inserted: " - << static_cast<Monster*>(obj)->getSpecy()->getId()); + << monsterComponent->getSpecy()->getId()); break; - + } case OBJECT_ACTOR: case OBJECT_OTHER: default: @@ -641,10 +645,13 @@ void GameState::remove(Entity *ptr) break; case OBJECT_MONSTER: + { + MonsterComponent *monsterComponent = + ptr->getComponent<MonsterComponent>(); LOG_DEBUG("Monster removed: " - << static_cast<Monster*>(ptr)->getSpecy()->getId()); + << monsterComponent->getSpecy()->getId()); break; - + } case OBJECT_ACTOR: case OBJECT_OTHER: default: |