summaryrefslogtreecommitdiff
path: root/src/game-server/character.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/character.cpp')
-rw-r--r--src/game-server/character.cpp108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/game-server/character.cpp b/src/game-server/character.cpp
new file mode 100644
index 00000000..4aa0576d
--- /dev/null
+++ b/src/game-server/character.cpp
@@ -0,0 +1,108 @@
+/*
+ * The Mana World Server
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with The Mana World; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id$
+ */
+
+#include "game-server/character.hpp"
+
+#include <cassert>
+
+#include "defines.h"
+#include "net/messagein.hpp"
+
+InventoryItem tempItem;
+
+Character::Character():
+ Being(OBJECT_CHARACTER, 65535),
+ mClient(NULL),
+ mDatabaseID(-1), mName(""), mGender(0), mHairStyle(0), mHairColor(0),
+ mLevel(0), mMoney(0)
+{
+ for (int i = 0; i < EQUIPMENT_SLOTS; ++i)
+ {
+ mPossessions.equipment[i] = 0;
+ }
+}
+
+Character::Character(MessageIn & msg):
+ Being(OBJECT_CHARACTER, 65535),
+ mClient(NULL),
+ mDatabaseID(-1), mName(""), mGender(0), mHairStyle(0), mHairColor(0),
+ mLevel(0), mMoney(0)
+{
+ for (int i = 0; i < EQUIPMENT_SLOTS; ++i)
+ {
+ mPossessions.equipment[i] = 0;
+ }
+ deserialize(msg);
+ recalculateAllCompoundAttributes();
+}
+/**
+ * Update the internal status.
+ */
+void
+Character::update()
+{
+ // attacking
+ if (mAction == ATTACK)
+ {
+ // plausibility check of attack command
+ if (mActionTime <= 0)
+ {
+ // request perform attack
+ mActionTime = 1000;
+ mAction = STAND;
+ raiseUpdateFlags(UPDATEFLAG_ATTACK);
+ }
+ }
+}
+
+int
+Character::getNumberOfInventoryItems() const
+{
+ // TODO: implement after redesign/improvement of Inventory
+ return 0;
+}
+
+InventoryItem const &
+Character::getInventoryItem(unsigned short slot) const
+{
+ // TODO: implement after redesign/improvement of Inventory
+ //InventoryItem tempItem;
+
+ tempItem.itemClassId = 0;
+ tempItem.numberOfItemsInSlot = 0;
+ tempItem.isEquiped = false;
+
+ return tempItem;
+}
+
+void
+Character::clearInventory()
+{
+ // TODO: implement after redesign/improvement of Inventory
+}
+
+void
+Character::addItemToInventory(const InventoryItem& item)
+{
+ // TODO: implement after redesign/improvement of Inventory
+}
+