예제 #1
0
CharAlignment::CharAlignment(CharGenChoices &choices, ::Engines::Console *console) :
	CharGenBase(console) {

	_choices  = &choices;
	_loyalty  = 101;
	_goodness = 101;

	load("cg_alignment");

	getEditBox("HelpEdit", true)->setTitle("fnt_galahad14", TalkMan.getString(111));
	getEditBox("HelpEdit", true)->setText("fnt_galahad14", TalkMan.getString(458));

	_buttons = new ButtonsGroup(getEditBox("HelpEdit", true));

	uint textID  = 448;

	_buttons->addButton(getButton("CEButton"), TalkMan.getString(120), TalkMan.getString(textID));
	_buttons->addButton(getButton("CGButton"), TalkMan.getString(118), TalkMan.getString(++textID));
	_buttons->addButton(getButton("CNButton"), TalkMan.getString(119), TalkMan.getString(++textID));
	_buttons->addButton(getButton("LEButton"), TalkMan.getString(114), TalkMan.getString(++textID));
	_buttons->addButton(getButton("LGButton"), TalkMan.getString(112), TalkMan.getString(++textID));
	_buttons->addButton(getButton("LNButton"), TalkMan.getString(113), TalkMan.getString(++textID));
	_buttons->addButton(getButton("NEButton"), TalkMan.getString(117), TalkMan.getString(++textID));
	_buttons->addButton(getButton("NGButton"), TalkMan.getString(115), TalkMan.getString(++textID));
	_buttons->addButton(getButton("TNButton"), TalkMan.getString(116), TalkMan.getString(++textID));

	getButton("OkButton", true)->setDisabled(true);

	//TODO Recommend button for alignment.
	getWidget("RecommendButton", true)->setDisabled(true);
}
예제 #2
0
파일: charschool.cpp 프로젝트: kevL/xoreos
void CharSchool::reset() {
	_buttons->setActive(getButton("General", true));

	getEditBox("HelpBox", true)->setTitle("fnt_galahad14", TalkMan.getString(381));
	getEditBox("HelpBox", true)->setText("fnt_galahad14", TalkMan.getString(381), 1.0f);

	_choices->setSpellSchool(UINT8_MAX);
}
예제 #3
0
void CharRace::reset() {
	_buttons->setActive(getButton("HumanButton", true));

	getEditBox("HelpBox", true)->setTitle("fnt_galahad14", TalkMan.getString(481));
	getEditBox("HelpBox", true)->setText("fnt_galahad14", TalkMan.getString(485), 1.0f);

	// Set human as default race.
	_choices->setCharRace(6);
}
예제 #4
0
void CharAlignment::reset() {
	getEditBox("HelpEdit", true)->setTitle("fnt_galahad14", TalkMan.getString(111));
	getEditBox("HelpEdit", true)->setText("fnt_galahad14", TalkMan.getString(458));

	getButton("OkButton", true)->setDisabled(true);
	_buttons->setAllInactive();
	_goodness = 101;
	_loyalty = 101;
	_choices->setCharAlign(_goodness, _loyalty);
}
예제 #5
0
void CharDomain::updateChosenDomains() {
	float pX, pY, pZ;
	getEditBox("DomainDesc")->getPosition(pX, pY, pZ);
	float nX, nY, nZ;
	for (size_t dom = 0; dom < _chosenDomains.size(); ++dom) {
		getEditBox("DomainDesc")->getNode("domain" + Common::composeString<size_t>(dom + 1))->getPosition(nX, nY, nZ);
		_chosenDomains[dom]->setPosition(nX + pX,nY + pY,nZ + pZ - 100.f);
		_chosenDomains[dom]->show();
	}
}
예제 #6
0
CharSex::CharSex(CharGenChoices &choices, ::Engines::Console *console) : CharGenBase(console) {
	_choices = &choices;
	load("cg_sex");

	getEditBox("HelpBox", true)->setTitle("fnt_galahad14", TalkMan.getString(203));
	getEditBox("HelpBox", true)->setText("fnt_galahad14", TalkMan.getString(447), 1.0f);

	_buttons.reset(new ButtonsGroup(getEditBox("HelpBox", true)));
	_buttons->addButton(getButton("MaleButton", true), TalkMan.getString(203), TalkMan.getString(199));
	_buttons->addButton(getButton("FemaleButton", true), TalkMan.getString(203), TalkMan.getString(200));

	getButton("MaleButton", true)->setPressed(true);
}
예제 #7
0
CharRace::CharRace(CharGenChoices &choices, ::Engines::Console *console) : CharGenBase(console) {
	_choices = &choices;
	load("cg_race");

	// TODO Implement subrace.
	getWidget("SubRaceButton", true)->setDisabled(true);

	// Init buttons and helpbox.
	_buttons = new ButtonsGroup(getEditBox("HelpBox", true));

	uint textID = 251;
	uint titleID = 1985;

	_buttons->addButton(getButton("DwarfButton", true),
	                    TalkMan.getString(titleID), TalkMan.getString(textID));
	_buttons->addButton(getButton("ElfButton", true),
	                    TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("GnomeButton", true),
	                    TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("HalflingButton", true),
	                    TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("HalfElfButton", true),
	                    TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("HalfOrcButton", true),
	                    TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("HumanButton", true),
	                    TalkMan.getString(++titleID), TalkMan.getString(++textID));

	reset();
}
예제 #8
0
void CharPackage::createPackageList() {
	_packageListBox->lock();
	_packageListBox->clear();
	_packageListBox->setMode(WidgetListBox::kModeSelectable);

	_helpTexts.clear();
	_packageID.clear();
	_packageNames.clear();

	const Aurora::TwoDAFile &twoda = TwoDAReg.get2DA("packages");
	for (size_t it = 0; it < twoda.getRowCount(); ++it) {
		const Aurora::TwoDARow &row = twoda.getRow(it);
		if (row.getInt("PlayerClass") == 0 || row.getInt("ClassID") != (int) _choices->getClass()
		    || row.getInt("Name") == 0)
			continue;

		_helpTexts.push_back(TalkMan.getString(row.getInt("Description")));
		_packageNames.push_back(TalkMan.getString(row.getInt("Name")));
		WidgetListItemButton *packagetItem = new WidgetListItemButton(*this, "ctl_cg_btn_class", TalkMan.getString(row.getInt("Name")), "");
		_packageListBox->add(packagetItem);

		_packageID.push_back(it);
	}
	_packageListBox->unlock();

	// Set previous choice if any.
	uint32 package = _choices->getPackage();
	if (package == 10000) {
		getEditBox("HelpBox", true)->setTitle("fnt_galahad14", TalkMan.getString(483));
		getEditBox("HelpBox", true)->setText("fnt_galahad14", TalkMan.getString(487));

		_packageListBox->select(0);
		return;
	}

	size_t p = 0;
	for (;p < _packageID.size(); ++p) {
		if (_packageID[p] == package)
			break;
		}

		_packageListBox->select(p);
}
예제 #9
0
void CharPackage::callbackActive(Widget &widget) {
	if (widget.getTag() == "OkButton") {
		_choices->setCharPackage(_packageID[_packageListBox->getSelected()]);

		_returnCode = 2;
		return;
	}

	if (widget.getTag() == "CancelButton") {
		_returnCode = 1;
		return;
		}

	if (widget.getTag() == "ClassListBox") {
		size_t choice = _packageListBox->getSelected();
		getEditBox("HelpBox", true)->setText("fnt_galahad14", _helpTexts[choice]);
		getEditBox("HelpBox", true)->setTitle("fnt_galahad14", _packageNames[choice]);
	}
}
예제 #10
0
void CharDomain::moveDomain(WidgetListItemDomain *item) {
	getEditBox("DomainDesc", true)->setText("fnt_galahad14", item->_description);
	getLabel("DomainName", true)->setText(item->_name);
	// Check if the item belongs to the listbox or not and moves it.
	if (item->_isRight) {
		if (_chosenDomains.size() > 1)
			return;

		_domainListBox->lock();
		_domainListBox->remove(item);
		item->changeArrowDirection();
		_domainListBox->unlock();

		_chosenDomains.push_back(item);
		_domainListBox->addSub(*item);
		for (std::vector<WidgetListItem *>::iterator it = _domainListBox->begin(); it != _domainListBox->end(); ++it) {
			(*it)->addGroupMember(*item);
			item->addGroupMember(**it);
		}

		if (_chosenDomains.size() == 2)
			getButton("OkButton")->setDisabled(false);

	} else {
		_domainListBox->lock();
		_domainListBox->add(item, true);
		item->changeArrowDirection();
		_domainListBox->sortByTag();
		_domainListBox->unlock();

		std::vector<WidgetListItemDomain *>::iterator itItem;
		for (std::vector<WidgetListItemDomain *>::iterator i = _chosenDomains.begin(); i != _chosenDomains.end(); ++i) {
			if (*i == item)
				itItem = i;
		}

		_chosenDomains.erase(itItem);

		if (_chosenDomains.size() < 2)
			getButton("OkButton")->setDisabled(true);
	}

	updateChosenDomains();

	item->activate();
}
예제 #11
0
파일: charschool.cpp 프로젝트: kevL/xoreos
CharSchool::CharSchool(CharGenChoices &choices, Console *console) : CharGenBase(console) {
	_choices = &choices;
	load("cg_school");

	// Init buttons and helpbox.
	_buttons = new ButtonsGroup(getEditBox("HelpBox", true));

	uint32 textID = 10320;
	uint32 titleID = 373;
	_buttons->addButton(getButton("General", true), TalkMan.getString(5633), TalkMan.getString(5634));
	_buttons->addButton(getButton("Abjuration", true), TalkMan.getString(titleID), TalkMan.getString(textID));
	_buttons->addButton(getButton("Conjuration", true), TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("Divination", true), TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("Enchantment", true), TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("Evocation", true), TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("Illusion", true), TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("Necromancy", true), TalkMan.getString(++titleID), TalkMan.getString(++textID));
	_buttons->addButton(getButton("Transmutation", true), TalkMan.getString(++titleID), TalkMan.getString(++textID));

	reset();
}
예제 #12
0
void CharPackage::reset() {
	getEditBox("HelpBox", true)->setTitle("fnt_galahad14", TalkMan.getString(483));
	getEditBox("HelpBox", true)->setText("fnt_galahad14", TalkMan.getString(487));

	_choices->setCharPackage(10000);
}
예제 #13
0
void CharSex::reset() {
	_buttons->setActive(getButton("MaleButton", true));

	getEditBox("HelpBox", true)->setTitle("fnt_galahad14", TalkMan.getString(203));
	getEditBox("HelpBox", true)->setText("fnt_galahad14", TalkMan.getString(447), 1.0f);
}