From 15d657a7be6c5294cc4473c9c947b460b286898c Mon Sep 17 00:00:00 2001 From: MysterD Date: Fri, 4 Mar 2022 20:40:57 -0800 Subject: [PATCH] Fix crash in set_anim_to_frame() --- src/game/mario.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/game/mario.c b/src/game/mario.c index 9ea392444..960c681f6 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -149,17 +149,20 @@ s16 set_mario_anim_with_accel(struct MarioState *m, s32 targetAnimID, s32 accel) * Sets the animation to a specific "next" frame from the frame given. */ void set_anim_to_frame(struct MarioState *m, s16 animFrame) { + if (m == NULL || m->marioObj == NULL) { return; } + struct AnimInfo *animInfo = &m->marioObj->header.gfx.animInfo; struct Animation *curAnim = animInfo->curAnim; + if (animInfo == NULL) { return; } if (animInfo->animAccel) { - if (curAnim->flags & ANIM_FLAG_FORWARD) { + if (curAnim != NULL && curAnim->flags & ANIM_FLAG_FORWARD) { animInfo->animFrameAccelAssist = (animFrame << 0x10) + animInfo->animAccel; } else { animInfo->animFrameAccelAssist = (animFrame << 0x10) - animInfo->animAccel; } } else { - if (curAnim->flags & ANIM_FLAG_FORWARD) { + if (curAnim != NULL && curAnim->flags & ANIM_FLAG_FORWARD) { animInfo->animFrame = animFrame + 1; } else { animInfo->animFrame = animFrame - 1;