示例#1
0
void Quest::load(Json::Value& questTree)
{
    name = questTree[NAME_ATTRIBUTE].asString();
    Json::Value& descriptionElement = questTree[DESCRIPTION_ELEMENT];
    description = descriptionElement.isString() ? descriptionElement.asString() : "";

    completed = questTree[COMPLETED_ATTRIBUTE].asBool();
    optional = questTree[OPTIONAL_ATTRIBUTE].asBool();

    Json::Value& subquestNode = questTree[QUEST_ELEMENT];
    for(Json::Value::iterator iter = subquestNode.begin(); iter != subquestNode.end(); ++iter)
    {
        Quest* subquest = new Quest(*iter);
        subquests[subquest->getName()] = subquest;
    }
}
	void JournalWindow::selectQuest(CEGUI::ListboxItem* item)
	{
		if (item == NULL)
		{
			mQuestDescription->setText("");
			mQuestState->setText("");
			mQuestTitle->setText("");
		}
		else
		{
			Quest* quest = static_cast<Quest*>(item->getUserData());

			mQuestState->setText(quest->getStateName());
			mQuestTitle->setText(quest->getName());
			mQuestDescription->setText(quest->getDescription());
		}
	}