Some panics to unreachable!, better error msging
This commit is contained in:
parent
ae8f0d15a0
commit
23a42bab80
16 changed files with 19 additions and 19 deletions
|
|
@ -75,7 +75,7 @@ impl AreaStartingPosition {
|
|||
}
|
||||
}
|
||||
if available_floors.is_empty() {
|
||||
panic!("No valid floors to start on");
|
||||
unreachable!("No valid floors to start on.");
|
||||
}
|
||||
|
||||
available_floors.sort_by(|a, b| a.1.partial_cmp(&b.1).unwrap());
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ impl RoadExit {
|
|||
}
|
||||
}
|
||||
if available_floors.is_empty() {
|
||||
panic!("No valid floors to start on.");
|
||||
unreachable!("No valid floors to start on.");
|
||||
}
|
||||
available_floors.sort_by(|a, b| a.1.partial_cmp(&b.1).unwrap());
|
||||
let end_x = (available_floors[0].0 as i32) % build_data.map.width;
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ impl BuilderChain {
|
|||
None => {
|
||||
self.starter = Some(starter);
|
||||
}
|
||||
Some(_) => panic!("You can only have one starting builder."),
|
||||
Some(_) => unreachable!("You can only have one starting builder."),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -147,7 +147,7 @@ impl BuilderChain {
|
|||
|
||||
pub fn build_map(&mut self, rng: &mut RandomNumberGenerator) {
|
||||
match &mut self.starter {
|
||||
None => panic!("Cannot run a map builder chain without a starting build system"),
|
||||
None => unreachable!("Cannot run a map builder chain without a starting build system"),
|
||||
Some(starter) => {
|
||||
// Build the starting map
|
||||
starter.build_map(rng, &mut self.build_data);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ impl RoomBasedSpawner {
|
|||
);
|
||||
}
|
||||
} else {
|
||||
panic!("RoomBasedSpawner only works after rooms have been created");
|
||||
unreachable!("RoomBasedSpawner tried to run without any rooms.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ impl RoomBasedStairs {
|
|||
build_data.map.tiles[stairs_idx] = TileType::DownStair;
|
||||
build_data.take_snapshot();
|
||||
} else {
|
||||
panic!("RoomBasedStairs only works after rooms have been created");
|
||||
unreachable!("RoomBasedStairs tried to run without any rooms.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ impl RoomBasedStartingPosition {
|
|||
let start_pos = rooms[0].center();
|
||||
build_data.starting_position = Some(Position { x: start_pos.x, y: start_pos.y });
|
||||
} else {
|
||||
panic!("RoomBasedStartingPosition only works after rooms have been created");
|
||||
unreachable!("RoomBasedStartingPosition tried to run without any rooms.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ impl RoomCornerRounder {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("RoomCornerRounding requires a builder with rooms.");
|
||||
unreachable!("RoomCornerRounding tried to run without any rooms.");
|
||||
}
|
||||
|
||||
for room in rooms.iter() {
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ impl RoomDrawer {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("RoomDrawer require a builder with rooms");
|
||||
unreachable!("RoomDrawer tried to run without any rooms.");
|
||||
}
|
||||
|
||||
for room in rooms.iter() {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ impl RoomExploder {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("RoomExploder requires a builder with rooms.");
|
||||
unreachable!("RoomExploder tried to run without any rooms.");
|
||||
}
|
||||
for room in rooms.iter() {
|
||||
let start = room.center();
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ impl ThemeRooms {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("RoomCornerRounding requires a builder with rooms.");
|
||||
unreachable!("RoomCornerRounding tried to run without any rooms.");
|
||||
}
|
||||
|
||||
let count = roll_until_fail(rng, self.percent);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ impl BresenhamCorridors {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("BresenhamCorridors require a builder with room structures");
|
||||
unreachable!("BresenhamCorridors tried to run without any rooms.");
|
||||
}
|
||||
|
||||
let mut connected: HashSet<usize> = HashSet::new();
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ impl BspCorridors {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("BSP Corridors require a builder with room structures");
|
||||
unreachable!("BSP Corridors tried to run without any rooms.");
|
||||
}
|
||||
|
||||
let mut corridors: Vec<Vec<usize>> = Vec::new();
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ impl DoglegCorridors {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("DoglegCorridors require a builder with rooms.");
|
||||
unreachable!("DoglegCorridors tried to run without any rooms.");
|
||||
}
|
||||
|
||||
let mut corridors: Vec<Vec<usize>> = Vec::new();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ impl NearestCorridors {
|
|||
if let Some(rooms_builder) = &build_data.rooms {
|
||||
rooms = rooms_builder.clone();
|
||||
} else {
|
||||
panic!("NearestCorridors requires a builder with rooms");
|
||||
unreachable!("NearestCorridors tried to run without any rooms.");
|
||||
}
|
||||
|
||||
let mut connected: HashSet<usize> = HashSet::new();
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ impl CorridorSpawner {
|
|||
);
|
||||
}
|
||||
} else {
|
||||
panic!("CorridorSpawner only works after corridors have been created");
|
||||
unreachable!("CorridorSpawner tried to run without any corridors.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -759,7 +759,7 @@ pub fn table_by_name(raws: &RawMaster, key: &str, optional_difficulty: Option<i3
|
|||
|
||||
fn find_slot_for_equippable_item(tag: &str, raws: &RawMaster) -> EquipmentSlot {
|
||||
if !raws.item_index.contains_key(tag) {
|
||||
panic!("Trying to equip an unknown item: {}", tag);
|
||||
unreachable!("Tried to equip an unknown item: {}", tag);
|
||||
}
|
||||
let item_index = raws.item_index[tag];
|
||||
let item = &raws.raws.items[item_index];
|
||||
|
|
@ -794,7 +794,7 @@ fn find_slot_for_equippable_item(tag: &str, raws: &RawMaster) -> EquipmentSlot {
|
|||
}
|
||||
}
|
||||
}
|
||||
panic!("Trying to equip {}, but it has no slot tag.", tag);
|
||||
unreachable!("Tried to equip {}, but it has no slot tag.", tag);
|
||||
}
|
||||
|
||||
pub fn roll_on_loot_table(
|
||||
|
|
@ -1067,7 +1067,7 @@ fn parse_damage_string(n: &str) -> (DamageType, DiceType) {
|
|||
"fire" => DamageType::Fire,
|
||||
"cold" => DamageType::Cold,
|
||||
"poison" => DamageType::Poison,
|
||||
_ => panic!("Unrecognised damage type in raws: {}", tokens[1]),
|
||||
_ => unreachable!("Unrecognised damage type in raws: {}", tokens[1]),
|
||||
}
|
||||
} else {
|
||||
DamageType::Physical
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue