diff options
Diffstat (limited to 'src/field_effect.c')
-rw-r--r-- | src/field_effect.c | 12 |
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: |