Interaction type: Difference between revisions

From Ukikipedia
Jump to navigation Jump to search
(Added details for Hoot and Grabbable interactions. Started on Door interaction.)
(Added Door, Coin and Water Ring)
Line 72: Line 72:
==Description==
==Description==
===Hoot===
===Hoot===
The Hoot interaction is used by Hoot, the Owl that Mario can hold on to in Whomp's Fortress. This interaction first checks whether Mario is in a suitable state to grab the owl (fulfilled by several airborne states) and checks if the global timer has advanced more than 30 ticks since Mario last let go of Hoot. If both these conditions are met, Mario can grab onto Hoot. Note that since the global timer advances while the game is paused, it is possible to fulfill the second condition right after Mario lets go of Hoot by simply pausing the game for 30 frames.
The Hoot interaction is used by Hoot, the Owl that Mario can hold on to in Whomp's Fortress. This interaction first checks whether Mario is in a suitable state to grab the owl (fulfilled by several airborne states) and checks if the global timer has advanced more than 30 ticks since Mario last let go of Hoot. If both these conditions are met, Mario can grab onto Hoot. Note that since the global timer advances while the game is paused, it is possible to fulfill the second condition right after Mario lets go of Hoot by simply pausing the game for 30 frames. Since the Hoot interaction is the first interaction type internally, and is referenced by the Beta Boo Key and Bowser actors, it is possible that this interaction was repurposed from an earlier type of interaction that was used earlier in development.
===Grabbable===
===Grabbable===
The Grabbable interaction is used by objects which are grabbable, such as Bob-Ombs and Boxes. This interaction has 5 subtypes: INT_SUBTYPE_GRABS_MARIO which is used by Chuckya and King Bob-Omb and also makes the object heavy, INT_SUBTYPE_HOLDABLE_NPC which lets Mario drop the object gently with no forward velocity, INT_SUBTYPE_DROP_IMMEDIATELY which is used by grabbable NPCs that also talk to Mario so that Mario will drop them when their dialogue is finished, INT_SUBTYPE_KICKABLE for objects that can be kicked and INT_SUBTYPE_NOT_GRABBABLE which is used by Heave-Ho to prevent Mario from picking it up. For the grab to occur, Mario must not be kicking an object of subtype kickable, the object must not have the not grabbable subtype, and the able_to_grab_object condition must be met. If the object being interacted with is not Bowser, the interaction is also set to push Mario 5 units away from the object when he grabs it.
The Grabbable interaction is used by objects which are grabbable, such as Bob-Ombs and Boxes. This interaction has 5 subtypes: INT_SUBTYPE_GRABS_MARIO which is used by Chuckya and King Bob-Omb and also makes the object heavy, INT_SUBTYPE_HOLDABLE_NPC which lets Mario drop the object gently with no forward velocity, INT_SUBTYPE_DROP_IMMEDIATELY which is used by grabbable NPCs that also talk to Mario so that Mario will drop them when their dialogue is finished, INT_SUBTYPE_KICKABLE for objects that can be kicked and INT_SUBTYPE_NOT_GRABBABLE which is used by Heave-Ho to prevent Mario from picking it up. For the grab to occur, Mario must not be kicking an object of subtype kickable, the object must not have the not grabbable subtype, and the able_to_grab_object condition must be met. If the object being interacted with is not Bowser, the interaction is also set to push Mario 5 units away from the object when he grabs it.
===Door===
===Door===
The Door interaction is used for doors and has a subtype used for Star Doors.  
The Door interaction is used for doors and has a subtype used for Star Doors. When Mario interacts with a door, the game checks to make sure he is walking or decelerating before checking if he has enough stars to open it. If these conditions are met, the game initializes variables for whether to push or pull the door open and a variable for the door’s flag in the save file. If the door Mario interacts with is a regular door, then at this point Mario will either push or pull the door open. If the door Mario interacts with is a star door, a separate check is done and a different action is done for Mario to enter the star door. If the door requires stars to open, the game also runs a check for whether or not the door has been opened before in the save file. If it has not, the game runs an action where Mario uses the power of the stars to open the door. If Mario does not have the required stars, the game displays dialogue dependent on how many stars are required to open the door. In the case where the door requires 70 stars to open, the game displays dialogue and then allows Mario to open the door.
===Hurtbox 1 & 2===
===Hurtbox 1 & 2===
Hurtbox 1 & 2 are identical with their behavior. If Mario makes contact with an object, it will simply knock him back and generally hurt him. Some examples include [[Chain Chomp]], [[Mr. Blizzard]], and [[bullet bill]]s.
Hurtbox 1 & 2 are identical with their behavior. If Mario makes contact with an object, it will simply knock him back and generally hurt him. Some examples include [[Chain Chomp]], [[Mr. Blizzard]], and [[bullet bill]]s.
Line 82: Line 82:
The only distinction between the two is solely based on what file they are in.
The only distinction between the two is solely based on what file they are in.
===Coin===
===Coin===
This interaction is used for collecting coins, as the name implies. When the interaction occurs, the number of coins Mario has is increased by the value of the coin, his heal counter is increased by 4 times the value of the coin, and the coin’s interaction status is updated to mark that an interaction has occurred. If the course is a main course, the number of coins Mario has minus the value of the coin is less than 100, and Mario has at least 100 coins, the 100 coin star spawns.
===Cap===
===Cap===
===Pole===
===Pole===
Line 94: Line 95:
===Bounce Top===
===Bounce Top===
===Water Ring===
===Water Ring===
This interaction is used by water rings like those spawned by the Manta Ray in Dire, Dire Docks and Air Bubbles in Dire, Dire Docks and Jolly Roger Bay. When the interaction occurs, Mario’s heal counter is increased by 4 times the object’s “coin” value and the object’s interaction status is updated to mark that an interaction has occurred.
===Bully===
===Bully===
===Burns===
===Burns===

