summaryrefslogtreecommitdiff
path: root/src/monster.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/monster.h')
-rw-r--r--src/monster.h49
1 files changed, 38 insertions, 11 deletions
diff --git a/src/monster.h b/src/monster.h
index 5b6fcf61..5251d37e 100644
--- a/src/monster.h
+++ b/src/monster.h
@@ -1,39 +1,44 @@
/*
* The Mana World
- * Copyright 2004 The Mana World Development Team
+ * Copyright (C) 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
+ * This program 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,
+ * This program 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
+ * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#ifndef _TMW_MONSTER_H
-#define _TMW_MONSTER_H
+#ifndef MONSTER_H
+#define MONSTER_H
#include "being.h"
class MonsterInfo;
+class Text;
class Monster : public Being
{
public:
- Monster(Uint16 id, Uint16 job, Map *map);
+ Monster(Uint32 id, Uint16 job, Map *map);
- virtual ~Monster();
+ ~Monster();
- virtual void setAction(Action action, int attackType);
+#ifdef EATHENA_SUPPORT
+ virtual void logic();
+#endif
+
+ virtual void setAction(Action action, int attackType = 0);
virtual Type getType() const;
@@ -43,8 +48,15 @@ class Monster : public Being
/**
* Handles an attack of another being by this monster. Plays a hit or
* miss sound when appropriate.
+ *
+ * @param victim The attacked being.
+ * @param damage The amount of damage dealt (0 means miss).
*/
+#ifdef TMWSERV_SUPPORT
virtual void handleAttack();
+#else
+ virtual void handleAttack(Being *victim, int damage);
+#endif
/**
* Puts a damage bubble above this monster and plays the hurt sound
@@ -56,8 +68,12 @@ class Monster : public Being
/**
* Returns the MonsterInfo, with static data about this monster.
*/
- const MonsterInfo&
- getInfo() const;
+ const MonsterInfo& getInfo() const;
+
+ /**
+ * Determine whether the mob should show it's name
+ */
+ void showName(bool show);
/**
* Gets the way the monster is blocked by other objects
@@ -71,6 +87,17 @@ class Monster : public Being
*/
virtual Map::BlockType getBlockType() const
{ return Map::BLOCKTYPE_MONSTER; }
+
+ /**
+ * Update the text when the monster moves
+ */
+ void updateCoords();
+
+ private:
+ /**
+ * holds a text object when the mod displays it's name, 0 otherwise
+ */
+ Text *mText;
};
#endif