Object
An object is defined by various properties.
Position and velocity
The object's position is stored in oPosX, oPosY and oPosZ. The velocity is available in oVelX, oVelY and oVelZ.
The rotation can be changed by setting oMoveAnglePitch, oMoveAngleYaw and oMoveAngleRoll.
Object flags
Object flags are set in oFlags. The following flags are available:
| Flag | Description |
|---|---|
OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
|
Indicate that object position or angle will be changed. |
OBJ_FLAG_MOVE_XZ_USING_FVEL
|
|
OBJ_FLAG_MOVE_Y_WITH_TERMINAL_VEL
|
|
OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW
|
|
OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE
|
|
OBJ_FLAG_COMPUTE_DIST_TO_MARIO
|
Compute distance to Mario. It is stored in oDistanceToMario.
|
OBJ_FLAG_ACTIVE_FROM_AFAR
|
|
OBJ_FLAG_TRANSFORM_RELATIVE_TO_PARENT
|
|
OBJ_FLAG_HOLDABLE
|
Mark this object as holdable. |
OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM
|
|
OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO
|
Compute angle to Mario. It is stored in oAngleToMario.
|
OBJ_FLAG_PERSISTENT_RESPAWN
|
Collision data
The collision data is defined by collisionData. It can be used to dynamically change the collision of a surface object.
Interaction
An object's interaction is defined in oInteractType. For some interaction types a sub type can be specified in oInteractionSubtype.The following interaction types are available:
| Type | Subtype | Description |
|---|---|---|
INTERACT_HOOT
|
||
INTERACT_GRABBABLE
|
||
INT_SUBTYPE_GRABS_MARIO
|
Also makes the object heavy | |
INT_SUBTYPE_HOLDABLE_NPC
|
Allows the object to be gently dropped. Sets vertical speed to 0 when dropped with no forwards velocity. | |
INT_SUBTYPE_DROP_IMMEDIATELY
|
This gets set by grabbable NPCs that talk to Mario to make him drop them after the dialog is finished. | |
INT_SUBTYPE_KICKABLE
|
||
INT_SUBTYPE_NOT_GRABBABLE
|
Used by Heavy-Ho to allow it to throw Mario, without Mario being able to pick it up. | |
INTERACT_DOOR
|
||
INT_SUBTYPE_STAR_DOOR
|
||
INTERACT_DAMAGE
|
Mario takes damage on colllision | |
INTERACT_COIN
|
Coin counter increases on collision | |
INTERACT_CAP
|
Gives Mario a cap | |
INTERACT_POLE
|
||
INTERACT_KOOPA
|
||
INTERACT_BREAKABLE
|
||
INTERACT_STRONG_WIND
|
||
INTERACT_WARP_DOOR
|
||
INTERACT_STAR_OR_KEY
|
Star or key | |
INT_SUBTYPE_NO_EXIT
|
||
INT_SUBTYPE_GRAND_STAR
|
||
INTERACT_WARP
|
||
INT_SUBTYPE_FADING_WARP
|
||
INTERACT_CANNON_BASE
|
||
INTERACT_BOUNCE_TOP
|
||
INT_SUBTYPE_TWIRL_BOUNCE
|
||
INTERACT_WATER_RING
|
||
INTERACT_BULLY
|
||
INTERACT_FLAME
|
||
INTERACT_KOOPA_SHELL
|
||
INTERACT_BOUNCE_TOP2
|
||
INTERACT_MR_BLIZZARD
|
||
INTERACT_HIT_FROM_BELOW
|
||
INTERACT_TEXT
|
||
INT_SUBTYPE_SIGN
|
||
INT_SUBTYPE_NPC
|
||
INTERACT_TORNADO
|
||
INTERACT_WHIRLPOOL
|
||
INTERACT_CLAM_OR_BUBBA
|
||
INT_SUBTYPE_EATS_MARIO
|
||
INTERACT_BBH_ENTRANCE
|
||
INTERACT_SNUFIT_BULLET
|
||
INTERACT_SHOCK
|
||
INTERACT_IGLOO_BARRIER
|
Action and timer
The object has a timer oTimer which starts at 0 and is increased by 1 per frame (if game is not paused). The integer property oAction is commonly used to change an object current action. It's usually checked in a behavior's loop script. When changing the action to a different value, oTimer will be reset to 0 on the next loop.
Misc. properties
| Property | Description |
|---|---|
oFloorHeight
|
Distance to floor (?) |
oGravity
|
Gravity |