string CreatureEditor::edit(vector<string> args) { if(args.size() < 2) { return "What do you want to edit?"; } string editNoun = args[1]; toLower(&editNoun); if(editNoun == STR_NAME) { return set(args); } else if(editNoun == STR_DESCRIPTION || editNoun == STR_DESC) { TextEditor ed; creature->description = ed.edit("Editing Description For Creature:"+creature->getPrimaryName(),creature->description); clearWindows(); resetWindows(); return ""; } else { return "I don't know how to edit that"; } }
string RoomEditor::edit(vector<string> args) { if(args.size() < 2) { return "What do you want to edit?"; } string editNoun = args[1]; toLower(&editNoun); if(editNoun == STR_NAME) { return set(args); } else if(editNoun == STR_DESCRIPTION || editNoun == STR_DESC) { TextEditor ed; room->description = ed.edit("Description For Room:"+room->getPrimaryName(),room->description); } else if(editNoun == STR_OBJECT) { if(args.size() <3) { return "Which object do you want to edit?"; } string objStr = join(2,args," "); DungeonObject *o = (DungeonObject*)extractEntity(&room->objects,&objStr); if(o != nullptr) { ObjectEditor ed; ed.load(o); } else { return "I don't see that here."; } } else if(editNoun == STR_CREATURE) { if(args.size() <3) { return "Which creature do you want to edit?"; } string creatureStr = join(2,args," "); DungeonCreature *c = (DungeonCreature*)extractEntity(&room->creatures,&creatureStr); if(c != nullptr) { CreatureEditor ed; ed.load(c); } else { return "I don't see that here."; } } else if(editNoun == STR_EXIT) { if(args.size() <3) { return "Which exit do you want to edit?"; } string exitStr = join(2,args," "); DungeonExit *e = (DungeonExit*)extractEntity(&room->exits,&exitStr); if(e != nullptr) { ExitEditor ed; DungeonRoom* newRoom = ed.load(e); if(newRoom != nullptr) { room = newRoom; } } else { return "I don't see that here."; } } else { return "I don't know how to edit that"; } clearWindows(); resetWindows(); return ""; }