diff --git a/src/definition/AtmosphereDefinition.cpp b/src/definition/AtmosphereDefinition.cpp index 18ecb79..1215554 100644 --- a/src/definition/AtmosphereDefinition.cpp +++ b/src/definition/AtmosphereDefinition.cpp @@ -61,8 +61,7 @@ void AtmosphereDefinition::load(PackStream *stream) { void AtmosphereDefinition::copy(DefinitionNode *_destination) const { DefinitionNode::copy(_destination); - AtmosphereDefinition *destination = static_cast(_destination); - if (destination) { + if (auto destination = dynamic_cast(_destination)) { destination->model = model; destination->sun_color = sun_color; destination->dome_lighting = dome_lighting; diff --git a/src/definition/NoiseNode.cpp b/src/definition/NoiseNode.cpp index 5105476..309e9f1 100644 --- a/src/definition/NoiseNode.cpp +++ b/src/definition/NoiseNode.cpp @@ -35,8 +35,7 @@ void NoiseNode::load(PackStream *stream) { void NoiseNode::copy(DefinitionNode *destination) const { if (destination->getTypeName() == getTypeName()) { - auto tdestination = static_cast(destination); - if (tdestination) { + if (auto tdestination = dynamic_cast(destination)) { noise->copy(tdestination->noise); } } else { diff --git a/src/definition/TerrainDefinition.cpp b/src/definition/TerrainDefinition.cpp index 0751828..cc316b4 100644 --- a/src/definition/TerrainDefinition.cpp +++ b/src/definition/TerrainDefinition.cpp @@ -33,7 +33,7 @@ void TerrainDefinition::validate() { } void TerrainDefinition::copy(DefinitionNode *_destination) const { - if (auto destination = static_cast(_destination)) { + if (auto destination = dynamic_cast(_destination)) { destination->shadow_smoothing = shadow_smoothing; height_map->copy(destination->height_map); diff --git a/src/definition/TextureLayerDefinition.cpp b/src/definition/TextureLayerDefinition.cpp index f43c9bc..6fb02bc 100644 --- a/src/definition/TextureLayerDefinition.cpp +++ b/src/definition/TextureLayerDefinition.cpp @@ -43,7 +43,7 @@ void TextureLayerDefinition::validate() { void TextureLayerDefinition::copy(DefinitionNode *destination) const { DefinitionNode::copy(destination); - if (auto tex_destination = static_cast(destination)) { + if (auto tex_destination = dynamic_cast(destination)) { terrain_zone->copy(tex_destination->terrain_zone); *tex_destination->material = *material; diff --git a/src/definition/WaterDefinition.cpp b/src/definition/WaterDefinition.cpp index 0f13b5d..f61f9f2 100644 --- a/src/definition/WaterDefinition.cpp +++ b/src/definition/WaterDefinition.cpp @@ -77,7 +77,7 @@ void WaterDefinition::load(PackStream *stream) { void WaterDefinition::copy(DefinitionNode *_destination) const { DefinitionNode::copy(_destination); - if (auto destination = static_cast(_destination)) { + if (auto destination = dynamic_cast(_destination)) { *destination->material = *material; destination->transparency_depth = transparency_depth; destination->transparency = transparency; diff --git a/src/definition/Zone.cpp b/src/definition/Zone.cpp index dfa892a..e3624e7 100644 --- a/src/definition/Zone.cpp +++ b/src/definition/Zone.cpp @@ -38,7 +38,7 @@ void Zone::load(PackStream *stream) { } void Zone::copy(DefinitionNode *_destination) const { - if (auto destination = static_cast(_destination)) { + if (auto destination = dynamic_cast(_destination)) { destination->absolute_height = absolute_height; destination->relative_height_min = relative_height_min; destination->relative_height_middle = relative_height_middle; diff --git a/src/interface/modeler/BaseModelerTool.cpp b/src/interface/modeler/BaseModelerTool.cpp index 51d006d..8273cc1 100644 --- a/src/interface/modeler/BaseModelerTool.cpp +++ b/src/interface/modeler/BaseModelerTool.cpp @@ -32,8 +32,7 @@ void BaseModelerTool::destroy() { } void BaseModelerTool::addIntBinding(const string &object, const string &property, const string &path, bool monitor) { - auto node = static_cast(ui->getScenery()->findByPath(path)); - if (node) { + if (auto node = dynamic_cast(ui->getScenery()->findByPath(path))) { impl->int_bindings.push_back(make_unique(ui, object, property, node)); if (monitor) { @@ -45,8 +44,7 @@ void BaseModelerTool::addIntBinding(const string &object, const string &property } void BaseModelerTool::addFloatBinding(const string &object, const string &property, const string &path, bool monitor) { - auto node = static_cast(ui->getScenery()->findByPath(path)); - if (node) { + if (auto node = dynamic_cast(ui->getScenery()->findByPath(path))) { impl->float_bindings.push_back(make_unique(ui, object, property, node)); if (monitor) { diff --git a/src/render/software/MoonRenderer.cpp b/src/render/software/MoonRenderer.cpp index 97899ef..c732abe 100644 --- a/src/render/software/MoonRenderer.cpp +++ b/src/render/software/MoonRenderer.cpp @@ -25,7 +25,7 @@ MoonRenderer::~MoonRenderer() { } void MoonRenderer::nodeChanged(const DefinitionNode *, const DefinitionDiff *, const DefinitionNode *parent) { - if (auto moon_node = static_cast(parent)) { + if (auto moon_node = dynamic_cast(parent)) { moon_node->copy(&impl->definition); } }