Name active flags

This commit is contained in:
Arceveti
2021-09-22 17:09:31 -07:00
parent e7fb56dc50
commit a5588326c4
8 changed files with 74 additions and 75 deletions

View File

@@ -5,27 +5,26 @@
// field-specific and object-specific constants, e.g. actions. // field-specific and object-specific constants, e.g. actions.
/* activeFlags */ /* activeFlags */
#define ACTIVE_FLAG_DEACTIVATED 0 // 0x0000 #define ACTIVE_FLAG_DEACTIVATED (0 << 0) // 0x0000
#define ACTIVE_FLAG_ACTIVE (1 << 0) // 0x0001 #define ACTIVE_FLAG_ACTIVE (1 << 0) // 0x0001
#define ACTIVE_FLAG_FAR_AWAY (1 << 1) // 0x0002 #define ACTIVE_FLAG_FAR_AWAY (1 << 1) // 0x0002
#define ACTIVE_FLAG_UNK2 (1 << 2) // 0x0004 #define ACTIVE_FLAG_UNUSED (1 << 2) // 0x0004
#define ACTIVE_FLAG_IN_DIFFERENT_ROOM (1 << 3) // 0x0008 #define ACTIVE_FLAG_IN_DIFFERENT_ROOM (1 << 3) // 0x0008
#define ACTIVE_FLAG_UNIMPORTANT (1 << 4) // 0x0010 #define ACTIVE_FLAG_UNIMPORTANT (1 << 4) // 0x0010
#define ACTIVE_FLAG_INITIATED_TIME_STOP (1 << 5) // 0x0020 #define ACTIVE_FLAG_INITIATED_TIME_STOP (1 << 5) // 0x0020
#define ACTIVE_FLAG_MOVE_THROUGH_GRATE (1 << 6) // 0x0040 #define ACTIVE_FLAG_MOVE_THROUGH_GRATE (1 << 6) // 0x0040
#define ACTIVE_FLAG_DITHERED_ALPHA (1 << 7) // 0x0080 #define ACTIVE_FLAG_DITHERED_ALPHA (1 << 7) // 0x0080
#define ACTIVE_FLAG_UNK8 (1 << 8) // 0x0100 #define ACTIVE_FLAG_ALLOCATED (1 << 8) // 0x0100
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200 #define ACTIVE_FLAG_DESTRUCTIVE_OBJ_DONT_DESTROY (1 << 9) // 0x0200
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400 #define ACTIVE_FLAG_IGNORE_ENV_BOXES (1 << 10) // 0x0400
/* respawnInfoType */ /* respawnInfoType */
#define RESPAWN_INFO_TYPE_NULL 0 #define RESPAWN_INFO_TYPE_NULL 0x00
#define RESPAWN_INFO_TYPE_32 1 #define RESPAWN_INFO_TYPE_32 0x01
#define RESPAWN_INFO_TYPE_16 2 #define RESPAWN_INFO_TYPE_16 0x02
/* respawnInfo */ /* respawnInfo */
#define RESPAWN_INFO_DONT_RESPAWN 0xFF #define RESPAWN_INFO_DONT_RESPAWN 0xFF
/* oFlags */ /* oFlags */
#define OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE (1 << 0) // 0x00000001 #define OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE (1 << 0) // 0x00000001
@@ -51,42 +50,42 @@
#define OBJ_FLAG_HITBOX_WAS_SET (1 << 30) // 0x40000000 #define OBJ_FLAG_HITBOX_WAS_SET (1 << 30) // 0x40000000
/* oHeldState */ /* oHeldState */
#define HELD_FREE 0 #define HELD_FREE 0x00
#define HELD_HELD 1 #define HELD_HELD 0x01
#define HELD_THROWN 2 #define HELD_THROWN 0x02
#define HELD_DROPPED 3 #define HELD_DROPPED 0x03
/* oDialogState */ /* oDialogState */
#define DIALOG_STATUS_ENABLE_TIME_STOP 0 #define DIALOG_STATUS_ENABLE_TIME_STOP 0x00
#define DIALOG_STATUS_INTERRUPT 1 #define DIALOG_STATUS_INTERRUPT 0x01
#define DIALOG_STATUS_START_DIALOG 2 #define DIALOG_STATUS_START_DIALOG 0x02
#define DIALOG_STATUS_STOP_DIALOG 3 #define DIALOG_STATUS_STOP_DIALOG 0x03
#define DIALOG_STATUS_DISABLE_TIME_STOP 4 #define DIALOG_STATUS_DISABLE_TIME_STOP 0x04
#define DIALOG_FLAG_NONE 0 #define DIALOG_FLAG_NONE (0 << 0) // 0x00
#define DIALOG_FLAG_TURN_TO_MARIO (1 << 0) // 0x01 // cutscene only #define DIALOG_FLAG_TURN_TO_MARIO (1 << 0) // 0x01 // cutscene only
#define DIALOG_FLAG_TEXT_DEFAULT (1 << 1) // 0x02 #define DIALOG_FLAG_TEXT_DEFAULT (1 << 1) // 0x02
#define DIALOG_FLAG_TEXT_RESPONSE (1 << 2) // 0x04 // non-cutscene only #define DIALOG_FLAG_TEXT_RESPONSE (1 << 2) // 0x04 // non-cutscene only
#define DIALOG_FLAG_UNK_CAPSWITCH (1 << 3) // 0x08 // not defined #define DIALOG_FLAG_UNK_CAPSWITCH (1 << 3) // 0x08 // not defined
#define DIALOG_FLAG_TIME_STOP_ENABLED (1 << 4) // 0x10 #define DIALOG_FLAG_TIME_STOP_ENABLED (1 << 4) // 0x10
/* oMoveFlags */ /* oMoveFlags */
#define OBJ_MOVE_LANDED (1 << 0) // 0x0001 #define OBJ_MOVE_LANDED (1 << 0) // 0x0001
#define OBJ_MOVE_ON_GROUND (1 << 1) // 0x0002 // mutually exclusive to OBJ_MOVE_LANDED #define OBJ_MOVE_ON_GROUND (1 << 1) // 0x0002 // mutually exclusive to OBJ_MOVE_LANDED
#define OBJ_MOVE_LEFT_GROUND (1 << 2) // 0x0004 #define OBJ_MOVE_LEFT_GROUND (1 << 2) // 0x0004
#define OBJ_MOVE_ENTERED_WATER (1 << 3) // 0x0008 #define OBJ_MOVE_ENTERED_WATER (1 << 3) // 0x0008
#define OBJ_MOVE_AT_WATER_SURFACE (1 << 4) // 0x0010 #define OBJ_MOVE_AT_WATER_SURFACE (1 << 4) // 0x0010
#define OBJ_MOVE_UNDERWATER_OFF_GROUND (1 << 5) // 0x0020 #define OBJ_MOVE_UNDERWATER_OFF_GROUND (1 << 5) // 0x0020
#define OBJ_MOVE_UNDERWATER_ON_GROUND (1 << 6) // 0x0040 #define OBJ_MOVE_UNDERWATER_ON_GROUND (1 << 6) // 0x0040
#define OBJ_MOVE_IN_AIR (1 << 7) // 0x0080 #define OBJ_MOVE_IN_AIR (1 << 7) // 0x0080
#define OBJ_MOVE_OUT_SCOPE (1 << 8) // 0x0100 #define OBJ_MOVE_OUT_SCOPE (1 << 8) // 0x0100
#define OBJ_MOVE_HIT_WALL (1 << 9) // 0x0200 #define OBJ_MOVE_HIT_WALL (1 << 9) // 0x0200
#define OBJ_MOVE_HIT_EDGE (1 << 10) // 0x0400 #define OBJ_MOVE_HIT_EDGE (1 << 10) // 0x0400
#define OBJ_MOVE_ABOVE_LAVA (1 << 11) // 0x0800 #define OBJ_MOVE_ABOVE_LAVA (1 << 11) // 0x0800
#define OBJ_MOVE_LEAVING_WATER (1 << 12) // 0x1000 #define OBJ_MOVE_LEAVING_WATER (1 << 12) // 0x1000
#define OBJ_MOVE_BOUNCE (1 << 13) // 0x2000 #define OBJ_MOVE_BOUNCE (1 << 13) // 0x2000
#ifndef VERSION_JP #ifndef VERSION_JP
#define OBJ_MOVE_ABOVE_DEATH_BARRIER (1 << 14) // 0x4000 #define OBJ_MOVE_ABOVE_DEATH_BARRIER (1 << 14) // 0x4000
#endif #endif
#define OBJ_MOVE_MASK_ON_GROUND (OBJ_MOVE_LANDED | OBJ_MOVE_ON_GROUND) #define OBJ_MOVE_MASK_ON_GROUND (OBJ_MOVE_LANDED | OBJ_MOVE_ON_GROUND)
@@ -97,26 +96,26 @@
OBJ_MOVE_UNDERWATER_ON_GROUND) OBJ_MOVE_UNDERWATER_ON_GROUND)
/* oActiveParticleFlags */ /* oActiveParticleFlags */
#define ACTIVE_PARTICLE_DUST (1 << 0) // 0x00000001 #define ACTIVE_PARTICLE_DUST (1 << 0) // 0x00000001
#define ACTIVE_PARTICLE_UNUSED_1 (1 << 1) // 0x00000002 #define ACTIVE_PARTICLE_UNUSED_1 (1 << 1) // 0x00000002
#define ACTIVE_PARTICLE_UNUSED_2 (1 << 2) // 0x00000004 #define ACTIVE_PARTICLE_UNUSED_2 (1 << 2) // 0x00000004
#define ACTIVE_PARTICLE_SPARKLES (1 << 3) // 0x00000008 #define ACTIVE_PARTICLE_SPARKLES (1 << 3) // 0x00000008
#define ACTIVE_PARTICLE_H_STAR (1 << 4) // 0x00000010 #define ACTIVE_PARTICLE_H_STAR (1 << 4) // 0x00000010
#define ACTIVE_PARTICLE_BUBBLE (1 << 5) // 0x00000020 #define ACTIVE_PARTICLE_BUBBLE (1 << 5) // 0x00000020
#define ACTIVE_PARTICLE_WATER_SPLASH (1 << 6) // 0x00000040 #define ACTIVE_PARTICLE_WATER_SPLASH (1 << 6) // 0x00000040
#define ACTIVE_PARTICLE_IDLE_WATER_WAVE (1 << 7) // 0x00000080 #define ACTIVE_PARTICLE_IDLE_WATER_WAVE (1 << 7) // 0x00000080
#define ACTIVE_PARTICLE_SHALLOW_WATER_WAVE (1 << 8) // 0x00000100 #define ACTIVE_PARTICLE_SHALLOW_WATER_WAVE (1 << 8) // 0x00000100
#define ACTIVE_PARTICLE_PLUNGE_BUBBLE (1 << 9) // 0x00000200 #define ACTIVE_PARTICLE_PLUNGE_BUBBLE (1 << 9) // 0x00000200
#define ACTIVE_PARTICLE_WAVE_TRAIL (1 << 10) // 0x00000400 #define ACTIVE_PARTICLE_WAVE_TRAIL (1 << 10) // 0x00000400
#define ACTIVE_PARTICLE_FIRE (1 << 11) // 0x00000800 #define ACTIVE_PARTICLE_FIRE (1 << 11) // 0x00000800
#define ACTIVE_PARTICLE_SHALLOW_WATER_SPLASH (1 << 12) // 0x00001000 #define ACTIVE_PARTICLE_SHALLOW_WATER_SPLASH (1 << 12) // 0x00001000
#define ACTIVE_PARTICLE_LEAF (1 << 13) // 0x00002000 #define ACTIVE_PARTICLE_LEAF (1 << 13) // 0x00002000
#define ACTIVE_PARTICLE_DIRT (1 << 14) // 0x00004000 #define ACTIVE_PARTICLE_DIRT (1 << 14) // 0x00004000
#define ACTIVE_PARTICLE_MIST_CIRCLE (1 << 15) // 0x00008000 #define ACTIVE_PARTICLE_MIST_CIRCLE (1 << 15) // 0x00008000
#define ACTIVE_PARTICLE_SNOW (1 << 16) // 0x00010000 #define ACTIVE_PARTICLE_SNOW (1 << 16) // 0x00010000
#define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000 #define ACTIVE_PARTICLE_BREATH (1 << 17) // 0x00020000
#define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000 #define ACTIVE_PARTICLE_V_STAR (1 << 18) // 0x00040000
#define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000 #define ACTIVE_PARTICLE_TRIANGLE (1 << 19) // 0x00080000
/* oAction */ /* oAction */
#define OBJ_ACT_LAVA_DEATH 100 #define OBJ_ACT_LAVA_DEATH 100

