From 029611cd098639d079ee2d04fb3ceb742ef2ef24 Mon Sep 17 00:00:00 2001 From: Roman Sandu Date: Sun, 1 Nov 2026 23:29:28 +0300 Subject: [PATCH] Live flags are very nice now --- include/Enemy/BossEel.hpp | 2 +- include/Enemy/BossHanachan.hpp | 10 +++ include/Enemy/BossTelesa.hpp | 2 +- include/Enemy/BossWanwan.hpp | 3 - include/Enemy/Enemy.hpp | 15 ++++ include/Enemy/FruitsBoat.hpp | 5 ++ include/Enemy/SmallEnemy.hpp | 6 +- include/MoveBG/MapObjBase.hpp | 6 ++ include/NPC/NpcBase.hpp | 36 ++++++--- include/Strategic/LiveActor.hpp | 121 +++++++++++++++++++---------- src/Animal/AnimalBase.cpp | 2 +- src/Animal/AnimalManager.cpp | 2 +- src/Animal/BeeHive.cpp | 10 +-- src/Animal/Bird.cpp | 2 +- src/Animal/fishoid.cpp | 2 +- src/Camera/CubeManagerBase.cpp | 13 ++-- src/Enemy/Amenbo.cpp | 10 +-- src/Enemy/BathtubKiller.cpp | 8 +- src/Enemy/BathtubPeach.cpp | 2 +- src/Enemy/BossHanachanEffect.cpp | 4 +- src/Enemy/BossHanachanMain.cpp | 28 +++---- src/Enemy/BossHanachanNerve.cpp | 10 ++- src/Enemy/BossHanachanParts.cpp | 2 +- src/Enemy/DebuTelesa.cpp | 4 +- src/Enemy/DemoBossHanachanBase.cpp | 2 +- src/Enemy/Kazekun.cpp | 6 +- src/Enemy/Kumokun.cpp | 2 +- src/Enemy/TabePuku.cpp | 2 +- src/Enemy/amiNoko.cpp | 6 +- src/Enemy/bgtentacle.cpp | 12 +-- src/Enemy/bombhei.cpp | 10 +-- src/Enemy/bossManta.cpp | 2 +- src/Enemy/bosseel.cpp | 24 +++--- src/Enemy/bossgesso.cpp | 4 +- src/Enemy/bosspakkun.cpp | 8 +- src/Enemy/bosstelesa.cpp | 26 +++---- src/Enemy/bosswanwan.cpp | 9 +-- src/Enemy/cannon.cpp | 2 +- src/Enemy/coasterkiller.cpp | 6 +- src/Enemy/conductor.cpp | 8 +- src/Enemy/effectEnemy.cpp | 4 +- src/Enemy/effectObj.cpp | 4 +- src/Enemy/egggen.cpp | 4 +- src/Enemy/elecNokonoko.cpp | 4 +- src/Enemy/emario.cpp | 2 +- src/Enemy/enemy.cpp | 18 ++--- src/Enemy/enemyAttachment.cpp | 3 +- src/Enemy/enemyMario.cpp | 7 +- src/Enemy/enemymanager.cpp | 15 ++-- src/Enemy/fireWanwan.cpp | 6 +- src/Enemy/fruitsboat.cpp | 32 ++++---- src/Enemy/gatekeeper.cpp | 6 +- src/Enemy/gesso.cpp | 12 +-- src/Enemy/hamukuri.cpp | 18 ++--- src/Enemy/hanasambo.cpp | 28 +++---- src/Enemy/hinokuri2.cpp | 2 +- src/Enemy/igaiga.cpp | 24 +++--- src/Enemy/killer.cpp | 12 +-- src/Enemy/launcher.cpp | 4 +- src/Enemy/limitkoopajr.cpp | 2 +- src/Enemy/mameGesso.cpp | 2 +- src/Enemy/namekuri.cpp | 12 +-- src/Enemy/pakkun.cpp | 8 +- src/Enemy/poihana.cpp | 14 ++-- src/Enemy/popo.cpp | 18 ++--- src/Enemy/riccohook.cpp | 2 +- src/Enemy/rocket.cpp | 14 ++-- src/Enemy/seal.cpp | 2 +- src/Enemy/smallEnemy.cpp | 42 +++++----- src/Enemy/spider.cpp | 6 +- src/Enemy/tamaNoko.cpp | 15 ++-- src/Enemy/telesa.cpp | 14 ++-- src/Enemy/tinkoopa.cpp | 2 +- src/Enemy/tobiPuku.cpp | 24 +++--- src/Enemy/walker.cpp | 7 +- src/Enemy/yunbo.cpp | 2 +- src/MoveBG/Item.cpp | 14 ++-- src/MoveBG/MapObjBall.cpp | 38 ++++----- src/MoveBG/MapObjBase.cpp | 26 +++---- src/MoveBG/MapObjBlock.cpp | 4 +- src/MoveBG/MapObjCloud.cpp | 2 +- src/MoveBG/MapObjGeneral.cpp | 18 ++--- src/MoveBG/MapObjHide.cpp | 8 +- src/MoveBG/MapObjInit.cpp | 2 +- src/MoveBG/MapObjItem2.cpp | 12 +-- src/MoveBG/MapObjLib.cpp | 10 +-- src/MoveBG/MapObjMare.cpp | 6 +- src/MoveBG/MapObjPinna.cpp | 4 +- src/MoveBG/MapObjRicco.cpp | 2 +- src/MoveBG/MapObjTown.cpp | 6 +- src/MoveBG/WoodBarrel.cpp | 6 +- src/NPC/NpcAnm.cpp | 36 ++++----- src/NPC/NpcBase.cpp | 23 +++--- src/NPC/NpcChange.cpp | 53 +++++++------ src/NPC/NpcCollision.cpp | 2 +- src/NPC/NpcEvent.cpp | 4 +- src/NPC/NpcInitPrg.cpp | 15 ++-- src/NPC/NpcManager.cpp | 4 +- src/NPC/NpcNerve.cpp | 4 +- src/NPC/NpcWalkTurn.cpp | 2 +- src/Player/MarioCheckCol.cpp | 2 +- src/Strategic/liveactor.cpp | 16 ++-- src/Strategic/livemanager.cpp | 6 +- src/System/EventWatcher.cpp | 4 +- src/System/MarDirectorDirect.cpp | 2 +- src/System/MarDirectorEvent.cpp | 4 +- 106 files changed, 635 insertions(+), 525 deletions(-) diff --git a/include/Enemy/BossEel.hpp b/include/Enemy/BossEel.hpp index 27c16ce87..20167761d 100644 --- a/include/Enemy/BossEel.hpp +++ b/include/Enemy/BossEel.hpp @@ -378,7 +378,7 @@ public: TBossEelSaveParams& getBossEelParams() const { return *mSaveParams; } enum { - LIVE_FLAG_UNK10000 = VERSION_SELECT(0x20000, GMSJ01(0x10000)), + LIVE_FLAG_REVERSE_SPIN = 1u << LIVE_FLAG_BIT_USER2, // 0x10000 }; public: diff --git a/include/Enemy/BossHanachan.hpp b/include/Enemy/BossHanachan.hpp index b40a8f587..409ea4bb3 100644 --- a/include/Enemy/BossHanachan.hpp +++ b/include/Enemy/BossHanachan.hpp @@ -57,6 +57,16 @@ public: void emitOneTimeSandPillar_(TBossHanachanPartsBody*); void emitParticle_(); + // clang-format off + enum { + LIVE_FLAG_SAND_PILLAR_ACTIVE = 1u << LIVE_FLAG_BIT_USER2, // 0x10000 + LIVE_FLAG_BGM_CHANGE_PENDING = 1u << LIVE_FLAG_BIT_USER3, // 0x20000 + LIVE_FLAG_DEATH_ANIMATION_FINISHED = 1u << LIVE_FLAG_BIT_USER4, // 0x40000 + LIVE_FLAG_SUPPRESS_HINT_BALLOON = 1u << LIVE_FLAG_BIT_USER5, // 0x80000 + LIVE_FLAG_SKIP_DEATH_BGM_MODULATION = 1u << LIVE_FLAG_BIT_USER6, // 0x100000 + }; + // clang-format on + public: /* 0x150 */ TBossHanachanPartsBody* mBodyParts[8]; /* 0x170 */ TBossHanachanPartsHead* mHead; diff --git a/include/Enemy/BossTelesa.hpp b/include/Enemy/BossTelesa.hpp index 75f55e040..32c1ce66e 100644 --- a/include/Enemy/BossTelesa.hpp +++ b/include/Enemy/BossTelesa.hpp @@ -147,7 +147,7 @@ public: static f32 mCameraMoveSp; enum { - LIVE_FLAG_UNK10000 = 0x10000, + LIVE_FLAG_UNK10000 = 1u << LIVE_FLAG_BIT_USER2, // 0x10000 / 0x20000 }; public: diff --git a/include/Enemy/BossWanwan.hpp b/include/Enemy/BossWanwan.hpp index 065145f28..c2e6110f4 100644 --- a/include/Enemy/BossWanwan.hpp +++ b/include/Enemy/BossWanwan.hpp @@ -155,9 +155,6 @@ public: f32 getUnk168() const { return unk168; } - // fabricated - f32 getHeadHeight() const { return mHeadHeight * mBodyScale; } - // UNUSED BOOL isHeadPulled(); bool isMarioInSight(); diff --git a/include/Enemy/Enemy.hpp b/include/Enemy/Enemy.hpp index 8cbd23249..e3547b72a 100644 --- a/include/Enemy/Enemy.hpp +++ b/include/Enemy/Enemy.hpp @@ -131,6 +131,21 @@ public: TGraphTracer* getTracer() { return unk124; } + bool isJumping() const { return checkLiveFlag(LIVE_FLAG_JUMPING) ? 1 : 0; } + + enum { + /// Allows this enemy to be recycled for spawning a new one even if it's + /// not dead, as long as it's not immediately visible. + LIVE_FLAG_RECYCLABLE = 1u << LIVE_FLAG_BIT_UNK800, // 0x800 + + LIVE_FLAG_USE_SHARED_ANIMATION = 1u << LIVE_FLAG_BIT_USER0, // 0x4000 + + /// Signifies that the enemy is currently mid-jump. Different from + /// LIVE_FLAG_AIRBORNE in that it is not set if the enemy simply fell + /// off a cliff. + LIVE_FLAG_JUMPING = 1u << LIVE_FLAG_BIT_USER1, // 0x8000 + }; + public: /* 0xF4 */ TPathNode mCurrentTarget; /* 0x104 */ TPathNode mGoal; diff --git a/include/Enemy/FruitsBoat.hpp b/include/Enemy/FruitsBoat.hpp index 8afa3f14c..0cab057a6 100644 --- a/include/Enemy/FruitsBoat.hpp +++ b/include/Enemy/FruitsBoat.hpp @@ -26,6 +26,11 @@ public: void setJumpReaction(); int setBckTrack(const char*); + enum { + LIVE_FLAG_ROUTE_PAUSED = 1u << LIVE_FLAG_BIT_USER2, // 0x10000 + LIVE_FLAG_MARIO_ON_BOARD = 1u << LIVE_FLAG_BIT_USER3, // 0x20000 + }; + public: /* 0x150 */ s16 unk150; /* 0x154 */ f32 unk154; diff --git a/include/Enemy/SmallEnemy.hpp b/include/Enemy/SmallEnemy.hpp index a4deb87ce..3e5e6a249 100644 --- a/include/Enemy/SmallEnemy.hpp +++ b/include/Enemy/SmallEnemy.hpp @@ -201,7 +201,11 @@ public: } enum { - LIVE_FLAG_MELT_ON_DEATH = VERSION_SELECT(0x20000, GMSJ01(0x10000)), + LIVE_FLAG_MELT_ON_DEATH + = 1u << LIVE_FLAG_BIT_USER2, // 0x10000 / 0x20000 + LIVE_FLAG_NO_ITEM_DROPS + = 1u << LIVE_FLAG_BIT_USER3, // 0x20000 / 0x40000 + LIVE_FLAG_UNK40000 = 1u << LIVE_FLAG_BIT_USER4, // 0x40000 / 0x80000 }; public: diff --git a/include/MoveBG/MapObjBase.hpp b/include/MoveBG/MapObjBase.hpp index f17e5260b..9dba63814 100644 --- a/include/MoveBG/MapObjBase.hpp +++ b/include/MoveBG/MapObjBase.hpp @@ -364,6 +364,12 @@ public: const char* getUnkF4() { return mIndividualName; } public: + enum { + /// While set, CUE_CALC_ANIM, CUE_ENTRY and CUE_CALC_VIEW are not + /// performed on by the map object. + LIVE_FLAG_SLEEPING = 1u << LIVE_FLAG_BIT_USER0, // 0x4000 + }; + enum { MOVE_COLLISION_ON_CONTACT_GRACE_TIMER = 4, }; diff --git a/include/NPC/NpcBase.hpp b/include/NPC/NpcBase.hpp index 3e69b617c..3f0d5a3d2 100644 --- a/include/NPC/NpcBase.hpp +++ b/include/NPC/NpcBase.hpp @@ -224,11 +224,24 @@ public: bool isClean() const { return mPollutionAmount == 0.0f; } + // clang-format off enum { - LIVE_FLAG_DONT_TALK = VERSION_SELECT(0x20000, GMSJ01(0x10000)), - LIVE_FLAG_SINK_BOTTOM = VERSION_SELECT(0x1000000, GMSJ01(0x800000)), - LIVE_FLAG_DONT_THROW = VERSION_SELECT(0x40000000, GMSJ01(0x20000000)), + LIVE_FLAG_DONT_TALK = 1u << LIVE_FLAG_BIT_USER2, // 0x10000 + LIVE_FLAG_TALKABLE = 1u << LIVE_FLAG_BIT_USER3, // 0x20000 + LIVE_FLAG_TALK_REQUESTED = 1u << LIVE_FLAG_BIT_USER4, // 0x40000 + LIVE_FLAG_TALKING = 1u << LIVE_FLAG_BIT_USER5, // 0x80000 + LIVE_FLAG_CAN_BE_TAKEN = 1u << LIVE_FLAG_BIT_USER6, // 0x100000 + LIVE_FLAG_UTURN_POSITIVE_YAW = 1u << LIVE_FLAG_BIT_USER7, // 0x200000 + LIVE_FLAG_SINKING = 1u << LIVE_FLAG_BIT_USER8, // 0x400000 + LIVE_FLAG_SINK_BOTTOM = 1u << LIVE_FLAG_BIT_USER9, // 0x800000 + LIVE_FLAG_RENDER_ENTRY_SKIPPED = 1u << LIVE_FLAG_BIT_USER10, // 0x1000000 + LIVE_FLAG_ANGRY = 1u << LIVE_FLAG_BIT_USER11, // 0x2000000 + LIVE_FLAG_BALL_HIT_REACTION = 1u << LIVE_FLAG_BIT_USER12, // 0x4000000 + LIVE_FLAG_SINK_RECOVERY_JUMP_STARTED = 1u << LIVE_FLAG_BIT_USER13, // 0x8000000 + LIVE_FLAG_ENABLE_WALL_COLLISION = 1u << LIVE_FLAG_BIT_USER14, // 0x10000000 + LIVE_FLAG_DONT_THROW = 1u << LIVE_FLAG_BIT_USER15, // 0x20000000 }; + // clang-format on private: void setIndividualDifference_(JSUMemoryInputStream&); @@ -275,7 +288,7 @@ private: unk1DC -= 1; if (unk1DC == 0 && mHolder == nullptr) { offHitFilter(HIT_FILTER_NO_COLLISION); - offLiveFlag(LIVE_FLAG_UNK10000000); + offLiveFlag(LIVE_FLAG_ENABLE_WALL_COLLISION); } } @@ -292,9 +305,12 @@ private: { bool r31 = false; - bool bVar12 = checkLiveFlag2(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT - | LIVE_FLAG_DEAD); - bool bVar6 = checkLiveFlag2(LIVE_FLAG_UNK1000000); + bool bVar12 = checkLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT + | LIVE_FLAG_DEAD) + ? true + : false; + bool bVar6 + = checkLiveFlag(LIVE_FLAG_RENDER_ENTRY_SKIPPED) ? true : false; if (bVar12) { r31 = true; @@ -328,14 +344,14 @@ private: bool isTalkable_() { bool result = false; - if (checkLiveFlag(LIVE_FLAG_UNK40000)) { + if (checkLiveFlag(LIVE_FLAG_TALK_REQUESTED)) { result = true; } else if (mTalkForbidCount == 0 && !isJellyFishMare() && !gpCamera->isTalkCameraInbetween() && mHolder == nullptr && !checkLiveFlag( LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT - | LIVE_FLAG_UNK200 | LIVE_FLAG_DONT_TALK - | LIVE_FLAG_SINK_BOTTOM | LIVE_FLAG_UNK400000) + | LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_DONT_TALK + | LIVE_FLAG_SINK_BOTTOM | LIVE_FLAG_SINKING) && !checkActionFlag(NPC_ACTION_BURNING) && isClean()) { if (!isSunflowerReviving() && isNerveCanGoToTalk() diff --git a/include/Strategic/LiveActor.hpp b/include/Strategic/LiveActor.hpp index 6a91d8036..35dd219c4 100644 --- a/include/Strategic/LiveActor.hpp +++ b/include/Strategic/LiveActor.hpp @@ -20,41 +20,89 @@ class TBinder; class TMapCollisionManager; enum { - LIVE_FLAG_DEAD = 0x1, - LIVE_FLAG_HIDDEN = 0x2, - LIVE_FLAG_CLIPPED_OUT = 0x4, - LIVE_FLAG_UNK8 = 0x8, - LIVE_FLAG_UNK10 = 0x10, - LIVE_FLAG_UNK20 = 0x20, - LIVE_FLAG_UNK40 = 0x40, - LIVE_FLAG_AIRBORNE = 0x80, - LIVE_FLAG_ENABLE_CLIPPING = 0x100, - LIVE_FLAG_UNK200 = 0x200, - LIVE_FLAG_FORCE_SHADOW = 0x400, - LIVE_FLAG_UNK800 = 0x800, - LIVE_FLAG_UNK1000 = 0x1000, - LIVE_FLAG_UNK2000 = 0x2000, + LIVE_FLAG_BIT_DEAD = 0, + LIVE_FLAG_BIT_HIDDEN, + LIVE_FLAG_BIT_CLIPPED_OUT, + LIVE_FLAG_BIT_NO_SHADOW, + LIVE_FLAG_BIT_NO_BIND, + LIVE_FLAG_BIT_UNK20, + LIVE_FLAG_BIT_UNK40, + LIVE_FLAG_BIT_AIRBORNE, + LIVE_FLAG_BIT_ENABLE_CLIPPING, + LIVE_FLAG_BIT_OUT_OF_AREA, + LIVE_FLAG_BIT_FORCE_SHADOW, + LIVE_FLAG_BIT_UNK800, + LIVE_FLAG_BIT_IGNORE_WATER_IN_GROUND_CHECKS, + LIVE_FLAG_BIT_ENABLE_FAST_CUBE_CULLING, #if defined(VERSION_GMSP01) || defined(VERSION_GMSP01_NX) - LIVE_FLAG_CALC_INT_FRAME = 0x4000, + LIVE_FLAG_BIT_CALC_INT_FRAME, +#elif defined(VERSION_GMSJ01_01) + LIVE_FLAG_BIT_UNK4000, +#endif + LIVE_FLAG_BIT_USER0, + LIVE_FLAG_BIT_USER1, + LIVE_FLAG_BIT_USER2, + LIVE_FLAG_BIT_USER3, + LIVE_FLAG_BIT_USER4, + LIVE_FLAG_BIT_USER5, + LIVE_FLAG_BIT_USER6, + LIVE_FLAG_BIT_USER7, + LIVE_FLAG_BIT_USER8, + LIVE_FLAG_BIT_USER9, + LIVE_FLAG_BIT_USER10, + LIVE_FLAG_BIT_USER11, + LIVE_FLAG_BIT_USER12, + LIVE_FLAG_BIT_USER13, + LIVE_FLAG_BIT_USER14, + LIVE_FLAG_BIT_USER15, +}; + +enum { + /// Stops the actor from performing. + LIVE_FLAG_DEAD = 1u << LIVE_FLAG_BIT_DEAD, // 0x1 + + /// Stops the actor from being drawn or animated. + LIVE_FLAG_HIDDEN = 1u << LIVE_FLAG_BIT_HIDDEN, // 0x2 + + /// Set while the actor is outside of the camera's view frustum or inside of + /// a "fast cube". Stops the actor from being animated or drawn, analogous + /// to LIVE_FLAG_HIDDEN. + LIVE_FLAG_CLIPPED_OUT = 1u << LIVE_FLAG_BIT_CLIPPED_OUT, // 0x4 + + /// Stops the actor from casting a shadow. + LIVE_FLAG_NO_SHADOW = 1u << LIVE_FLAG_BIT_NO_SHADOW, // 0x8 + + /// Disables "binding", aka physics simulation. + LIVE_FLAG_NO_BIND = 1u << LIVE_FLAG_BIT_NO_BIND, // 0x10 + + LIVE_FLAG_UNK20 = 1u << LIVE_FLAG_BIT_UNK20, // 0x20 + LIVE_FLAG_UNK40 = 1u << LIVE_FLAG_BIT_UNK40, // 0x40 + + /// Signifies that the actor is not standing on solid ground. + LIVE_FLAG_AIRBORNE = 1u << LIVE_FLAG_BIT_AIRBORNE, // 0x80 + + /// Controls whether frustum clipping is used for the actor by it's manager. + LIVE_FLAG_ENABLE_CLIPPING = 1u << LIVE_FLAG_BIT_ENABLE_CLIPPING, // 0x100 + + /// Signifies that the actor is outside of the current playable area (e.g. + /// floors in hotel delphino) and stops it from performing whatsoever. + LIVE_FLAG_OUT_OF_AREA = 1u << LIVE_FLAG_BIT_OUT_OF_AREA, // 0x200 + + /// Forces a shadow to be drawn for the actor even if it's culled out. + LIVE_FLAG_FORCE_SHADOW = 1u << LIVE_FLAG_BIT_FORCE_SHADOW, // 0x400 + + /// Whether the actor "falls" through water during binding. + LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS + = 1u << LIVE_FLAG_BIT_IGNORE_WATER_IN_GROUND_CHECKS, // 0x1000 + + /// If enabled, the actor will be culled out whenever it is in a different + /// fast cube from mario. + LIVE_FLAG_ENABLE_FAST_CUBE_CULLING + = 1u << LIVE_FLAG_BIT_ENABLE_FAST_CUBE_CULLING, // 0x2000 + +#if defined(VERSION_GMSP01) || defined(VERSION_GMSP01_NX) + LIVE_FLAG_CALC_INT_FRAME = 1u << LIVE_FLAG_BIT_CALC_INT_FRAME, // 0x4000 #endif - LIVE_FLAG_UNK4000 = VERSION_SELECT(0x8000, GMSJ01(0x4000)), - LIVE_FLAG_UNK8000 = VERSION_SELECT(0x10000, GMSJ01(0x8000)), - LIVE_FLAG_UNK10000 = VERSION_SELECT(0x20000, GMSJ01(0x10000)), - // WARNING: some flag values are overloaded between derived classes. E.g. - // LIVE_FLAG_UNK10000 means different things for NPCs and small enemies. - // Be careful about placing stuff here -- it might belong to derived classes - // instead. - LIVE_FLAG_UNK20000 = VERSION_SELECT(0x40000, GMSJ01(0x20000)), - LIVE_FLAG_UNK40000 = VERSION_SELECT(0x80000, GMSJ01(0x40000)), - LIVE_FLAG_UNK80000 = VERSION_SELECT(0x100000, GMSJ01(0x80000)), - LIVE_FLAG_UNK100000 = VERSION_SELECT(0x200000, GMSJ01(0x100000)), - LIVE_FLAG_UNK200000 = VERSION_SELECT(0x400000, GMSJ01(0x200000)), - LIVE_FLAG_UNK400000 = VERSION_SELECT(0x800000, GMSJ01(0x400000)), - LIVE_FLAG_UNK1000000 = VERSION_SELECT(0x2000000, GMSJ01(0x1000000)), - LIVE_FLAG_UNK2000000 = VERSION_SELECT(0x4000000, GMSJ01(0x2000000)), - LIVE_FLAG_UNK4000000 = VERSION_SELECT(0x8000000, GMSJ01(0x4000000)), - LIVE_FLAG_UNK8000000 = VERSION_SELECT(0x10000000, GMSJ01(0x8000000)), - LIVE_FLAG_UNK10000000 = VERSION_SELECT(0x20000000, GMSJ01(0x10000000)), }; class TLiveActor : public TTakeActor { @@ -133,12 +181,7 @@ public: // fabricated const TBGCheckData* getGroundPlane() const { return mGroundPlane; } f32 getGroundHeight() const { return mGroundHeight; } - // TODO: which one is real? bool checkLiveFlag(u32 flag) const { return mLiveFlag & flag; } - bool checkLiveFlag2(u32 flag) const - { - return mLiveFlag & flag ? true : false; - } bool isAirborne() const { return checkLiveFlag(LIVE_FLAG_AIRBORNE) ? 1 : 0; @@ -169,7 +212,7 @@ public: void setVelocityAndFlag10(f32 x, f32 y, f32 z) { mVelocity.set(x, y, z); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } void setPositionDelta(const JGeometry::TVec3& v) { diff --git a/src/Animal/AnimalBase.cpp b/src/Animal/AnimalBase.cpp index ef120dba1..cee00df34 100644 --- a/src/Animal/AnimalBase.cpp +++ b/src/Animal/AnimalBase.cpp @@ -59,7 +59,7 @@ void TAnimalBase::init(TLiveManager* manager) mMarchSpeed = 0.0f; mBodyRadius = 10.0f; mWallRadius = 20.0f; - mLiveFlag |= LIVE_FLAG_UNK10 | LIVE_FLAG_UNK20 | LIVE_FLAG_UNK8; + mLiveFlag |= LIVE_FLAG_NO_BIND | LIVE_FLAG_UNK20 | LIVE_FLAG_NO_SHADOW; mSpine->initWith(&TNerveAnimalGraphWander::theNerve()); unk124->reset(); diff --git a/src/Animal/AnimalManager.cpp b/src/Animal/AnimalManager.cpp index 51c7a87e3..683aa656b 100644 --- a/src/Animal/AnimalManager.cpp +++ b/src/Animal/AnimalManager.cpp @@ -32,7 +32,7 @@ void TAnimalManagerBase::clipEnemies(JDrama::TGraphics* graphics) JGeometry::TVec3 pos = actor->mPosition; pos.y += 75.0f; - if (actor->checkLiveFlag(LIVE_FLAG_UNK2000) + if (actor->checkLiveFlag(LIVE_FLAG_ENABLE_FAST_CUBE_CULLING) && SMS_IsInOtherFastCube(pos)) { actor->onLiveFlag(LIVE_FLAG_CLIPPED_OUT); } else { diff --git a/src/Animal/BeeHive.cpp b/src/Animal/BeeHive.cpp index 4c979e337..b8661b3a5 100644 --- a/src/Animal/BeeHive.cpp +++ b/src/Animal/BeeHive.cpp @@ -119,7 +119,7 @@ void TBeeHive::init(TLiveManager* manager) { mManager = manager; mManager->manageActor(this); - onLiveFlag(LIVE_FLAG_UNK8 | LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_SHADOW | LIVE_FLAG_NO_BIND); mSpine->initWith(&TNerveBeeHiveWait::theNerve()); mInitialPosition = mPosition; mActiveBeeNum = 0; @@ -142,7 +142,7 @@ void TBeeHive::reset() mSwingAngVel = 0.0f; mSwingAngleMax = 0.015707964f; mHitCheckBeeIdx = 0; - onLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_AIRBORNE); + onLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_AIRBORNE); mMActor = mMActorKeeper->getMActor("bee_nest.bmd"); offHitFilter(HIT_FILTER_NO_COLLISION); } @@ -289,7 +289,7 @@ void TBeeHive::control() void TBeeHive::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; JGeometry::TVec3 pos = mPosition; @@ -383,7 +383,7 @@ void TBeeHive::calcRootMatrix() void TBeeHive::prepareWait() { - onLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_AIRBORNE); + onLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_AIRBORNE); if (mActiveBeeNum < 3) { for (int i = 0; i < 3; ++i) appearBee(i); @@ -435,7 +435,7 @@ bool TBeeHive::doWait() void TBeeHive::prepareFall() { - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); onLiveFlag(LIVE_FLAG_AIRBORNE); SMSGetMSound()->startSoundActor(MSD_SE_EN_BEENEST_OFF, &mPosition, 0, nullptr, 0, 4); diff --git a/src/Animal/Bird.cpp b/src/Animal/Bird.cpp index 89a0d1fde..864c3780f 100644 --- a/src/Animal/Bird.cpp +++ b/src/Animal/Bird.cpp @@ -363,7 +363,7 @@ void TAnimalBird::doDropCoin() obj->appear(); obj->JSGSetTranslation(mPosition); obj->mVelocity.set(0.0f, -10.0f, 0.0f); - obj->offLiveFlag(LIVE_FLAG_UNK10); + obj->offLiveFlag(LIVE_FLAG_NO_BIND); obj->onLiveFlag(LIVE_FLAG_AIRBORNE); } } diff --git a/src/Animal/fishoid.cpp b/src/Animal/fishoid.cpp index 549f64d0c..969cee4c8 100644 --- a/src/Animal/fishoid.cpp +++ b/src/Animal/fishoid.cpp @@ -118,7 +118,7 @@ TRealoid::TRealoid(const char* name) : TSpineEnemy(name) { unk150 = 0; - mLiveFlag |= LIVE_FLAG_UNK10 | LIVE_FLAG_UNK20 | LIVE_FLAG_UNK8; + mLiveFlag |= LIVE_FLAG_NO_BIND | LIVE_FLAG_UNK20 | LIVE_FLAG_NO_SHADOW; } void TRealoid::loadDefault(JSUMemoryInputStream& stream, const char* name, diff --git a/src/Camera/CubeManagerBase.cpp b/src/Camera/CubeManagerBase.cpp index f3c8217bb..54b036128 100644 --- a/src/Camera/CubeManagerBase.cpp +++ b/src/Camera/CubeManagerBase.cpp @@ -107,14 +107,15 @@ bool TCubeManagerArea::isInAreaCube(const Vec& pos) const // Presumably hotel delphino floor transitions? if (SMSGetMarDirector()->getCurrentStage() == 7 && unk1C != -1 && found != -1) { - const char* curName = (*unk14)[unk1C].getName(); - const char* newName = (*unk14)[found].getName(); + const char* curFloor = (*unk14)[unk1C].getName(); + const char* foundFloor = (*unk14)[found].getName(); - if (strcmp(curName, "3階") == 0) { - if (strcmp(newName, "2階") == 0 || strcmp(newName, "1階") == 0) + if (strcmp(curFloor, "3階") == 0) { + if (strcmp(foundFloor, "2階") == 0 + || strcmp(foundFloor, "1階") == 0) return true; - } else if (strcmp(curName, "2階") == 0) { - if (strcmp(newName, "1階") == 0) + } else if (strcmp(curFloor, "2階") == 0) { + if (strcmp(foundFloor, "1階") == 0) return true; } } diff --git a/src/Enemy/Amenbo.cpp b/src/Enemy/Amenbo.cpp index 54c243bdb..cf8e6ecdb 100644 --- a/src/Enemy/Amenbo.cpp +++ b/src/Enemy/Amenbo.cpp @@ -35,7 +35,7 @@ const char* const cJointNames[] = { TAmenbo::TAmenbo(const char* name) : TSmallEnemy(name) { - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); } void TAmenbo::init(TLiveManager* manager) @@ -92,7 +92,7 @@ void TAmenbo::initParticle() void TAmenbo::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; JGeometry::TVec3 local_14 = mPosition; @@ -237,7 +237,7 @@ void TAmenbo::forceKill() // amenbo die if no water ;( if (mSpine->getLatestNerve() != &TNerveSmallEnemyDie::theNerve()) { - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); kill(); } } @@ -476,7 +476,7 @@ void TAmenbo::activateJumpBase() mDamageRadius = 215.0f; mDamageHeight = 120.0f; calcEntryRadius(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TAmenbo::deactivateJumpBase() @@ -487,7 +487,7 @@ void TAmenbo::deactivateJumpBase() unk1E4->remove(); offHitFilter(HIT_FILTER_NO_ATTACK); setDamageParams(100.0f, 150.0f); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } bool TAmenbo::isActivateJumpBase() const { return unk1E4->isSetUp(); } diff --git a/src/Enemy/BathtubKiller.cpp b/src/Enemy/BathtubKiller.cpp index f5661b5fa..b99fa8e88 100644 --- a/src/Enemy/BathtubKiller.cpp +++ b/src/Enemy/BathtubKiller.cpp @@ -149,9 +149,9 @@ void TBathtubKiller::init(TLiveManager* manager) TSmallEnemy::init(manager); mActorType = ACTOR_TYPE_BATHTUB_KILLER; unk150 = 0x11; - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); onLiveFlag(LIVE_FLAG_DEAD); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); onHitFilter(HIT_FILTER_NO_COLLISION); mKillerType = KILLER_NORMAL; resetBathtubKiller(); @@ -200,7 +200,7 @@ void TBathtubKiller::reset() { TSmallEnemy::reset(); offLiveFlag(LIVE_FLAG_DEAD); - offLiveFlag(LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_NO_SHADOW); offHitFilter(HIT_FILTER_NO_COLLISION); offHitFilter(HIT_FILTER_NO_ATTACK); offHitFilter(HIT_FILTER_NO_DAMAGE); @@ -609,7 +609,7 @@ void TBathtubKiller::setDeadBathtubKillerAnm() mQuat.set(0.0f, 0.0f, 0.0f, 1.0f); mAcceleration.set(0.0f, 0.0f, 0.0f); mVelocity = JGeometry::TVec3(0, 0, 0); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); mNoseColor = mBodyColor; } diff --git a/src/Enemy/BathtubPeach.cpp b/src/Enemy/BathtubPeach.cpp index 5eec2e02d..529493174 100644 --- a/src/Enemy/BathtubPeach.cpp +++ b/src/Enemy/BathtubPeach.cpp @@ -122,7 +122,7 @@ TBathtubPeach::TBathtubPeach(const char* name) { onLiveFlag(LIVE_FLAG_AIRBORNE); offLiveFlag(LIVE_FLAG_ENABLE_CLIPPING); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } // fabricated diff --git a/src/Enemy/BossHanachanEffect.cpp b/src/Enemy/BossHanachanEffect.cpp index ee6870d09..e93a640dc 100644 --- a/src/Enemy/BossHanachanEffect.cpp +++ b/src/Enemy/BossHanachanEffect.cpp @@ -137,7 +137,7 @@ void TBossHanachan::emitParticle_() void TBossHanachan::emitOneTimeSandPillar_(TBossHanachanPartsBody* body) { - onLiveFlag(LIVE_FLAG_UNK10000); + onLiveFlag(LIVE_FLAG_SAND_PILLAR_ACTIVE); unk1A0.set(body->unk108[0][3], mPosition.y, body->unk108[2][3]); const TLiveActor* sand = body->getSandActor_(); if (sand) { @@ -202,7 +202,7 @@ void TBossHanachan::emitCamShake_() gpCameraShake->startShake(CAM_SHAKE_MODE_UNKC, 1.0f); if (marioOnGround) SMSRumbleMgr->start(8, (f32*)nullptr); - if (checkLiveFlag(LIVE_FLAG_UNK20000)) + if (checkLiveFlag(TBossHanachan::LIVE_FLAG_BGM_CHANGE_PENDING)) MSBgm::stopTrackBGM(1, 30); } break; diff --git a/src/Enemy/BossHanachanMain.cpp b/src/Enemy/BossHanachanMain.cpp index a28cccb74..3eba79b3d 100644 --- a/src/Enemy/BossHanachanMain.cpp +++ b/src/Enemy/BossHanachanMain.cpp @@ -137,7 +137,7 @@ void TBossHanachan::init(TLiveManager* manager) mGravity = 2.0f; mHitPoints = 3; mScaledBodyRadius = 0.0f; - onLiveFlag(LIVE_FLAG_UNK1000 | LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS | LIVE_FLAG_NO_SHADOW); mSpine->initWith(&TNerveBossHanachanGraphWander::theNerve()); unk124->reset(); goToShortestNextGraphNode(); @@ -257,7 +257,7 @@ void TBossHanachan::kill() { } // TODO: frame offsets and revision-argument load order differ. void TBossHanachan::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; if (mBinder) { mBinder->bind(this); @@ -310,14 +310,14 @@ void TBossHanachan::moveObject() void TBossHanachan::perform(u32 cue, JDrama::TGraphics* graphics) { - if (checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_UNK200)) + if (checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_OUT_OF_AREA)) return; - if (checkLiveFlag(LIVE_FLAG_UNK40000)) { + if (checkLiveFlag(LIVE_FLAG_DEATH_ANIMATION_FINISHED)) { if ((cue & CUE_MOVE) && (graphics->unk0 & 2)) { SMSGetMSound()->startSoundActor(MSD_SE_WT_BOSS_FADEAWAY, &mPosition, 0, nullptr, 0, 4); if (!gpMarDirector->isInTalkNow() - && (checkLiveFlag(LIVE_FLAG_UNK100000) + && (checkLiveFlag(LIVE_FLAG_SKIP_DEATH_BGM_MODULATION) || gpMSound->unk98->modBgm(1, 1) == 0)) { onLiveFlag(LIVE_FLAG_UNK40 | LIVE_FLAG_DEAD); gpItemManager->makeShineAppearWithDemo( @@ -334,13 +334,13 @@ void TBossHanachan::perform(u32 cue, JDrama::TGraphics* graphics) if ((graphics->unk0 & 2) && (mSpine->getLatestNerve() == &TNerveBossHanachanDead::theNerve()) - && !checkLiveFlag(LIVE_FLAG_UNK100000)) { - onLiveFlag(LIVE_FLAG_UNK100000); + && !checkLiveFlag(LIVE_FLAG_SKIP_DEATH_BGM_MODULATION)) { + onLiveFlag(LIVE_FLAG_SKIP_DEATH_BGM_MODULATION); MSBgm::stopTrackBGM(1, 30); } } else { - if (!checkLiveFlag(LIVE_FLAG_UNK80000) && mHitPoints == 3 - && mMarchSpeed != 0.0f + if (!checkLiveFlag(LIVE_FLAG_SUPPRESS_HINT_BALLOON) + && mHitPoints == 3 && mMarchSpeed != 0.0f && !(mSpine->getLatestNerve() == &TNerveBossHanachanTumble::theNerve())) { if (unk1B8 == -1 @@ -614,7 +614,7 @@ void TBossHanachan::perform(u32 cue, JDrama::TGraphics* graphics) && nerve == &TNerveBossHanachanDead::theNerve()) { SMSGetMSound()->startSoundActor(MSD_SE_WT_BOSS_FADEAWAY, &mPosition, 0, nullptr, 0, 4); - if (!checkLiveFlag(LIVE_FLAG_UNK100000)) + if (!checkLiveFlag(LIVE_FLAG_SKIP_DEATH_BGM_MODULATION)) gpMSound->unk98->modBgm(1, 1); } } @@ -675,9 +675,9 @@ void TBossHanachan::perform(u32 cue, JDrama::TGraphics* graphics) emitParticle_(); emitCamShake_(); } - if (checkLiveFlag(LIVE_FLAG_UNK10000) + if (checkLiveFlag(LIVE_FLAG_SAND_PILLAR_ACTIVE) && unk19C->curAnmEndsNext(0, nullptr)) - offLiveFlag(LIVE_FLAG_UNK10000); + offLiveFlag(LIVE_FLAG_SAND_PILLAR_ACTIVE); if (!gpMarDirector->isInTalkNow()) changeAnmRateAndFrameUpdate_(); mHead->unk110->execMotionBlend(mHead->getMActor()); @@ -715,7 +715,7 @@ void TBossHanachan::perform(u32 cue, JDrama::TGraphics* graphics) for (int i = 0; i < ARRAY_COUNT(mBodyParts); ++i) mBodyParts[i]->getMActor()->viewCalc(); } - if (checkLiveFlag(LIVE_FLAG_UNK10000)) + if (checkLiveFlag(LIVE_FLAG_SAND_PILLAR_ACTIVE)) unk19C->perform(cue, graphics); } @@ -893,7 +893,7 @@ void TBossHanachan::execDamage() break; } unk124->setGraph(gpConductor->getGraphByName(railName)); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TBossHanachan::LIVE_FLAG_BGM_CHANGE_PENDING); SMSGetMSound()->startSoundActor(MSD_SE_BS_DAMAGE_SYMBL, &mBodyParts[unk174]->unk154, 0, nullptr, 0, 4); diff --git a/src/Enemy/BossHanachanNerve.cpp b/src/Enemy/BossHanachanNerve.cpp index 879a32746..f9ad52791 100644 --- a/src/Enemy/BossHanachanNerve.cpp +++ b/src/Enemy/BossHanachanNerve.cpp @@ -87,8 +87,9 @@ DEFINE_NERVE(TNerveBossHanachanSnort, TLiveActor) { TBossHanachan* hanachan = (TBossHanachan*)spine->getBody(); if (spine->getTime() == 0xC8 - && hanachan->checkLiveFlag(LIVE_FLAG_UNK20000)) { - hanachan->offLiveFlag(LIVE_FLAG_UNK20000); + && hanachan->checkLiveFlag( + TBossHanachan::LIVE_FLAG_BGM_CHANGE_PENDING)) { + hanachan->offLiveFlag(TBossHanachan::LIVE_FLAG_BGM_CHANGE_PENDING); MSBgm::startBGM(MSD_BGM_BOSSGESO_2DN3RD); switch (hanachan->getHitPoints()) { case 2: @@ -112,9 +113,10 @@ DEFINE_NERVE(TNerveBossHanachanDead, TLiveActor) { TBossHanachan* hanachan = (TBossHanachan*)spine->getBody(); hanachan->considerSetAnm(BOSS_HANACHAN_NERVE_ANM_UNK5); - if (!hanachan->checkLiveFlag(LIVE_FLAG_UNK40000) + if (!hanachan->checkLiveFlag( + TBossHanachan::LIVE_FLAG_DEATH_ANIMATION_FINISHED) && hanachan->isAllBckAlreadyEnd(BOSS_HANACHAN_ANM_UNK15)) { - hanachan->onLiveFlag(LIVE_FLAG_UNK40000); + hanachan->onLiveFlag(TBossHanachan::LIVE_FLAG_DEATH_ANIMATION_FINISHED); hanachan->removeAllMapCollision(); } return false; diff --git a/src/Enemy/BossHanachanParts.cpp b/src/Enemy/BossHanachanParts.cpp index ca0f6ef59..457c7807b 100644 --- a/src/Enemy/BossHanachanParts.cpp +++ b/src/Enemy/BossHanachanParts.cpp @@ -68,7 +68,7 @@ TBossHanachanPartsBase::TBossHanachanPartsBase(TBossHanachan* owner, mScaledBodyRadius = mOwner->unk1BC->mSLHeadShadowSize.get(); break; } - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); initAnmSound(); mMActor->setLightType(1); unk110 = new TNpcInbetween( diff --git a/src/Enemy/DebuTelesa.cpp b/src/Enemy/DebuTelesa.cpp index ddf6ce1ef..0c4e54264 100644 --- a/src/Enemy/DebuTelesa.cpp +++ b/src/Enemy/DebuTelesa.cpp @@ -21,7 +21,7 @@ static const char* DebuTelesa_bastable[] = { TDebuTelesa::TDebuTelesa(const char* name) : TSmallEnemy(name) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TDebuTelesa::init(TLiveManager* manager) @@ -167,7 +167,7 @@ void TDebuTelesaManager::clipEnemies(JDrama::TGraphics* graphics) JGeometry::TVec3 pos = debu->mPosition; - if (debu->checkLiveFlag(LIVE_FLAG_UNK2000) + if (debu->checkLiveFlag(LIVE_FLAG_ENABLE_FAST_CUBE_CULLING) && SMS_IsInOtherFastCube(pos)) { debu->onLiveFlag(LIVE_FLAG_CLIPPED_OUT); } else if (ViewFrustumClipCheck(graphics, &debu->mPosition, unk3C)) { diff --git a/src/Enemy/DemoBossHanachanBase.cpp b/src/Enemy/DemoBossHanachanBase.cpp index c09d2a0ac..1a865b7a4 100644 --- a/src/Enemy/DemoBossHanachanBase.cpp +++ b/src/Enemy/DemoBossHanachanBase.cpp @@ -46,7 +46,7 @@ void TDemoBossHanachan::initBase(TLiveManager* param_1, u32 param_2) mMarchSpeed = 0.0f; mScaledBodyRadius = 1000.0f; - onLiveFlag(LIVE_FLAG_UNK8 | LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_SHADOW | LIVE_FLAG_NO_BIND); mGroundHeight = gpMap->checkGroundIgnoreWaterSurface( mPosition.x, mPosition.y + getHeadHeight(), mPosition.z, &mGroundPlane); diff --git a/src/Enemy/Kazekun.cpp b/src/Enemy/Kazekun.cpp index 30099273a..5c40127cb 100644 --- a/src/Enemy/Kazekun.cpp +++ b/src/Enemy/Kazekun.cpp @@ -41,7 +41,7 @@ TKazekun::TKazekun(const char* param_1) : TSmallEnemy(param_1) , unk1B0(0) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TKazekun::init(TLiveManager* param_1) @@ -282,9 +282,9 @@ void TKazekun::doAttack(bool start) void TKazekun::setVisible(bool visible) { if (visible) { - offLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_NO_SHADOW); } else { - onLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_NO_SHADOW); setAnmSound(nullptr); } } diff --git a/src/Enemy/Kumokun.cpp b/src/Enemy/Kumokun.cpp index 9bb78d876..23ed78361 100644 --- a/src/Enemy/Kumokun.cpp +++ b/src/Enemy/Kumokun.cpp @@ -208,7 +208,7 @@ void TKumokun::reset() { } void TKumokun::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; if (isFlying()) { diff --git a/src/Enemy/TabePuku.cpp b/src/Enemy/TabePuku.cpp index 12dcce6ca..558c21386 100644 --- a/src/Enemy/TabePuku.cpp +++ b/src/Enemy/TabePuku.cpp @@ -184,7 +184,7 @@ void TTPHitActor::checkHitActors() TTabePuku::TTabePuku(const char* param_1) : TSmallEnemy(param_1) { - onLiveFlag(LIVE_FLAG_UNK1000); + onLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS); } void TTabePuku::init(TLiveManager* param_1) diff --git a/src/Enemy/amiNoko.cpp b/src/Enemy/amiNoko.cpp index cb0b455f4..59f497faf 100644 --- a/src/Enemy/amiNoko.cpp +++ b/src/Enemy/amiNoko.cpp @@ -133,7 +133,7 @@ void TAmiNoko::init(TLiveManager* param_1) unk20C = (TAmiNokoSaveLoadParams*)getSaveParam(); reset(); setWalkAnm(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); initialGraphNode(); if (SMSGetMarDirector()->getCurrentStage() == 8) unk210 = 0; @@ -594,7 +594,7 @@ void TAmiNoko::bind() mVelocity.y -= getGravityY(); if (mVelocity.y < mVelocityMinY) mVelocity.y = mVelocityMinY; - if (checkLiveFlag(LIVE_FLAG_UNK1000)) + if (checkLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS)) mGroundHeight = gpMap->checkGroundIgnoreWaterSurface( vec.x, vec.y + mHeadHeight, vec.z, &mGroundPlane); else @@ -800,7 +800,7 @@ DEFINE_NERVE(TNerveAmiNokoDie, TLiveActor) || direction.length() > 10000.0f) { self->onHitFilter(HIT_FILTER_NO_COLLISION); self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(LIVE_FLAG_HIDDEN); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; diff --git a/src/Enemy/bgtentacle.cpp b/src/Enemy/bgtentacle.cpp index b070e6d5e..1c5d9c156 100644 --- a/src/Enemy/bgtentacle.cpp +++ b/src/Enemy/bgtentacle.cpp @@ -954,18 +954,14 @@ void TBGTentacle::moveNode() local_ac.y = mOwner->mPosition.y + 10.0f; } - // TODO: inline, or need to try harder to make MWCC merge the loads? - TBossGesso* bossGesso = mOwner; - JGeometry::TVec3 local_c8 = bossGesso->mPosition; + JGeometry::TVec3 local_c8 = mOwner->mPosition; if (local_c8.y < local_ac.y) { local_c8 -= local_ac; - f32 thing = bossGesso->mBodyScale * bossGesso->mBodyRadius; - // TODO: common subexpression eliminator doesn't want to merge - // the `squared` calls here =( - if (local_c8.length() < thing) { + f32 bodyRad = mOwner->getBodyRadius(); + if (local_c8.length() < bodyRad) { local_c8.normalize(); - local_c8.scale(thing); + local_c8.scale(bodyRad); local_ac += local_c8; } } diff --git a/src/Enemy/bombhei.cpp b/src/Enemy/bombhei.cpp index 7d4c041ef..4065948ca 100644 --- a/src/Enemy/bombhei.cpp +++ b/src/Enemy/bombhei.cpp @@ -196,7 +196,7 @@ void TBombHei::genEventCoin() JGeometry::TVec3 vec = SMS_GetMarioPos() - mPosition; MsVECNormalize(&vec, &vec); coin->mVelocity.set(vec.x * 20.0f, 20.0f, vec.z * 20.0f); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); } } } @@ -334,7 +334,7 @@ void TBombHei::forceKill() if (isAirborne()) return; - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; if (mSpine->getCurrentNerve() != &TNerveBombHeiExplosion::theNerve()) { @@ -342,7 +342,7 @@ void TBombHei::forceKill() mSpine->setNext(&TNerveBombHeiExplosion::theNerve()); mSpine->pushAfterCurrent(mSpine->getDefault()); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); mHitPoints = 1; } } @@ -510,7 +510,7 @@ DEFINE_NERVE(TNerveBombHeiExplosion, TLiveActor) self->unk1A0 = params->mSLBombRange.get() * self->getBodyScale() / self->getAttackRadius(); self->setDeadAnm(); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); if (self->getHolder() == gpMarioAddress) self->sendAttackMsgToMario(); self->unk164 = 0; @@ -538,7 +538,7 @@ DEFINE_NERVE(TNerveBombHeiExplosion, TLiveActor) } else if (self->checkCurAnmEnd(0)) { self->onHitFilter(HIT_FILTER_NO_COLLISION); self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; self->stopAnmSound(); diff --git a/src/Enemy/bossManta.cpp b/src/Enemy/bossManta.cpp index 31e43649b..798caafa7 100644 --- a/src/Enemy/bossManta.cpp +++ b/src/Enemy/bossManta.cpp @@ -478,7 +478,7 @@ void TBossManta::init(TLiveManager* manager) getManager()->initAdditionalCollision(); } - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); offLiveFlag(LIVE_FLAG_ENABLE_CLIPPING); unk1A4 = 0; unk150 = 0.5f; diff --git a/src/Enemy/bosseel.cpp b/src/Enemy/bosseel.cpp index 8023e4573..9c2ab7f4b 100644 --- a/src/Enemy/bosseel.cpp +++ b/src/Enemy/bosseel.cpp @@ -460,10 +460,10 @@ void TBEelTears::reset() mActorType = ACTOR_TYPE_BOSS_EEL; TSpineEnemy::reset(); mSpine->initWith(&TNerveBEelTearsGenerate::theNerve()); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); offLiveFlag(LIVE_FLAG_DEAD); offLiveFlag(LIVE_FLAG_CLIPPED_OUT); - offLiveFlag(LIVE_FLAG_UNK200); + offLiveFlag(LIVE_FLAG_OUT_OF_AREA); offLiveFlag(LIVE_FLAG_HIDDEN); mGroundPlane = gpMap->getIllegalCheckData(); offHitFilter(HIT_FILTER_NO_COLLISION); @@ -1415,7 +1415,7 @@ void TBossEel::init(TLiveManager* manager) mMActor = mMActorKeeper->getMActor(0); mSaveParams = &static_cast(manager)->mSaveParams; mInitialPosition.set(mPosition); - onLiveFlag(LIVE_FLAG_UNK8 | LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_SHADOW | LIVE_FLAG_NO_BIND); mGroundHeight = gpMap->checkGround( mPosition.x, mPosition.y + getHeadHeight(), mPosition.z, &mGroundPlane); mMActor->initBckNormalMotionBlend(); @@ -1763,7 +1763,7 @@ void TBossEel::perform(u32 cue, JDrama::TGraphics* graphics) if (mMActor->checkCurBckFromIndex(4)) mAwaCollision->perform(cue, graphics); - if (checkLiveFlag(LIVE_FLAG_UNK200)) + if (checkLiveFlag(LIVE_FLAG_OUT_OF_AREA)) return; if (cue & CUE_MOVE) { @@ -1860,7 +1860,7 @@ void TBossEel::perform(u32 cue, JDrama::TGraphics* graphics) breathMtx[2][3]); JPABaseEmitter* emitter; - if (checkLiveFlag(LIVE_FLAG_UNK10000)) + if (checkLiveFlag(LIVE_FLAG_REVERSE_SPIN)) emitter = gpMarioParticleManager->emit( BOSSEEL_JPA_MS_MEO_SPIN_SMOKE, &mBreathParticlePosition, 1, this); @@ -1871,7 +1871,7 @@ void TBossEel::perform(u32 cue, JDrama::TGraphics* graphics) if (emitter) emitter->setGlobalScale(mScaling); - if (checkLiveFlag(LIVE_FLAG_UNK10000)) + if (checkLiveFlag(LIVE_FLAG_REVERSE_SPIN)) emitter = gpMarioParticleManager->emit( BOSSEEL_JPA_MS_MEO_SPIN_AWA, &mBreathParticlePosition, 1, this); @@ -2049,7 +2049,7 @@ void ExecSpinNerve_Sub(TBossEel* eel) eel->setTurnSpeed(spinSpeed); gpCameraShake->keepShake(static_cast(0x18), 1.0f); - if (eel->checkLiveFlag(TBossEel::LIVE_FLAG_UNK10000)) { + if (eel->checkLiveFlag(TBossEel::LIVE_FLAG_REVERSE_SPIN)) { eel->mRotation.y -= spinSpeed; if (eel->mRotation.y <= 0.0f) SMSGetMSound()->startSoundActorWithInfo( @@ -2075,9 +2075,9 @@ DEFINE_NERVE(TNerveBossEelFirstSpin, TLiveActor) 0, 0, nullptr, 0, 4); eel->setBckAnm(10); if (MsRandF() < 0.5f) - eel->onLiveFlag(TBossEel::LIVE_FLAG_UNK10000); + eel->onLiveFlag(TBossEel::LIVE_FLAG_REVERSE_SPIN); else - eel->offLiveFlag(TBossEel::LIVE_FLAG_UNK10000); + eel->offLiveFlag(TBossEel::LIVE_FLAG_REVERSE_SPIN); } ExecSpinNerve_Sub(eel); @@ -2102,9 +2102,9 @@ DEFINE_NERVE(TNerveBossEelSecondSpin, TLiveActor) &eel->mPosition, nullptr, 2.0f, 0, 0, nullptr, 0, 4); if (MsRandF() < 0.5f) - eel->onLiveFlag(TBossEel::LIVE_FLAG_UNK10000); + eel->onLiveFlag(TBossEel::LIVE_FLAG_REVERSE_SPIN); else - eel->offLiveFlag(TBossEel::LIVE_FLAG_UNK10000); + eel->offLiveFlag(TBossEel::LIVE_FLAG_REVERSE_SPIN); } ExecSpinNerve_Sub(eel); @@ -2154,7 +2154,7 @@ DEFINE_NERVE_EXECUTE(TNerveBossEelAppear, TLiveActor) sp *= 0.98f; eel->setTurnSpeed(sp); - if (eel->checkLiveFlag(TBossEel::LIVE_FLAG_UNK10000)) + if (eel->checkLiveFlag(TBossEel::LIVE_FLAG_REVERSE_SPIN)) eel->mRotation.y -= sp; else eel->mRotation.y += sp; diff --git a/src/Enemy/bossgesso.cpp b/src/Enemy/bossgesso.cpp index 9bd98942e..7d25146bb 100644 --- a/src/Enemy/bossgesso.cpp +++ b/src/Enemy/bossgesso.cpp @@ -616,7 +616,7 @@ void TBossGesso::init(TLiveManager* param_1) offLiveFlag(LIVE_FLAG_ENABLE_CLIPPING); getMActor()->offMakeDL(); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); mScaledBodyRadius = 330.0f; initAnmSound(); unk190.color.r = 0; @@ -1913,7 +1913,7 @@ DEFINE_NERVE(TNerveBGDie, TLiveActor) if (self->isReachedToGoal()) { self->mPositionDelta = self->mVelocity = JGeometry::TVec3(0.0f, 0.0f, 0.0f); - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); } if (self->isReachedToGoal() && !SMSGetMarDirector()->isInnerDemoModeNow()) { diff --git a/src/Enemy/bosspakkun.cpp b/src/Enemy/bosspakkun.cpp index 628ffcebb..65ea7e64e 100644 --- a/src/Enemy/bosspakkun.cpp +++ b/src/Enemy/bosspakkun.cpp @@ -1785,7 +1785,7 @@ DEFINE_NERVE(TNerveBPDie, TLiveActor) } if (actor->checkCurBckFromIndex(7) && spine->getTime() == 680) - boss->onLiveFlag(LIVE_FLAG_UNK8); + boss->onLiveFlag(LIVE_FLAG_NO_SHADOW); if (actor->curAnmEndsNext(ANM_TYPE_BCK, nullptr) && actor->checkCurBckFromIndex(7)) { @@ -1804,7 +1804,7 @@ DEFINE_NERVE(TNerveBPTakeOff, TLiveActor) TBossPakkun* boss = static_cast(spine->getBody()); MActor* actor = boss->getMActor(); if (spine->getTime() == 0) { - boss->onLiveFlag(LIVE_FLAG_UNK10); + boss->onLiveFlag(LIVE_FLAG_NO_BIND); boss->onLiveFlag(LIVE_FLAG_AIRBORNE); boss->changeBck(13); } @@ -1867,7 +1867,7 @@ DEFINE_NERVE(TNerveBPTouchDown, TLiveActor) if (goal.y > boss->mPosition.y) { boss->mPosition.y = goal.y; boss->changeBck(18); - boss->offLiveFlag(LIVE_FLAG_UNK10); + boss->offLiveFlag(LIVE_FLAG_NO_BIND); } } @@ -1937,7 +1937,7 @@ DEFINE_NERVE(TNerveBPFall, TLiveActor) TBossPakkun* boss = static_cast(spine->getBody()); MActor* actor = boss->getMActor(); if (spine->getTime() == 0) { - boss->offLiveFlag(LIVE_FLAG_UNK10); + boss->offLiveFlag(LIVE_FLAG_NO_BIND); boss->onLiveFlag(LIVE_FLAG_AIRBORNE); boss->changeBck(10); } diff --git a/src/Enemy/bosstelesa.cpp b/src/Enemy/bosstelesa.cpp index ea7321861..83861c06b 100644 --- a/src/Enemy/bosstelesa.cpp +++ b/src/Enemy/bosstelesa.cpp @@ -144,7 +144,7 @@ void TBubble::init(TLiveManager* manager) void TBubble::reset() { TWalkerEnemy::reset(); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); TMsRange scaleRange(50.0f, 150.0f); unk1CC = scaleRange.rand(); @@ -208,7 +208,7 @@ void TBubble::kill() mSpine->reset(); mSpine->setNext(&TNerveSmallEnemyDie::theNerve()); mSpine->pushAfterCurrent(mSpine->getDefault()); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } onLiveFlag(LIVE_FLAG_UNK40); @@ -262,7 +262,7 @@ void TBubble::appendItem() item->appear(); item->mPosition = mPosition; item->mVelocity.set(0.0f, 15.0f, 0.0f); - item->offLiveFlag(LIVE_FLAG_UNK10); + item->offLiveFlag(LIVE_FLAG_NO_BIND); mHeldObject = item; unk198 = item; } @@ -328,7 +328,7 @@ DEFINE_NERVE_EXECUTE(TNerveBubbleLive, TLiveActor) J3DFrameCtrl* frameCtrl = bubble->mMActor->getFrameCtrl(0); TMsRange frameRange(0.0f, 20.0f); frameCtrl->setFrame(frameRange.rand()); - bubble->onLiveFlag(LIVE_FLAG_UNK8); + bubble->onLiveFlag(LIVE_FLAG_NO_SHADOW); } else if (bubble->checkCurAnmEnd(0)) { bubble->offHitFilter(HIT_FILTER_NO_COLLISION); bubble->setBckAnm(10); @@ -520,7 +520,7 @@ void TBossTelesaKillSmallEnemy::checkHit() void TTelesaSlot::initMapObj() { TSlotDrum::initMapObj(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); unk14C = 160.0f; unk150 = mPosition.y; unk154 = 2.0f; @@ -849,7 +849,7 @@ void TBossTelesa::init(TLiveManager* manager) onHitFilter(HIT_CATEGORY_PLAYER | HIT_CATEGORY_MAP_OBJECT | HIT_CATEGORY_ENEMY); mSpine->initWith(&TNerveBossTelesaFallDemo::theNerve()); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); mMActor->setLightType(1); mMActor->markUnk40(); @@ -1102,8 +1102,8 @@ void TBossTelesa::reset() { TSpineEnemy::reset(); onHitFilter(HIT_FILTER_NO_COLLISION); - onLiveFlag(LIVE_FLAG_UNK8); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_SHADOW); + onLiveFlag(LIVE_FLAG_NO_BIND); onLiveFlag(LIVE_FLAG_HIDDEN); unk18C = 0; @@ -1852,12 +1852,12 @@ void TBossTelesa::generateSlotItem() mRedPeppers[i]->mVelocity.set( normalizedDir.x * fruitSpeedRange.rand(), -2.0f, normalizedDir.z * fruitSpeedRange.rand()); - mRedPeppers[i]->offLiveFlag(LIVE_FLAG_UNK10); + mRedPeppers[i]->offLiveFlag(LIVE_FLAG_NO_BIND); if (i == 0) { mRedPeppers[i]->mVelocity.set( normalizedDir.x * fruitSpeedRange.rand() * 2.0f, -2.0f, normalizedDir.z * fruitSpeedRange.rand() * 2.0f); - mRedPeppers[i]->offLiveFlag(LIVE_FLAG_UNK10); + mRedPeppers[i]->offLiveFlag(LIVE_FLAG_NO_BIND); } mRedPeppers[i]->mRotation.set(0.0f, 90.0f, 0.0f); mSpitObjs[mSpitObjNum] = mRedPeppers[i]; @@ -1868,7 +1868,7 @@ void TBossTelesa::generateSlotItem() mFruits[i]->mVelocity.set( normalizedDir.x * fruitSpeedRange.rand(), -2.0f, normalizedDir.z * fruitSpeedRange.rand()); - mFruits[i]->offLiveFlag(LIVE_FLAG_UNK10); + mFruits[i]->offLiveFlag(LIVE_FLAG_NO_BIND); mSpitObjs[mSpitObjNum] = mFruits[i]; } @@ -1920,7 +1920,7 @@ void TBossTelesa::generateSlotItem() item->mPosition.set(rootMtx[0][3], rootMtx[1][3] - 250.0f, rootMtx[2][3]); item->mVelocity.set(velocity); - item->offLiveFlag(LIVE_FLAG_UNK10); + item->offLiveFlag(LIVE_FLAG_NO_BIND); item->mScaling.set(0.0f, 0.0f, 0.0f); item->killByTimer(0x3C0); @@ -2173,7 +2173,7 @@ DEFINE_NERVE(TNerveBossTelesaDie, TLiveActor) "シャイン(ボス用)", "ボスシャインカメラ", boss->mPosition.x, boss->mPosition.y, boss->mPosition.z); boss->onLiveFlag(LIVE_FLAG_DEAD); - boss->onLiveFlag(LIVE_FLAG_UNK8); + boss->onLiveFlag(LIVE_FLAG_NO_SHADOW); boss->offLiveFlag(TBossTelesa::LIVE_FLAG_UNK10000); boss->mHolder = nullptr; boss->offAllCollision(); diff --git a/src/Enemy/bosswanwan.cpp b/src/Enemy/bosswanwan.cpp index da7d5cd9f..7036d180c 100644 --- a/src/Enemy/bosswanwan.cpp +++ b/src/Enemy/bosswanwan.cpp @@ -582,8 +582,7 @@ void TBWBinder::bind(TLiveActor* actor) if (!bgData->isEnemyThrough()) { const TBGCheckData* bgData2; f32 groundY2 = gpMap->checkGround( - nextPos.x, - boss->mPosition.y + boss->mHeadHeight * boss->mBodyScale, + nextPos.x, boss->mPosition.y + boss->getHeadHeight(), nextPos.z, &bgData2); if (groundY2 + 1.0f > groundY) { groundY = groundY2 + 1.0f; @@ -592,12 +591,12 @@ void TBWBinder::bind(TLiveActor* actor) } } - if (nextPos.y <= groundY && !bgData->checkFlag(0x10) + if (nextPos.y <= groundY && !bgData->isIllegalData() && !bgData->isEnemyThrough()) { nextPos.y = groundY; boss->mVelocity = JGeometry::TVec3(0.0f, 0.0f, 0.0f); boss->offLiveFlag(LIVE_FLAG_AIRBORNE); - boss->offLiveFlag(0x8000); + boss->offLiveFlag(TSpineEnemy::LIVE_FLAG_JUMPING); } else { boss->onLiveFlag(LIVE_FLAG_AIRBORNE); } @@ -1768,7 +1767,7 @@ DEFINE_NERVE(TNerveBWDie, TLiveActor) JGeometry::TVec3 zero(0.0f, 0.0f, 0.0f); boss->mVelocity = zero; boss->mPositionDelta = zero; - boss->onLiveFlag(LIVE_FLAG_UNK10); + boss->onLiveFlag(LIVE_FLAG_NO_BIND); boss->offLiveFlag(LIVE_FLAG_AIRBORNE); gpMarioParticleManager->emit(0xB1, &boss->mPosition, 0, nullptr); } diff --git a/src/Enemy/cannon.cpp b/src/Enemy/cannon.cpp index 16010f342..85d3ef393 100644 --- a/src/Enemy/cannon.cpp +++ b/src/Enemy/cannon.cpp @@ -363,7 +363,7 @@ void TCannon::reset() onHitFilter(HIT_FILTER_NO_COLLISION); unk214 = 1; mHeadHeight = 40.0f; - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); unk2AC = mRotation.y; if (unk230 == 9) { diff --git a/src/Enemy/coasterkiller.cpp b/src/Enemy/coasterkiller.cpp index 8701aa864..d217c6a92 100644 --- a/src/Enemy/coasterkiller.cpp +++ b/src/Enemy/coasterkiller.cpp @@ -54,7 +54,7 @@ void TCoasterEnemy::init(TLiveManager* mgr) TSpineEnemy::goToShortestNextGraphNode(); mSpine->initWith(&TNerveCoasterEnemyWander::theNerve()); onLiveFlag(LIVE_FLAG_DEAD); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); mQuat.set(0.0f, 0.0f, 0.0f, 1.0f); } @@ -186,7 +186,7 @@ void TCoasterKiller::init(TLiveManager* mgr) mActorType = ACTOR_TYPE_COASTER_KILLER; unk150 = 17; onLiveFlag(LIVE_FLAG_FORCE_SHADOW); - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); GXColorS10& bodyColor = getBodyColor(); // @hack, gets stack right mBodyColor.r = 0; @@ -340,7 +340,7 @@ DEFINE_NERVE(TNerveCoasterKillerExplosion, TLiveActor) self->onHitFilter(HIT_FILTER_NO_COLLISION); if (self->checkCurAnmEnd(0)) { self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; self->stopAnmSound(); diff --git a/src/Enemy/conductor.cpp b/src/Enemy/conductor.cpp index 9f9459fcd..b72e8b91d 100644 --- a/src/Enemy/conductor.cpp +++ b/src/Enemy/conductor.cpp @@ -188,7 +188,7 @@ int TConductor::makeEnemyAppear(const JGeometry::TVec3& position, for (int i = 0; i < mgr->getObjNum(); ++i) { TSpineEnemy* actor = (TSpineEnemy*)mgr->getObj(i); if (!actor->checkLiveFlag(LIVE_FLAG_DEAD) - && actor->checkLiveFlag(LIVE_FLAG_UNK800) + && actor->checkLiveFlag(TSpineEnemy::LIVE_FLAG_RECYCLABLE) && actor->checkLiveFlag(LIVE_FLAG_CLIPPED_OUT)) { actor->resetToPosition(position); ++result; @@ -204,7 +204,7 @@ int TConductor::makeEnemyAppear(const JGeometry::TVec3& position, TSpineEnemy* actor = (TSpineEnemy*)mgr->getObj(i); if (!actor->checkLiveFlag(LIVE_FLAG_DEAD) && !actor->checkLiveFlag(LIVE_FLAG_CLIPPED_OUT) - && actor->checkLiveFlag(LIVE_FLAG_UNK800)) { + && actor->checkLiveFlag(TSpineEnemy::LIVE_FLAG_RECYCLABLE)) { actor->resetToPosition(position); ++result; if (result >= count) @@ -235,8 +235,8 @@ TConductor::makeOneEnemyAppear(const JGeometry::TVec3& position, if (param_3 == 0) return nullptr; - result = (TSpineEnemy*)mgr->getActorByFlag(LIVE_FLAG_CLIPPED_OUT - | LIVE_FLAG_UNK800); + result = (TSpineEnemy*)mgr->getActorByFlag( + LIVE_FLAG_CLIPPED_OUT | TSpineEnemy::LIVE_FLAG_RECYCLABLE); if (result) { result->resetToPosition(position); return result; diff --git a/src/Enemy/effectEnemy.cpp b/src/Enemy/effectEnemy.cpp index 3159cb363..549499efd 100644 --- a/src/Enemy/effectEnemy.cpp +++ b/src/Enemy/effectEnemy.cpp @@ -57,7 +57,7 @@ void TEffectEnemy::forceKill() if (!(mGroundPlane->isIllegalData() || (!mGroundPlane->isDeathPlane() && !mGroundPlane->isPool() && !mGroundPlane->isWaterSurface()) - || isAirborne() || checkLiveFlag(LIVE_FLAG_UNK10)) + || isAirborne() || checkLiveFlag(LIVE_FLAG_NO_BIND)) || !gpMap->isInArea(mPosition.x, mPosition.z)) { kill(); } @@ -109,7 +109,7 @@ void TEffectEnemy::setDeadAnm() &mPosition, 0, nullptr); SMSGetMSound()->startSoundActor(MSD_SE_BS_WANWAN_TO_COOL, &mPosition, 0, nullptr, 0, 4); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } void TEffectEnemy::emitEffect() diff --git a/src/Enemy/effectObj.cpp b/src/Enemy/effectObj.cpp index d460dcd17..2678abda9 100644 --- a/src/Enemy/effectObj.cpp +++ b/src/Enemy/effectObj.cpp @@ -236,8 +236,8 @@ void TEffectModel::reset() { TSpineEnemy::reset(); mRotation.y = TMsRange(0.0f, 360.0f).rand(); - onLiveFlag(LIVE_FLAG_UNK8); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_SHADOW); + onLiveFlag(LIVE_FLAG_NO_BIND); offLiveFlag(LIVE_FLAG_DEAD); offLiveFlag(LIVE_FLAG_CLIPPED_OUT); onHitFilter(HIT_FILTER_NO_COLLISION); diff --git a/src/Enemy/egggen.cpp b/src/Enemy/egggen.cpp index 1f09fd84e..80812e1bd 100644 --- a/src/Enemy/egggen.cpp +++ b/src/Enemy/egggen.cpp @@ -10,8 +10,8 @@ TEggGenerator::TEggGenerator(const char* name) : TSpineEnemy(name) { - mLiveFlag |= LIVE_FLAG_UNK10; - mLiveFlag |= LIVE_FLAG_UNK8; + mLiveFlag |= LIVE_FLAG_NO_BIND; + mLiveFlag |= LIVE_FLAG_NO_SHADOW; } void TEggGenerator::init(TLiveManager* manager) diff --git a/src/Enemy/elecNokonoko.cpp b/src/Enemy/elecNokonoko.cpp index 72e538bf8..9c977058c 100644 --- a/src/Enemy/elecNokonoko.cpp +++ b/src/Enemy/elecNokonoko.cpp @@ -414,7 +414,7 @@ void TElecNokonoko::setDeadAnm() { setBckAnm(1); } void TElecNokonoko::setMeltAnm() { setBckAnm(2); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); JGeometry::TVec3 zero(0.0f, 0.0f, 0.0f); unk18C = 3; @@ -439,7 +439,7 @@ void TElecNokonoko::genRandomItem() ACTOR_TYPE_COIN, true); if (item != nullptr) { item->mVelocity.set(0.0f, 20.0f, 0.0f); - item->offLiveFlag(LIVE_FLAG_UNK10); + item->offLiveFlag(LIVE_FLAG_NO_BIND); } } } diff --git a/src/Enemy/emario.cpp b/src/Enemy/emario.cpp index f94fdd632..8a267aadc 100644 --- a/src/Enemy/emario.cpp +++ b/src/Enemy/emario.cpp @@ -137,7 +137,7 @@ void TEMario::init(TLiveManager* manager) 70.0f, 45.0f, 60.0f, 40.0f); offHitFilter(HIT_FILTER_NO_COLLISION); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TEMario::checkCollision() diff --git a/src/Enemy/enemy.cpp b/src/Enemy/enemy.cpp index 7b4448f99..2998e96c5 100644 --- a/src/Enemy/enemy.cpp +++ b/src/Enemy/enemy.cpp @@ -55,10 +55,10 @@ void TSpineEnemy::reset() unk124->reset(); goToShortestNextGraphNode(); offLiveFlag(LIVE_FLAG_DEAD); - offLiveFlag(LIVE_FLAG_UNK8); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_SHADOW); + offLiveFlag(LIVE_FLAG_NO_BIND); offLiveFlag(LIVE_FLAG_CLIPPED_OUT); - onLiveFlag(LIVE_FLAG_UNK800); + onLiveFlag(LIVE_FLAG_RECYCLABLE); mSpine->reset(); mSpine->pushAfterCurrent(mSpine->getDefault()); } @@ -173,13 +173,13 @@ TSpineEnemyParams* TSpineEnemy::getSaveParam() const void TSpineEnemy::resetToPosition(const JGeometry::TVec3& position) { mPosition = position; - offLiveFlag(LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_NO_SHADOW); offLiveFlag(LIVE_FLAG_DEAD); reset(); resetHitPoints(); offHitFilter(HIT_FILTER_NO_COLLISION); mVelocity = JGeometry::TVec3(0.0f, 5.0f, 0.0f); - onLiveFlag(LIVE_FLAG_UNK8000); + onLiveFlag(LIVE_FLAG_JUMPING); onLiveFlag(LIVE_FLAG_AIRBORNE); control(); } @@ -190,7 +190,7 @@ void TSpineEnemy::resetSRTV(const JGeometry::TVec3& position, const JGeometry::TVec3& velocity) { mPosition = position; - offLiveFlag(LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_NO_SHADOW); offLiveFlag(LIVE_FLAG_DEAD); reset(); mRotation = rotation; @@ -198,7 +198,7 @@ void TSpineEnemy::resetSRTV(const JGeometry::TVec3& position, resetHitPoints(); offHitFilter(HIT_FILTER_NO_COLLISION); mVelocity = velocity; - onLiveFlag(LIVE_FLAG_UNK8000); + onLiveFlag(LIVE_FLAG_JUMPING); onLiveFlag(LIVE_FLAG_AIRBORNE); control(); } @@ -602,7 +602,7 @@ void TSpineEnemy::perform(u32 cue, JDrama::TGraphics* graphics) if ((cue & CUE_CALC_ANIM) && !checkLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT) && TEnemyManager::mIsCopyAnmMtx && mgr->getUnk4C() >= 0) { - if (checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_UNK200)) + if (checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_OUT_OF_AREA)) return; if (mgr->copyAnmMtx(this)) @@ -611,7 +611,7 @@ void TSpineEnemy::perform(u32 cue, JDrama::TGraphics* graphics) } else { if ((cue & CUE_CALC_ANIM) && !checkLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT) - && checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_UNK200)) { + && checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_OUT_OF_AREA)) { return; } } diff --git a/src/Enemy/enemyAttachment.cpp b/src/Enemy/enemyAttachment.cpp index ef0729546..e103db43f 100644 --- a/src/Enemy/enemyAttachment.cpp +++ b/src/Enemy/enemyAttachment.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -52,7 +53,7 @@ void TEnemyAttachment::forceKill() if (unk160->checkLiveFlag(LIVE_FLAG_HIDDEN)) { unk160->kill(); - unk160->onLiveFlag(LIVE_FLAG_UNK20000); + unk160->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } } diff --git a/src/Enemy/enemyMario.cpp b/src/Enemy/enemyMario.cpp index ae90d0ed8..b8fed60df 100644 --- a/src/Enemy/enemyMario.cpp +++ b/src/Enemy/enemyMario.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -661,7 +662,8 @@ bool TEnemyMario::tryTake() || actorType == ACTOR_TYPE_ROCKET_NOZZLE_ITEM || actorType == ACTOR_TYPE_EGG_YOSHI) { if (actorType == ACTOR_TYPE_NPC_PEACH) { - ((TLiveActor*)actor)->onLiveFlag(LIVE_FLAG_UNK100000); + ((TLiveActor*)actor) + ->onLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN); onEMFlag(EM_FLAG_ENFORCE_TAKE); } unk384 = actor; @@ -1478,7 +1480,8 @@ void TEnemyMario::hitWater(THitActor* sender) if (mStatus == MARIO_STATUS_RUN && canSleep()) { if (mHeldObject != nullptr) { - ((TLiveActor*)mHeldObject)->offLiveFlag(LIVE_FLAG_UNK100000); + ((TLiveActor*)mHeldObject) + ->offLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN); dropObject(); } changeEMDoing(EM_DOING_PRE_DOWN_ANIMATION); diff --git a/src/Enemy/enemymanager.cpp b/src/Enemy/enemymanager.cpp index 3b97b040c..49fd68df9 100644 --- a/src/Enemy/enemymanager.cpp +++ b/src/Enemy/enemymanager.cpp @@ -163,12 +163,13 @@ void TEnemyManager::setSharedFlags() for (int i = 0; i < getObjNum(); ++i) { TSpineEnemy* enemy = getObj(i); - enemy->offLiveFlag(LIVE_FLAG_UNK4000); + enemy->offLiveFlag(TSpineEnemy::LIVE_FLAG_USE_SHARED_ANIMATION); if (!enemy->checkLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT)) { int idx = enemy->getMActor()->getCurAnmIdx(ANM_TYPE_BCK); for (int i = 0; i < unk44; ++i) { if (idx < 0 || idx == unk40[i].getIdx()) { - enemy->onLiveFlag(LIVE_FLAG_UNK4000); + enemy->onLiveFlag( + TSpineEnemy::LIVE_FLAG_USE_SHARED_ANIMATION); break; } } @@ -221,7 +222,7 @@ void TEnemyManager::copyFromShared() for (int i = 0; i < r29; ++i) { TSpineEnemy* enemy = getObj(i); - if (!enemy->checkLiveFlag(LIVE_FLAG_UNK4000) + if (!enemy->checkLiveFlag(TSpineEnemy::LIVE_FLAG_USE_SHARED_ANIMATION) || enemy->checkLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT)) continue; @@ -310,7 +311,8 @@ void TEnemyManager::performShared(u32 cue, JDrama::TGraphics* param_2) if (cue & CUE_CALC_ANIM) { enemy->updateSquareToMario(); enemy->calcRootMatrix(); - if (!enemy->checkLiveFlag(LIVE_FLAG_UNK4000)) { + if (!enemy->checkLiveFlag( + TSpineEnemy::LIVE_FLAG_USE_SHARED_ANIMATION)) { enemy->getMActor()->frameUpdate(); if (!enemy->checkLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT)) { @@ -327,7 +329,8 @@ void TEnemyManager::performShared(u32 cue, JDrama::TGraphics* param_2) if (!enemy->checkLiveFlag(LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT)) { if ((cue & CUE_CALC_VIEW) - && !enemy->checkLiveFlag(LIVE_FLAG_UNK4000)) + && !enemy->checkLiveFlag( + TSpineEnemy::LIVE_FLAG_USE_SHARED_ANIMATION)) enemy->getMActor()->viewCalc(); if (cue & CUE_ENTRY) { enemy->getMActor()->setLightData(enemy->getGroundPlane(), @@ -425,7 +428,7 @@ TSpineEnemy* TEnemyManager::getFarOutEnemy() } if (!enemy->checkLiveFlag(LIVE_FLAG_CLIPPED_OUT) - || !enemy->checkLiveFlag(LIVE_FLAG_UNK800)) + || !enemy->checkLiveFlag(TSpineEnemy::LIVE_FLAG_RECYCLABLE)) continue; if (!best || dist > enemy->getDistToMarioSquared()) { diff --git a/src/Enemy/fireWanwan.cpp b/src/Enemy/fireWanwan.cpp index fc25af3c1..615ee5a32 100644 --- a/src/Enemy/fireWanwan.cpp +++ b/src/Enemy/fireWanwan.cpp @@ -1696,7 +1696,7 @@ void TFireWanwan::bindPoint(JGeometry::TVec3* out_offset, const TBGCheckData* local_30; - if (checkLiveFlag(LIVE_FLAG_UNK1000)) + if (checkLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS)) mGroundHeight = gpMap->checkGroundIgnoreWaterSurface( actualPoint.x, actualPoint.y + mHeadHeight, actualPoint.z, &local_30); @@ -1711,7 +1711,7 @@ void TFireWanwan::bindPoint(JGeometry::TVec3* out_offset, if (!local_30->isEnemyThrough()) { f32 dVar9; const TBGCheckData* local_34; - if (checkLiveFlag(LIVE_FLAG_UNK1000)) + if (checkLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS)) dVar9 = gpMap->checkGroundIgnoreWaterSurface( actualPoint.x, actualPoint.y + mHeadHeight, actualPoint.z, &local_34); @@ -2025,7 +2025,7 @@ DEFINE_NERVE(TNerveFireWanwanDie, TLiveActor) self->changeBodyToSilver(40); self->generateEffectColumWater(); - self->onLiveFlag(LIVE_FLAG_UNK1000); + self->onLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS); self->offLiveFlag(LIVE_FLAG_AIRBORNE); self->setHitPoints(0); self->mDamageHeight -= 250.0f; diff --git a/src/Enemy/fruitsboat.cpp b/src/Enemy/fruitsboat.cpp index 4337e7d1d..c8b549309 100644 --- a/src/Enemy/fruitsboat.cpp +++ b/src/Enemy/fruitsboat.cpp @@ -49,7 +49,7 @@ TFruitsBoat::TFruitsBoat(const char* name) , unk170(0.0f) , unk174(0.0f) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } int TFruitsBoat::setBckTrack(const char* name) @@ -234,11 +234,11 @@ void TFruitsBoat::init(TLiveManager* manager) mSpine->initWith(&TNerveFruitsBoatGraphWander::theNerve()); if (!unk124->unk0) - onLiveFlag(LIVE_FLAG_UNK8000); + onLiveFlag(TFruitsBoat::LIVE_FLAG_ROUTE_PAUSED); else if (unk124->getCurrent().checkFlag(0x80)) - onLiveFlag(LIVE_FLAG_UNK8000); + onLiveFlag(TFruitsBoat::LIVE_FLAG_ROUTE_PAUSED); else - offLiveFlag(LIVE_FLAG_UNK8000); + offLiveFlag(TFruitsBoat::LIVE_FLAG_ROUTE_PAUSED); mMarchSpeed = ((TFruitsBoatParams*)getSaveParam())->mSLMoveSpeed.get(); mTurnSpeed = ((TFruitsBoatParams*)getSaveParam())->mSLRotSpeed.get(); @@ -322,7 +322,7 @@ void TFruitsBoat::moveObject() mRotation.x += step; const TBGCheckData* plane = SMS_GetMarioGrPlane(); - if (!checkLiveFlag(LIVE_FLAG_UNK10000)) { + if (!checkLiveFlag(TFruitsBoat::LIVE_FLAG_MARIO_ON_BOARD)) { if (plane && plane->mActor == this && SMS_IsMarioTouchGround4cm()) { JGeometry::TVec3 toMario = *gpMarioPos; toMario.sub(mPosition); @@ -337,19 +337,19 @@ void TFruitsBoat::moveObject() unk164.normalize(); unk174 += 0.0003f * dist; } - onLiveFlag(LIVE_FLAG_UNK10000); - offLiveFlag(LIVE_FLAG_UNK8000); + onLiveFlag(TFruitsBoat::LIVE_FLAG_MARIO_ON_BOARD); + offLiveFlag(TFruitsBoat::LIVE_FLAG_ROUTE_PAUSED); if (plane->isBounceOnLanding()) { setJumpReaction(); - offLiveFlag(LIVE_FLAG_UNK10000); + offLiveFlag(TFruitsBoat::LIVE_FLAG_MARIO_ON_BOARD); } } } else if (!plane || plane->mActor != this || !SMS_IsMarioTouchGround4cm()) { - offLiveFlag(LIVE_FLAG_UNK10000); + offLiveFlag(TFruitsBoat::LIVE_FLAG_MARIO_ON_BOARD); } - if (checkLiveFlag(LIVE_FLAG_UNK10000)) { + if (checkLiveFlag(TFruitsBoat::LIVE_FLAG_MARIO_ON_BOARD)) { JGeometry::TVec3 toMario = *gpMarioPos; toMario.sub(mPosition); toMario.y = 0.0f; @@ -388,10 +388,10 @@ void TFruitsBoat::moveObject() void TFruitsBoat::requestShadow() { - if (mLiveFlag & (LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_UNK8)) + if (mLiveFlag & (LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_NO_SHADOW)) return; - if (!(mLiveFlag & (LIVE_FLAG_UNK200 | LIVE_FLAG_CLIPPED_OUT)) + if (!(mLiveFlag & (LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_CLIPPED_OUT)) || (mLiveFlag & LIVE_FLAG_FORCE_SHADOW)) { TCircleShadowRequest shadow; shadow.mPosition = mPosition; @@ -406,7 +406,7 @@ void TFruitsBoat::requestShadow() gpBindShadowManager->request(shadow, getActorType()); } - if (!(mLiveFlag & (LIVE_FLAG_UNK200 | LIVE_FLAG_CLIPPED_OUT)) + if (!(mLiveFlag & (LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_CLIPPED_OUT)) && !isHitCategory(HIT_CATEGORY_MAP_OBJECT)) { gpQuestionManager->request(mPosition, mScaledBodyRadius); } @@ -487,20 +487,20 @@ DEFINE_NERVE(TNerveFruitsBoatGraphWander, TLiveActor) if (self->isReachedToGoal()) { TGraphNode& node = self->unk124->getCurrent(); if (node.checkFlag(0x100)) - self->onLiveFlag(LIVE_FLAG_UNK8000); + self->onLiveFlag(TFruitsBoat::LIVE_FLAG_ROUTE_PAUSED); if (node.checkFlag(0x400)) self->unk150 ^= 1; self->goToDirectedNextGraphNode(polarXZ(self->mRotation.y, 1.0f)); - if (!self->checkLiveFlag(LIVE_FLAG_UNK8000)) + if (!self->checkLiveFlag(TFruitsBoat::LIVE_FLAG_ROUTE_PAUSED)) self->rowToCurPathNode(self->mMarchSpeed); spine->pushAfterCurrent(&TNerveFruitsBoatGraphWander::theNerve()); return true; } - if (self->checkLiveFlag(LIVE_FLAG_UNK8000)) + if (self->checkLiveFlag(TFruitsBoat::LIVE_FLAG_ROUTE_PAUSED)) return false; self->rowToCurPathNode(self->mMarchSpeed); diff --git a/src/Enemy/gatekeeper.cpp b/src/Enemy/gatekeeper.cpp index 9718abecf..cb89f01fb 100644 --- a/src/Enemy/gatekeeper.cpp +++ b/src/Enemy/gatekeeper.cpp @@ -119,7 +119,7 @@ TGateKeeperBase::TGateKeeperBase(const char* name) mStampEnabled = TRUE; mVulnerable = 0; mStampScale.set(1.0f, 1.0f, 1.0f); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TGateKeeperBase::kill() { onLiveFlag(LIVE_FLAG_DEAD); } @@ -470,8 +470,8 @@ void TBiancoGateKeeper::launchNamekuri() enemy->resetHitPoints(); enemy->mVelocity = vel; enemy->onLiveFlag(LIVE_FLAG_AIRBORNE); - enemy->offLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_UNK8); - enemy->onLiveFlag(LIVE_FLAG_UNK8000); + enemy->offLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_NO_SHADOW); + enemy->onLiveFlag(LIVE_FLAG_JUMPING); enemy->offHitFilter(HIT_FILTER_NO_COLLISION); enemy->mSpine->pushNerve(&TNerveNameKuriDiffuse::theNerve()); } diff --git a/src/Enemy/gesso.cpp b/src/Enemy/gesso.cpp index 682cf78b1..4ee745e26 100644 --- a/src/Enemy/gesso.cpp +++ b/src/Enemy/gesso.cpp @@ -276,7 +276,7 @@ void TGesso::reset() unk158 = 0.0f; } - offLiveFlag(LIVE_FLAG_UNK1000); + offLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS); mNeedsLanding = false; mIsRightSideUp = true; unk1A4 = mPosition.y; @@ -719,7 +719,7 @@ void TGesso::rollCheck() mState = STATE_ROLLING; mSpine->pushNerve(&TNerveGessoRolling::theNerve()); if (mIsRightSideUp) - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); mAttackCooldown = 0; } } @@ -741,7 +741,7 @@ void TGesso::rollEnd() mState = STATE_BEAM_CHILLING; mIsRightSideUp = !mIsRightSideUp; if (mIsRightSideUp) - offLiveFlag(LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_NO_SHADOW); } void TGesso::modifyRotate() @@ -754,7 +754,7 @@ void TGesso::fallEnd() { mState = STATE_WANDERING; unk158 = 1.0f; - offLiveFlag(LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_NO_SHADOW); mRotation.set(0.0f, 0.0f, 0.0f); mIsRightSideUp = true; } @@ -1107,7 +1107,7 @@ DEFINE_NERVE(TNerveGessoFall, TLiveActor) self->mState = TGesso::STATE_FALLING; } - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); } else if (self->isWandering()) { if (self->checkCurAnmEnd(0)) { if (self->isBckAnm(6)) { @@ -1158,7 +1158,7 @@ DEFINE_NERVE(TNerveGessoFall, TLiveActor) self->setBckAnm(7); } } else if (self->isBckAnm(7)) { - self->offLiveFlag(LIVE_FLAG_UNK8); + self->offLiveFlag(LIVE_FLAG_NO_SHADOW); self->modifyRotate(); if (self->checkCurAnmEnd(0)) { diff --git a/src/Enemy/hamukuri.cpp b/src/Enemy/hamukuri.cpp index f2e1b7182..d841fad98 100644 --- a/src/Enemy/hamukuri.cpp +++ b/src/Enemy/hamukuri.cpp @@ -703,7 +703,7 @@ void THamuKuri::bind() nextPos += mVelocity; { - if (checkLiveFlag(LIVE_FLAG_UNK1000)) { + if (checkLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS)) { mGroundHeight = gpMap->checkGroundIgnoreWaterSurface( nextPos.x, nextPos.y + mHeadHeight, nextPos.z, &mGroundPlane); @@ -947,7 +947,7 @@ void THamuKuri::makeCapFly(TMapObjBase* param_1) } else { param_1->mPosition = SMS_GetMarioPos(); param_1->mVelocity.set(0.0f, 10.0f, 0.0f); - param_1->offLiveFlag(LIVE_FLAG_UNK10); + param_1->offLiveFlag(LIVE_FLAG_NO_BIND); return; } } @@ -1061,7 +1061,7 @@ void THamuKuri::setDeadAnm() releaseCap(); if (unk184) { - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); gpMarioParticleManager->emit(PARTICLE_MS_ENM_DISAP_A, &mPosition, 0, nullptr); } else { @@ -1453,7 +1453,7 @@ void THaneHamuKuri::walkBehavior(int param_1, f32 param_2) void THaneHamuKuri::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; JGeometry::TVec3 local_18 = mPosition; @@ -1658,7 +1658,7 @@ void THaneHamuKuri2::reset() resetFlyParam(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); unk230 = mPosition.y; mSpine->initWith(&TNerveHaneHamuKuriMoveOnGraph::theNerve()); } @@ -1915,7 +1915,7 @@ void TDangoHamuKuri::forceKill() mSpine->reset(); mSpine->setNext(&TNerveSmallEnemyDie::theNerve()); mSpine->pushAfterCurrent(mSpine->getDefault()); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } } @@ -2061,7 +2061,7 @@ void TBossDangoHamuKuri::genEventCoin() if (coin) { coin->mPosition = mPosition; coin->mVelocity.set(0.0f, 20.0f, 0.0f); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); unk18C -= 1; } } @@ -2523,8 +2523,8 @@ DEFINE_NERVE(TNerveHamuKuriWallDie, TLiveActor) if (spine->getTime() > pTVar7 + ctrl->getEnd()) { self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); - self->onLiveFlag(LIVE_FLAG_UNK20000); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; self->stopAnmSound(); diff --git a/src/Enemy/hanasambo.cpp b/src/Enemy/hanasambo.cpp index 669519eef..f0b2aba1b 100644 --- a/src/Enemy/hanasambo.cpp +++ b/src/Enemy/hanasambo.cpp @@ -162,7 +162,7 @@ void TSamboFlowerCoinUnit::checkGenCoin() coin->mVelocity.set(offset.x * prm->mSLCoinVelocityXZ.get(), 8.0f * rate + prm->mSLCoinVelocityY.get(), offset.z * prm->mSLCoinVelocityXZ.get()); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); spawned++; } } @@ -387,7 +387,7 @@ void TSamboFlower::load(JSUMemoryInputStream& param_1) param_1 >> mCoinUnitIndex; unk160 = true; reset(); - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); } void TSamboFlower::loadAfter() @@ -454,9 +454,9 @@ void TSamboFlower::reset() TSpineEnemy::reset(); mMActor->setBck("flower_wait"); offHitFilter(HIT_FILTER_NO_COLLISION); - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); offLiveFlag(LIVE_FLAG_DEAD); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } void TSamboFlower::moveObject() @@ -489,7 +489,7 @@ void TSamboFlower::moveObject() } } - if (!checkLiveFlag(LIVE_FLAG_UNK10)) + if (!checkLiveFlag(LIVE_FLAG_NO_BIND)) mPosition.y = gpMap->checkGround(mPosition.x, mPosition.y + 100.0f, mPosition.z, &mGroundPlane); } @@ -683,7 +683,7 @@ void THanaSambo::moveObject() void THanaSambo::drawObject(JDrama::TGraphics* param_1) { TLiveActor::drawObject(param_1); - if (!checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_UNK8)) + if (!checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_NO_SHADOW)) unk1AC->entryDrawShadow(); } @@ -729,7 +729,7 @@ void THanaSambo::setDeadAnm() unk194->kill(); unk1B0 = 0; - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); } void THanaSambo::setAttackAnm() @@ -803,7 +803,7 @@ void THanaSambo::initFlower() unk1A8->reset(); } - unk1A8->onLiveFlag(LIVE_FLAG_UNK10); + unk1A8->onLiveFlag(LIVE_FLAG_NO_BIND); unk1A8->offLiveFlag(LIVE_FLAG_DEAD); unk1A8->mPosition = mPosition; unk1A8->mPosition.y = mGroundHeight; @@ -961,7 +961,7 @@ DEFINE_NERVE(TNerveHanaSamboDie, TLiveActor) } self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(LIVE_FLAG_HIDDEN); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; @@ -1127,7 +1127,7 @@ void TSamboHead::reset() unk1B0 = 0; unk19C = 0; unk1AC = 0.0f; - offLiveFlag(LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_NO_SHADOW); } void TSamboHead::kill() @@ -1210,7 +1210,7 @@ void TSamboHead::initFlower() } unk198->offHitFilter(HIT_FILTER_NO_COLLISION); - unk198->onLiveFlag(LIVE_FLAG_UNK10); + unk198->onLiveFlag(LIVE_FLAG_NO_BIND); unk198->offLiveFlag(LIVE_FLAG_DEAD); unk198->mPosition.y = mGroundHeight; unk198->mPosition = mPosition; @@ -1297,7 +1297,7 @@ void TSamboHead::genEventCoin() coin->mVelocity.set(offset.x * 4.0f, TMsRange(8.0f, 16.0f).rand(), offset.z * 4.0f); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); } } } else { @@ -1528,8 +1528,8 @@ DEFINE_NERVE(TNerveSamboHeadHitWall, TLiveActor) ->getFrameCtrl(ANM_TYPE_BCK) ->getEnd()) { self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); - self->onLiveFlag(LIVE_FLAG_UNK20000); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; self->stopAnmSound(); diff --git a/src/Enemy/hinokuri2.cpp b/src/Enemy/hinokuri2.cpp index 9ac89e265..000990f32 100644 --- a/src/Enemy/hinokuri2.cpp +++ b/src/Enemy/hinokuri2.cpp @@ -539,7 +539,7 @@ void THinokuri2::init(TLiveManager* param_1) void THinokuri2::reset() { TSpineEnemy::reset(); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); resetPolInterval(); mHitPoints = calcHitPoints(); validateCollisionAll(); diff --git a/src/Enemy/igaiga.cpp b/src/Enemy/igaiga.cpp index a00df0612..b5cc6f596 100644 --- a/src/Enemy/igaiga.cpp +++ b/src/Enemy/igaiga.cpp @@ -145,7 +145,7 @@ void TRollEnemy::walkBehavior(int param_1, f32 param_2) if (mPosition.y < mGroundHeight + 30.0f) rollSE(); if (unk128 > 300) { - onLiveFlag(LIVE_FLAG_UNK10000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); kill(); } } @@ -400,7 +400,7 @@ void TIgaiga::reset() { TRollEnemy::reset(); initialGraphNode(); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); unk1B4 = 0; unk1B8 = TMsRange(50, 100).rand() * 120; @@ -631,7 +631,7 @@ void TIgaiga::shoot(JGeometry::TVec3& param_1) { mSpine->setNext(&TNerveIgaigaShootFromCannon::theNerve()); unk1D8 = param_1; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); unk1A8 = true; } @@ -652,7 +652,7 @@ DEFINE_NERVE(TNerveIgaigaWaterHit, TLiveActor) if (self->unk1E4 >= self->unk1A4->mSLExpandMax.get()) { if (self->unk1E8 > 20) { - self->onLiveFlag(LIVE_FLAG_UNK10000); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); spine->pushAfterCurrent(&TNerveSmallEnemyDie::theNerve()); return TRUE; } @@ -887,7 +887,7 @@ void TGorogoro::calcRootMatrix() gpCurRollEnemy = this; if (mSpine->getCurrentNerve() == &TNerveGorogoroDie::theNerve()) { TSpineEnemy::calcRootMatrix(); - if (checkLiveFlag(LIVE_FLAG_UNK10000)) { + if (checkLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH)) { unk1B4.ref(0, 3) = mPosition.x; unk1B4.ref(2, 3) = mPosition.z; } @@ -911,7 +911,7 @@ void TGorogoro::reset() { unk130 = 1; TRollEnemy::reset(); - offLiveFlag(LIVE_FLAG_UNK1000); + offLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS); mTevKColor.a = 0xFF; unk1AC = -10.0f; unk1B0 = 1.0f; @@ -930,7 +930,7 @@ void TGorogoro::kill() mSpine->reset(); mSpine->setNext(&TNerveGorogoroDie::theNerve()); mSpine->pushAfterCurrent(mSpine->getDefault()); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); } void TGorogoro::forceKill() @@ -950,7 +950,7 @@ void TGorogoro::forceKill() mSpine->reset(); mSpine->setNext(&TNerveGorogoroDie::theNerve()); mSpine->pushAfterCurrent(mSpine->getDefault()); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); onLiveFlag(LIVE_FLAG_MELT_ON_DEATH); } @@ -1034,8 +1034,8 @@ void TGorogoro::walkBehavior(int param_1, f32 param_2) if (mSpine->getCurrentNerve() != &TNerveGorogoroDie::theNerve() && mPosition.y < mGroundHeight + 10.0f && getGroundPlane()->isWaterSurface()) { - onLiveFlag(LIVE_FLAG_UNK10000); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); kill(); } } @@ -1059,7 +1059,7 @@ void TGorogoro::setMeltAnm() { setBckAnm(1); unk130 = 0; - onLiveFlag(LIVE_FLAG_UNK1000); + onLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS); MTXCopy(getMActor()->getModel()->getBaseTRMtx(), unk1B4); unk1B4.ref(1, 3) = mGroundHeight; @@ -1205,7 +1205,7 @@ DEFINE_NERVE(TNerveGorogoroDie, TLiveActor) } else if (self->checkCurAnmEnd(0) || spine->getTime() > 360) { self->onHitFilter(HIT_FILTER_NO_COLLISION); self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(LIVE_FLAG_HIDDEN); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; diff --git a/src/Enemy/killer.cpp b/src/Enemy/killer.cpp index ee52df316..4e9cccebc 100644 --- a/src/Enemy/killer.cpp +++ b/src/Enemy/killer.cpp @@ -247,7 +247,7 @@ DEFINE_NERVE(TNerveFlyEnemyChaseFly, TLiveActor) if ((self->isHoming() && self->isReachedToGoalXZ()) || (self->getFlyMode() == TFlyEnemy::FLY_MODE_DIVE - && self->mPosition.y < 100.0f + self->mGroundHeight)) + && self->mPosition.y < 100.0f + self->getGroundHeight())) self->calcChaseParam(); switch (self->getFlyMode()) { @@ -261,7 +261,7 @@ DEFINE_NERVE(TNerveFlyEnemyChaseFly, TLiveActor) } if (self->getFlyMode() != TFlyEnemy::FLY_MODE_HOMING - && self->mPosition.y > 200.0f + self->mGroundHeight) { + && self->mPosition.y > 200.0f + self->getGroundHeight()) { f32 marchSpeed = self->mMarchSpeed; JGeometry::TVec3 dir(self->mMarchSpeed, -40.0f * self->getGravityY(), marchSpeed); @@ -360,7 +360,7 @@ void TKiller::init(TLiveManager* manager) mKillerParams = (TKillerSaveLoadParams*)getSaveParam(); mSpine->initWith(&TNerveFlyEnemyNormalFly::theNerve()); onLiveFlag(LIVE_FLAG_FORCE_SHADOW); - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); onHitFilter(HIT_CATEGORY_MAP_OBJECT); J3DModel* model = mMActor->getModel(); @@ -445,7 +445,7 @@ void TKiller::genEventCoin() coin->mPosition.y = mPosition.y; MsVECNormalize(&dir, &dir); coin->mVelocity.set(3.0f * dir.x, 20.0f, 3.0f * dir.z); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); } } } @@ -775,8 +775,8 @@ DEFINE_NERVE(TNerveKillerExplosion, TLiveActor) self->onHitFilter(HIT_FILTER_NO_COLLISION); if (self->checkCurAnmEnd(ANM_TYPE_BCK)) { self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); - self->offLiveFlag(LIVE_FLAG_UNK10000); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); + self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; self->stopAnmSound(); spine->reset(); diff --git a/src/Enemy/launcher.cpp b/src/Enemy/launcher.cpp index b6f5d5de2..c156c0d39 100644 --- a/src/Enemy/launcher.cpp +++ b/src/Enemy/launcher.cpp @@ -234,8 +234,8 @@ void TCommonLauncher::init(TLiveManager* param_1) ->getChildren() .push_back(this); - onLiveFlag(LIVE_FLAG_UNK8); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_SHADOW); + onLiveFlag(LIVE_FLAG_NO_BIND); ResTIMG* res = (ResTIMG*)JKRFileLoader::getGlbResource( "/scene/map/pollution/H_ma_rak.bti"); diff --git a/src/Enemy/limitkoopajr.cpp b/src/Enemy/limitkoopajr.cpp index 8fbf405f2..614ead76e 100644 --- a/src/Enemy/limitkoopajr.cpp +++ b/src/Enemy/limitkoopajr.cpp @@ -41,7 +41,7 @@ TLimitKoopaJr::TLimitKoopaJr(const char* param_1) : TSpineEnemy(param_1) , mBathtub(nullptr) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); offLiveFlag(LIVE_FLAG_ENABLE_CLIPPING); } diff --git a/src/Enemy/mameGesso.cpp b/src/Enemy/mameGesso.cpp index 327532156..f9a66bc47 100644 --- a/src/Enemy/mameGesso.cpp +++ b/src/Enemy/mameGesso.cpp @@ -405,7 +405,7 @@ DEFINE_NERVE(TNerveMameGessoGraphJumpWander, TLiveActor) self->unk1EC = 1; if (self->checkLiveFlag(LIVE_FLAG_CLIPPED_OUT)) { - self->onLiveFlag(LIVE_FLAG_UNK20000); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); spine->setNext(&TNerveSmallEnemyDie::theNerve()); } diff --git a/src/Enemy/namekuri.cpp b/src/Enemy/namekuri.cpp index a3387501f..0a29309cb 100644 --- a/src/Enemy/namekuri.cpp +++ b/src/Enemy/namekuri.cpp @@ -463,7 +463,7 @@ void TNameKuri::behaveToWater(THitActor* param_1) if (!isAirborne()) onLiveFlag(LIVE_FLAG_MELT_ON_DEATH); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } } @@ -510,7 +510,7 @@ void TNameKuri::setDeadAnm() } setVelocity(JGeometry::TVec3(0.0f, 0.0f, 0.0f)); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TNameKuri::setAfterDeadEffect() @@ -544,7 +544,7 @@ void TNameKuri::setMeltAnm() } setVelocity(JGeometry::TVec3(0.0f, 0.0f, 0.0f)); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); SMSGetMSound()->startSoundActor(MSD_SE_EN_NAMEKURI_DOWN_WT, &mPosition, 0, nullptr, 0, 4); @@ -575,7 +575,7 @@ void TNameKuri::reset() unk1C4 = nameKuriTevColorData[((TNameKuriManager*)mManager) ->getNextColorIdx()]; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } void TNameKuri::attackToMario() @@ -583,7 +583,7 @@ void TNameKuri::attackToMario() SMS_SendMessageToMario(this, HIT_MESSAGE_ATTACK); if (mSpine->getCurrentNerve() == &TNerveNameKuriJumpAttack::theNerve()) { setVelocity(JGeometry::TVec3(0.0f, 0.0f, 0.0f)); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); kill(); } } @@ -729,7 +729,7 @@ DEFINE_NERVE(TNerveNameKuriJumpAttack, TLiveActor) } else if (self->isBckAnm(2)) { if (self->checkCurAnmEnd(0)) { self->switchNextGoalPathNode(); - self->onLiveFlag(LIVE_FLAG_UNK20000); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); spine->pushAfterCurrent(&TNerveSmallEnemyDie::theNerve()); return true; } diff --git a/src/Enemy/pakkun.cpp b/src/Enemy/pakkun.cpp index 18ac03d0c..dc5dc12bd 100644 --- a/src/Enemy/pakkun.cpp +++ b/src/Enemy/pakkun.cpp @@ -328,7 +328,7 @@ bool TPakkun::isHideEnd() const { return false; } void TPakkun::perform(u32 cue, JDrama::TGraphics* graphics) { - if (!checkLiveFlag(LIVE_FLAG_UNK200)) { + if (!checkLiveFlag(LIVE_FLAG_OUT_OF_AREA)) { unk194->perform(cue, graphics); if (!checkLiveFlag(LIVE_FLAG_DEAD)) { if (cue & CUE_MOVE) { @@ -661,7 +661,7 @@ void TPakkunSeed::forceKill() kill(); if (!unk16C->unk199 && unk160->checkLiveFlag(LIVE_FLAG_HIDDEN)) { unk160->kill(); - unk160->onLiveFlag(LIVE_FLAG_UNK20000); + unk160->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } } @@ -686,7 +686,7 @@ void TStayPakkun::reset() { TPakkun::reset(); unk1B2.a = 255; - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); onLiveFlag(LIVE_FLAG_HIDDEN); } @@ -749,7 +749,7 @@ bool TStayPakkun::isHitValid(u32 message) { if (message == HIT_MESSAGE_UNKB) { onLiveFlag(LIVE_FLAG_DEAD); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); return true; } diff --git a/src/Enemy/poihana.cpp b/src/Enemy/poihana.cpp index 39ae8fe40..be2d37f3d 100644 --- a/src/Enemy/poihana.cpp +++ b/src/Enemy/poihana.cpp @@ -270,7 +270,7 @@ void TPoiHana::attackToMario() if (mSpine->getCurrentNerve() == &TNervePoihanaSleep::theNerve()) { unk1A0 = true; unk194 = true; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); return; } @@ -395,7 +395,7 @@ void TPoiHana::walkBehavior(int param_1, float param_2) BOOL TPoiHana::isInhibitedForceMove() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return true; return false; } @@ -507,7 +507,7 @@ void TPoiHana::genEventCoin() MsVECNormalize(&vec, &vec); coin->mVelocity.set(vec.x * 10.0f, 18.0f, vec.z * 10.0f); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); mCoin = nullptr; } @@ -559,7 +559,7 @@ DEFINE_NERVE(TNervePoihanaSleep, TLiveActor) if (!self->unk1C8) { self->mGoToSleepTimer = 0; spine->pushAfterCurrent(&TNerveWalkerGraphWander::theNerve()); - self->offLiveFlag(LIVE_FLAG_UNK10); + self->offLiveFlag(LIVE_FLAG_NO_BIND); return true; } @@ -568,7 +568,7 @@ DEFINE_NERVE(TNervePoihanaSleep, TLiveActor) } if (!self->unk1A0 && !self->isAirborne()) - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); self->mGoToSleepTimer += 1; if ((self->unk194 || self->unsetUnk165()) && !self->isBckAnm(10)) { @@ -590,14 +590,14 @@ DEFINE_NERVE(TNervePoihanaSleep, TLiveActor) if (self->isBckAnm(10)) { self->mGoToSleepTimer = 0; spine->pushAfterCurrent(&TNerveWalkerGraphWander::theNerve()); - self->offLiveFlag(LIVE_FLAG_UNK10); + self->offLiveFlag(LIVE_FLAG_NO_BIND); return true; } if (!self->unk1C8) { self->mGoToSleepTimer = 0; spine->pushAfterCurrent(&TNerveWalkerGraphWander::theNerve()); - self->offLiveFlag(LIVE_FLAG_UNK10); + self->offLiveFlag(LIVE_FLAG_NO_BIND); return true; } diff --git a/src/Enemy/popo.cpp b/src/Enemy/popo.cpp index 79ca624c7..99592e606 100644 --- a/src/Enemy/popo.cpp +++ b/src/Enemy/popo.cpp @@ -351,10 +351,10 @@ void TPopo::reset() mMActor = mMActorKeeper->getMActor("popoL.bmd"); if (unk1A4) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); mSpine->initWith(&TNervePopoWait::theNerve()); mPosition = unk1A8; - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); } unk23C->kill(); @@ -647,7 +647,7 @@ void TPopo::forceKill() if (!(mGroundPlane->isIllegalData() || (!mGroundPlane->isDeathPlane() && !mGroundPlane->isPool() && !mGroundPlane->isWaterSurface()) - || isAirborne() || checkLiveFlag(LIVE_FLAG_UNK10)) + || isAirborne() || checkLiveFlag(LIVE_FLAG_NO_BIND)) || !gpMap->isInArea(mPosition.x, mPosition.z)) { if (mSpine->getCurrentNerve() != &TNervePopoExplosion::theNerve()) { @@ -655,7 +655,7 @@ void TPopo::forceKill() mSpine->setNext(&TNervePopoExplosion::theNerve()); mSpine->pushAfterCurrent(mSpine->getDefault()); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); mHitPoints = 1; } } @@ -664,7 +664,7 @@ void TPopo::forceKill() void TPopo::bind() { unk23C->checkHit(); - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; if ((mSpine->getCurrentNerve() == &TNervePopoPossessedNozzle::theNerve() @@ -816,7 +816,7 @@ void TPopo::possessedIn() mMActor->getFrameCtrl(5)->setFrame(0.0f); unk1A0 = 30.0f; mMActor->setFrameRate(0.0f, 5); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); unk1B8 = 90.0f; unk1B4 = 1; @@ -934,12 +934,12 @@ DEFINE_NERVE(TNervePopoExplosion, TLiveActor) self->getMActor()->setFrameRate(0.0f, 0); self->releaseNozzle(); self->onHitFilter(HIT_FILTER_NO_COLLISION); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->explosionEffect(); } if (spine->getTime() > self->unk194->mSLExplosionEmitTime.get()) { self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(LIVE_FLAG_HIDDEN); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; @@ -957,7 +957,7 @@ DEFINE_NERVE(TNervePopoWait, TLiveActor) { TPopo* self = (TPopo*)spine->getBody(); if (spine->getTime() == 0) { - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); self->setBckAnm(6); self->setGoal((THitActor*)gpMarioAddress); } diff --git a/src/Enemy/riccohook.cpp b/src/Enemy/riccohook.cpp index ffac2903f..ec5a74091 100644 --- a/src/Enemy/riccohook.cpp +++ b/src/Enemy/riccohook.cpp @@ -88,7 +88,7 @@ void TRiccoHook::init(TLiveManager* manager) goToShortestNextGraphNode(); mMarchSpeed = getSaveLoadParam()->mSLMoveSpeed.get(); mTurnSpeed = 10.0f; - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TRiccoHook::kill() { } diff --git a/src/Enemy/rocket.cpp b/src/Enemy/rocket.cpp index f4237b65b..b3883671b 100644 --- a/src/Enemy/rocket.cpp +++ b/src/Enemy/rocket.cpp @@ -210,9 +210,9 @@ void TRocket::reset() TSmallEnemy::reset(); if (unk1A1) mPosition = unk194; - onLiveFlag(LIVE_FLAG_UNK10); - offLiveFlag(LIVE_FLAG_UNK800); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_BIND); + offLiveFlag(LIVE_FLAG_RECYCLABLE); + onLiveFlag(LIVE_FLAG_NO_SHADOW); mSpine->initWith(&TNerveRocketWait::theNerve()); } @@ -227,7 +227,7 @@ void TRocket::behaveToWater(THitActor* param_1) { attackToMario(); } void TRocket::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; if (mSpine->getCurrentNerve() == &TNerveRocketPossessedNozzle::theNerve() || mSpine->getCurrentNerve() == &TNerveRocketFly::theNerve()) { @@ -262,7 +262,7 @@ void TRocket::setDeadAnm() gpModelWaterManager->emitRequest(*manager->unk68); if (unk1A0) releaseNozzle(); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); gpMarioParticleManager->emitAndBindToMtxPtr( PARTICLE_MS_PETBTL_BOMB_A, mMActor->getModel()->getBaseTRMtx(), 0, nullptr); @@ -290,7 +290,7 @@ bool TRocket::isCollidMove(THitActor* param_1) void TRocket::possessedNozzle() { ((TRocketManager*)mManager)->unk60 = 0; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); unk1A0 = 1; } @@ -396,7 +396,7 @@ DEFINE_NERVE(TNerveRocketWait, TLiveActor) { TRocket* self = (TRocket*)spine->getBody(); if (spine->getTime() == 0) { - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); self->setBckAnm(3); } return false; diff --git a/src/Enemy/seal.cpp b/src/Enemy/seal.cpp index d28be26e6..0fd048a25 100644 --- a/src/Enemy/seal.cpp +++ b/src/Enemy/seal.cpp @@ -24,7 +24,7 @@ TSeal::TSeal(const char* name) : TSpineEnemy(name) , unk150(0) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } void TSeal::init(TLiveManager* param_1) diff --git a/src/Enemy/smallEnemy.cpp b/src/Enemy/smallEnemy.cpp index 44959a484..ef9a97e1e 100644 --- a/src/Enemy/smallEnemy.cpp +++ b/src/Enemy/smallEnemy.cpp @@ -171,7 +171,7 @@ void TSmallEnemy::init(TLiveManager* param_1) onLiveFlag(LIVE_FLAG_DEAD); if (SMSGetMarDirector()->getCurrentStage() == 2 && SMSGetMarDirector()->getCurrentScenario() == 0) - onLiveFlag(LIVE_FLAG_UNK2000); + onLiveFlag(LIVE_FLAG_ENABLE_FAST_CUBE_CULLING); onHitFilter(HIT_FILTER_NO_COLLISION); unk158 = 1.0f; @@ -265,14 +265,14 @@ void TSmallEnemy::reset() resetHitPoints(); offLiveFlag(LIVE_FLAG_DEAD); - offLiveFlag(LIVE_FLAG_UNK20000); + offLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); offLiveFlag(LIVE_FLAG_MELT_ON_DEATH); offLiveFlag(LIVE_FLAG_HIDDEN); if (getSaveParams()->mSLGenerateOnlyDead.get()) - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); else - onLiveFlag(LIVE_FLAG_UNK800); + onLiveFlag(LIVE_FLAG_RECYCLABLE); unk124->mPrevIdx = -1; goToShortestNextGraphNode(); @@ -309,7 +309,7 @@ void TSmallEnemy::forceKill() if (!(mGroundPlane->isIllegalData() || (!mGroundPlane->isDeathPlane() && !mGroundPlane->isPool() && !mGroundPlane->isWaterSurface()) - || isAirborne() || checkLiveFlag(LIVE_FLAG_UNK10)) + || isAirborne() || checkLiveFlag(LIVE_FLAG_NO_BIND)) || !gpMap->isInArea(mPosition.x, mPosition.z)) { if (mSpine->getCurrentNerve() != &TNerveSmallEnemyDie::theNerve()) { @@ -317,7 +317,7 @@ void TSmallEnemy::forceKill() mSpine->setNext(&TNerveSmallEnemyDie::theNerve()); mSpine->pushAfterCurrent(mSpine->getDefault()); - onLiveFlag(LIVE_FLAG_UNK20000); + onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); mHitPoints = 1; } } @@ -330,13 +330,13 @@ void TSmallEnemy::genRandomItem() setAfterDeadEffect(); genEventCoin(); - if (!checkLiveFlag(LIVE_FLAG_UNK20000 | LIVE_FLAG_DEAD)) + if (!checkLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS | LIVE_FLAG_DEAD)) generateItem(); } void TSmallEnemy::genEventCoin() { - if (checkLiveFlag(LIVE_FLAG_UNK20000)) + if (checkLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS)) return; if (mCoin) { @@ -351,7 +351,7 @@ void TSmallEnemy::genEventCoin() if (coin) { coin->mPosition = mPosition; coin->mVelocity.set(0, 20, 0); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); --unk18C; } } @@ -381,7 +381,7 @@ void TSmallEnemy::genEventCoin() coin->mVelocity.set(local_d0.x * 4, TMsRange(8.0f, 16.0f).rand(), local_d0.z * 4); - coin->offLiveFlag(LIVE_FLAG_UNK10); + coin->offLiveFlag(LIVE_FLAG_NO_BIND); } } } @@ -578,7 +578,7 @@ bool TSmallEnemy::changeByJuice() mJuiceBlock->offLiveFlag(LIVE_FLAG_HIDDEN); onHitFilter(HIT_FILTER_NO_COLLISION); onLiveFlag(LIVE_FLAG_HIDDEN); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); mSpine->pushNerve(&TNerveSmallEnemyChange::theNerve()); @@ -604,7 +604,7 @@ bool TSmallEnemy::changeByJuice() break; } - offLiveFlag(LIVE_FLAG_UNK800); + offLiveFlag(LIVE_FLAG_RECYCLABLE); return true; } @@ -884,7 +884,7 @@ bool TSmallEnemy::isHitWallInBound() mPosition.z = local_3C.mCenter.z; mRotation.y = sVar2; - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); onHitFilter(HIT_FILTER_NO_COLLISION); return true; @@ -950,7 +950,7 @@ DEFINE_NERVE(TNerveSmallEnemyDie, TLiveActor) * 32.0f * self->getUnk158()); } if (self->getHitPoints() == 0) { - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->setDeadAnm(); self->setDeadEffect(); } else { @@ -972,7 +972,7 @@ DEFINE_NERVE(TNerveSmallEnemyDie, TLiveActor) self->genRandomItem(); self->onHitFilter(HIT_FILTER_NO_COLLISION); self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(LIVE_FLAG_HIDDEN); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; @@ -1007,8 +1007,8 @@ DEFINE_NERVE(TNerveSmallEnemyJump, TLiveActor) TSmallEnemy* self = (TSmallEnemy*)spine->getBody(); if (spine->getTime() == 0) { - if (self->checkLiveFlag2(LIVE_FLAG_UNK8000) - || self->checkLiveFlag(LIVE_FLAG_UNK40000)) + if (self->isJumping() + || self->checkLiveFlag(TSmallEnemy::LIVE_FLAG_UNK40000)) return true; self->jumpBehavior(); @@ -1017,7 +1017,7 @@ DEFINE_NERVE(TNerveSmallEnemyJump, TLiveActor) v.y = self->getSaveParams()->getSLJumpForce() * self->getBodyScale(); self->setVelocity(v); - self->onLiveFlag(LIVE_FLAG_UNK8000); + self->onLiveFlag(TSpineEnemy::LIVE_FLAG_JUMPING); self->onLiveFlag(LIVE_FLAG_AIRBORNE); } @@ -1032,8 +1032,8 @@ DEFINE_NERVE(TNerveSmallEnemyHitWaterJump, TLiveActor) TSmallEnemy* self = (TSmallEnemy*)spine->getBody(); if (spine->getTime() == 0) { - if (self->checkLiveFlag2(LIVE_FLAG_UNK8000) - || self->checkLiveFlag(LIVE_FLAG_UNK40000)) + if (self->isJumping() + || self->checkLiveFlag(TSmallEnemy::LIVE_FLAG_UNK40000)) return true; self->setWaitAnm(); @@ -1043,7 +1043,7 @@ DEFINE_NERVE(TNerveSmallEnemyHitWaterJump, TLiveActor) v.y = self->getSaveParams()->mSLJumpForce.get(); self->mVelocity = v; - self->onLiveFlag(LIVE_FLAG_UNK8000); + self->onLiveFlag(TSpineEnemy::LIVE_FLAG_JUMPING); self->onLiveFlag(LIVE_FLAG_AIRBORNE); self->mRotation.y += TMsRange(30.0f, 100.0f).rand(); diff --git a/src/Enemy/spider.cpp b/src/Enemy/spider.cpp index 75df2d00b..ce31d90aa 100644 --- a/src/Enemy/spider.cpp +++ b/src/Enemy/spider.cpp @@ -67,7 +67,7 @@ void TSpider::bind(TLiveActor* param_1) local_50.y = fVar3; enemy->mVelocity = JGeometry::TVec3(0, 0, 0); enemy->offLiveFlag(LIVE_FLAG_AIRBORNE); - enemy->offLiveFlag(LIVE_FLAG_UNK8000); + enemy->offLiveFlag(TSpineEnemy::LIVE_FLAG_JUMPING); } else { enemy->onLiveFlag(LIVE_FLAG_AIRBORNE); } @@ -88,7 +88,7 @@ void TSpider::bind(TLiveActor* param_1) unk8 -= 1; unaff_f29 = enemy->getMarchSpeed(); enemy->offLiveFlag(LIVE_FLAG_AIRBORNE); - enemy->offLiveFlag(LIVE_FLAG_UNK8000); + enemy->offLiveFlag(TSpineEnemy::LIVE_FLAG_JUMPING); enemy->mVelocity = JGeometry::TVec3(0, 0, 0); } else { unkC = 0; @@ -105,7 +105,7 @@ void TSpider::bind(TLiveActor* param_1) if (normal.dot(local_114) < 0.0f) { unaff_f29 = enemy->getMarchSpeed(); enemy->offLiveFlag(LIVE_FLAG_AIRBORNE); - enemy->offLiveFlag(LIVE_FLAG_UNK8000); + enemy->offLiveFlag(TSpineEnemy::LIVE_FLAG_JUMPING); enemy->mVelocity = JGeometry::TVec3(0, 0, 0); unkC = local_90.mResultWalls[0]; diff --git a/src/Enemy/tamaNoko.cpp b/src/Enemy/tamaNoko.cpp index d44aa13c4..3afd7cce4 100644 --- a/src/Enemy/tamaNoko.cpp +++ b/src/Enemy/tamaNoko.cpp @@ -94,7 +94,7 @@ void TTamaNokoFlower::perform(u32 cue, JDrama::TGraphics* graphics) MsVECNormalize(&local_88, &local_88); mapObj->mVelocity.set(local_88.x * 4.0f, 20.0f, local_88.z * 4.0f); - mapObj->offLiveFlag(LIVE_FLAG_UNK10); + mapObj->offLiveFlag(LIVE_FLAG_NO_BIND); } } } @@ -249,7 +249,7 @@ void TTamaNoko::reset() unk1B8 = false; unk1B9 = true; mScaledBodyRadius = 280.0f; - onLiveFlag(LIVE_FLAG_UNK1000); + onLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS); } void TTamaNoko::perform(u32 cue, JDrama::TGraphics* graphics) @@ -489,8 +489,9 @@ void TTamaNoko::calcRootMatrix() void TTamaNoko::requestShadow() { - if (!checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_UNK8 | LIVE_FLAG_HIDDEN)) { - if (!checkLiveFlag(LIVE_FLAG_UNK200 | LIVE_FLAG_CLIPPED_OUT) + if (!checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_NO_SHADOW + | LIVE_FLAG_HIDDEN)) { + if (!checkLiveFlag(LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_CLIPPED_OUT) || checkLiveFlag(LIVE_FLAG_FORCE_SHADOW)) { TCircleShadowRequest local_2c; @@ -523,7 +524,7 @@ void TTamaNoko::requestShadow() } } - if (!checkLiveFlag(LIVE_FLAG_UNK200 | LIVE_FLAG_CLIPPED_OUT) + if (!checkLiveFlag(LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_CLIPPED_OUT) && !isHitCategory(HIT_CATEGORY_MAP_OBJECT)) { gpQuestionManager->request(mPosition, mScaledBodyRadius); } @@ -690,7 +691,7 @@ DEFINE_NERVE(TNerveTamaNokoAttack, TLiveActor) } if (self->mAirAttackTimer < TTamaNoko::mStopOnAirTimeMax) { - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); // NOTE: at the top of the arc, we do a lil 360 spin f32 delta @@ -702,7 +703,7 @@ DEFINE_NERVE(TNerveTamaNokoAttack, TLiveActor) } else { self->setVelocity(JGeometry::TVec3( 0.0f, TTamaNoko::mDropVelocityY, 0.0f)); - self->offLiveFlag(LIVE_FLAG_UNK10); + self->offLiveFlag(LIVE_FLAG_NO_BIND); } } } else { diff --git a/src/Enemy/telesa.cpp b/src/Enemy/telesa.cpp index 0fa4b1602..0fda65073 100644 --- a/src/Enemy/telesa.cpp +++ b/src/Enemy/telesa.cpp @@ -185,9 +185,9 @@ void TTelesaManager::setFlagOutOfCube() JGeometry::TVec3 pos = telesa->getPosition(); pos.y += 75.0f; if (gpCubeArea->isInAreaCube(pos)) - telesa->offLiveFlag(LIVE_FLAG_UNK200); + telesa->offLiveFlag(LIVE_FLAG_OUT_OF_AREA); else - telesa->onLiveFlag(LIVE_FLAG_UNK200); + telesa->onLiveFlag(LIVE_FLAG_OUT_OF_AREA); } } @@ -231,7 +231,7 @@ void TTelesa::init(TLiveManager* manager) onHitFilter(HIT_CATEGORY_BOSS); unk194 = (TTelesaSaveLoadParams*)getSaveParam(); mSpine->initWith(&TNerveWalkerGraphWander::theNerve()); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); setFlyParam(1.0f); @@ -262,7 +262,7 @@ void TTelesa::reset() { TWalkerEnemy::reset(); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); onLiveFlag(LIVE_FLAG_HIDDEN); setFlyParam(1.0f); @@ -284,7 +284,7 @@ void TTelesa::reset() void TTelesa::perform(u32 cue, JDrama::TGraphics* graphics) { TSmallEnemy::perform(cue, graphics); - if (!checkLiveFlag(LIVE_FLAG_UNK200 | LIVE_FLAG_DEAD)) { + if (!checkLiveFlag(LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_DEAD)) { if (mImitatedBmd) { if (cue & CUE_CALC_ANIM) { const TBGCheckData* pTStack_5c; @@ -476,7 +476,7 @@ void TTelesa::moveObject() void TTelesa::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; JGeometry::TVec3 nextPos = mPosition; @@ -1123,7 +1123,7 @@ DEFINE_NERVE(TNerveTelesaDie, TLiveActor) if (self->checkCurAnmEnd(0) || self->getUnk184()) { self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; self->onHitFilter(HIT_FILTER_NO_COLLISION); diff --git a/src/Enemy/tinkoopa.cpp b/src/Enemy/tinkoopa.cpp index 0c44ac68f..f7ccb5233 100644 --- a/src/Enemy/tinkoopa.cpp +++ b/src/Enemy/tinkoopa.cpp @@ -638,7 +638,7 @@ TTinKoopa::TTinKoopa(const char* name) , unk1F0(nullptr) , unk1F8(0) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); offLiveFlag(LIVE_FLAG_ENABLE_CLIPPING); mScaledBodyRadius = 2000.0f; } diff --git a/src/Enemy/tobiPuku.cpp b/src/Enemy/tobiPuku.cpp index 7838533d9..ebeb15274 100644 --- a/src/Enemy/tobiPuku.cpp +++ b/src/Enemy/tobiPuku.cpp @@ -148,7 +148,7 @@ TTobiPukuLaunchPad::TTobiPukuLaunchPad(const char* param_1) void TTobiPukuLaunchPad::perform(u32 cue, JDrama::TGraphics* param_2) { - if (!checkLiveFlag(LIVE_FLAG_UNK200) && !checkLiveFlag(LIVE_FLAG_DEAD) + if (!checkLiveFlag(LIVE_FLAG_OUT_OF_AREA) && !checkLiveFlag(LIVE_FLAG_DEAD) && (cue & CUE_MOVE)) { if (TTobiPuku::mReturnLaunchSw) { if (!unk1A8) @@ -536,7 +536,7 @@ void TTobiPuku::flyStart() unk1B4 = MsGetRotFromZaxis(unk1D0).x; generateEffectColumWater(); onLiveFlag(LIVE_FLAG_AIRBORNE); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } void TTobiPuku::fallStart() @@ -596,7 +596,7 @@ void TTobiPuku::forceKill() if (mSpine->getCurrentNerve() == &TNerveTobiPukuDie::theNerve() || mSpine->getCurrentNerve() == &TNerveTobiPukuPrepareFly::theNerve() || mSpine->getCurrentNerve() == &TNerveTobiPukuFly::theNerve() - || checkLiveFlag(LIVE_FLAG_UNK10) || !isJumpBck()) + || checkLiveFlag(LIVE_FLAG_NO_BIND) || !isJumpBck()) return; } @@ -818,7 +818,7 @@ DEFINE_NERVE(TNerveTobiPukuGenerate, TLiveActor) { TTobiPuku* self = (TTobiPuku*)spine->getBody(); if (spine->getTime() == 0) { - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); self->mPosition.y -= 300.0f; self->mRotation.x = MsGetRotFromZaxis(self->getVelocity()).x; self->setJumpAnm(); @@ -838,7 +838,7 @@ DEFINE_NERVE(TNerveTobiPukuFly, TLiveActor) TTobiPuku* self = (TTobiPuku*)spine->getBody(); if (spine->getTime() == 0) { self->setJumpStartAnm(); - self->offLiveFlag(LIVE_FLAG_UNK10); + self->offLiveFlag(LIVE_FLAG_NO_BIND); } if (self->checkCurAnmEnd(0) && self->isJumpStartBck()) @@ -924,10 +924,10 @@ DEFINE_NERVE(TNerveTobiPukuFall, TLiveActor) if (self->getGroundPlane()->isWaterSurface()) { spine->pushAfterCurrent(&TNerveTobiPukuDie::theNerve()); self->generateEffectColumWater(); - self->onLiveFlag(LIVE_FLAG_UNK20000); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } else { spine->pushAfterCurrent(&TNerveTobiPukuDie::theNerve()); - self->onLiveFlag(LIVE_FLAG_UNK20000); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); } return true; } @@ -967,16 +967,16 @@ DEFINE_NERVE(TNerveTobiPukuDie, TLiveActor) self->onHitFilter(HIT_FILTER_NO_COLLISION); self->setDownLandAnm(); } else { - self->onLiveFlag(LIVE_FLAG_UNK20000); + self->onLiveFlag(TSmallEnemy::LIVE_FLAG_NO_ITEM_DROPS); self->setDeadAnm(); } } if (self->checkCurAnmEnd(0)) { self->onLiveFlag(LIVE_FLAG_DEAD); - self->onLiveFlag(LIVE_FLAG_UNK8); + self->onLiveFlag(LIVE_FLAG_NO_SHADOW); self->offLiveFlag(LIVE_FLAG_HIDDEN); - self->offLiveFlag(LIVE_FLAG_UNK10000); + self->offLiveFlag(TSmallEnemy::LIVE_FLAG_MELT_ON_DEATH); self->mHolder = nullptr; self->stopAnmSound(); spine->reset(); @@ -995,7 +995,7 @@ DEFINE_NERVE(TNerveTobiPukuLand, TLiveActor) if (spine->getTime() < 2) { if (self->getGroundPlane()->isWaterSurface()) { self->mPosition.y -= 10.0f; - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); self->generateEffectColumWater(); if (TTobiPuku::mReturnLaunchSw) { self->unk1E4 *= 0.8f; @@ -1145,7 +1145,7 @@ DEFINE_NERVE(TNerveTobiPukuSwimWander, TLiveActor) self->unk1E0 = self->mPosition.y; self->setSwimAnm(); self->initialGraphNode(); - self->onLiveFlag(LIVE_FLAG_UNK10); + self->onLiveFlag(LIVE_FLAG_NO_BIND); } if (self->isReachedToGoalXZ()) diff --git a/src/Enemy/walker.cpp b/src/Enemy/walker.cpp index ea34d483a..323e558a6 100644 --- a/src/Enemy/walker.cpp +++ b/src/Enemy/walker.cpp @@ -92,7 +92,7 @@ void TWalker::bind(TLiveActor* param_1) f32 fVar1; const TBGCheckData* local_40; - if (enemy->checkLiveFlag(LIVE_FLAG_UNK1000)) { + if (enemy->checkLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS)) { fVar1 = gpMap->checkGroundIgnoreWaterSurface( local_30.x, local_30.y + enemy->getHeadHeight(), local_30.z, &local_40); @@ -108,7 +108,8 @@ void TWalker::bind(TLiveActor* param_1) if (!local_40->isEnemyThrough()) { f32 dVar16; const TBGCheckData* local_44; - if (enemy->checkLiveFlag(LIVE_FLAG_UNK1000)) { + if (enemy->checkLiveFlag( + LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS)) { dVar16 = gpMap->checkGroundIgnoreWaterSurface( local_30.x, enemy->mPosition.y + enemy->getHeadHeight(), local_30.z, &local_44); @@ -143,7 +144,7 @@ void TWalker::bind(TLiveActor* param_1) local_30.y = fVar1; enemy->mVelocity = JGeometry::TVec3(0.0f, 0.0f, 0.0f); enemy->offLiveFlag(LIVE_FLAG_AIRBORNE); - enemy->offLiveFlag(LIVE_FLAG_UNK8000); + enemy->offLiveFlag(TSpineEnemy::LIVE_FLAG_JUMPING); } else { enemy->onLiveFlag(LIVE_FLAG_AIRBORNE); } diff --git a/src/Enemy/yunbo.cpp b/src/Enemy/yunbo.cpp index b25338622..36bc8ca3f 100644 --- a/src/Enemy/yunbo.cpp +++ b/src/Enemy/yunbo.cpp @@ -114,7 +114,7 @@ void TYumboSeed::startToMove(const JGeometry::TVec3& param_1, TYumbo::TYumbo(const char* param_1) : TSmallEnemy(param_1) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } static const char* sambohead_bastable[] = { diff --git a/src/MoveBG/Item.cpp b/src/MoveBG/Item.cpp index c4f0b0704..7813c443d 100644 --- a/src/MoveBG/Item.cpp +++ b/src/MoveBG/Item.cpp @@ -261,7 +261,7 @@ void TCoin::perform(u32 cue, JDrama::TGraphics* graphics) if (checkLiveFlag(LIVE_FLAG_DEAD)) return; - if ((cue & CUE_MOVE) && checkLiveFlag(LIVE_FLAG_UNK10)) { + if ((cue & CUE_MOVE) && checkLiveFlag(LIVE_FLAG_NO_BIND)) { if (SMSGetMarDirector()->isTalkModeNow() && !SMSGetMarDirector()->isDemoModeNow()) @@ -417,7 +417,7 @@ void TShine::calc() { MtxPtr mtxPos = getMActor()->getModel()->getAnmMtx(2); - if (checkLiveFlag(LIVE_FLAG_UNK200 | LIVE_FLAG_CLIPPED_OUT + if (checkLiveFlag(LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_DEAD)) return; @@ -631,7 +631,7 @@ void TShine::perform(u32 cue, JDrama::TGraphics* graphics) { if ((cue & CUE_CALC_ANIM) && !checkLiveFlag(LIVE_FLAG_DEAD)) { if (!isState(STATE_NORMAL)) - offLiveFlag(LIVE_FLAG_UNK200); + offLiveFlag(LIVE_FLAG_OUT_OF_AREA); } TMapObjGeneral::perform(cue, graphics); } @@ -1036,7 +1036,7 @@ BOOL TEggYoshi::receiveMessage(THitActor* sender, u32 message) if (message == HIT_MESSAGE_THROWN || message == HIT_MESSAGE_DETACH) { mVelocity.y = 10.0f; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); mState = 0xF; return TRUE; } @@ -1045,7 +1045,7 @@ BOOL TEggYoshi::receiveMessage(THitActor* sender, u32 message) JGeometry::TVec3 v = getVelocity(); makeObjAppeared(); mVelocity.y = v.y; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); decideRandomLoveFruit(); startBalloonAnim(); mState = STATE_NORMAL; @@ -1150,7 +1150,7 @@ BOOL TItemNozzle::receiveMessage(THitActor* sender, u32 message) if (message == HIT_MESSAGE_THROWN) { mVelocity.set(0.0f, 20.0f, 0.0f); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); onHitFilter(HIT_FILTER_NO_COLLISION); mState = 0xB; return TRUE; @@ -1161,7 +1161,7 @@ BOOL TItemNozzle::receiveMessage(THitActor* sender, u32 message) void TItemNozzle::appearing() { - if (!checkLiveFlag(LIVE_FLAG_UNK10)) + if (!checkLiveFlag(LIVE_FLAG_NO_BIND)) return; mState = STATE_NORMAL; diff --git a/src/MoveBG/MapObjBall.cpp b/src/MoveBG/MapObjBall.cpp index 8e7a7ebbe..a07b5238f 100644 --- a/src/MoveBG/MapObjBall.cpp +++ b/src/MoveBG/MapObjBall.cpp @@ -202,7 +202,7 @@ void TMapObjBall::kicked() } unk194 = 10; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); onLiveFlag(LIVE_FLAG_AIRBORNE); THitActor* marHitActor = SMS_GetMarioHitActor(); @@ -222,7 +222,7 @@ u32 TMapObjBall::touchWater(THitActor* water) vel.set(getVelocity()); vel.scaleAdd(unk17C, getWaterSpeed(water), vel); setVelocity(vel); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); return 1; } @@ -292,7 +292,7 @@ void TMapObjBall::boundByActor(THitActor* actor) } unk194 = 10; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); onLiveFlag(LIVE_FLAG_AIRBORNE); } @@ -722,7 +722,7 @@ void TResetFruit::hold(TTakeActor* actor) { TMapObjBall::hold(actor); mVelocity.zero(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); if (!checkMapObjFlag(MAP_OBJ_FLAG_UNK4000000) && !isStateTimerEngaged()) { onMapObjFlag(MAP_OBJ_FLAG_DISAPPEARING); startStateTimer(getLivingTime()); @@ -774,7 +774,7 @@ void TResetFruit::makeObjLiving() startStateTimer(getLivingTime()); } - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); mState = STATE_LIVING; } @@ -786,7 +786,7 @@ void TResetFruit::pick(THitActor* actor) TMapObjBall::touchActor(actor); if (!checkMapObjFlag(MAP_OBJ_FLAG_UNK4000000) && isState(STATE_NORMAL) - && !checkLiveFlag(LIVE_FLAG_UNK10)) + && !checkLiveFlag(LIVE_FLAG_NO_BIND)) makeObjLiving(); } @@ -818,7 +818,7 @@ void TResetFruit::kicked() } unk194 = 10; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); SMS_GetMarioHitActor()->receiveMessage(this, HIT_MESSAGE_ATTACK); SMSGetMSound()->startSoundActor(MSD_SE_MA_KICK_DRIAN, &mPosition, 0, nullptr, 0, 4); @@ -904,13 +904,13 @@ void TResetFruit::control() case STATE_LIVING: { offHitFilter(HIT_FILTER_NO_COLLISION); if (SMSGetMarDirector()->getCurrentStage() == 4 - && checkLiveFlag(LIVE_FLAG_UNK10)) { - offLiveFlag(LIVE_FLAG_UNK10); + && checkLiveFlag(LIVE_FLAG_NO_BIND)) { + offLiveFlag(LIVE_FLAG_NO_BIND); } if (mGroundPlane->getActor() != nullptr) { - if (checkLiveFlag(LIVE_FLAG_UNK10)) { - offLiveFlag(LIVE_FLAG_UNK10); + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) { + offLiveFlag(LIVE_FLAG_NO_BIND); } const TLiveActor* actor = mGroundPlane->getActor(); @@ -958,8 +958,8 @@ void TResetFruit::perform(u32 cue, JDrama::TGraphics* graphics) { if (SMSGetMarDirector()->getCurrentStage() == 7) { if (isState(STATE_HOLDING) || !getVelocity().isZero()) { - if (checkLiveFlag(LIVE_FLAG_UNK200)) { - offLiveFlag(LIVE_FLAG_UNK200); + if (checkLiveFlag(LIVE_FLAG_OUT_OF_AREA)) { + offLiveFlag(LIVE_FLAG_OUT_OF_AREA); } } else { if (!gpCubeArea->isInAreaCube(mPosition) && isState(STATE_LIVING)) { @@ -1251,7 +1251,7 @@ void TBigWatermelon::kill() if (mapObj != nullptr) { mapObj->mVelocity.set(0.0f, 25.0f, 0.0f); - mapObj->offLiveFlag(LIVE_FLAG_UNK10); + mapObj->offLiveFlag(LIVE_FLAG_NO_BIND); ++unk19C; } } @@ -1287,8 +1287,8 @@ void TBigWatermelon::control() switch (mState) { case STATE_NORMAL: { - if (checkLiveFlag(LIVE_FLAG_UNK10)) { - offLiveFlag(LIVE_FLAG_UNK10); + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) { + offLiveFlag(LIVE_FLAG_NO_BIND); } const TLiveActor* groundPlaneActor = mGroundPlane->getActor(); if (mPosition.y < mGroundHeight + 200.0f @@ -1332,9 +1332,9 @@ void TBigWatermelon::startEvent() if (strcmp(getName(), "スイカ(大)") == 0) { mPosition.set(-4660.0f, 1300.0f, 13600.0f); offMapObjFlag(MAP_OBJ_FLAG_NO_ANIMATIONS); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); mVelocity.zero(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); TMapObjBase::startAnim(7); // getter? TMarDirector* director = SMSGetMarDirector(); @@ -1356,7 +1356,7 @@ void TBigWatermelon::startEvent() item->mVelocity.x = 20.0f * (MsRandF() - 0.5f); item->mVelocity.y = randY; item->mVelocity.z = randZ; - item->offLiveFlag(LIVE_FLAG_UNK10); + item->offLiveFlag(LIVE_FLAG_NO_BIND); item->mDisappearAfterFrames = 960; } } diff --git a/src/MoveBG/MapObjBase.cpp b/src/MoveBG/MapObjBase.cpp index aa343c7b3..782d937e0 100644 --- a/src/MoveBG/MapObjBase.cpp +++ b/src/MoveBG/MapObjBase.cpp @@ -55,14 +55,14 @@ u32 TMapObjBase::getSDLModelFlag() const { return 3; } void TMapObjBase::awake() { - offLiveFlag(LIVE_FLAG_UNK4000); + offLiveFlag(LIVE_FLAG_SLEEPING); offHitFilter(HIT_FILTER_NO_COLLISION); setUpCurrentMapCollision(); } void TMapObjBase::sleep() { - onLiveFlag(LIVE_FLAG_UNK4000); + onLiveFlag(LIVE_FLAG_SLEEPING); onHitFilter(HIT_FILTER_NO_COLLISION); removeMapCollision(); } @@ -269,7 +269,7 @@ void TMapObjBase::makeObjDefault() mScaling = mInitialScaling; mVelocity.zero(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); if (mMActor) { calcRootMatrix(); getModel()->calc(); @@ -280,7 +280,7 @@ void TMapObjBase::makeObjDefault() void TMapObjBase::makeObjDead() { mVelocity.zero(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); stopAnim(); @@ -298,7 +298,7 @@ void TMapObjBase::makeObjDead() mHolder = nullptr; } - onLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_UNK8 | LIVE_FLAG_UNK10 + onLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_NO_SHADOW | LIVE_FLAG_NO_BIND | LIVE_FLAG_UNK40 | LIVE_FLAG_AIRBORNE); mState = STATE_DEAD; if (mMActor) @@ -307,16 +307,16 @@ void TMapObjBase::makeObjDead() void TMapObjBase::makeObjAppeared() { - offLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_UNK8); + offLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_NO_SHADOW); mVelocity.zero(); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); mStateTimer = 0; offHitFilter(HIT_FILTER_NO_COLLISION); setObjHitData(0); startSound(0); mGroundHeight = gpMap->checkGround(mPosition, &mGroundPlane); - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) onLiveFlag(LIVE_FLAG_AIRBORNE); if (mMapObjData->mMove) { @@ -390,7 +390,7 @@ void TMapObjBase::ensureTakeSituation() if (mHolder && mHolder->getHeldObject() != this) { if (mPosition.y != mGroundHeight) - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); mHolder = nullptr; } @@ -457,7 +457,7 @@ void TMapObjBase::perform(u32 cue, JDrama::TGraphics* graphics) } if ((cue & CUE_CALC_ANIM) && mMActor) { - if (checkLiveFlag(LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_UNK200)) { + if (checkLiveFlag(LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_OUT_OF_AREA)) { if (getModel()->getShapePacket(0)->isVisible()) SMS_HideAllShapePacket(getModel()); } else { @@ -466,7 +466,7 @@ void TMapObjBase::perform(u32 cue, JDrama::TGraphics* graphics) } } - if (checkLiveFlag(LIVE_FLAG_UNK200)) + if (checkLiveFlag(LIVE_FLAG_OUT_OF_AREA)) return; if (hasMapCollision()) @@ -489,7 +489,7 @@ void TMapObjBase::perform(u32 cue, JDrama::TGraphics* graphics) if (cue & CUE_DRAW) draw(); - if (checkLiveFlag(LIVE_FLAG_UNK4000)) { + if (checkLiveFlag(LIVE_FLAG_SLEEPING)) { if (cue & CUE_CALC_ANIM) cue &= ~CUE_CALC_ANIM; if (cue & CUE_ENTRY) @@ -501,7 +501,7 @@ void TMapObjBase::perform(u32 cue, JDrama::TGraphics* graphics) if (cue & CUE_CALC_ANIM) { calc(); if (mMActor) { - if (checkLiveFlag(LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_UNK200)) { + if (checkLiveFlag(LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_OUT_OF_AREA)) { if (getModel()->getShapePacket(0)->isVisible()) SMS_HideAllShapePacket(getModel()); } else { diff --git a/src/MoveBG/MapObjBlock.cpp b/src/MoveBG/MapObjBlock.cpp index 6f914558c..c9ed59088 100644 --- a/src/MoveBG/MapObjBlock.cpp +++ b/src/MoveBG/MapObjBlock.cpp @@ -347,7 +347,7 @@ void TTelesaBlock::initMapObj() { TMapObjBase::initMapObj(); } void TTelesaBlock::perform(u32 cue, JDrama::TGraphics* graphics) { - mLiveFlag &= ~LIVE_FLAG_UNK200; + mLiveFlag &= ~LIVE_FLAG_OUT_OF_AREA; if (!SMSGetMarDirector()->isTalkModeNow()) { TMapObjBase::perform(cue, graphics); } else { @@ -405,6 +405,6 @@ void TSuperHipDropBlock::loadAfter() MSF_PIANTA_PIPE_SLAB_DESTROYED)) { makeObjDead(); } - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); } } diff --git a/src/MoveBG/MapObjCloud.cpp b/src/MoveBG/MapObjCloud.cpp index f6a911e78..ae172e18d 100644 --- a/src/MoveBG/MapObjCloud.cpp +++ b/src/MoveBG/MapObjCloud.cpp @@ -88,7 +88,7 @@ void TRideCloud::load(JSUMemoryInputStream& stream) SMS_InitPacket_TwoTevColor(getModel(), 0, GX_TEVREG0, &unk16E, GX_TEVREG1, &unk176); offLiveFlag(LIVE_FLAG_FORCE_SHADOW); - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); } u32 TRideCloud::getShadowType() { return SHADOW_TYPE_CIRCLE; } diff --git a/src/MoveBG/MapObjGeneral.cpp b/src/MoveBG/MapObjGeneral.cpp index dd621355b..6ad9d741d 100644 --- a/src/MoveBG/MapObjGeneral.cpp +++ b/src/MoveBG/MapObjGeneral.cpp @@ -83,7 +83,7 @@ void TMapObjGeneral::waitToAppear(s32 waitTime) void TMapObjGeneral::sink() { mVelocity.x = mVelocity.y = mVelocity.z = 0.0f; - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); mState = STATE_SINKING; unk144 = mPosition.y; setUpMapCollision(1); @@ -104,7 +104,7 @@ void TMapObjGeneral::put() mPosition.z = JMASCos(SMS_GetMarioAngleY()) * (getDamageRadius() + SMS_GetMarioDamageRadius() + 10.0f) + SMS_GetMarioPos().z; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); mGroundHeight = gpMap->checkGround(mPosition, &mGroundPlane); } @@ -130,7 +130,7 @@ void TMapObjGeneral::thrown() * getMapObjData()->mPhysical->mData->unk2C) + mNormalThrowSpeedRate * SMS_GetMarioSpeedZ()); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); JGeometry::TVec3 vel = getVelocity(); mPosition.add(vel); onLiveFlag(LIVE_FLAG_AIRBORNE); @@ -236,7 +236,7 @@ void TMapObjGeneral::appearing() } uuuh: - if (!checkLiveFlag(LIVE_FLAG_UNK10)) + if (!checkLiveFlag(LIVE_FLAG_NO_BIND)) return; makeObjAppeared(); @@ -325,7 +325,7 @@ void TMapObjGeneral::ensureTakeSituation() TMapObjBase::ensureTakeSituation(); if (isState(STATE_HOLDING) && mHolder == nullptr) { mState = STATE_NORMAL; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } } @@ -333,7 +333,7 @@ void TMapObjGeneral::kill() { onHitFilter(HIT_FILTER_NO_COLLISION); removeMapCollision(); - onLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_NO_SHADOW); mStateTimer = -1; startAnim(2); mState = STATE_BREAKING; @@ -457,7 +457,7 @@ void TMapObjGeneral::touchGround(JGeometry::TVec3* param_1) } else { offLiveFlag(LIVE_FLAG_AIRBORNE); mVelocity.x = mVelocity.y = mVelocity.z = 0.0f; - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); param_1->y = mGroundHeight; } } @@ -500,7 +500,7 @@ void TMapObjGeneral::calcVelocity() void TMapObjGeneral::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; if (mBinder != nullptr) { @@ -530,7 +530,7 @@ void TMapObjGeneral::bind() if (!isAirborne()) { if (getVelocity().x == 0.0f && getVelocity().y == 0.0f && getVelocity().z == 0.0f) - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } mPositionDelta = vec - mPosition; diff --git a/src/MoveBG/MapObjHide.cpp b/src/MoveBG/MapObjHide.cpp index 6902d253d..12667b0cb 100644 --- a/src/MoveBG/MapObjHide.cpp +++ b/src/MoveBG/MapObjHide.cpp @@ -40,7 +40,7 @@ void THideObjBase::appearObjFromPoint(const JGeometry::TVec3& point) { if (mHiddenObj != nullptr && mAllowReveal) { if (mHiddenObj->isActorType(ACTOR_TYPE_SHINE)) { - mHiddenObj->onLiveFlag(LIVE_FLAG_UNK10); + mHiddenObj->onLiveFlag(LIVE_FLAG_NO_BIND); mHiddenObj->mPosition.set(mPosition); ((TShine*)mHiddenObj)->appearWithDemo(mHiddenShineDemoName); } else { @@ -542,7 +542,7 @@ void THideObjPictureTwin::afterFinishedAnim() obj->mVelocity.set(mtx[0][2] * mAppearSpeed, mtx[1][2] * mAppearSpeed + mAppearYSpeed, mtx[2][2] * mAppearSpeed); - obj->offLiveFlag(LIVE_FLAG_UNK10); + obj->offLiveFlag(LIVE_FLAG_NO_BIND); if (TMapObjBase::isCoin(obj)) { TCoin* coin = (TCoin*)obj; @@ -602,7 +602,7 @@ void TBreakHideObj::kill() startAnim(2); removeMapCollision(); onHitFilter(HIT_FILTER_NO_COLLISION); - onLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_NO_SHADOW); mStateTimer = -1; mState = 2; } @@ -666,7 +666,7 @@ void TWoodBox::kill() startAnim(2); removeMapCollision(); onHitFilter(HIT_FILTER_NO_COLLISION); - onLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_NO_SHADOW); mStateTimer = -1; mState = 2; diff --git a/src/MoveBG/MapObjInit.cpp b/src/MoveBG/MapObjInit.cpp index a4458d279..1268ddfe6 100644 --- a/src/MoveBG/MapObjInit.cpp +++ b/src/MoveBG/MapObjInit.cpp @@ -11306,7 +11306,7 @@ void TMapObjBase::initMapObj() mMActor->setLightType(LIGHT_TYPE_MAPOBJECT); if (getMapObjData()->unk30 == 0.0f) - onLiveFlag(LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_SHADOW); if (checkMapObjFlag(MAP_OBJ_FLAG_INDIRECT_TEXTURE) && !isActorType(ACTOR_TYPE_DOKAN_GATE)) { diff --git a/src/MoveBG/MapObjItem2.cpp b/src/MoveBG/MapObjItem2.cpp index f32f15ff3..6019c554c 100644 --- a/src/MoveBG/MapObjItem2.cpp +++ b/src/MoveBG/MapObjItem2.cpp @@ -65,10 +65,10 @@ void TMushroom1up::initMapObj() { TMapObjBase::initMapObj(); mGravity = 0.35f; - offLiveFlag(LIVE_FLAG_AIRBORNE | LIVE_FLAG_UNK10 | LIVE_FLAG_HIDDEN + offLiveFlag(LIVE_FLAG_AIRBORNE | LIVE_FLAG_NO_BIND | LIVE_FLAG_HIDDEN | LIVE_FLAG_DEAD); if (unk139 == 2) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); makeObjAppeared(); } mScaling.set(1.5f, 1.5f, 1.5f); @@ -77,7 +77,7 @@ void TMushroom1up::initMapObj() void TMushroom1up::load(JSUMemoryInputStream& stream) { TMapObjBase::load(stream); - offLiveFlag(LIVE_FLAG_AIRBORNE | LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_AIRBORNE | LIVE_FLAG_NO_BIND); } void TMushroom1up::control() @@ -243,7 +243,7 @@ void TJumpBase::control() { int prevState = unk138; if (!isAirborne()) - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); switch (unk138) { case 0: @@ -281,7 +281,7 @@ void TJumpBase::control() ctrl->setFrame(0.0f); ctrl->setRate(SMSGetAnmFrameRate()); } - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); mScaledBodyRadius = 100.0f; } if (getMActor()->curAnmEndsNext(ANM_TYPE_BCK, nullptr)) { @@ -332,7 +332,7 @@ void TJumpBase::control() = JGeometry::TVec3(JMASSin(angle), 0.0f, JMASCos(angle)); JGeometry::TVec3 v2 = mVelocity; mPosition += v2; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } if (!isAirborne()) { unk13C = 0; diff --git a/src/MoveBG/MapObjLib.cpp b/src/MoveBG/MapObjLib.cpp index 1a3c69d0f..61d83b254 100644 --- a/src/MoveBG/MapObjLib.cpp +++ b/src/MoveBG/MapObjLib.cpp @@ -104,14 +104,14 @@ void TMapObjBase::throwObjToFront(TMapObjBase* object, f32 y_offset, f32 speed, object->mVelocity.set(mtx[0][2] * speed, mtx[1][2] * speed + vertical_speed, mtx[2][2] * speed); - object->offLiveFlag(LIVE_FLAG_UNK10); + object->offLiveFlag(LIVE_FLAG_NO_BIND); } else { Mtx mtx; MsMtxSetRotRPH(mtx, mRotation.x, mRotation.y, mRotation.z); object->mVelocity.set(mtx[0][2] * speed, mtx[1][2] * speed + vertical_speed, mtx[2][2] * speed); - object->offLiveFlag(LIVE_FLAG_UNK10); + object->offLiveFlag(LIVE_FLAG_NO_BIND); } } @@ -125,13 +125,13 @@ void TMapObjBase::throwObjToFrontFromPoint(TMapObjBase* object, MtxPtr mtx = getModel()->getAnmMtx(0); object->mVelocity.set(mtx[0][2] * speed, mtx[1][2] * speed + y_speed, mtx[2][2] * speed); - object->offLiveFlag(LIVE_FLAG_UNK10); + object->offLiveFlag(LIVE_FLAG_NO_BIND); } else { Mtx mtx; MsMtxSetRotRPH(mtx, mRotation.x, mRotation.y, mRotation.z); object->mVelocity.set(mtx[0][2] * speed, mtx[1][2] * speed + y_speed, mtx[2][2] * speed); - object->offLiveFlag(LIVE_FLAG_UNK10); + object->offLiveFlag(LIVE_FLAG_NO_BIND); } } @@ -147,7 +147,7 @@ void TMapObjBase::throwObjFromPointWithRot(TMapObjBase* obj, MsMtxSetRotRPH(mtx, rot.x, rot.y, rot.z); obj->mVelocity.set(mtx[0][2] * speed, mtx[1][2] * speed + up_speed, mtx[2][2] * speed); - obj->offLiveFlag(LIVE_FLAG_UNK10); + obj->offLiveFlag(LIVE_FLAG_NO_BIND); } bool TMapObjBase::isCoin(THitActor* param_1) diff --git a/src/MoveBG/MapObjMare.cpp b/src/MoveBG/MapObjMare.cpp index 3f5a02695..d4cde6533 100644 --- a/src/MoveBG/MapObjMare.cpp +++ b/src/MoveBG/MapObjMare.cpp @@ -701,7 +701,7 @@ void TMuddyBoat::moveByWater() unk140 += dot * unk138; else unk140 += dot * unk13C; - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } } @@ -719,7 +719,7 @@ void TMuddyBoat::kill() MtxPtr src = getModel()->getAnmMtx(0); MTXCopy(src, dst); offMapObjFlag(MAP_OBJ_FLAG_NO_ANIMATIONS); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); startAnim(1); startAnim(2); mState = STATE_UNK2; @@ -752,7 +752,7 @@ bool TMuddyBoat::bindToWall(const JGeometry::TVec3& param_1, f32 param_2, void TMuddyBoat::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; JGeometry::TVec3 pos = mPosition; MtxPtr mtx = getModel()->getAnmMtx(0); diff --git a/src/MoveBG/MapObjPinna.cpp b/src/MoveBG/MapObjPinna.cpp index 5d2cad8d5..1e29abe08 100644 --- a/src/MoveBG/MapObjPinna.cpp +++ b/src/MoveBG/MapObjPinna.cpp @@ -679,7 +679,7 @@ void TAmiKing::initMapObj() initAnmSound(); mMActor->setBck("amiking_sleep1"); setAnmSound("/scene/mapObj/amiking_sleep1.bas"); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); for (u8 i = 0; i < getMActor()->getModel()->getModelData()->getJointNum(); ++i) { } } @@ -771,7 +771,7 @@ void TAmiKing::calcRootMatrix() void TAmiKing::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) { + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) { gpMap->checkGround(mPosition.x, mPosition.y + mHeadHeight, mPosition.z, &mGroundPlane); } else { diff --git a/src/MoveBG/MapObjRicco.cpp b/src/MoveBG/MapObjRicco.cpp index 1436dcb89..8a7c97ab5 100644 --- a/src/MoveBG/MapObjRicco.cpp +++ b/src/MoveBG/MapObjRicco.cpp @@ -402,7 +402,7 @@ void TFruitLauncher::fireObj() fruit->mPosition.set(mPosition); fruit->mVelocity.set(mObjSpeedXZ * (MsRandF() - 0.5f), -mObjSpeedY, mObjSpeedXZ * (MsRandF() - 0.5f)); - fruit->offLiveFlag(LIVE_FLAG_UNK10); + fruit->offLiveFlag(LIVE_FLAG_NO_BIND); SMSGetMarDirector()->fireStartDemoCamera("フルーツタンクカメラカメラ", &fruit->mPosition, -1, 0.0f, true, nullptr, 0, nullptr, 0); diff --git a/src/MoveBG/MapObjTown.cpp b/src/MoveBG/MapObjTown.cpp index 3849789bf..5fd861e6d 100644 --- a/src/MoveBG/MapObjTown.cpp +++ b/src/MoveBG/MapObjTown.cpp @@ -594,8 +594,10 @@ void TRedCoinSwitch::loadAfter() for (int i = 0; i < 8; ++i) { char buf[0x40]; snprintf(buf, 0x40, "赤コイン %d", i); - static_cast(JDrama::TNameRefGen::search(buf)) - ->makeObjDead(); + TMapObjBase* coin + = static_cast(JDrama::TNameRefGen::search(buf)); + JUT_ASSERT(coin); + coin->makeObjDead(); } } diff --git a/src/MoveBG/WoodBarrel.cpp b/src/MoveBG/WoodBarrel.cpp index 30df3cbfb..f62204b76 100644 --- a/src/MoveBG/WoodBarrel.cpp +++ b/src/MoveBG/WoodBarrel.cpp @@ -27,10 +27,10 @@ void TWoodBarrel::put() if (mGroundHeight < mPosition.y - 50.0f) { onLiveFlag(LIVE_FLAG_AIRBORNE); - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } else { offLiveFlag(LIVE_FLAG_AIRBORNE); - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } } @@ -75,7 +75,7 @@ void TWoodBarrel::appeared() mGroundHeight = gpMap->checkGround(mPosition, &mGroundPlane); if (mPosition.y - 50.0f > mGroundHeight) - offLiveFlag(LIVE_FLAG_UNK10); + offLiveFlag(LIVE_FLAG_NO_BIND); } void TWoodBarrel::appear() diff --git a/src/NPC/NpcAnm.cpp b/src/NPC/NpcAnm.cpp index 4268c35c0..3db0b3a7f 100644 --- a/src/NPC/NpcAnm.cpp +++ b/src/NPC/NpcAnm.cpp @@ -420,9 +420,9 @@ void TBaseNPC::npcFallIn() bool TBaseNPC::npcRecoverFromSinking() { - if (!checkLiveFlag(LIVE_FLAG_UNK8000000)) { + if (!checkLiveFlag(LIVE_FLAG_SINK_RECOVERY_JUMP_STARTED)) { if (mMActor->getFrameCtrl(ANM_TYPE_BCK)->checkPass(32.0f)) { - onLiveFlag(LIVE_FLAG_UNK8000000); + onLiveFlag(LIVE_FLAG_SINK_RECOVERY_JUMP_STARTED); mVelocity.y = CalcJumpVelocityY(unk1C4 - mPosition.y + 150.0f, getGravityY()); if (mVelocity.y < 5.0f) @@ -436,10 +436,10 @@ bool TBaseNPC::npcRecoverFromSinking() offLiveFlag(LIVE_FLAG_AIRBORNE); mVelocity.set(0.0f, 0.0f, 0.0f); mPosition.y = unk1C4; - offLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_UNK400000 - | LIVE_FLAG_UNK8000000); + offLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_SINKING + | LIVE_FLAG_SINK_RECOVERY_JUMP_STARTED); } else { - if (checkLiveFlag(LIVE_FLAG_UNK8000000)) { + if (checkLiveFlag(LIVE_FLAG_SINK_RECOVERY_JUMP_STARTED)) { mVelocity.y -= getGravityY(); if (mVelocity.y < mVelocityMinY) mVelocity.y = mVelocityMinY; @@ -466,7 +466,7 @@ void TBaseNPC::npcStepIn() void TBaseNPC::npcTalkIn() { - onLiveFlag(LIVE_FLAG_UNK80000); + onLiveFlag(LIVE_FLAG_TALKING); if (mActorType != ACTOR_TYPE_NPC_DUMMY && mActorType != ACTOR_TYPE_NPC_BOARD) { if (!isSunflowerReviving()) { @@ -509,7 +509,7 @@ void TBaseNPC::npcTalkOut() { mTalkForbidCount = 60; - if (checkLiveFlag(LIVE_FLAG_UNK80000)) { + if (checkLiveFlag(LIVE_FLAG_TALKING)) { mWalkForbidCount = 120; if (isPeachTired()) peachTiredOut_(); @@ -523,7 +523,7 @@ void TBaseNPC::npcTalkOut() } } - offLiveFlag(LIVE_FLAG_UNK80000); + offLiveFlag(LIVE_FLAG_TALKING); changeNerveFromTalk_(); if (mThrowCtrl == nullptr && mActorType == ACTOR_TYPE_NPC_MONTE_ME) requestNpcAnm_(NPC_ANM_KIND_UNK4, NPC_STOP_MOTION_BLEND_ON); @@ -566,7 +566,7 @@ void TBaseNPC::npcWetIn() EVar6 = NPC_STOP_MOTION_BLEND_OFF; } else { if (isNormalMonte() || mActorType == ACTOR_TYPE_NPC_MONTE_WC) { - if (!checkLiveFlag(LIVE_FLAG_UNK4000000) + if (!checkLiveFlag(LIVE_FLAG_BALL_HIT_REACTION) && MsRandF() < 0.5f) EVar7 = NPC_ANM_KIND_UNKB; else @@ -579,7 +579,7 @@ void TBaseNPC::npcWetIn() } else if (!(mActorType < ACTOR_TYPE_NPC_PEACH && mActorType >= ACTOR_TYPE_NPC_KINOPIO)) { (void)mActorType; // TODO: uh, inlining maybe? - } else if (!checkLiveFlag(LIVE_FLAG_UNK4000000)) { + } else if (!checkLiveFlag(LIVE_FLAG_BALL_HIT_REACTION)) { if (MsRandF() < 0.5f) EVar7 = NPC_ANM_KIND_UNKB; } @@ -654,13 +654,13 @@ bool TBaseNPC::npcWetting() break; case NPC_ANM_KIND_UNK4: - if (checkLiveFlag(LIVE_FLAG_UNK2000000)) + if (checkLiveFlag(LIVE_FLAG_ANGRY)) npcMadding(); break; case NPC_ANM_KIND_MAD: case NPC_ANM_KIND_UNKB: - if (checkLiveFlag(LIVE_FLAG_UNK2000000)) { + if (checkLiveFlag(LIVE_FLAG_ANGRY)) { if (npcMadding()) { npcWetOut(); result = true; @@ -732,8 +732,8 @@ bool TBaseNPC::npcWetting() void TBaseNPC::npcWetOut() { - offLiveFlag(LIVE_FLAG_UNK2000000); - offLiveFlag(LIVE_FLAG_UNK4000000); + offLiveFlag(LIVE_FLAG_ANGRY); + offLiveFlag(LIVE_FLAG_BALL_HIT_REACTION); if (mSpine->getTop() == &TNerveNPCTalk::theNerve()) requestTalkAnm_(); else if (mActorType == ACTOR_TYPE_NPC_MONTE_ME) @@ -784,7 +784,7 @@ bool TBaseNPC::npcThrowing() void TBaseNPC::npcMadIn() { - onLiveFlag(LIVE_FLAG_UNK2000000); + onLiveFlag(LIVE_FLAG_ANGRY); if (mActorType == ACTOR_TYPE_NPC_MONTE_MF || checkActionFlag(NPC_ACTION_UNK1)) { @@ -799,7 +799,7 @@ bool TBaseNPC::npcMadding() { bool result = false; - if (!checkLiveFlag(LIVE_FLAG_UNK2000000)) { + if (!checkLiveFlag(LIVE_FLAG_ANGRY)) { result = true; } else { switch (mLodAnm->getCurrentAnmKind()) { @@ -824,7 +824,7 @@ bool TBaseNPC::npcMadding() case NPC_ANM_KIND_UNKB: if (mMActor->isCurAnmAlreadyEnd(ANM_TYPE_BCK)) { result = true; - offLiveFlag(LIVE_FLAG_UNK2000000); + offLiveFlag(LIVE_FLAG_ANGRY); } break; } @@ -983,7 +983,7 @@ bool TBaseNPC::sunflowerReviving() && mLodAnm->getCurrentAnmKind() == NPC_ANM_KIND_UNK1A) { if (mMActor->isCurAnmAlreadyEnd(ANM_TYPE_BCK)) { offUnk1D8(UNK1D8_FLAG_UNK2); - if (checkLiveFlag(LIVE_FLAG_UNK80000)) { + if (checkLiveFlag(LIVE_FLAG_TALKING)) { requestTalkAnm_(); } else { npcWaitIn(); diff --git a/src/NPC/NpcBase.cpp b/src/NPC/NpcBase.cpp index 3441664a9..64a96e0b0 100644 --- a/src/NPC/NpcBase.cpp +++ b/src/NPC/NpcBase.cpp @@ -444,7 +444,8 @@ BOOL TBaseNPC::receiveMessage(THitActor* param_1, u32 param_2) break; default: - if (param_2 == HIT_MESSAGE_TAKE && checkLiveFlag(LIVE_FLAG_UNK100000) + if (param_2 == HIT_MESSAGE_TAKE + && checkLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN) && mHolder == nullptr) { behaveToBeTaken_(param_1); result = true; @@ -548,18 +549,18 @@ void TBaseNPC::moveObject() control(); - if (!checkLiveFlag(LIVE_FLAG_UNK400000)) + if (!checkLiveFlag(LIVE_FLAG_SINKING)) calcRideMomentum(); - if (checkLiveFlag(LIVE_FLAG_UNK400000) - && !checkLiveFlag(LIVE_FLAG_UNK1000000)) + if (checkLiveFlag(LIVE_FLAG_SINKING) + && !checkLiveFlag(LIVE_FLAG_RENDER_ENTRY_SKIPPED)) emitSinkEffect_(); if (mSpine->getLatestNerve() != &TNerveNPCSetPosAfterSinkBottom::theNerve()) { execNpcObjCollision_(); - if (!checkLiveFlag(LIVE_FLAG_UNK10)) + if (!checkLiveFlag(LIVE_FLAG_NO_BIND)) bind(); if (mHolder != nullptr) { @@ -571,7 +572,7 @@ void TBaseNPC::moveObject() mRotation.y = SHORTANGLE2DEG(angle); } } else { - if (!checkLiveFlag(LIVE_FLAG_UNK10) && isNerveWalk() + if (!checkLiveFlag(LIVE_FLAG_NO_BIND) && isNerveWalk() && !belongToGround() && mPositionDelta.y > 5.0f) { mPositionDelta.y = 5.0f; } @@ -640,7 +641,7 @@ void TBaseNPC::perform(u32 cue, JDrama::TGraphics* graphics) } if (mActorType == ACTOR_TYPE_NPC_BOARD) { - if (checkLiveFlag(LIVE_FLAG_UNK200 | LIVE_FLAG_DEAD)) + if (checkLiveFlag(LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_DEAD)) return; if (cue & CUE_MOVE) @@ -653,7 +654,7 @@ void TBaseNPC::perform(u32 cue, JDrama::TGraphics* graphics) bool bVar5 = true; if (checkLiveFlag(LIVE_FLAG_DEAD)) { bVar5 = false; - } else if (checkLiveFlag(LIVE_FLAG_UNK200)) { + } else if (checkLiveFlag(LIVE_FLAG_OUT_OF_AREA)) { bVar5 = false; } else if ((cue & (CUE_CALC_VIEW | CUE_ENTRY)) && checkLiveFlag(LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_HIDDEN)) { @@ -679,7 +680,7 @@ void TBaseNPC::perform(u32 cue, JDrama::TGraphics* graphics) } if (!bVar5) { - offLiveFlag(LIVE_FLAG_UNK20000 | LIVE_FLAG_UNK40000); + offLiveFlag(TBaseNPC::LIVE_FLAG_TALKABLE | LIVE_FLAG_TALK_REQUESTED); return; } @@ -697,7 +698,7 @@ void TBaseNPC::perform(u32 cue, JDrama::TGraphics* graphics) MSD_SE_NPC_BURNING, &mPosition, 0, nullptr, 0, 4); } - if (!checkLiveFlag(LIVE_FLAG_UNK1000000 | LIVE_FLAG_HIDDEN + if (!checkLiveFlag(LIVE_FLAG_RENDER_ENTRY_SKIPPED | LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT)) emitParticle_(); @@ -714,7 +715,7 @@ void TBaseNPC::perform(u32 cue, JDrama::TGraphics* graphics) } if (cue & CUE_ENTRY) { - offLiveFlag(LIVE_FLAG_UNK1000000); + offLiveFlag(LIVE_FLAG_RENDER_ENTRY_SKIPPED); JGeometry::TVec3 diff; diff.sub(mPosition, gpCamera->unk124); if (diff.squared() > CLBSquared(mIndividualParams->mAllDLLockDist.get()) diff --git a/src/NPC/NpcChange.cpp b/src/NPC/NpcChange.cpp index ce2c103da..3d82f4bec 100644 --- a/src/NPC/NpcChange.cpp +++ b/src/NPC/NpcChange.cpp @@ -199,7 +199,7 @@ void TBaseNPC::changeNerveFromTalk_() } } - offLiveFlag(LIVE_FLAG_UNK2000000); + offLiveFlag(LIVE_FLAG_ANGRY); } void TBaseNPC::changeNerveToWet_() { } @@ -220,7 +220,7 @@ void TBaseNPC::releaseTaken_() mVelocity.set(fVar1 * JMASSin(uVar4), mPtrSaveNormal->mThrowSpeedY.get(), fVar1 * JMASCos(uVar4)); - onLiveFlag(LIVE_FLAG_UNK10000000); + onLiveFlag(LIVE_FLAG_ENABLE_WALL_COLLISION); unk1DC = CLBPalFrame(15l); unk158 = nullptr; @@ -241,7 +241,8 @@ void TBaseNPC::behaveToBeTaken_(THitActor* param_1) mInbetweenCtrl->startPosBlend(); onHitFilter(HIT_FILTER_NO_COLLISION); - offLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_UNK20000 | LIVE_FLAG_UNK400000); + offLiveFlag(LIVE_FLAG_NO_BIND | TBaseNPC::LIVE_FLAG_TALKABLE + | LIVE_FLAG_SINKING); if (mActorType == ACTOR_TYPE_NPC_PEACH) { peachParasolOut_(); mBalloonCtrl->setNextMessage(0xE004F, 0x2EE); @@ -388,7 +389,7 @@ void TBaseNPC::behaveToHitObject_(THitActor* param_1, && (mSpine->getCurrentNerve() != &TNerveNPCTalk::theNerve() || mSpine->getTime() >= 4)) { if (param_2 == 1) - onLiveFlag(LIVE_FLAG_UNK4000000); + onLiveFlag(LIVE_FLAG_BALL_HIT_REACTION); mSpine->pushNerve(&TNerveNPCWet::theNerve()); } } @@ -428,10 +429,11 @@ bool TBaseNPC::isStateGoToMad_() const bool TBaseNPC::isNowCanTaken() const { bool result = false; - if (checkLiveFlag(LIVE_FLAG_UNK100000) && mActorType != ACTOR_TYPE_NPC_DUMMY - && mHolder == nullptr && mHeldObject == nullptr + if (checkLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN) + && mActorType != ACTOR_TYPE_NPC_DUMMY && mHolder == nullptr + && mHeldObject == nullptr && !checkLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN - | LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_UNK40000 + | LIVE_FLAG_CLIPPED_OUT | LIVE_FLAG_TALK_REQUESTED | LIVE_FLAG_SINK_BOTTOM) && !checkHitFilter(HIT_FILTER_NO_COLLISION) && isNerveCanGoToTaken()) { result = true; @@ -445,16 +447,16 @@ void TBaseNPC::changeNerveProc_() const TNerveBase* latestNerve = mSpine->getLatestNerve(); if (latestNerve == &TNerveNPCTalk::theNerve()) { bVar4 = true; - onLiveFlag(LIVE_FLAG_UNK20000); - offLiveFlag(LIVE_FLAG_UNK40000); + onLiveFlag(TBaseNPC::LIVE_FLAG_TALKABLE); + offLiveFlag(LIVE_FLAG_TALK_REQUESTED); } else { bool bVar5 = isTalkable_(); if (bVar5) { - onLiveFlag(LIVE_FLAG_UNK20000); - if (checkLiveFlag(LIVE_FLAG_UNK40000)) { + onLiveFlag(TBaseNPC::LIVE_FLAG_TALKABLE); + if (checkLiveFlag(LIVE_FLAG_TALK_REQUESTED)) { bVar4 = true; - offLiveFlag(LIVE_FLAG_UNK40000); + offLiveFlag(LIVE_FLAG_TALK_REQUESTED); const TNerveBase* current = mSpine->getCurrentNerve(); if (current == &TNerveNPCWet::theNerve() @@ -464,11 +466,11 @@ void TBaseNPC::changeNerveProc_() } else { mSpine->pushNerve(&TNerveNPCTalk::theNerve()); } - offLiveFlag(LIVE_FLAG_UNK2000000); + offLiveFlag(LIVE_FLAG_ANGRY); } } else { - offLiveFlag(LIVE_FLAG_UNK20000); - offLiveFlag(LIVE_FLAG_UNK40000); + offLiveFlag(TBaseNPC::LIVE_FLAG_TALKABLE); + offLiveFlag(LIVE_FLAG_TALK_REQUESTED); } } @@ -507,7 +509,7 @@ void TBaseNPC::changeNerveProc_() return; } - if (checkLiveFlag(LIVE_FLAG_UNK400000)) + if (checkLiveFlag(LIVE_FLAG_SINKING)) return; if (isAirborne()) @@ -519,8 +521,9 @@ void TBaseNPC::changeNerveProc_() if (isNerveCanGoToSink()) { unk1C4 = mPosition.y; mVelocity.set(0.0f, 0.0f, 0.0f); - offLiveFlag(LIVE_FLAG_UNK20000 | LIVE_FLAG_UNK8000000); - onLiveFlag(LIVE_FLAG_UNK400000 | LIVE_FLAG_UNK10); + offLiveFlag(TBaseNPC::LIVE_FLAG_TALKABLE + | LIVE_FLAG_SINK_RECOVERY_JUMP_STARTED); + onLiveFlag(LIVE_FLAG_SINKING | LIVE_FLAG_NO_BIND); npcFallIn(); mSpine->pushNerve(&TNerveNPCSink::theNerve()); } @@ -532,11 +535,11 @@ void TBaseNPC::setPosAndInitAfterSinkBottom() bool cVar8 = gpPollution->isPolluted(pos.x, pos.y, pos.z); offLiveFlag(LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_CLIPPED_OUT - | LIVE_FLAG_UNK8 | LIVE_FLAG_UNK10 | LIVE_FLAG_UNK20000 - | LIVE_FLAG_UNK40000 | LIVE_FLAG_UNK400000 - | LIVE_FLAG_SINK_BOTTOM | LIVE_FLAG_UNK2000000 - | LIVE_FLAG_UNK8000000); - onLiveFlag(LIVE_FLAG_UNK1000000); + | LIVE_FLAG_NO_SHADOW | LIVE_FLAG_NO_BIND + | TBaseNPC::LIVE_FLAG_TALKABLE | LIVE_FLAG_TALK_REQUESTED + | LIVE_FLAG_SINKING | LIVE_FLAG_SINK_BOTTOM | LIVE_FLAG_ANGRY + | LIVE_FLAG_SINK_RECOVERY_JUMP_STARTED); + onLiveFlag(LIVE_FLAG_RENDER_ENTRY_SKIPPED); mHeldObject = nullptr; mHolder = nullptr; if (unk15C != nullptr) @@ -554,7 +557,7 @@ void TBaseNPC::setPosAndInitAfterSinkBottom() mSpine->setDefaultNext(); mSpine->pushNerve(&TNerveNPCSink::theNerve()); mSpine->pushNerve(&TNerveNPCSink::theNerve()); - onLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_UNK400000 + onLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_SINKING | LIVE_FLAG_SINK_BOTTOM); unk1C4 = mGroundHeight = gpMap->checkGroundIgnoreWaterSurface( pos.x, pos.y + getHeadHeight(), pos.z, &mGroundPlane); @@ -566,7 +569,7 @@ void TBaseNPC::setPosAndInitAfterSinkBottom() mSpine->pushNerve(mSpine->getDefault()); pos.y += 2.0f; mVelocity.set(0.0f, 5.0f, 0.0f); - onLiveFlag(LIVE_FLAG_UNK8000); + onLiveFlag(LIVE_FLAG_JUMPING); onLiveFlag(LIVE_FLAG_AIRBORNE); } diff --git a/src/NPC/NpcCollision.cpp b/src/NPC/NpcCollision.cpp index ff469b355..f486a7d7c 100644 --- a/src/NPC/NpcCollision.cpp +++ b/src/NPC/NpcCollision.cpp @@ -142,7 +142,7 @@ void TBaseNPC::bind() onLiveFlag(LIVE_FLAG_AIRBORNE); } - if (checkLiveFlag(LIVE_FLAG_UNK10000000)) { + if (checkLiveFlag(LIVE_FLAG_ENABLE_WALL_COLLISION)) { gpMap->isTouchedOneWallAndMoveXZ(&nextPos.x, nextPos.y + mHeadHeight, &nextPos.z, 150.0f); } diff --git a/src/NPC/NpcEvent.cpp b/src/NPC/NpcEvent.cpp index ca9ac7612..c2cc7eef3 100644 --- a/src/NPC/NpcEvent.cpp +++ b/src/NPC/NpcEvent.cpp @@ -165,7 +165,7 @@ static void evOnTalkToDummyNpc(TSpcTypedInterp* interp, = static_cast(JDrama::TNameRefGen::search("ダミーNPC")); if (dummyNpc != nullptr) { dummyNpc->offLiveFlag(LIVE_FLAG_DEAD); - dummyNpc->offLiveFlag(LIVE_FLAG_UNK40000); + dummyNpc->offLiveFlag(TBaseNPC::LIVE_FLAG_TALK_REQUESTED); dummyNpc->mTalkForbidCount = 120; } @@ -312,7 +312,7 @@ static void evCheckMonteClear(TSpcTypedInterp* interp, TBaseNPC* npc = static_cast(JDrama::TNameRefGen::search(buffer)); int b; - if (!npc->checkLiveFlag(LIVE_FLAG_UNK400000) && npc->isClean()) + if (!npc->checkLiveFlag(TBaseNPC::LIVE_FLAG_SINKING) && npc->isClean()) b = true; else b = false; diff --git a/src/NPC/NpcInitPrg.cpp b/src/NPC/NpcInitPrg.cpp index 242d3e186..aa3622d84 100644 --- a/src/NPC/NpcInitPrg.cpp +++ b/src/NPC/NpcInitPrg.cpp @@ -40,7 +40,7 @@ static const char* cNeckJointName = "kubi"; void TBaseNPC::initNpcLight_() { mMActor->setLightType(LIGHT_TYPE_OBJECT); - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) mGroundHeight = gpMap->checkGroundIgnoreWaterSurface( mPosition.x, mPosition.y + 10.0f, mPosition.z, &mGroundPlane); } @@ -157,7 +157,8 @@ void TBaseNPC::init(TLiveManager* param_1) mScaledBodyRadius = mScaling.x * mIndividualParams->mCircleShadowSize.get(); if (mActorType == ACTOR_TYPE_NPC_BOARD) { - onLiveFlag(LIVE_FLAG_UNK2000 | LIVE_FLAG_UNK10 | LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_ENABLE_FAST_CUBE_CULLING | LIVE_FLAG_NO_BIND + | LIVE_FLAG_NO_SHADOW); initNpcObjCollision_(pTVar3); mSpine->initWith(&TNerveNPCWaitMarioApproach::theNerve()); mTurnSpeed = 0.0f; @@ -165,21 +166,21 @@ void TBaseNPC::init(TLiveManager* param_1) return; } - onLiveFlag(LIVE_FLAG_UNK1000000); + onLiveFlag(LIVE_FLAG_RENDER_ENTRY_SKIPPED); onLiveFlag(LIVE_FLAG_AIRBORNE); - onLiveFlag(LIVE_FLAG_UNK1000); + onLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS); if (SMSGetMarDirector()->getCurrentStage() != 8 || (strcmp(mName, cNotUseFastCubeViewObjName0) != 0 && strcmp(mName, cNotUseFastCubeViewObjName1) != 0)) { - onLiveFlag(LIVE_FLAG_UNK2000); + onLiveFlag(LIVE_FLAG_ENABLE_FAST_CUBE_CULLING); } if (mActorType == ACTOR_TYPE_NPC_MONTE_ME) - onLiveFlag(LIVE_FLAG_UNK10 | LIVE_FLAG_UNK8); + onLiveFlag(LIVE_FLAG_NO_BIND | LIVE_FLAG_NO_SHADOW); if (isJellyFishMare() || isSunflower() || mActorType == ACTOR_TYPE_NPC_MONTE_MF) { - onLiveFlag(LIVE_FLAG_UNK10); + onLiveFlag(LIVE_FLAG_NO_BIND); } if (mMActor->getAnmBck()) diff --git a/src/NPC/NpcManager.cpp b/src/NPC/NpcManager.cpp index e5e1efb17..cefc405b4 100644 --- a/src/NPC/NpcManager.cpp +++ b/src/NPC/NpcManager.cpp @@ -318,7 +318,7 @@ void TNPCManager::clipEnemies(JDrama::TGraphics* graphics) JGeometry::TVec3 checkPos = actor->mPosition; checkPos.y += 75.0f; - if (actor->checkLiveFlag(LIVE_FLAG_UNK2000) + if (actor->checkLiveFlag(LIVE_FLAG_ENABLE_FAST_CUBE_CULLING) && SMS_IsInOtherFastCube(checkPos)) { actor->onLiveFlag(LIVE_FLAG_CLIPPED_OUT); continue; @@ -337,7 +337,7 @@ void TNPCManager::perform(u32 cue, JDrama::TGraphics* graphics) if (cue & CUE_ENTRY) { for (int i = 0, e = mObjNum; i < e; ++i) { TBaseNPC* npc = (TBaseNPC*)unk18[i]; - npc->onLiveFlag(LIVE_FLAG_UNK1000000); + npc->onLiveFlag(TBaseNPC::LIVE_FLAG_RENDER_ENTRY_SKIPPED); } } diff --git a/src/NPC/NpcNerve.cpp b/src/NPC/NpcNerve.cpp index 14e5c2dcf..a01aacd53 100644 --- a/src/NPC/NpcNerve.cpp +++ b/src/NPC/NpcNerve.cpp @@ -49,7 +49,7 @@ DEFINE_NERVE(TNerveNPCGraphWander, TLiveActor) if (bVar6) { spine->pushAfterCurrent(&TNerveNPCUTurn::theNerve()); if (bVar5) - self->onLiveFlag(LIVE_FLAG_UNK200000); + self->onLiveFlag(TBaseNPC::LIVE_FLAG_UTURN_POSITIVE_YAW); return true; } } @@ -64,7 +64,7 @@ DEFINE_NERVE(TNerveNPCUTurn, TLiveActor) if (self->execUTurn()) { self->mMarchSpeed = 0.0f; - self->offLiveFlag(LIVE_FLAG_UNK200000); + self->offLiveFlag(TBaseNPC::LIVE_FLAG_UTURN_POSITIVE_YAW); spine->pushAfterCurrent(&TNerveNPCGraphWander::theNerve()); return true; } diff --git a/src/NPC/NpcWalkTurn.cpp b/src/NPC/NpcWalkTurn.cpp index 9f7e41fa0..da7a2a800 100644 --- a/src/NPC/NpcWalkTurn.cpp +++ b/src/NPC/NpcWalkTurn.cpp @@ -100,7 +100,7 @@ bool TBaseNPC::execUTurn() targetYaw = MsWrap(targetYaw, 0.0f, 360.0f); mRotation.y = MsWrap(mRotation.y, 0.0f, 360.0f); - if (checkLiveFlag(LIVE_FLAG_UNK200000)) { + if (checkLiveFlag(TBaseNPC::LIVE_FLAG_UTURN_POSITIVE_YAW)) { if (mRotation.y > targetYaw) mRotation.y -= 360.0f; } else { diff --git a/src/Player/MarioCheckCol.cpp b/src/Player/MarioCheckCol.cpp index 6ca86465b..4f6335f42 100644 --- a/src/Player/MarioCheckCol.cpp +++ b/src/Player/MarioCheckCol.cpp @@ -92,7 +92,7 @@ void TMario::hitNpc(THitActor* actor) keepDistance(*actor, 0.0f); - if (((TLiveActor*)actor)->checkLiveFlag(LIVE_FLAG_UNK100000)) + if (((TLiveActor*)actor)->checkLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN)) wantToTakeActor(actor); } diff --git a/src/Strategic/liveactor.cpp b/src/Strategic/liveactor.cpp index f703ca5eb..d1c07c104 100644 --- a/src/Strategic/liveactor.cpp +++ b/src/Strategic/liveactor.cpp @@ -61,7 +61,7 @@ TLiveActor::TLiveActor(const char* name) mGroundPlane = TMap::getIllegalCheckData(); if (SMSGetMarDirector()->getCurrentStage() != 8) - mLiveFlag |= LIVE_FLAG_UNK2000; + mLiveFlag |= LIVE_FLAG_ENABLE_FAST_CUBE_CULLING; } TLiveActor::~TLiveActor() { } @@ -181,7 +181,7 @@ void TLiveActor::load(JSUMemoryInputStream& stream) void TLiveActor::bind() { - if (checkLiveFlag(LIVE_FLAG_UNK10)) + if (checkLiveFlag(LIVE_FLAG_NO_BIND)) return; if (mBinder != nullptr) { @@ -200,7 +200,7 @@ void TLiveActor::bind() // Handle vertical collisions { - if (checkLiveFlag(LIVE_FLAG_UNK1000)) { + if (checkLiveFlag(LIVE_FLAG_IGNORE_WATER_IN_GROUND_CHECKS)) { mGroundHeight = gpMap->checkGroundIgnoreWaterSurface( nextPos.x, nextPos.y + mHeadHeight, nextPos.z, &mGroundPlane); } else { @@ -292,10 +292,10 @@ void TLiveActor::moveObject() void TLiveActor::requestShadow() { - if (mLiveFlag & (LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_UNK8)) + if (mLiveFlag & (LIVE_FLAG_DEAD | LIVE_FLAG_HIDDEN | LIVE_FLAG_NO_SHADOW)) return; - if (!(mLiveFlag & (LIVE_FLAG_UNK200 | LIVE_FLAG_CLIPPED_OUT)) + if (!(mLiveFlag & (LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_CLIPPED_OUT)) || (mLiveFlag & LIVE_FLAG_FORCE_SHADOW)) { TCircleShadowRequest shadow; @@ -318,7 +318,7 @@ void TLiveActor::requestShadow() } } - if (!(mLiveFlag & (LIVE_FLAG_UNK200 | LIVE_FLAG_CLIPPED_OUT)) + if (!(mLiveFlag & (LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_CLIPPED_OUT)) && !isHitCategory(HIT_CATEGORY_MAP_OBJECT)) { gpQuestionManager->request(mPosition, mScaledBodyRadius); } @@ -335,7 +335,7 @@ void TLiveActor::drawObject(JDrama::TGraphics*) void TLiveActor::perform(u32 cue, JDrama::TGraphics* graphics) { - if (mLiveFlag & (LIVE_FLAG_UNK200 | LIVE_FLAG_DEAD)) + if (mLiveFlag & (LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_DEAD)) return; if (cue & CUE_MOVE) @@ -383,7 +383,7 @@ void TLiveActor::perform(u32 cue, JDrama::TGraphics* graphics) void TLiveActor::performOnlyDraw(u32 cue, JDrama::TGraphics* graphics) { - if (mLiveFlag & (LIVE_FLAG_UNK200 | LIVE_FLAG_DEAD)) + if (mLiveFlag & (LIVE_FLAG_OUT_OF_AREA | LIVE_FLAG_DEAD)) return; if (!mMActor) return; diff --git a/src/Strategic/livemanager.cpp b/src/Strategic/livemanager.cpp index a5db74755..aa2f75cdf 100644 --- a/src/Strategic/livemanager.cpp +++ b/src/Strategic/livemanager.cpp @@ -52,7 +52,7 @@ void TLiveManager::clipActorsAux(JDrama::TGraphics* graphics, f32 clip_far, } else { JGeometry::TVec3 pos = actor->getPosition(); pos.y += 75.0f; - if (actor->checkLiveFlag(LIVE_FLAG_UNK2000) + if (actor->checkLiveFlag(LIVE_FLAG_ENABLE_FAST_CUBE_CULLING) && SMS_IsInOtherFastCube(pos)) { actor->onLiveFlag(LIVE_FLAG_CLIPPED_OUT); } else { @@ -78,9 +78,9 @@ void TLiveManager::setFlagOutOfCube() JGeometry::TVec3 pos = actor->mPosition; pos.y += 75.0f; if (gpCubeArea->isInAreaCube(pos)) - actor->offLiveFlag(LIVE_FLAG_UNK200); + actor->offLiveFlag(LIVE_FLAG_OUT_OF_AREA); else - actor->onLiveFlag(LIVE_FLAG_UNK200); + actor->onLiveFlag(LIVE_FLAG_OUT_OF_AREA); } } diff --git a/src/System/EventWatcher.cpp b/src/System/EventWatcher.cpp index 07b2a090e..9ec69fd10 100644 --- a/src/System/EventWatcher.cpp +++ b/src/System/EventWatcher.cpp @@ -325,9 +325,9 @@ static void evSetFlagNPCCanTaken(TSpcTypedInterp* interp, TBaseNPC* npc = static_cast(JDrama::TNameRefGen::search(name)); if (npc) { if (arg) - npc->onLiveFlag(LIVE_FLAG_UNK100000); + npc->onLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN); else - npc->offLiveFlag(LIVE_FLAG_UNK100000); + npc->offLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN); } interp->push(); } diff --git a/src/System/MarDirectorDirect.cpp b/src/System/MarDirectorDirect.cpp index 0064b5d94..84128afa5 100644 --- a/src/System/MarDirectorDirect.cpp +++ b/src/System/MarDirectorDirect.cpp @@ -1007,7 +1007,7 @@ u8 TMarDirector::updateGameMode() break; case GAME_MODE_TALK_START: - mTalkingNPC->onLiveFlag(LIVE_FLAG_UNK40000); + mTalkingNPC->onLiveFlag(TBaseNPC::LIVE_FLAG_TALK_REQUESTED); mTalkingNPC->unkC.off(CUE_MOVE | CUE_CALC_ANIM); mGamePads[0]->onFlag(TMarioGamePad::PAD_FLAG_TALK_SELECT); OSStopStopwatch(&unkE8); diff --git a/src/System/MarDirectorEvent.cpp b/src/System/MarDirectorEvent.cpp index 0fbc7f16a..357c7caa5 100644 --- a/src/System/MarDirectorEvent.cpp +++ b/src/System/MarDirectorEvent.cpp @@ -41,8 +41,8 @@ TBaseNPC* TMarDirector::findNearestTalkNPC() for (it = mNPCList.begin(); it != mNPCList.end(); ++it) { TBaseNPC* npc = *it; - if (npc->checkLiveFlag(LIVE_FLAG_UNK100000) - || !npc->checkLiveFlag(LIVE_FLAG_UNK20000)) + if (npc->checkLiveFlag(TBaseNPC::LIVE_FLAG_CAN_BE_TAKEN) + || !npc->checkLiveFlag(TBaseNPC::LIVE_FLAG_TALKABLE)) continue; f32 dist = (npc->mPosition.x - marioPos.x)