add null check in _update_particle_data_buffer()

add check to see if p_order is in range for CPUParticles3D::set_draw_order'
This commit is contained in:
Angad Kambli 2021-02-17 20:00:03 +05:30
parent 7f63d6e848
commit c97fffdc59
2 changed files with 3 additions and 0 deletions

View file

@ -152,6 +152,7 @@ float CPUParticles3D::get_speed_scale() const {
} }
void CPUParticles3D::set_draw_order(DrawOrder p_order) { void CPUParticles3D::set_draw_order(DrawOrder p_order) {
ERR_FAIL_INDEX(p_order, DRAW_ORDER_MAX);
draw_order = p_order; draw_order = p_order;
} }
@ -1011,6 +1012,7 @@ void CPUParticles3D::_update_particle_data_buffer() {
sorter.compare.particles = r; sorter.compare.particles = r;
sorter.sort(order, pc); sorter.sort(order, pc);
} else if (draw_order == DRAW_ORDER_VIEW_DEPTH) { } else if (draw_order == DRAW_ORDER_VIEW_DEPTH) {
ERR_FAIL_NULL(get_viewport());
Camera3D *c = get_viewport()->get_camera(); Camera3D *c = get_viewport()->get_camera();
if (c) { if (c) {
Vector3 dir = c->get_global_transform().basis.get_axis(2); //far away to close Vector3 dir = c->get_global_transform().basis.get_axis(2); //far away to close

View file

@ -43,6 +43,7 @@ public:
DRAW_ORDER_INDEX, DRAW_ORDER_INDEX,
DRAW_ORDER_LIFETIME, DRAW_ORDER_LIFETIME,
DRAW_ORDER_VIEW_DEPTH, DRAW_ORDER_VIEW_DEPTH,
DRAW_ORDER_MAX
}; };
enum Parameter { enum Parameter {