Live flags are very nice now

This commit is contained in:
Roman Sandu committed 2026-11-01 23:29:28 +03:00
1 parent 8052d8a223
commit 029611cd09
106 files changed
+635 -525

No files matched your search

+1 -1
View File
@@ -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:
+10
View File
@@ -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;
+1 -1
View File
@@ -147,7 +147,7 @@ public:
static f32 mCameraMoveSp;
enum {
LIVE_FLAG_UNK10000 = 0x10000,
LIVE_FLAG_UNK10000 = 1u << LIVE_FLAG_BIT_USER2, // 0x10000 / 0x20000
};
public:
-3
View File
@@ -155,9 +155,6 @@ public:
f32 getUnk168() const { return unk168; }
// fabricated
f32 getHeadHeight() const { return mHeadHeight * mBodyScale; }
// UNUSED
BOOL isHeadPulled();
bool isMarioInSight();
+15
View File
@@ -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;
+5
View File
@@ -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;
+5 -1
View File
@@ -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:
+6
View File
@@ -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,
};
+26 -10
View File
@@ -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()
+82 -39
View File
@@ -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<f32>& v)
{
+1 -1
View File
@@ -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();
+1 -1
View File
@@ -32,7 +32,7 @@ void TAnimalManagerBase::clipEnemies(JDrama::TGraphics* graphics)
JGeometry::TVec3<f32> 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 {
+5 -5
View File
@@ -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<f32> 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);
+1 -1
View File
@@ -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);
}
}
+1 -1
View File
@@ -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,
+7 -6
View File
@@ -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;
}
}
+5 -5
View File
@@ -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<f32> 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(); }
+4 -4
View File
@@ -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<f32>(0, 0, 0);
onLiveFlag(LIVE_FLAG_UNK8);
onLiveFlag(LIVE_FLAG_NO_SHADOW);
mNoseColor = mBodyColor;
}
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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;
+14 -14
View File
@@ -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);
+6 -4
View File
@@ -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;
+1 -1
View File
@@ -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(
+2 -2
View File
@@ -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<f32> 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)) {
+1 -1
View File
@@ -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);
+3 -3
View File
@@ -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);
}
}
+1 -1
View File
@@ -208,7 +208,7 @@ void TKumokun::reset() { }
void TKumokun::bind()
{
if (checkLiveFlag(LIVE_FLAG_UNK10))
if (checkLiveFlag(LIVE_FLAG_NO_BIND))
return;
if (isFlying()) {
+1 -1
View File
@@ -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)
+3 -3
View File
@@ -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;
+4 -8
View File
@@ -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<f32> local_c8 = bossGesso->mPosition;
JGeometry::TVec3<f32> 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;
}
}
+5 -5
View File
@@ -196,7 +196,7 @@ void TBombHei::genEventCoin()
JGeometry::TVec3<f32> 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();
+1 -1
View File
@@ -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;
+12 -12
View File
@@ -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<TBossEelManager*>(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<EnumCamShakeMode>(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;
+2 -2
View File
@@ -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<f32>(0.0f, 0.0f, 0.0f);
self->onLiveFlag(LIVE_FLAG_UNK10);
self->onLiveFlag(LIVE_FLAG_NO_BIND);
}
if (self->isReachedToGoal() && !SMSGetMarDirector()->isInnerDemoModeNow()) {
+4 -4
View File
@@ -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<TBossPakkun*>(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<TBossPakkun*>(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);
}
+13 -13
View File
@@ -144,7 +144,7 @@ void TBubble::init(TLiveManager* manager)
void TBubble::reset()
{
TWalkerEnemy::reset();
onLiveFlag(LIVE_FLAG_UNK8);
onLiveFlag(LIVE_FLAG_NO_SHADOW);
TMsRange<f32> 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<f32> 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();
+4 -5
View File
@@ -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<f32>(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<f32> 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);
}
+1 -1
View File
@@ -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) {
+3 -3
View File
@@ -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();
+4 -4
View File
@@ -188,7 +188,7 @@ int TConductor::makeEnemyAppear(const JGeometry::TVec3<f32>& 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<f32>& 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<f32>& 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;
+2 -2
View File
@@ -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()
+2 -2
View File
@@ -236,8 +236,8 @@ void TEffectModel::reset()
{
TSpineEnemy::reset();
mRotation.y = TMsRange<f32>(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);
+2 -2
View File
@@ -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)
+2 -2
View File
@@ -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<f32> 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);
}
}
}
+1 -1
View File
@@ -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()
+9 -9
View File
@@ -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<f32>& 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<f32>(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<f32>& position,
const JGeometry::TVec3<f32>& 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<f32>& 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;
}
}
+2 -1
View File
@@ -1,4 +1,5 @@
#include <Enemy/EnemyAttachment.hpp>
#include <Enemy/SmallEnemy.hpp>
#include <Enemy/Conductor.hpp>
#include <Strategic/ObjModel.hpp>
#include <Strategic/SharedParts.hpp>
@@ -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);
}
}
+5 -2
View File
@@ -1,3 +1,4 @@
#include <NPC/NpcBase.hpp>
#include <Enemy/EnemyMario.hpp>
#include <Enemy/Conductor.hpp>
#include <Enemy/Emario.hpp>
@@ -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);
+9 -6
View File
@@ -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()) {
+3 -3
View File
@@ -1696,7 +1696,7 @@ void TFireWanwan::bindPoint(JGeometry::TVec3<f32>* 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<f32>* 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;
+16 -16
View File
@@ -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<f32> 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<f32> 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);
+3 -3
View File
@@ -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());
}
+6 -6
View File
@@ -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)) {
+9 -9
View File
@@ -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<f32> 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();
+14 -14
View File
@@ -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<f32>(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();
+1 -1
View File
@@ -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();
+12 -12
View File
@@ -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<s32>(50, 100).rand() * 120;
@@ -631,7 +631,7 @@ void TIgaiga::shoot(JGeometry::TVec3<f32>& 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;
+6 -6
View File
@@ -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<f32> 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();
+2 -2
View File
@@ -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");
+1 -1
View File
@@ -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);
}
+1 -1
View File
@@ -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());
}
+6 -6
View File
@@ -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<f32>(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<f32>(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<f32>(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;
}
+4 -4
View File
@@ -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;
}
+7 -7
View File
@@ -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;
}
+9 -9
View File
@@ -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);
}
+1 -1
View File
@@ -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() { }
+7 -7
View File
@@ -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;
+1 -1
View File
@@ -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)
+21 -21
View File
@@ -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<f32>(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<f32>(30.0f, 100.0f).rand();
+3 -3
View File
@@ -67,7 +67,7 @@ void TSpider::bind(TLiveActor* param_1)
local_50.y = fVar3;
enemy->mVelocity = JGeometry::TVec3<f32>(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<f32>(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<f32>(0, 0, 0);
unkC = local_90.mResultWalls[0];
+8 -7
View File
@@ -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<f32>(
0.0f, TTamaNoko::mDropVelocityY, 0.0f));
self->offLiveFlag(LIVE_FLAG_UNK10);
self->offLiveFlag(LIVE_FLAG_NO_BIND);
}
}
} else {
+7 -7
View File
@@ -185,9 +185,9 @@ void TTelesaManager::setFlagOutOfCube()
JGeometry::TVec3<f32> 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<f32> 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);
+1 -1
View File
@@ -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;
}
+12 -12
View File
@@ -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())
+4 -3
View File
@@ -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<f32>(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);
}
+1 -1
View File
@@ -114,7 +114,7 @@ void TYumboSeed::startToMove(const JGeometry::TVec3<f32>& 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[] = {
+7 -7
View File
@@ -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<f32> 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;
+19 -19
View File
@@ -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;
}
}
+13 -13
View File
@@ -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 {
+2 -2
View File
@@ -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);
}
}
+1 -1
View File
@@ -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; }
+9 -9
View File
@@ -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<f32> 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<f32>* 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;
+4 -4
View File
@@ -40,7 +40,7 @@ void THideObjBase::appearObjFromPoint(const JGeometry::TVec3<f32>& 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;
+1 -1
View File
@@ -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)) {
+6 -6
View File
@@ -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<f32>(JMASSin(angle), 0.0f, JMASCos(angle));
JGeometry::TVec3<f32> v2 = mVelocity;
mPosition += v2;
offLiveFlag(LIVE_FLAG_UNK10);
offLiveFlag(LIVE_FLAG_NO_BIND);
}
if (!isAirborne()) {
unk13C = 0;
+5 -5
View File
@@ -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)
+3 -3
View File
@@ -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<f32>& param_1, f32 param_2,
void TMuddyBoat::bind()
{
if (checkLiveFlag(LIVE_FLAG_UNK10))
if (checkLiveFlag(LIVE_FLAG_NO_BIND))
return;
JGeometry::TVec3<f32> pos = mPosition;
MtxPtr mtx = getModel()->getAnmMtx(0);
+2 -2
View File
@@ -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 {
+1 -1
View File
@@ -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);
+4 -2
View File
@@ -594,8 +594,10 @@ void TRedCoinSwitch::loadAfter()
for (int i = 0; i < 8; ++i) {
char buf[0x40];
snprintf(buf, 0x40, "赤コイン %d", i);
static_cast<TMapObjBase*>(JDrama::TNameRefGen::search(buf))
->makeObjDead();
TMapObjBase* coin
= static_cast<TMapObjBase*>(JDrama::TNameRefGen::search(buf));
JUT_ASSERT(coin);
coin->makeObjDead();
}
}
+3 -3
View File
@@ -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()
+18 -18
View File
@@ -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();
+12 -11
View File
@@ -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<f32> diff;
diff.sub(mPosition, gpCamera->unk124);
if (diff.squared() > CLBSquared(mIndividualParams->mAllDLLockDist.get())
+28 -25
View File
@@ -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<TLiveActor>* 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<TLiveActor>* 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);
}
+1 -1
View File
@@ -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);
}
+2 -2
View File
@@ -165,7 +165,7 @@ static void evOnTalkToDummyNpc(TSpcTypedInterp<TEventWatcher>* interp,
= static_cast<TBaseNPC*>(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<TEventWatcher>* interp,
TBaseNPC* npc = static_cast<TBaseNPC*>(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;
+8 -7
View File
@@ -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())
+2 -2
View File
@@ -318,7 +318,7 @@ void TNPCManager::clipEnemies(JDrama::TGraphics* graphics)
JGeometry::TVec3<f32> 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);
}
}
+2 -2
View File
@@ -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;
}
+1 -1
View File
@@ -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 {
Loaded 100 of 106 files, more files were not shown because too many files have changed in this diff. Show more