Difference between revisions of "Object"
(Created page with "An object is defined by various properties. == Position and velocity == The object's position is stored in <code>oPosX</code>, <code>oPosY</code> and <code>oPosZ</code>. The...") |
|||
Line 28: | Line 28: | ||
|- | |- | ||
!<code>OBJ_FLAG_COMPUTE_DIST_TO_MARIO</code> | !<code>OBJ_FLAG_COMPUTE_DIST_TO_MARIO</code> | ||
− | |Compute distance to Mario. | + | |Compute distance to Mario. It is stored in <code>oDistanceToMario</code>. |
|- | |- | ||
!<code>OBJ_FLAG_ACTIVE_FROM_AFAR</code> | !<code>OBJ_FLAG_ACTIVE_FROM_AFAR</code> | ||
Line 43: | Line 43: | ||
|- | |- | ||
!<code>OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO</code> | !<code>OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO</code> | ||
− | |Compute angle to Mario. | + | |Compute angle to Mario. It is stored in <code>oAngleToMario</code>. |
|- | |- | ||
!<code>OBJ_FLAG_PERSISTENT_RESPAWN</code> | !<code>OBJ_FLAG_PERSISTENT_RESPAWN</code> | ||
Line 218: | Line 218: | ||
| | | | ||
|} | |} | ||
+ | |||
+ | == Action and timer == | ||
+ | The object has a timer <code>oTimer</code> which starts at 0 and is increased by 1 per frame (if game is not paused). The integer property <code>oAction</code> 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, <code>oTimer</code> will be reset to 0 on the next loop. | ||
== Misc. properties == | == Misc. properties == |
Revision as of 09:27, 9 November 2020
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 |