From 6afed9db7973008e91429d6d2f4feae348d1dad2 Mon Sep 17 00:00:00 2001 From: Berkeley <65060738+tariq-nasheed@users.noreply.github.com> Date: Sat, 3 Feb 2024 13:35:57 -0600 Subject: [PATCH] very silly bug caused by a very silly mistake --- src/hypermania/Objects/Player.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/hypermania/Objects/Player.c b/src/hypermania/Objects/Player.c index 65c9ea7..1f57c6c 100644 --- a/src/hypermania/Objects/Player.c +++ b/src/hypermania/Objects/Player.c @@ -162,23 +162,24 @@ void Player_Update_OVERLOAD() { RSDK_THIS(Player); PlayerExt* ext = (PlayerExt*)GetExtMem(RSDK.GetEntitySlot(self)); - ext->prev_ID = self->characterID; - ext->prev_xvel = self->velocity.x; - void* prev_state = self->state; + if (ext) { + ext->prev_ID = self->characterID; + ext->prev_xvel = self->velocity.x; + ext->prev_state = self->state; + } #if MANIA_USE_PLUS formerCanSuperCB = Player->canSuperCB; Player->canSuperCB = disableSuperPostTransfer; +#endif Mod.Super(Player->classID, SUPER_UPDATE, NULL); +#if MANIA_USE_PLUS if (Player->canSuperCB == disableSuperPostTransfer) { Player->canSuperCB = formerCanSuperCB; } #endif - if (prev_state != self->state) { - ext->prev_state = prev_state; - } - + if (!ext) return; if (self->superState == SUPERSTATE_NONE) { ext->is_hyper = false; return; @@ -319,7 +320,7 @@ void Player_Update_OVERLOAD() { if (((void*)self->state == (void*)Player_State_KnuxGlideLeft && self->left) || ((void*)self->state == (void*)Player_State_KnuxGlideRight && self->right)) { // gliding momentum retention - if (HM_globals->config.GSWburst && prev_state != (void*)Player_State_KnuxGlideLeft && prev_state != (void*)Player_State_KnuxGlideRight) { + if (HM_globals->config.GSWburst && ext->prev_state != (void*)Player_State_KnuxGlideLeft && ext->prev_state != (void*)Player_State_KnuxGlideRight) { EntityCamera* camera = self->camera; if (camera && !Zone->autoScrollSpeed) { self->scrollDelay = 8; @@ -380,9 +381,9 @@ bool32 Player_State_Ground_HOOK(bool32 skippedState) { PlayerExt* ext = (PlayerExt*)GetExtMem(RSDK.GetEntitySlot(self)); #if MANIA_USE_PLUS if (self->characterID == ID_MIGHTY) ext->can_dash = true; - if (self->characterID == ID_SONIC) ext->can_dash = false; ext->glide_timer = 0; #endif + if (self->characterID == ID_SONIC) ext->can_dash = false; return false; }