fixed:
dragon generation breaking the game seed validation wrong
This commit is contained in:
20
src/level.cc
20
src/level.cc
@ -72,11 +72,11 @@ void level::gen_enemies(RNG *rng, std::vector<position_list> &tiles) {
|
||||
spots.push_back(dhoard[i].pos + MOVE[i]);
|
||||
}
|
||||
|
||||
pelist.push_back(nullptr);
|
||||
auto pos = rng->get_rand_in_vector(spots);
|
||||
new_dragon(rng, pelist[i], pos,
|
||||
dhoard[i].pos, enabled_features,
|
||||
map.which_room(dhoard[i].pos));
|
||||
auto pos = spots.size() ? rng->get_rand_in_vector(spots) :
|
||||
dhoard[i].pos;
|
||||
pelist.push_back(new_dragon(rng, pos, dhoard[i].pos,
|
||||
enabled_features,
|
||||
map.which_room(dhoard[i].pos)));
|
||||
int room = map.which_room(pos);
|
||||
remove_from_list(tiles[room], pos);
|
||||
|
||||
@ -88,9 +88,9 @@ void level::gen_enemies(RNG *rng, std::vector<position_list> &tiles) {
|
||||
|
||||
|
||||
for (int i = dhoard.size(); i < cnt; ++i) {
|
||||
pelist.push_back(nullptr);
|
||||
auto p = get_rand_pos(rng, tiles);
|
||||
new_enemy(rng, pelist[i], p, enabled_features, map.which_room(p));
|
||||
pelist.push_back(new_enemy(rng, p, enabled_features,
|
||||
map.which_room(p)));
|
||||
elist.push_back(pelist[i].get());
|
||||
}
|
||||
}
|
||||
@ -136,10 +136,8 @@ void level::gen_potions(RNG *rng, std::vector<position_list> &tiles) {
|
||||
pplist.reserve(cnt);
|
||||
|
||||
for (int i = 0; i < cnt; ++i) {
|
||||
pplist.push_back(nullptr);
|
||||
new_potion(pplist[i],
|
||||
(potion_type)rng->rand_under(max_type),
|
||||
get_rand_pos(rng, tiles));
|
||||
pplist.push_back(new_potion((potion_type)rng->rand_under(max_type),
|
||||
get_rand_pos(rng, tiles)));
|
||||
plist.push_back(pplist[i].get());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user