Esempio n. 1
0
bool u16_get_experience_i12(uint16_t* field, uint16_t inc_xp)
{
	int integer;
	
	integer = fxptoi12(*field);
	if (*field + inc_xp < 65536) {
		*field += inc_xp;
	} else {
		*field = 65535;
	}
	return (fxptoi12(*field) > integer)? true: false;
}
Esempio n. 2
0
tduel::tduel(hero& left, hero& right)
	: left_(left)
	, right_(right)
	, turn_(0)
	, endturn_(NULL)
	, lskill0_(NULL)
	, lskill1_(NULL)
	, hp_(TOTAL_HP / 2)
	, finished_(false)
{
	int larger_force, force_distance;

	setting_[0].force_ = fxptoi9(left.force_);
	setting_[1].force_ = fxptoi9(right.force_);
	
	if (setting_[0].force_ >= setting_[1].force_) {
		larger_force = 0;
		force_distance = setting_[0].force_ - setting_[1].force_;
	} else {
		larger_force = 1;
		force_distance = setting_[1].force_ - setting_[0].force_;
	}

	setting_[larger_force].count_ = MAX_CARDS;
	setting_[larger_force].min_point_ = LARGER_MIN_POINT;
	setting_[larger_force].max_point_ = LARGER_MAX_POINT;

	setting* t = setting_ + (larger_force ^ 1);
	if (force_distance == 0) {
		t->count_ = MAX_CARDS;
		t->min_point_ = LARGER_MIN_POINT;
		t->max_point_ = LARGER_MAX_POINT;
	} else {
		t->count_ = std::max(MIN_CARDS, MAX_CARDS - force_distance / 5);
		t->min_point_ = std::max(SMALLER_MIN_POINT, LARGER_MIN_POINT - (force_distance + 4) / 5);
		t->max_point_ = std::max(SMALLER_MAX_POINT, LARGER_MAX_POINT - (force_distance + 4) / 5);
	}

	for (int index = 0; index < 2; index ++) {
		if (index == 0) {
			setting_[index].skill_ = fxptoi12(left.skill_[hero_skill_hero]);
		} else {
			setting_[index].skill_ = fxptoi12(right.skill_[hero_skill_hero]);
		}
		if (!setting_[index].skill_) {
			setting_[index].skill_ = 1;
		}
		setting_[index].deadfight_ = false;
		setting_[index].fightback_ = false;
	}
}
Esempio n. 3
0
void set_hero(const hero_map& heros, hero& h)
{
	config* ptr = NULL;
	if (config& cfg = prefs.child("hero")) {
		ptr = &cfg;
	} else {
		ptr = &prefs.add_child("hero");
	}
	config& cfg = *ptr;
	std::stringstream str;

	cfg["name"] = h.name();
	cfg["surname"] = h.surname();
	cfg["biography"] = h.biography2(heros);

	cfg["leadership"] = fxptoi9(h.leadership_);
	cfg["force"] = fxptoi9(h.force_);
	cfg["intellect"] = fxptoi9(h.intellect_);
	cfg["spirit"] = fxptoi9(h.spirit_);
	cfg["charm"] = fxptoi9(h.charm_);

	cfg["gender"] = h.gender_;
	cfg["image"] = h.image_;

	for (int i = 0; i < HEROS_MAX_ARMS; i ++) {
		str.str("");
		str << "arms" << i;
		cfg[str.str()] = fxptoi12(h.arms_[i]);
	}
	for (int i = 0; i < HEROS_MAX_SKILL; i ++) {
		str.str("");
		str << "skill" << i;
		cfg[str.str()] = fxptoi12(h.skill_[i]);
	}

	cfg["base_catalog"] = h.base_catalog_;

	cfg["feature"] = h.feature_;
	cfg["side_feature"] = h.side_feature_;

	cfg["tactic"] = h.tactic_;
	cfg["utype"] = h.utype_;
	cfg["character"] = h.character_;

	write_preferences();
}
Esempio n. 4
0
std::string hero::adaptability_str2(uint16_t adaptability)
{
	char text[_MAX_PATH];
	sprintf(text, "%s%u", HERO_PREFIX_STR_ADAPTABILITY, fxptoi12(adaptability));
	return dgettext("wesnoth-hero", text);
}