Revision as of 00:09, 4 March 2020

An interaction type is a property that all objects have. Most objects have exactly one interaction type, but some have zero. No object may have more than one, and if one is hacked to have more than one, it will crash the game as Mario thinks that he is interacting with two different objects, each with one interaction flag, and cannot find them. Interaction types are analogous to action flags, but interaction flags are not, which can be a source of confusion.

List

Index/log2 Description Mask
00 Hoot 0x00000001
01 Grabbable 0x00000002
02 Door 0x00000004
03 Hurtbox 0x00000008
04 Coin 0x00000010
05 Cap 0x00000020
06 Pole 0x00000040
07 Koopa 0x00000080
08 Spiny 0x00000100
09 Breakable Block 0x00000200
10 Wind 0x00000400
11 Warp Door 0x00000800
12 Star/Key 0x00001000
13 Warp 0x00002000
14 Cannon Base 0x00004000
15 Bounce Top 0x00008000
16 Water Ring 0x00010000
17 Bully 0x00020000
18 Burns 0x00040000
19 Koopa Shell 0x00080000
20 (unused) 0x00100000
21 Hurtbox 2 0x00200000
22 Bounce Top/Bottom 0x00400000
23 Text 0x00800000
24 Tornado 0x01000000
25 Whirlpool 0x02000000
26 Clam/Bubba 0x04000000
27 BBH Entrance 0x08000000
28 Snufit Bullet 0x10000000
29 Shocks 0x20000000
30 Igloo Barrier 0x40000000
31 (unused) 0x80000000

Description

Hoot

The Hoot interaction is used by Hoot, the Owl that Mario can hold on to in Whomp's Fortress. This interaction first checks whether Mario is in a suitable state to grab the owl (fulfilled by several airborne states) and checks if the global timer has advanced more than 30 ticks since Mario last let go of Hoot. If both these conditions are met, Mario can grab onto Hoot. Note that since the global timer advances while the game is paused, it is possible to fulfill the second condition right after Mario lets go of Hoot by simply pausing the game for 30 frames. Since the Hoot interaction is the first interaction type internally, and is referenced by the Beta Boo Key and Bowser actors, it is possible that this interaction was repurposed from an earlier type of interaction that was used earlier in development.

Grabbable

The Grabbable interaction is used by objects which are grabbable, such as Bob-Ombs and Boxes. This interaction has 5 subtypes: INT_SUBTYPE_GRABS_MARIO which is used by Chuckya and King Bob-Omb and also makes the object heavy, INT_SUBTYPE_HOLDABLE_NPC which lets Mario drop the object gently with no forward velocity, INT_SUBTYPE_DROP_IMMEDIATELY which is used by grabbable NPCs that also talk to Mario so that Mario will drop them when their dialogue is finished, INT_SUBTYPE_KICKABLE for objects that can be kicked and INT_SUBTYPE_NOT_GRABBABLE which is used by Heave-Ho to prevent Mario from picking it up. For the grab to occur, Mario must not be kicking an object of subtype kickable, the object must not have the not grabbable subtype, and the able_to_grab_object condition must be met. If the object being interacted with is not Bowser, the interaction is also set to push Mario 5 units away from the object when he grabs it.

Door

The Door interaction is used for doors and has a subtype used for Star Doors. When Mario interacts with a door, the game checks to make sure he is walking or decelerating before checking if he has enough stars to open it. If these conditions are met, the game initializes variables for whether to push or pull the door open and a variable for the door’s flag in the save file. If the door Mario interacts with is a regular door, then at this point Mario will either push or pull the door open. If the door Mario interacts with is a star door, a separate check is done and a different action is done for Mario to enter the star door. If the door requires stars to open, the game also runs a check for whether or not the door has been opened before in the save file. If it has not, the game runs an action where Mario uses the power of the stars to open the door. If Mario does not have the required stars, the game displays dialogue dependent on how many stars are required to open the door. In the case where the door requires 70 stars to open, the game displays dialogue and then allows Mario to open the door.

Hurtbox 1 & 2

Hurtbox 1 & 2 are identical with their behavior. If Mario makes contact with an object, it will simply knock him back and generally hurt him. Some examples include Chain Chomp, Mr. Blizzard, and bullet bills.

The only distinction between the two is solely based on what file they are in.

Coin

This interaction is used for collecting coins, as the name implies. When the interaction occurs, the number of coins Mario has is increased by the value of the coin, his heal counter is increased by 4 times the value of the coin, and the coin’s interaction status is updated to mark that an interaction has occurred. If the course is a main course, the number of coins Mario has minus the value of the coin is less than 100, and Mario has at least 100 coins, the 100 coin star spawns.

Cap

Pole

Koopa

Spiny

Breakable Block

Wind

Warp Door

Star/Key

Warp

Cannon Base

Bounce Top

Water Ring

This interaction is used by water rings like those spawned by the Manta Ray in Dire, Dire Docks and Air Bubbles in Dire, Dire Docks and Jolly Roger Bay. When the interaction occurs, Mario’s heal counter is increased by 4 times the object’s “coin” value and the object’s interaction status is updated to mark that an interaction has occurred.

Bully

Burns

Koopa Shell

Bounce Top/Bottom

Text

Tornado

Whirlpool

Clam/Bubba

BBH Entrance

Snufit Bullet

Shocks

Igloo Barrier