diff options
Diffstat (limited to 'src/monster.h')
-rw-r--r-- | src/monster.h | 49 |
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 |