diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-12-12 23:28:01 -0500 |
---|---|---|
committer | GriffinR <griffin.g.richards@gmail.com> | 2020-12-12 23:30:51 -0500 |
commit | 81d95b9325ed2526ce638744408f453a8169abb4 (patch) | |
tree | e0f7100b6b35156f0868df537b2e3a149061dd52 /src/field_effect.c | |
parent | ba3021db64bd9518f324c1ad89e63e90278f0eb4 (diff) |
Use BUGFIX for some inline fixes
Diffstat (limited to 'src/field_effect.c')
-rw-r--r-- | src/field_effect.c | 13 |
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) |