This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
super_mario_64:behavior_commands [2018/03/16 06:45] arthurtilly [0C: Call Function] |
super_mario_64:behavior_commands [2019/11/03 09:17] (current) jesusyoshi54 [22: Set 0x10 flag] |
||
---|---|---|---|
Line 12: | Line 12: | ||
| <color darkgrey>T</color> | Type of object. Used to determine which linked list placed in. | | | <color darkgrey>T</color> | Type of object. Used to determine which linked list placed in. | | ||
| <color purple>A</color> | Might be a bit-field, but Behavior00 ignores them | | | <color purple>A</color> | Might be a bit-field, but Behavior00 ignores them | | ||
+ | |||
+ | ^ List ^ Description ^ | ||
+ | | 00 | Mario | | ||
+ | | 01 | Unused | | ||
+ | | 02 | Objects that can be used to destroy other objects, like bob-ombs and corkboxes. | | ||
+ | | 03 | Unused | | ||
+ | | 04 | Most normal 'enemies' or actors are on this list. | | ||
+ | | 05 | This is a group of objects which can push each other around as well as their parent objects. | | ||
+ | | 06 | General level objects such as heart, star. | | ||
+ | | 07 | Unused | | ||
+ | | 08 | Default list. | | ||
+ | | 09 | Objects that use a collision model. | | ||
+ | | 0A | Objects that attract or otherwise "cling" mario similar to a pole action. | | ||
+ | | 0B | Spawners | | ||
+ | | 0C | Objects that will not load if there are not enough object slots. | | ||
Length: 4 | Length: 4 | ||
Line 140: | Line 155: | ||
| <color purple>A</color> | Address = <color purple>A</color>*4+88 | | | <color purple>A</color> | Address = <color purple>A</color>*4+88 | | ||
- | | <color brown>B</color> | u16 | | + | | <color brown>B</color> | s16 | |
- | | obj->address += B converted to float || | + | | obj->address += B(float) || |
Length: 4 | Length: 4 | ||
Line 153: | Line 168: | ||
| <color purple>A</color> | Address = <color purple>A</color>*4+88 | | | <color purple>A</color> | Address = <color purple>A</color>*4+88 | | ||
- | | <color brown>B</color> | u16 | | + | | <color brown>B</color> | s16 | |
- | | obj->address = B converted to float || | + | | obj->address = B(float) || |
Length: 4 | Length: 4 | ||
Line 390: | Line 405: | ||
---- | ---- | ||
- | ==== 22: Set 0x10 flag ==== | + | ==== 22: Set Render Invisible flag ==== |
- | Sets 0x10 in graph flags. | + | Sets Render Invisible (0x10) in graph flags. |
''22 00 00 00'' | ''22 00 00 00'' | ||
Line 399: | Line 414: | ||
---- | ---- | ||
- | ==== 23: Collision sphere size ==== | + | ==== 23: Collision cylinder size ==== |
- | Define the collision sphere size. | + | Define the collision cylinder size. |
- | ''23 00 00 00 [<color darkred>XZ XZ</color>] [<color darkgreen>YY YY</color>]'' | + | ''23 00 00 00 [<color darkred>RR RR</color>] [<color darkgreen>HH HH</color>]'' |
- | | <color darkred>XZ</color> | X and Z sphere| | + | | <color darkred>R</color> | Radius of collision cylinder| |
- | | <color darkgreen>Y</color> | Y sphere | | + | | <color darkgreen>H</color> | Height of collision cylinder| |
Length: 8 | Length: 8 | ||
Line 502: | Line 517: | ||
Set collision data. | Set collision data. | ||
- | ''2B 00 00 00 [<color darkred>AA AA</color>] [<color darkgreen>BB BB</color>] [<color darkblue>CC CC</color>]'' | + | ''2B 00 00 00 [<color darkred>AA AA</color>] [<color darkgreen>BB BB</color>] [<color darkblue>CC CC</color>] 00 00'' |
| <color darkred>A</color> | X/Z sphere as int | | | <color darkred>A</color> | X/Z sphere as int | | ||
| <color darkgreen>B</color> | Y sphere as int | | | <color darkgreen>B</color> | Y sphere as int | | ||
- | | <color darkblue>C</color> | obj->0x208 = (float)<color darkblue>C</color> | | + | | <color darkblue>C</color> | obj->-Y offset(0x208) = (float)<color darkblue>C</color> | |
Length: C | Length: C | ||
Line 515: | Line 530: | ||
Spawns object. Same as 0x1C, but stores child obj pointer to parent->0x6C. | Spawns object. Same as 0x1C, but stores child obj pointer to parent->0x6C. | ||
- | ''2C 00 00 00 [<color darkred>AA AA AA AA</color>] [<color darkgreen>BB BB BB BB</color>] [<color darkblue>CC CC</color>]'' | + | ''2C 00 00 00 [<color darkred>AA AA AA AA</color>] [<color darkgreen>BB BB BB BB</color>]'' |
| <color darkred>A</color> | model ID | | | <color darkred>A</color> | model ID | | ||
Line 533: | Line 548: | ||
---- | ---- | ||
- | ==== 2E: Sight Distance ==== | + | ==== 2E: Set Hurtbox ==== |
- | Uselessly long version of 0E? | + | Sets object hurtbox radius and height |
''2E 00 00 00 [<color darkred>AA AA</color>] [<color darkgreen>BB BB</color>]'' | ''2E 00 00 00 [<color darkred>AA AA</color>] [<color darkgreen>BB BB</color>]'' | ||
- | | <color darkred>A</color> | obj->0x200 = (float) <color darkred>A</color> | | + | | <color darkred>A</color> | obj->Hurtbox Radius (0x200) = (float) <color darkred>A</color> | |
- | | <color darkgreen>B</color> | obj->0x204 = (float) <color darkgreen>B</color> | | + | | <color darkgreen>B</color> | obj->Hurtbox Height (0x204) = (float) <color darkgreen>B</color> | |
Length: 8 | Length: 8 | ||
Line 558: | Line 573: | ||
| 00000008 | Damages Mario (normal) | | | 00000008 | Damages Mario (normal) | | ||
| 00000010 | Coin | | | 00000010 | Coin | | ||
- | | 00000020 | Nothing? | | + | | 00000020 | Cap | |
| 00000040 | Pole | | | 00000040 | Pole | | ||
| 00000080 | Damages Mario (can be punched, bounced on) | | | 00000080 | Damages Mario (can be punched, bounced on) | | ||
Line 594: | Line 609: | ||
''30 00 00 00 [<color darkred>AA AA</color>] [<color darkgreen>BB BB</color>] [<color darkblue>CC CC</color>] [<color red>DD DD</color>] [<color green>EE EE</color>] [<color blue>FF FF</color>] [<color purple>GG GG</color>] [<color darkgrey>HH HH</color>]'' | ''30 00 00 00 [<color darkred>AA AA</color>] [<color darkgreen>BB BB</color>] [<color darkblue>CC CC</color>] [<color red>DD DD</color>] [<color green>EE EE</color>] [<color blue>FF FF</color>] [<color purple>GG GG</color>] [<color darkgrey>HH HH</color>]'' | ||
- | | <color darkred>A</color> | obj->0x128 = (float)<color darkred>A</color> | | + | | <color darkred>A</color> | obj->oWallHitboxRadius = (float)<color darkred>A</color> | |
- | | <color darkgreen>B</color> | obj->0xE8 = (float)<color darkgreen>B</color>/100 | | + | | <color darkgreen>B</color> | obj->oGravity = (float)<color darkgreen>B</color>/100 | |
- | | <color darkblue>C</color> | obj->0x158 = (float)<color darkblue>C</color>/100 | | + | | <color darkblue>C</color> | obj->oBounce = (float)<color darkblue>C</color>/100 | |
- | | <color red>D</color> | obj->0x12C = (float)<color red>D</color>/100 | | + | | <color red>D</color> | obj->oDragStrength = (float)<color red>D</color>/100 | |
- | | <color green>E</color> | obj->0x170 = (float)<color green>E</color>/100 | | + | | <color green>E</color> | obj->oFriction = (float)<color green>E</color>/100 | |
- | | <color blue>F</color> | obj->0x174 = (float)<color blue>F</color>/100 | | + | | <color blue>F</color> | obj->oBuoyancy = (float)<color blue>F</color>/100 | |
| <color purple>G</color> | Ignored | | | <color purple>G</color> | Ignored | | ||
| <color darkgrey>H</color> | Ignored | | | <color darkgrey>H</color> | Ignored | | ||
Line 607: | Line 622: | ||
---- | ---- | ||
- | ==== 31: ?? ==== | + | ==== 31: Set Interaction Sub-Type ==== |
- | Sets obj->0x190. Unused. | + | Sets obj->0x190 |
''31 00 00 00 [<color darkred>AA AA AA AA</color>]'' | ''31 00 00 00 [<color darkred>AA AA AA AA</color>]'' | ||
- | | <color darkred>A</color> | obj->0x190 = <color darkred>A</color> | | + | | <color darkred>A</color> | obj->Interaction SubType (0x190) = <color darkred>A</color> | |
Length: 8 | Length: 8 |