pick race dialog: compute xp correctly...

This commit is contained in:
ALONSO Laurent
2021-10-02 16:50:28 +02:00
committed by Celtic Minstrel
parent 3dd3d3c1da
commit 42d64cc733

View File

@@ -146,13 +146,14 @@ struct sTraitsState {
}
}
void save(cUniverse &univ) const {
for (int i=0; i<6; ++i) {
auto &pc=univ.party[i];
pc.race=races[i];
for (int t=0; t<17; ++t) {
eTrait trait = eTrait(t);
pc.traits[trait]=traits[i][t];
}
for (short i=0; i<6; ++i)
save(i, univ.party[i]);
}
void save(short i, cPlayer &player) const {
player.race=races[i];
for (int t=0; t<17; ++t) {
eTrait trait = eTrait(t);
player.traits[trait]=traits[i][t];
}
}
short pc_num;
@@ -177,8 +178,9 @@ static void display_traits_graphics(cDialog& me, sTraitsState const &state) {
std::string id = "bad" + std::to_string(i + 1);
dynamic_cast<cLed&>(me[id]).setState(state.traits[pc_num][i+10] ? led_red : led_off);
}
me["xp"].setTextToNum(pc.get_tnl());
cPlayer dumpPlayer(pc);
state.save(pc_num, dumpPlayer);
me["xp"].setTextToNum(dumpPlayer.get_tnl());
}
static bool pick_race_select_led(cDialog& me, sTraitsState &state, std::string item_hit, bool, const short store_trait_mode) {