View File

@@ -1,7 +1,7 @@
// bouncing_fireball.c.inc // bouncing_fireball.c.inc
void bhv_bouncing_fireball_flame_loop(void) { void bhv_bouncing_fireball_flame_loop(void) {
o->activeFlags |= ACTIVE_FLAG_UNK10; o->activeFlags |= ACTIVE_FLAG_IGNORE_ENV_BOXES;
cur_obj_update_floor_and_walls(); cur_obj_update_floor_and_walls();
switch (o->oAction) { switch (o->oAction) {
case 0: case 0:

View File

@@ -19,7 +19,7 @@ void bhv_breakable_box_small_init(void) {
cur_obj_scale(0.4f); cur_obj_scale(0.4f);
obj_set_hitbox(o, &sBreakableBoxSmallHitbox); obj_set_hitbox(o, &sBreakableBoxSmallHitbox);
o->oAnimState = 1; o->oAnimState = 1;
o->activeFlags |= ACTIVE_FLAG_UNK9; o->activeFlags |= ACTIVE_FLAG_DESTRUCTIVE_OBJ_DONT_DESTROY;
} }
void small_breakable_box_spawn_dust(void) { void small_breakable_box_spawn_dust(void) {
@@ -111,7 +111,7 @@ void breakable_box_small_get_thrown(void) {
o->oVelY = 20.0f; o->oVelY = 20.0f;
o->oBreakableBoxSmallReleased = 1; o->oBreakableBoxSmallReleased = 1;
o->oBreakableBoxSmallFramesSinceReleased = 0; o->oBreakableBoxSmallFramesSinceReleased = 0;
o->activeFlags &= ~ACTIVE_FLAG_UNK9; o->activeFlags &= ~ACTIVE_FLAG_DESTRUCTIVE_OBJ_DONT_DESTROY;
} }
void bhv_breakable_box_small_loop(void) { void bhv_breakable_box_small_loop(void) {

View File

@@ -13,7 +13,7 @@ struct ObjectHitbox sSpindriftHitbox = {
}; };
void bhv_spindrift_loop(void) { void bhv_spindrift_loop(void) {
o->activeFlags |= ACTIVE_FLAG_UNK10; o->activeFlags |= ACTIVE_FLAG_IGNORE_ENV_BOXES;
if (cur_obj_set_hitbox_and_die_if_attacked(&sSpindriftHitbox, SOUND_OBJ_DYING_ENEMY1, 0)) if (cur_obj_set_hitbox_and_die_if_attacked(&sSpindriftHitbox, SOUND_OBJ_DYING_ENEMY1, 0))
cur_obj_change_action(1); cur_obj_change_action(1);
cur_obj_update_floor_and_walls(); cur_obj_update_floor_and_walls();

View File

@@ -133,7 +133,7 @@ void (*sTuxiesMotherActions[])(void) = { tuxies_mother_act_0, tuxies_mother_act_
tuxies_mother_act_2 }; tuxies_mother_act_2 };
void bhv_tuxies_mother_loop(void) { void bhv_tuxies_mother_loop(void) {
o->activeFlags |= ACTIVE_FLAG_UNK10; o->activeFlags |= ACTIVE_FLAG_IGNORE_ENV_BOXES;
cur_obj_update_floor_and_walls(); cur_obj_update_floor_and_walls();
cur_obj_call_action_function(sTuxiesMotherActions); cur_obj_call_action_function(sTuxiesMotherActions);
cur_obj_move_standard(-78); cur_obj_move_standard(-78);

View File

@@ -151,7 +151,7 @@ void check_destructive_object_collision(void) {
struct Object *nextObj = (struct Object *) destructiveObj->header.next; struct Object *nextObj = (struct Object *) destructiveObj->header.next;
while (nextObj != destructiveObj) { while (nextObj != destructiveObj) {
if (nextObj->oDistanceToMario < 2000.0f && !(nextObj->activeFlags & ACTIVE_FLAG_UNK9)) { if (nextObj->oDistanceToMario < 2000.0f && !(nextObj->activeFlags & ACTIVE_FLAG_DESTRUCTIVE_OBJ_DONT_DESTROY)) {
check_collision_in_list(nextObj, (struct Object *) nextObj->header.next, destructiveObj); check_collision_in_list(nextObj, (struct Object *) nextObj->header.next, destructiveObj);
check_collision_in_list(nextObj, (struct Object *) gObjectLists[OBJ_LIST_GENACTOR].next, check_collision_in_list(nextObj, (struct Object *) gObjectLists[OBJ_LIST_GENACTOR].next,
(struct Object *) &gObjectLists[OBJ_LIST_GENACTOR]); (struct Object *) &gObjectLists[OBJ_LIST_GENACTOR]);

View File

@@ -1297,7 +1297,7 @@ static f32 cur_obj_move_y_and_get_water_level(f32 gravity, f32 buoyancy) {
} }
o->oPosY += o->oVelY; o->oPosY += o->oVelY;
if (o->activeFlags & ACTIVE_FLAG_UNK10) { if (o->activeFlags & ACTIVE_FLAG_IGNORE_ENV_BOXES) {
waterLevel = FLOOR_LOWER_LIMIT; waterLevel = FLOOR_LOWER_LIMIT;
} else { } else {
waterLevel = find_water_level(o->oPosX, o->oPosZ); waterLevel = find_water_level(o->oPosX, o->oPosZ);

View File

@@ -237,7 +237,7 @@ struct Object *allocate_object(struct ObjectNode *objList) {
// Initialize object fields // Initialize object fields
obj->activeFlags = ACTIVE_FLAG_ACTIVE | ACTIVE_FLAG_UNK8; obj->activeFlags = ACTIVE_FLAG_ACTIVE | ACTIVE_FLAG_ALLOCATED;
obj->parentObj = obj; obj->parentObj = obj;
obj->prevObj = NULL; obj->prevObj = NULL;
obj->collidedObjInteractTypes = 0; obj->collidedObjInteractTypes = 0;