Single Jump: Difference between revisions

missed a few common air step actions
No edit summary
(missed a few common air step actions)
 
(11 intermediate revisions by 4 users not shown)
Line 7: Line 7:
|group= Airborne
|group= Airborne
|id= 0x080
|id= 0x080
|into=
|into=Airborne cancels: [[Water Plunge]], [[Squished]], [[Vertical Wind]], non cancel: [[Dive]], [[Jump Kick]], [[Ground Pound]], common air step: [[Feet Stuck In Ground]], [[Hard Backward Ground Kb]], [[Jump Land]], [[Air Hit Wall]], [[Backwards Air Kb]], [[Soft Bonk]], [[Ledge Grab]], [[Start Hanging]], [[Lava Boost]]
|out of=
|out of=(todo) [[Idle]], [[Start Sleeping]], [[Coughing]], [[In Quicksand]], [[Panting]]
|animation= 0x4D
|animation= 0x4D
|related=
|related=
}}
}}
A single jump is an action that can be entered in a variety of ways, including:
A '''single jump''' is an action that can be entered in a variety of ways, including:
* By pressing the A button while in a variety of actions.
* By pressing the A button while in a variety of actions.
* While in [[quicksand]], if Mario attempts to enter the [[Double Jump|double jump]] or [[twirling]] actions he will single jump instead. Doing this with twirling is very complicated and requires the use of the [[Air Throw Landing|air throw landing]] action<ref>https://www.youtube.com/watch?v=wzUEzHk-ioQ</ref>.
* While in [[quicksand]], if Mario attempts to enter the [[Double Jump|double jump]] or [[twirling]] actions he will single jump instead. Doing this with twirling is very complicated and requires the use of the [[Air Throw Landing|air throw landing]] action<ref>https://www.youtube.com/watch?v=wzUEzHk-ioQ</ref>.
== Airborne cancels ==
A variety of "cancels" are checked prior to actually performing any airborne action. These are as follows:<ref>https://github.com/n64decomp/sm64/blob/66018e9f3caaa67399218971d61366cb3f7ba7d7/src/game/mario_actions_airborne.c#L2066</ref>
# If Mario's height is lower than 100 units below the water height: [[Water Plunge]] (see [[Idle#Stationary cancels]])
# If Mario is supposed to be squished, mario_stop_riding_and_holding, [[Squished]]
# If Mario is above vertical wind (and the action allows vertical wind), then [[Vertical Wind]]
# Set quicksand depth to 0
# If (Mario's action is not (flag)invulnerable, twirling, or flying, (and the flag MARIO_UNKNOWN_18 is not there)) ''and'' Mario has fallen more than 1150 units from his peak, play SOUND_MARIO_WAAAOOOW and add the MARIO_UNKNOWN_18 flag
== Transition In ==
''Note: All airborne actions refer to (reference'' <ref>https://github.com/n64decomp/sm64/blob/9921382a68bb0c865e5e45eb594d9c64db59b1af/src/game/mario.c#L776</ref>'') for the "Transition In".''
Generally, when transitioning into the jump action a few things happen to begin the action. This is shared with the [[Hold Jump|hold jump]] action.
# Mario's current animation is stopped.
# Mario's vertical speed is set to 42 + a quarter of the current forward speed.
# If Mario is squished and/or has a quicksand depth more than 1, the vertical speed is halved.
# Mario's forward speed is multiplied by "0.8".
Then, some more general things occur. These happen to all airborne actions.
# Mario's peak height is updated.
# Mario's voice clip played flag is reset.
# Some other flags are set/reset.{{Citation needed}}
# The previous action is set to the current action (which is not yet the jump action).{{Citation needed}}
# The current action is set to the jump action.{{Citation needed}}
# The action argument is set.{{Citation needed}}
# The action state is set to 0.{{Citation needed}}
# The action timer is set to 0.{{Citation needed}}
== Behavior ==
== Behavior ==
As with all airborne actions, a variety of "cancels" are checked prior to actually performing the jump action. These checks are as follows:
''Certain things here are more explained on their individual pages. If something lacks detail, check the link for more information.''


# Water - If Mario's height is lower than 100 units below the water height, the action is transitioned into the [[water plunge]] action.
As with all airborne actions, a variety of "cancels" are checked prior to actually performing the jump action. (See above section [[#Airborne cancels]])
# Squish - If Mario is supposed to be squished, his action is changed to the [[squished]] action.
# Vertical Wind- If Mario is above a vertical wind floor, his action is changed to the [[vertical wind]] action. (This is due to the jump action having the "Allow Vertical Wind Action" flag.


At this point, two more things happen prior to the jump action:
Then, the following happens:
* Mario's quicksand depth is set to 0.
# If the B button is pressed, Mario will either enter the [[dive]] action if his speed is greater than 28 or the [[jump kick]] action otherwise. This stops the jump action.
* Mario plays a falling noise if he has fallen more than 1150 units from his peak.
 
With the jump action occurring, the following happens:
# If the B button is pressed, Mario will either enter the [[dive]] action if his speed is greater than 28 or the jump kick action otherwise. This stops the jump action.
# If the Z button is pressed, Mario will enter the [[ground pound]] action. This stops the jump action.
# If the Z button is pressed, Mario will enter the [[ground pound]] action. This stops the jump action.
# Mario performs the other noises for the jump. <!--Elaborate on this.-->
# Mario performs the other noises for the jump.
# Mario's velocity is updated via [[straining]].
# Now, Mario performs the quarter-frame movement via a full [[Movement_Steps#Air_Step|common air step]]. The landing action is a [[Jump Land|jump land]] action and the check has both the "Check Ledge Grab" and "Check Hang" flags.
# Now, Mario performs the quarter-frame movement.
## The position a quarter of Mario's velocity ahead of Mario is checked for cancels/outcomes. Anything in bold is an exit out of the rest of the checks.
### If the position is above OOB but below Mario's current floor height, Mario's height is changed to the floor height and he '''lands'''.
### If the position is above OOB but not below Mario's current floor height, Mario's height is set to the new height and he '''hits a wall'''.
### If the position's height is 78 units or less below a floor and there is not a ceiling 160 units or less above it (because of how variable types an [[overflow jump]] may occur here):
###* Mario's position horizontally is updated to the new position.
###* Mario's height is set to that of the floor's height.
###* Mario's floor and floor height are updated.
###* Mario '''lands'''.
### If the position's height is 78 units or less below a floor and there is a ceiling 160 units or less above it (because of how variable types an [[overflow jump]] may occur here):
###* Mario's height is set to that of the floor's height.
###* Mario '''lands'''. (Because Mario's floor is not updated, this is where a [[Pedro Spot|pedro spot]] may occur)
### If the position's height is 160 units under, at, or above a ceiling and his vertical velocity is positive or zero:
###* Mario's vertical velocity is set to zero.
###* If the ceiling above Mario is hangable, Mario '''hangs'''. (Since this did not use the new position's ceiling/location, this is potentially a [[Hangable-Ceiling Upwarp|hangable-ceiling upwarp.]])
###* Otherwise, '''nothing happens'''.
### If the position's height is 160 units under, at, or above a ceiling and his vertical velocity is negative:
###* If the position's height is at or below Mario's floor height, Mario's height is set to the floor height, and he '''lands'''.
###* Otherwise, Mario's height is set to the new height and he '''hits a wall'''.
### If there is a wall 30 units above the position but not 150 units above the position:
###* If Mario's velocity is positive, Mario is pushed by the wall opposite the velocity direction, and there is a floor 60 units behind the wall within 238 units upward, Mario '''ledge grabs'''. (Potentially a [[GLG]])
###* Otherwise Mario's position is set to the new position, his floor and floor height are updated, and '''nothing happens'''.
### Mario's position is set to the new position and his floor and floor height are updated.
### If Mario is colliding with a wall 150 or 30 units up and the upper or only wall is lava, he '''lava wall boosts'''.
### If Mario is colliding with a wall 150 or 30 units up and Mario is facing perpendicular to 0x6000 units away, he '''hits a wall'''.
### If no other exit has occurred, '''nothing happens'''.
## This repeats until Mario encounters something besides '''nothing happens''', up to four times including the initial time.
## If Mario's velocity is not negative, his new height is the peak height.
## The footstep noise for Mario's floor is updated.
## If A is held and vertical speed is more than 20, divide it by 4.
## If A is held, Mario is wearing the wing cap, and his vertical speed is negative:
### Subtract two from the vertical speed.
### If the vertical speed is less than -37.5, add four.
### If the vertical speed is more than -37.5 now, set it to -37.5.
## If neither of those two previous situations occurred, subtract 4 from Mario's vertical speed and set it to -75 if it passes below.
## If Mario is above a vertical wind floor and his vertical position is above -1500 but below 3500:
### If Mario's height is 1500 or greater, add 10000/(8*(Mario's Height - 1300)) to the vertical velocity. If it passes 10000/(Mario's Height - 1300), set it to that instead.
### Otherwise, add 6.25 to the vertical speed and cap it to 50 if the vertical speed passes it.
### The Japanese version plays the wind sound now.
## The visual model's position and angle are updated.
 
== References ==
== References ==
<references />
<references />
{{actions}}
188

edits