Objects: Difference between revisions

49 bytes added ,  11 October 2023
reformated the oibject group list
m (added more code reference, might eventually might a deeper dive section into the anatomy of an object in code)
(reformated the oibject group list)
 
Line 4: Line 4:


== Object Groups ==
== Object Groups ==
Every object is part of a larger "group" that helps define its behavior<ref>[https://github.com/n64decomp/sm64/blob/master/src/game/object_list_processor.h#L32 Object Group Enumeration]</ref>. Of the 12 groups, some are more strongly defined than others, but it helps to categorize objects within the game.
Every object is part of a larger "group" that helps define its behavior<ref>[https://github.com/n64decomp/sm64/blob/master/src/game/object_list_processor.h#L32 Object Group Enumeration]</ref>. Of the 12 groups, some are more strongly defined than others, but they are still a useful tool to categorize objects in the game.


===Player Group===
{| class=wikitable
The first group, this group is composed of "playable" characters, which is simply Mario. Had Luigi been finished, it's possible he would have been in this group.
|-
! Group Name
! Description
|-
|Player Group
|The first group, this group is composed of "playable" characters, which is simply Mario. Had Luigi been finished, it's possible he would have been in this group.
|-
|Group 2
|This group is unused, it is possible this would have been a Luigi group, too.
|-
|Destructive
|The destructive group consists of (non-playable) objects able to destroy other objects. This group consists specifically of four objects- Bob-omb, Bob-omb explosion, cork shell, and a beta object that was unused.
|-
|Group 4
|Like the second group, this one is also unused.
|-
|General Actor
| This group contains most normal 'enemies' or actors ([[MIPS]], [[Bullet Bill]], [[Bully]], etc)
|-
|Pushable
|This group consists of objects able to push other (non-playable) objects. This behavior often goes along with [[transport cloning]]. This group consists of objects such as goomba, koopa, and spiny.
|-
|Level
|This group consists of objects within levels that are interactable, such as hearts and stars. This group often acts as "catch-all" along with default.
|-
|Group 7
|Group 7 is another unused group.
|-
|Default
|If an object isn't put into a different group, it ends up here. For this reason, this group acts as a "catch-all" for odd objects.
|-
|Surface
|These are any items that have surface collision, specifically walls, floor, and ceilings. Often these are items that would be easy to consider just part of the course geometry, such as the submarine in DDD or ship in JRB. Worth noting- this group is a requirement to have surfaces, so objects like Whomp and Thwomp still fall into this category despite being "actors".
|-
|Polelike
|The polelike group consists of objects that could be described as "radial" in that the attract Mario to some sort of radial center. This includes poles, whirlpools, tornados, trees, etc.
|-
|Spawner
|This group consists of most objects that spawn other objects, like coin spawners or star spawners.
|-
|Unimportant
|Unimportant objects generally do not affect gameplay at all and exist purely for visuals. This group has the unique quality of unloading to stay under the object limit, hence their "unimportant" name. Some examples include smoke, wind, and dust.
|}


===Group 2===
This group is unused, it is possible this would have been a Luigi group, too.


===Destructive===
The destructive group consists of (non-playable) objects able to destroy other objects. This group consists specifically of four objects- Bob-omb, Bob-omb explosion, cork shell, and a beta object that was unused.
===Group 4===
Like the second group, this one is also unused.
===General Actor===
Actors are generally what are described as "alive", such as bullet bills, bully, MIPS, etc.
===Pushable===
This group consists of objects able to push other (non-playable) objects. This behavior often goes along with [[transport cloning]]. This group consists of objects such as goomba, koopa, and spiny.
===Level===
This group consists of objects within levels that are interactable, such as hearts and stars. This group often acts as "catch-all" along with default.
===Group 7===
Group 7 is another unused group.
===Default===
If an object isn't put into a different group, it ends up here. For this reason, this group acts as a "catch-all" for odd objects.
===Surface===
These are any items that have surface collision, specifically walls, floor, and ceilings. Often these are items that would be easy to consider just part of the course geometry, such as the submarine in DDD or ship in JRB. Worth noting- this group is a requirement to have surfaces, so objects like Whomp and Thwomp still fall into this category despite being "actors".
===Polelike===
The polelike group consists of objects that could be described as "radial" in that the attract Mario to some sort of radial center. This includes poles, whirlpools, tornados, trees, etc.
===Spawner===
This group consists of most objects that spawn other objects, like coin spawners or star spawners.
===Unimportant===
Unimportant objects generally do not affect gameplay at all and exist purely for visuals. This group has the unique quality of unloading to stay under the object limit, hence their "unimportant" name. Some examples include smoke, wind, and dust.


==Processing Order==
==Processing Order==
577

edits