Interaction type: Difference between revisions

From Ukikipedia
Jump to navigation Jump to search
(explain why no object gets more than 1)
(Added details for Hoot and Grabbable interactions. Started on Door interaction.)
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.
===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.
===Door===
===Door===
The Door interaction is used for doors and has a subtype used for Star Doors.
===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.

Revision as of 17:53, 3 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.

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.

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

Cap

Pole

Koopa

Spiny

Breakable Block

Wind

Warp Door

Star/Key

Warp

Cannon Base

Bounce Top

Water Ring

Bully

Burns

Koopa Shell

Bounce Top/Bottom

Text

Tornado

Whirlpool

Clam/Bubba

BBH Entrance

Snufit Bullet

Shocks

Igloo Barrier