summaryrefslogtreecommitdiff
path: root/src/field_effect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/field_effect.c')
-rw-r--r--src/field_effect.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/field_effect.c b/src/field_effect.c
index 4cab3cff8..4ccf50b0b 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -3666,8 +3666,16 @@ static void Task_MoveDeoxysRock_Step(u8 taskId)
case 0:
data[4] = sprite->pos1.x << 4;
data[5] = sprite->pos1.y << 4;
- data[6] = ((data[2] << 4) - data[4]) / data[8];
- data[7] = ((data[3] << 4) - data[5]) / data[8];
+
+ // UB: Possible divide by zero
+ #ifdef UBFIX
+ #define DIVISOR (data[8] ? data[8] : 1);
+ #else
+ #define DIVISOR (data[8])
+ #endif
+
+ data[6] = ((data[2] << 4) - data[4]) / DIVISOR;
+ data[7] = ((data[3] << 4) - data[5]) / DIVISOR;
data[0]++;
// fallthrough
case 1: