Movement steps: Difference between revisions

m
no edit summary
(→‎Quarter-Frame Checks: forgot "color:")
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
Typically, Mario's position is updated incrementally using his velocity. These increments are called '''steps''', and they behave differently when Mario is on the ground, in the air, in water, hanging, and climbing a pole. When on the ground or in the air, these steps typically occur four times per frame, and are commonly referred to as '''quarter steps''' or sometimes '''quarter frames'''.
Typically, Mario's position is updated incrementally using his velocity. These increments are called '''steps''', and they behave differently when Mario is on the ground, in the air, in water, hanging, and climbing a pole. When on the ground or in the air, these steps typically occur four times per frame, and are commonly referred to as '''quarter steps''' or colloquially '''quarter frames'''.


Steps are also responsible for detecting collision with [[surfaces]], updating Mario's [[referenced surfaces]], and updating Mario's [[Water|water level]]. However, quarter steps don't detect object collisions or warps.
Steps are also responsible for detecting collision with [[surfaces]], updating Mario's [[referenced surfaces]], and updating Mario's [[Water|water level]]. However, quarter steps don't detect object collisions or warps.
Line 109: Line 109:
** The camera preset is set to the area's default preset.
** The camera preset is set to the area's default preset.
** Mario enters the [[Lava Boost|lava boost]] action while dropping any held objects and no longer riding a shell.
** Mario enters the [[Lava Boost|lava boost]] action while dropping any held objects and no longer riding a shell.
=== Common Air Knockback Step ===
Similar to Common Air Step, it uses the "exit" from Perform Air Step. This function takes in a '''''landing action''''', a '''''hard fall action''''', and a '''''speed'''''.
Before calling Perform Air Step, it sets Mario's speed to '''''speed'''''.
Common Air Knockback Step can cancel into [[Feet Stuck In Ground]], '''''landing action''''', and '''''hard fall action'''''.
Mario cannot '''Hang''' or '''Ledge Grab'''. '''Nothing Happens''' and '''Lava Wall Boosts''' (contains cancel [[Lava Boost]]) are the same as for Perform Air Step.
* '''Lands'''
** If should get stuck in ground, drop and set action to [[Feet Stuck In Ground]]
** If y-velocity less than negative 55 and floor is not lava,
*** If fell more than 3000 units, shake camera, play MARIO_SOUND_ATTACKED, and drop and set mario action to the '''''hard fall action''''' with argument 4
*** Else if fell more than 1500 units and floor is not slippery
**** Hurt counter += 8 if cap, else 12
**** Squish counter += 30
** If neither of the first two checks canceled, set action to '''''landing action''''' (not changing the action argument, though there are differences in the Japanese version where the [[Thrown Forward]] and [[Thrown Backward]] intermediate actions cause the landing action argument to be hurtCounter)
* '''Hits a wall'''
** Change to the background air kb Animation
** If Mario's wall is not null
*** Mario's facingAngle[1] = wallAngle - (s32)(facingAngle[1] - wallAngle)
**** basically this step added two wallAngle
*** play either METAL_BONK or BONK sound
** else
*** play HIT sound
** facingAngle[1] += 0x8000
** Cap vel[1] to 0
** Set forward velocity to negative '''''speed''''' (and update slide and xz velocities to match)
[[Category:Action Mechanics]]
[[Category:Action Mechanics]]
1,024

edits