diff options
Diffstat (limited to 'gflib/sprite.c')
-rw-r--r-- | gflib/sprite.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gflib/sprite.c b/gflib/sprite.c index c7e3d09a3..e36c53721 100644 --- a/gflib/sprite.c +++ b/gflib/sprite.c @@ -1319,8 +1319,18 @@ void ApplyAffineAnimFrameRelativeAndUpdateMatrix(u8 matrixNum, struct AffineAnim s16 ConvertScaleParam(s16 scale) { + s16 ret; s32 val = 0x10000; - return val / scale; + // UB: possible division by zero +#ifdef UBFIX + if (scale != 0) + ret = val / scale; + else + ret = 0; +#else + ret = val / scale; +#endif //UBFIX + return ret; } void GetAffineAnimFrame(u8 matrixNum, struct Sprite *sprite, struct AffineAnimFrameCmd *frameCmd) |