summaryrefslogtreecommitdiffstats
path: root/scene/3d/cpu_particles.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-01-16 10:59:01 +0100
committerRémi Verschelde <rverschelde@gmail.com>2020-01-16 11:08:51 +0100
commit1de633205f232bf5f4f4b17e6087d8e4b8e4ebee (patch)
tree30ef344f179a4beb7b571d71791e4e9b39d7ae5f /scene/3d/cpu_particles.cpp
parent3af0400a32a2f81aad0b56940af0d6a92b6ffc92 (diff)
downloadredot-engine-1de633205f232bf5f4f4b17e6087d8e4b8e4ebee.tar.gz
Validate input in (CPU)Particles set_emission_shape()
Fixes #29777. Co-authored-by: Cameron Reikes <cameronreikes@gmail.com>
Diffstat (limited to 'scene/3d/cpu_particles.cpp')
-rw-r--r--scene/3d/cpu_particles.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/scene/3d/cpu_particles.cpp b/scene/3d/cpu_particles.cpp
index 0ac424b09e..aa7a413548 100644
--- a/scene/3d/cpu_particles.cpp
+++ b/scene/3d/cpu_particles.cpp
@@ -405,7 +405,7 @@ bool CPUParticles::get_particle_flag(Flags p_flag) const {
}
void CPUParticles::set_emission_shape(EmissionShape p_shape) {
-
+ ERR_FAIL_INDEX(p_shape, EMISSION_SHAPE_MAX);
emission_shape = p_shape;
}
@@ -784,6 +784,9 @@ void CPUParticles::_particles_process(float p_delta) {
p.base_color = emission_colors.get(random_idx);
}
} break;
+ case EMISSION_SHAPE_MAX: { // Max value for validity check.
+ break;
+ }
}
if (!local_coords) {
@@ -1488,6 +1491,7 @@ void CPUParticles::_bind_methods() {
BIND_ENUM_CONSTANT(EMISSION_SHAPE_BOX);
BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINTS);
BIND_ENUM_CONSTANT(EMISSION_SHAPE_DIRECTED_POINTS);
+ BIND_ENUM_CONSTANT(EMISSION_SHAPE_MAX);
}
CPUParticles::CPUParticles() {