#include "inc/sms.h" int doublejumped; int preva; int OnUpdate(MarDirector* director) { int (*GameUpdate)(MarDirector* director) = GetObjectFunction(director, Director_GameUpdate); //Update MarioActor* mario = (MarioActor*)*gpMarioAddress; //Check if mario is in the air if (mario->status & STATE_AIRBORN) { //Check if mario has a double jump available and also if the user just pressed the A button this frame if (!doublejumped && ControllerOne->buttons & PRESS_A && !preva) { doublejumped = 1; **gpMarioSpeedY = 60.0f; } } else //if mario isn't in the air give him another double jump to use. doublejumped = 0; //Save the current A press so it can be used to check if its pressed next frame (think of this as a 0.5 A press) preva = ControllerOne->buttons & PRESS_A; return GameUpdate(director); }