summaryrefslogtreecommitdiff
path: root/src/field_effect.c
diff options
context:
space:
mode:
authorluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2020-12-16 14:51:21 -0500
committerluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2020-12-16 14:51:21 -0500
commit34fc9789c9d11464161aabf022eb270597c6778a (patch)
treed7f97e29db99b3983d2d50678dcc250da179d32d /src/field_effect.c
parentcc5db41f30708c1cc2d33a46879c96a9404764a3 (diff)
parent49bdaeb940afc98e3f98b24c9a5afe1bb8d5d86b (diff)
Merge branch 'master' of https://github.com/pret/pokeemerald into rebase-install-md
Diffstat (limited to 'src/field_effect.c')
-rw-r--r--src/field_effect.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/field_effect.c b/src/field_effect.c
index 41f1a899c..5a18557eb 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -3846,7 +3846,6 @@ bool8 FldEff_MoveDeoxysRock(struct Sprite* sprite)
static void Task_MoveDeoxysRock(u8 taskId)
{
- // BUG: Possible divide by zero
s16 *data = gTasks[taskId].data;
struct Sprite *sprite = &gSprites[data[1]];
switch (data[0])
@@ -3854,8 +3853,16 @@ static void Task_MoveDeoxysRock(u8 taskId)
case 0:
data[4] = sprite->pos1.x << 4;
data[5] = sprite->pos1.y << 4;
- data[6] = (data[2] * 16 - data[4]) / data[8];
- data[7] = (data[3] * 16 - 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] * 16 - data[4]) / DIVISOR;
+ data[7] = (data[3] * 16 - data[5]) / DIVISOR;
data[0]++;
case 1:
if (data[8] != 0)