@@ 447,11 447,15 @@ particle_t* update_sand(uint8_t x, uint8_t y) {
get_particle_material_id(get_particle(x, y + 1)) == MATERIAL_WATER_ID) {
new_position.y = y + 1;
} else if (get_particle_material_id(get_particle(x - 1, y + 1)) == MATERIAL_AIR_ID &&
- get_particle_material_id(get_particle(x - 1, y)) == MATERIAL_AIR_ID) {
+ get_particle_material_id(get_particle(x - 1, y)) == MATERIAL_AIR_ID &&
+ x > 0
+ ) {
new_position.x = x - 1;
new_position.y = y + 1;
} else if (get_particle_material_id(get_particle(x + 1, y + 1)) == MATERIAL_AIR_ID &&
- get_particle_material_id(get_particle(x + 1, y)) == MATERIAL_AIR_ID) {
+ get_particle_material_id(get_particle(x + 1, y)) == MATERIAL_AIR_ID &&
+ x < CANVAS_WIDTH - 1
+ ) {
new_position.x = x + 1;
new_position.y = y + 1;
}