Single Jump: Difference between revisions
Icecream17 (talk | contribs) (airborne cancels) |
Icecream17 (talk | contribs) (→Transition In: found citation) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
|group= Airborne | |group= Airborne | ||
|id= 0x080 | |id= 0x080 | ||
|into=Airborne cancels: [[Water Plunge]], [[Squished]], [[Vertical Wind]], non cancel: [[Dive]], [[Jump Kick]], [[Ground Pound]], air step: [[Jump Land]], [[Air Hit Wall]], [[Backwards Air Kb]], [[Soft Bonk]], [[Ledge Grab]], [[Start Hanging]], [[Lava Boost]] | |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=(todo) [[Idle]], [[Start Sleeping]], [[Coughing]], [[In Quicksand]], [[Panting]] | |out of=(todo) [[Idle]], [[Start Sleeping]], [[Coughing]], [[In Quicksand]], [[Panting]] | ||
|animation= 0x4D | |animation= 0x4D | ||
Line 16: | Line 16: | ||
* 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>. | ||
== | == 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". As with all actions, Transition In happens before common cancels and behavior.'' | |||
Generally, when transitioning into the jump action... (This is shared with the [[Hold Jump|hold jump]] action) | |||
Generally, when transitioning into the jump action | # Mario's current animation is stopped. <sup>Specifically, an animation flag is updated: <code>m->marioObj->header.gfx.animInfo.animID = -1;</code></sup> | ||
# Mario's current animation is stopped. | |||
# Mario's vertical speed is set to 42 + a quarter of the current forward speed. | # 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. | # 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 | # Mario's forward speed is multiplied by 0.8. | ||
Then, | Then, more general things occur. These happen to all airborne actions.<ref>https://github.com/n64decomp/sm64/blob/9921382a68bb0c865e5e45eb594d9c64db59b1af/src/game/mario.c#L887-L888</ref> Steps 3 and after apply to all actions.<ref>https://github.com/n64decomp/sm64/blob/9921382a68bb0c865e5e45eb594d9c64db59b1af/src/game/mario.c#L999-L1010</ref> | ||
# Mario's peak height is updated. | # Mario's peak height is updated. | ||
# Mario's [UNKNOWN_08] flag is set. | |||
# Mario's voice clip played flag is reset. | # Mario's voice clip played flag is reset. | ||
# | # <span style='gray'>Another flag [UNKNOWN_18] is reset as long as the action doesn't have the Air flag.</span> <!-- Keeping this here so that I may update all actions --> | ||
# The previous action is set to the current action (which is not yet the jump action). | # The previous action is set to the current action (which is not yet the jump action). | ||
# The current action is set to the jump action. | # The current action is set to the jump action. | ||
Line 40: | Line 34: | ||
# The action state is set to 0. | # The action state is set to 0. | ||
# The action timer is set to 0. | # The action timer is set to 0. | ||
== 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 | |||
== Behavior == | == Behavior == | ||
''Certain things here are more explained on their individual pages. If something lacks detail, check the link for more information.'' | ''Certain things here are more explained on their individual pages. If something lacks detail, check the link for more information.'' | ||
Line 50: | Line 52: | ||
# Mario performs the other noises for the jump. | # Mario performs the other noises for the jump. | ||
# 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 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. | ||
== References == | == References == | ||
<references /> | <references /> | ||
{{actions}} | {{actions}} |
Latest revision as of 14:32, 19 June 2024
Single Jump | |
Properties | |
Official Name | Jump |
Hex | 0x03000880 |
Action Flags | Air, Allow Vertical Wind Action, Control Jump Height |
Action Group | Airborne |
ID | 0x080 |
Transitions | |
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 | (todo) Idle, Start Sleeping, Coughing, In Quicksand, Panting |
Other | |
Animation | 0x4D |
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.
- While in quicksand, if Mario attempts to enter the 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 action[1].
Transition In
Note: All airborne actions refer to (reference [2]) for the "Transition In". As with all actions, Transition In happens before common cancels and behavior.
Generally, when transitioning into the jump action... (This is shared with the hold jump action)
- Mario's current animation is stopped. Specifically, an animation flag is updated:
m->marioObj->header.gfx.animInfo.animID = -1;
- 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, more general things occur. These happen to all airborne actions.[3] Steps 3 and after apply to all actions.[4]
- Mario's peak height is updated.
- Mario's [UNKNOWN_08] flag is set.
- Mario's voice clip played flag is reset.
- Another flag [UNKNOWN_18] is reset as long as the action doesn't have the Air flag.
- The previous action is set to the current action (which is not yet the jump action).
- The current action is set to the jump action.
- The action argument is set.
- The action state is set to 0.
- The action timer is set to 0.
Airborne cancels
A variety of "cancels" are checked prior to actually performing any airborne action. These are as follows:[5]
- 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
Behavior
Certain things here are more explained on their individual pages. If something lacks detail, check the link for more information.
As with all airborne actions, a variety of "cancels" are checked prior to actually performing the jump action. (See above section #Airborne cancels)
Then, 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.
- Mario performs the other noises for the jump.
- Now, Mario performs the quarter-frame movement via a full common air step. The landing action is a jump land action and the check has both the "Check Ledge Grab" and "Check Hang" flags.
References
- ↑ https://www.youtube.com/watch?v=wzUEzHk-ioQ
- ↑ https://github.com/n64decomp/sm64/blob/9921382a68bb0c865e5e45eb594d9c64db59b1af/src/game/mario.c#L776
- ↑ https://github.com/n64decomp/sm64/blob/9921382a68bb0c865e5e45eb594d9c64db59b1af/src/game/mario.c#L887-L888
- ↑ https://github.com/n64decomp/sm64/blob/9921382a68bb0c865e5e45eb594d9c64db59b1af/src/game/mario.c#L999-L1010
- ↑ https://github.com/n64decomp/sm64/blob/66018e9f3caaa67399218971d61366cb3f7ba7d7/src/game/mario_actions_airborne.c#L2066