2006-07-03 Al Riddoch <alriddoch@zepler.org>
* tests/IGEntityExerciser.h, tests/TestPropertyManager.cpp,
tests/TestPropertyManager.h: Add a dummy property manager, and
install it before testing any IG entity classes.
* tests/Areatest.cpp, tests/Charactertest.cpp,
tests/Creatortest.cpp, tests/EntityFactorytest.cpp,
tests/Entitytest.cpp, tests/Foodtest.cpp, tests/IGEntityExerciser.h,
tests/Linetest.cpp, tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp:
Switch to new hasAttr getAttr setAttr method names.
2006-07-03 11:30:02 +00:00
|
|
|
// Cyphesis Online RPG Server and AI Engine
|
|
|
|
|
// Copyright (C) 2006 Alistair Riddoch
|
|
|
|
|
//
|
|
|
|
|
// 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
|
|
|
|
|
// (at your option) any later version.
|
|
|
|
|
//
|
|
|
|
|
// 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 this program; if not, write to the Free Software Foundation,
|
|
|
|
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
|
|
2008-09-08 11:49:22 +00:00
|
|
|
// $Id$
|
2006-10-26 00:48:00 +00:00
|
|
|
|
2011-02-15 09:30:46 +00:00
|
|
|
#ifdef NDEBUG
|
|
|
|
|
#undef NDEBUG
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef DEBUG
|
|
|
|
|
#define DEBUG
|
|
|
|
|
#endif
|
|
|
|
|
|
2006-07-03 Al Riddoch <alriddoch@zepler.org>
* tests/IGEntityExerciser.h, tests/TestPropertyManager.cpp,
tests/TestPropertyManager.h: Add a dummy property manager, and
install it before testing any IG entity classes.
* tests/Areatest.cpp, tests/Charactertest.cpp,
tests/Creatortest.cpp, tests/EntityFactorytest.cpp,
tests/Entitytest.cpp, tests/Foodtest.cpp, tests/IGEntityExerciser.h,
tests/Linetest.cpp, tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp:
Switch to new hasAttr getAttr setAttr method names.
2006-07-03 11:30:02 +00:00
|
|
|
#include "TestPropertyManager.h"
|
|
|
|
|
|
2008-09-27 16:38:26 +00:00
|
|
|
#include "common/Property.h"
|
2013-01-13 21:53:59 +00:00
|
|
|
#include "common/PropertyFactory.h"
|
2008-09-27 16:38:26 +00:00
|
|
|
|
|
|
|
|
using Atlas::Message::Element;
|
|
|
|
|
|
2006-07-03 Al Riddoch <alriddoch@zepler.org>
* tests/IGEntityExerciser.h, tests/TestPropertyManager.cpp,
tests/TestPropertyManager.h: Add a dummy property manager, and
install it before testing any IG entity classes.
* tests/Areatest.cpp, tests/Charactertest.cpp,
tests/Creatortest.cpp, tests/EntityFactorytest.cpp,
tests/Entitytest.cpp, tests/Foodtest.cpp, tests/IGEntityExerciser.h,
tests/Linetest.cpp, tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp:
Switch to new hasAttr getAttr setAttr method names.
2006-07-03 11:30:02 +00:00
|
|
|
TestPropertyManager::TestPropertyManager()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TestPropertyManager::~TestPropertyManager()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2013-01-13 21:53:59 +00:00
|
|
|
void TestPropertyManager::installPropertyFactory(const std::string & name,
|
|
|
|
|
PropertyKit * factory)
|
|
|
|
|
{
|
|
|
|
|
m_propertyFactories.insert(std::make_pair(name, factory));
|
|
|
|
|
}
|
|
|
|
|
|
2008-09-27 16:38:26 +00:00
|
|
|
PropertyBase * TestPropertyManager::addProperty(const std::string & name,
|
|
|
|
|
int type)
|
2006-07-03 Al Riddoch <alriddoch@zepler.org>
* tests/IGEntityExerciser.h, tests/TestPropertyManager.cpp,
tests/TestPropertyManager.h: Add a dummy property manager, and
install it before testing any IG entity classes.
* tests/Areatest.cpp, tests/Charactertest.cpp,
tests/Creatortest.cpp, tests/EntityFactorytest.cpp,
tests/Entitytest.cpp, tests/Foodtest.cpp, tests/IGEntityExerciser.h,
tests/Linetest.cpp, tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp:
Switch to new hasAttr getAttr setAttr method names.
2006-07-03 11:30:02 +00:00
|
|
|
{
|
2008-09-27 16:38:26 +00:00
|
|
|
PropertyBase * p = 0;
|
2013-01-13 21:53:59 +00:00
|
|
|
PropertyFactoryDict::const_iterator I = m_propertyFactories.find(name);
|
|
|
|
|
if (I == m_propertyFactories.end()) {
|
|
|
|
|
switch (type) {
|
|
|
|
|
case Element::TYPE_INT:
|
|
|
|
|
p = new Property<int>;
|
|
|
|
|
break;
|
|
|
|
|
case Element::TYPE_FLOAT:
|
|
|
|
|
p = new Property<double>;
|
|
|
|
|
break;
|
|
|
|
|
case Element::TYPE_STRING:
|
|
|
|
|
p = new Property<std::string>;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
p = new SoftProperty;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
p = I->second->newProperty();
|
2008-09-27 16:38:26 +00:00
|
|
|
}
|
|
|
|
|
return p;
|
2006-07-03 Al Riddoch <alriddoch@zepler.org>
* tests/IGEntityExerciser.h, tests/TestPropertyManager.cpp,
tests/TestPropertyManager.h: Add a dummy property manager, and
install it before testing any IG entity classes.
* tests/Areatest.cpp, tests/Charactertest.cpp,
tests/Creatortest.cpp, tests/EntityFactorytest.cpp,
tests/Entitytest.cpp, tests/Foodtest.cpp, tests/IGEntityExerciser.h,
tests/Linetest.cpp, tests/Planttest.cpp, tests/Stackabletest.cpp,
tests/Structuretest.cpp, tests/Thingtest.cpp, tests/Worldtest.cpp:
Switch to new hasAttr getAttr setAttr method names.
2006-07-03 11:30:02 +00:00
|
|
|
}
|