tibia-rme/source/monster.cpp

76 lines
2 KiB
C++
Raw Permalink Normal View History

//////////////////////////////////////////////////////////////////////
// This file is part of Remere's Map Editor
//////////////////////////////////////////////////////////////////////
2020-07-30 11:42:28 -03:00
// Remere's Map Editor 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 3 of the License, or
// (at your option) any later version.
2016-09-29 19:24:45 -03:00
//
2020-07-30 11:42:28 -03:00
// Remere's Map Editor is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2020-07-30 11:42:28 -03:00
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
2016-09-29 19:24:45 -03:00
//
// You should have received a copy of the GNU General Public License
2020-07-30 11:42:28 -03:00
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//////////////////////////////////////////////////////////////////////
#include "main.h"
#include "monster.h"
Monster::Monster(MonsterType* ctype) : direction(NORTH), spawntime(0), saved(false), selected(false)
{
if(ctype)
type_name = ctype->name;
}
Monster::Monster(std::string ctype_name) : type_name(ctype_name), direction(NORTH), spawntime(0), saved(false), selected(false)
{
2015-12-06 11:42:37 -03:00
////
}
Monster::~Monster()
{
2015-12-06 11:42:37 -03:00
////
}
std::string Monster::DirID2Name(uint16_t id) {
2014-12-08 04:56:42 +13:00
switch (id) {
case NORTH: return "North";
case EAST: return "East";
case SOUTH: return "South";
case WEST: return "West";
default: return "Unknown";
}
}
uint16_t Monster::DirName2ID(std::string dir)
2015-12-06 11:42:37 -03:00
{
2014-12-08 04:56:42 +13:00
to_lower_str(dir);
2015-12-06 11:42:37 -03:00
if(dir == "north") return NORTH;
if(dir == "east") return EAST;
if(dir == "south") return SOUTH;
if(dir == "west") return WEST;
2014-12-08 04:56:42 +13:00
return SOUTH;
}
Monster* Monster::deepCopy() const
{
Monster* copy = newd Monster(type_name);
copy->spawntime = spawntime;
copy->direction = direction;
copy->selected = selected;
copy->saved = saved;
return copy;
}
const Outfit& Monster::getLookType() const
{
MonsterType* type = g_monsters[type_name];
if(type)
return type->outfit;
static const Outfit otfi; // Empty outfit
return otfi;
}