diff options
author | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-03-09 21:30:42 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-03-10 18:07:29 +0100 |
commit | 78c912fb4007c3e5f0b43de02646772acb21ecf2 (patch) | |
tree | e45409ff061de75b0e4273763a87f5a25de6a65b /src/game-server/character.cpp | |
parent | 2fa7d1f39b24714ee6dc72b6b9e61ec5a1997724 (diff) | |
download | manaserv-78c912fb4007c3e5f0b43de02646772acb21ecf2.tar.gz manaserv-78c912fb4007c3e5f0b43de02646772acb21ecf2.tar.xz manaserv-78c912fb4007c3e5f0b43de02646772acb21ecf2.zip |
Moved the managing of NPC script coroutines into C++
Rather than wrapping NPC functions up in coroutines in the Lua side, they
are now managed on the C++ side as "script threads", which are essentially
the same thing.
The main purpose is that the server can now know whether any of these long
running script interactions are still active, which will probably be useful
when adding the ability to reload scripts.
Reviewed-by: Erik Schilling
Diffstat (limited to 'src/game-server/character.cpp')
-rw-r--r-- | src/game-server/character.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/game-server/character.cpp b/src/game-server/character.cpp index 14b49bc..bf16e26 100644 --- a/src/game-server/character.cpp +++ b/src/game-server/character.cpp @@ -85,7 +85,8 @@ Character::Character(MessageIn &msg): mUpdateLevelProgress(false), mRecalculateLevel(true), mParty(0), - mTransaction(TRANS_NONE) + mTransaction(TRANS_NONE), + mNpcThread(0) { const AttributeManager::AttributeScope &attr = attributeManager->getAttributeScope(CharacterScope); @@ -111,6 +112,11 @@ Character::Character(MessageIn &msg): giveSpecial(3); } +Character::~Character() +{ + delete mNpcThread; +} + void Character::update() { // First, deal with being generic updates |