diff options
Diffstat (limited to 'pokemodr/PokeModTreeItem.cpp')
| -rw-r--r-- | pokemodr/PokeModTreeItem.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/pokemodr/PokeModTreeItem.cpp b/pokemodr/PokeModTreeItem.cpp index 35ad701d..e44e14c6 100644 --- a/pokemodr/PokeModTreeItem.cpp +++ b/pokemodr/PokeModTreeItem.cpp @@ -459,7 +459,7 @@ void PokeModTreeItem::makeMenu(const QPoint& pos) { } -Object* PokeModTreeItem::makeCopy() +Object* PokeModTreeItem::copy() { if (obj) { @@ -501,3 +501,47 @@ Object* PokeModTreeItem::makeCopy() } return NULL; } + +Object* PokeModTreeItem::cut() +{ + // TODO: actually cut the item + if (obj) + { + QString name(obj->getClassName()); +#define IF_IS_CLASS(class) if (name == #class) return new ::class(obj->getPokemod(), *static_cast< ::class* >(obj), obj->getId()); + IF_IS_CLASS(Ability) + else IF_IS_CLASS(AbilityEffect) + else IF_IS_CLASS(Author) + else IF_IS_CLASS(Badge) + else IF_IS_CLASS(CoinList) + else IF_IS_CLASS(CoinListObject) + else IF_IS_CLASS(Dialog) + else IF_IS_CLASS(EggGroup) + else IF_IS_CLASS(Item) + else IF_IS_CLASS(ItemEffect) + else IF_IS_CLASS(ItemType) + else IF_IS_CLASS(Map) + else IF_IS_CLASS(MapEffect) + else IF_IS_CLASS(MapTrainer) + else IF_IS_CLASS(MapTrainerTeamMember) + else IF_IS_CLASS(MapWarp) + else IF_IS_CLASS(MapWildList) + else IF_IS_CLASS(MapWildListEncounter) + else IF_IS_CLASS(Move) + else IF_IS_CLASS(MoveEffect) + else IF_IS_CLASS(Nature) + else if (name == "Pokemod") return new Pokemod(*static_cast<Pokemod*>(obj)); + else if (name == "Rules") return new Rules(obj->getPokemod()); + else IF_IS_CLASS(Species) + else IF_IS_CLASS(SpeciesAbility) + else IF_IS_CLASS(SpeciesEvolution) + else IF_IS_CLASS(SpeciesItem) + else IF_IS_CLASS(SpeciesMove) + else IF_IS_CLASS(Store) + else IF_IS_CLASS(Tile) + else IF_IS_CLASS(Time) + else IF_IS_CLASS(Type) +#undef IF_IS_CLASS + } + return NULL; +} |
