added throwing
This commit is contained in:
18
src/level.cc
18
src/level.cc
@ -17,7 +17,6 @@ level::level(character *player, RNG *rng, const feature enabled_features):
|
||||
for (size_t i = 0; i < tiles.size(); ++i)
|
||||
remove_from_list(tiles[i], map.get_up_stairs());
|
||||
|
||||
|
||||
gen_potions(rng, tiles);
|
||||
gen_gold(rng, tiles);
|
||||
gen_enemies(rng, tiles);
|
||||
@ -65,11 +64,11 @@ void level::gen_enemies(RNG *rng, std::vector<position_list> &tiles) {
|
||||
for (size_t i = 0; i < dhoard.size(); ++i) {
|
||||
position_list spots;
|
||||
|
||||
for (int i = 0; i < DIRECTION_CNT; ++i) {
|
||||
position tmp = dhoard[i].pos + MOVE[i];
|
||||
for (int dir = 0; dir < DIRECTION_CNT; ++dir) {
|
||||
position tmp = dhoard[i].pos + MOVE[dir];
|
||||
|
||||
if (map.which_room(tmp) != -1)
|
||||
spots.push_back(dhoard[i].pos + MOVE[i]);
|
||||
spots.push_back(dhoard[i].pos + MOVE[dir]);
|
||||
}
|
||||
|
||||
auto pos = spots.size() ? rng->get_rand_in_vector(spots) :
|
||||
@ -269,3 +268,14 @@ void level::erase_enemy(character *ch) {
|
||||
pelist.erase(pelist.begin() + i);
|
||||
}
|
||||
}
|
||||
|
||||
size_t level::what_is_at(const position &pos) const {
|
||||
if (!map.is_available(pos))
|
||||
return WHAT_WALL;
|
||||
|
||||
for (size_t i = 0; i < plist.size(); ++i)
|
||||
if (plist[i]->get_pos() == pos)
|
||||
return WHAT_ENEMY | i;
|
||||
|
||||
return WHAT_SPACE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user