sanity check to ensure .swap() isn't being called for no reason

This commit is contained in:
Llywelwyn 2023-09-26 22:11:48 +01:00
parent ae9f6b6ac6
commit 0d230c7721

View file

@ -81,7 +81,7 @@ impl SpriteInfo {
} }
} }
#[derive(Component, ConvertSaveload, Clone)] #[derive(Debug, Component, ConvertSaveload, Clone)]
pub struct Renderable { pub struct Renderable {
pub glyph: FontCharType, pub glyph: FontCharType,
pub sprite: Option<SpriteInfo>, pub sprite: Option<SpriteInfo>,
@ -99,11 +99,20 @@ pub struct Renderable {
impl Renderable { impl Renderable {
pub fn swap(&mut self) { pub fn swap(&mut self) {
let mut did_something = false;
if let Some(alt_render_order) = &mut self.alt_render_order { if let Some(alt_render_order) = &mut self.alt_render_order {
std::mem::swap(&mut self.render_order, alt_render_order); std::mem::swap(&mut self.render_order, alt_render_order);
did_something = true;
} }
if let Some(sprite) = &mut self.sprite { if let Some(sprite) = &mut self.sprite {
*sprite = sprite.swap(); *sprite = sprite.swap();
did_something = true;
}
if !did_something {
unreachable!(
".swap() was called on a Renderable component, but nothing happened. {:?}",
self
);
} }
} }
} }