1#include <game/bases/d_actor.hpp>
2#include <game/bases/d_a_player_manager.hpp>
3#include <game/bases/d_a_yoshi.hpp>
4#include <game/bases/d_attention.hpp>
6#include <game/bases/d_bg.hpp>
7#include <game/bases/d_cd.hpp>
8#include <game/bases/d_eff_actor_manager.hpp>
9#include <game/bases/d_fukidashi_manager.hpp>
10#include <game/bases/d_game_com.hpp>
11#include <game/bases/d_info.hpp>
12#include <game/bases/d_multi_manager.hpp>
13#include <game/bases/d_s_stage.hpp>
14#include <game/bases/d_score_manager.hpp>
15#include <game/bases/d_SmallScore.hpp>
16#include <game/mLib/m_effect.hpp>
17#include <lib/nw4r/g3d/scn_mdl.hpp>
18#include <constants/sjis_constants.h>
62 dCdFile_c *file = dCd_c::m_instance->getFileP(dScStage_c::m_instance->mCurrCourse);
126 mPos.x = dScStage_c::getLoopPosX(
mPos.x);
134 dAttention_c::mspInstance->entry(
mUniqueID);
136 m_1eb.set(0.0f, 0.0f);
159 return D_ACTOR_KIND_STRING;
201 dAcPy_c *closestPlayer =
nullptr;
202 float closestDist = 1e9;
203 for (
int i = 0; i < 4; i++) {
204 dAcPy_c *player = daPyMng_c::getPlayer(i);
211 float dist = xDiff * xDiff + yDiff * yDiff;
213 if (closestDist > dist) {
214 delta.set(xDiff, yDiff);
215 closestPlayer = player;
219 return closestPlayer;
223 dAcPy_c *closestPlayer =
nullptr;
225 float loopOffset = dBg_c::m_bg_p->mLoopOffset;
228 loopPos.x = dScStage_c::getLoopPosX(pos.x);
230 float closestDist = 1e9;
233 for (
int i = 0; i < 4; i++) {
239 loopPlayerPos.x = dScStage_c::getLoopPosX(player->getCenterX());
240 loopPlayerPos.y = player->getCenterY();
243 adjDelta.x = loopPlayerPos.x - loopPos.x;
246 if (adjDelta.x < 0.0f) {
247 if (adjDelta.x < -loopOffset / 2) {
248 adjDelta.x += loopOffset;
251 if (adjDelta.x > loopOffset / 2) {
252 adjDelta.x -= loopOffset;
256 adjDelta.y = loopPlayerPos.y - loopPos.y;
258 float dist = adjDelta.x * adjDelta.x + adjDelta.y * adjDelta.y;
259 if (closestDist > dist) {
260 delta.set(adjDelta.x, adjDelta.y);
261 closestPlayer = player;
265 return closestPlayer;
286 float loopTrgX = dScStage_c::getLoopPosX(trgX);
287 float loopSrcX = dScStage_c::getLoopPosX(srcX);
288 float diffX = loopTrgX - loopSrcX;
290 float loopOffset = dBg_c::m_bg_p->mLoopOffset / 2;
292 return !(diffX < -loopOffset);
294 return diffX > loopOffset;
299 dScStage_c::changePos(pos);
303 dScStage_c::setChangePosFunc(loopType);
313 for (
int i = 0; i < 4; i++) {
314 dActor_c *player = daPyMng_c::getPlayer(i);
344 m3d::replaceLightMapTexture(
"lm_01i", mdl, 0);
345 m3d::replaceLightMapTexture(
"lm_02i", mdl, 0);
347 for (
size_t i = 0; i < resMdl.GetResMatNumEntries(); i++) {
350 if (mat.mZCompLoc != 0) {
351 mat.SetLightSetIdx(6);
361 if (spawnFlags ==
nullptr || deleteVal ==
nullptr) {
365 if (!deleteForever) {
366 if (spawnFlags !=
nullptr) {
370 if (spawnFlags !=
nullptr) {
373 if (deleteVal !=
nullptr) {
380 dCdFile_c *course = dCd_c::m_instance->getFileP(dScStage_c::m_instance->mCurrCourse);
382 if (area ==
nullptr) {
388 mVec2_c bt = bound.withPos(pos);
394 mVec2_c doubleBoundSize = bound.getSize();
395 doubleBoundSize.x = 2.0f * doubleBoundSize.x;
396 doubleBoundSize.y = 2.0f * doubleBoundSize.y;
400 if (!(course->mpCourseSettings->mFlags & dCdCourseSettings_c::WRAP_AROUND_EDGES)) {
401 if (b.x + doubleBoundSize.x < -maxBoundSize.x || b.x > area->width + maxBoundSize.x) {
405 if (b.y - doubleBoundSize.y > maxBoundSize.y || b.y < -(area->height + maxBoundSize.y)) {
427 bool outOfScreen =
false;
477 mVec3_c minTriggerPos(centerPos.x - fukidashiTriggerSize.x, centerPos.y - fukidashiTriggerSize.y,
mPos.z);
478 mVec3_c maxTriggerPos(centerPos.x + fukidashiTriggerSize.x, centerPos.y + fukidashiTriggerSize.y,
mPos.z);
487 if (player !=
nullptr) {
488 bool canDrawFukidashi = player->isDrawingCarryFukidashi();
493 dScStage_c::getLoopPosX(playerBoundBox.mOffset.x + player->
mPos.x),
494 playerBoundBox.mOffset.y + player->
mPos.y,
498 mVec3_c minPlayerPos(playerPos.x - playerBoundBox.mSize.x - 2.0f, playerPos.y - playerBoundBox.mSize.y, playerPos.z);
499 mVec3_c maxPlayerPos(playerPos.x + playerBoundBox.mSize.x + 2.0f, playerPos.y + playerBoundBox.mSize.y, playerPos.z);
506 if ((!canDrawFukidashi) || (!overlap)) {
514 if (player !=
nullptr) {
515 bool canDrawFukidashi = player->isDrawingCarryFukidashi();
520 dScStage_c::getLoopPosX(playerBoundBox.mOffset.x + player->
mPos.x),
521 playerBoundBox.mOffset.y + player->
mPos.y,
525 mVec3_c minPlayerPos(playerPos.x - playerBoundBox.mSize.x, playerPos.y - playerBoundBox.mSize.y, playerPos.z);
526 mVec3_c maxPlayerPos(playerPos.x + playerBoundBox.mSize.x, playerPos.y + playerBoundBox.mSize.y, playerPos.z);
529 if (canDrawFukidashi && overlap) {
539 for (
int i = 0; i < 4; i++) {
553 dAcPy_c *closestPlayer =
nullptr;
554 float closestDist = 1e9;
555 for (
int i = 0; i < 4; i++) {
557 dAcPy_c *player = daPyMng_c::getPlayer(i);
558 if (player ==
nullptr) {
564 float dist = diffX * diffX + diffY * diffY;
565 if (closestDist > dist) {
566 closestPlayer = player;
571 return closestPlayer;
583 mEf::createEffect(
"Wm_en_burst_s", 0, &effPos,
nullptr,
nullptr);
591 for (
int i = 0; i < daPyMng_c::mNum; i++) {
592 dAcPy_c *player = daPyMng_c::getPlayer(i);
594 player->cancelCarry(
this);
598 effPos += centerOffs;
599 mEf::createEffect(
"Wm_en_burst_s", 0, &effPos,
nullptr,
nullptr);
626 static const int yoshiEatPopupTypes[] = { dSmallScore_c::POPUP_TYPE_200, dSmallScore_c::POPUP_TYPE_1000 };
627 static const int yoshiEatPoints[] = { 200, 1000 };
631 smallScorePos.y += 40.0f;
633 s8 plrNo = *eatingActor->
getPlrNo();
634 dGameCom::CreateSmallScore(smallScorePos, yoshiEatPopupTypes[
mEatPoints], plrNo,
false);
637 daPyMng_c::addScore(yoshiEatPoints[
mEatPoints], plrNo);
638 dMultiMng_c::mspInstance->incEnemyDown(plrNo);
654 yoshi->getMouthMtx(&mouthMtx);
659 mPos.x = mouthMtx.transX();
660 mPos.y = mouthMtx.transY();
667 if (yoshi->m_a0 <= 1) {
668 res = yoshi->m_a0 / 1.25f;
677 if (scaleRate < 1.0f) {
686 yoshi->getTongueTipMtx(&tongueTipMtx);
687 mPos.x = tongueTipMtx.transX();
713 int combo = multiplier;
714 if (combo >= ARRAY_SIZE(cs_combo_se)) {
715 combo = ARRAY_SIZE(cs_combo_se) - 1;
717 int comboNeededForClaps = shortCombo ? 4 : 7;
718 if (combo >= comboNeededForClaps) {
719 dMultiMng_c::mspInstance->setClapSE();
731 mVec3_c shiftedPos(pos, 6500.0f);
733 int waterDepth = dBc_c::checkWaterDepth(shiftedPos.x, shiftedPos.y,
mLayer,
mBc.mLineKind,
nullptr);
736 if (waterDepth < 3) {
739 splashInfo |= (
mLayer << 16);
741 mVec3_c splashSize(size, size, size);
742 dEffActorMng_c::m_instance->createWaterSplashEff(shiftedPos, splashInfo, -1, splashSize);
744 dAudio::g_pSndObjMap->startSound(SE_OBJ_CMN_SPLASH, shiftedPos, 0);
746 dBg_c::m_bg_p->setWaterInWave(pos.x, pos.y, 6);
750 mVec3_c shiftedPos(pos, 6500.0f);
752 u32 splashInfo = 4 | (
mLayer << 16);
754 mVec3_c splashSize(size, size, size);
755 dEffActorMng_c::m_instance->createWaterSplashEff(shiftedPos, splashInfo, -1, splashSize);
757 dAudio::g_pSndObjMap->startSound(SE_OBJ_CMN_SPLASH_LAVA, shiftedPos, 0);
760 dBg_c::m_bg_p->setWaterInWave(pos.x, pos.y, 16);
762 dBg_c::m_bg_p->setWaterInWave(pos.x, pos.y, 14);
767 mVec3_c shiftedPos(pos, 6500.0f);
769 u32 splashInfo = 6 | (
mLayer << 16);
771 mVec3_c splashSize(size, size, size);
772 dEffActorMng_c::m_instance->createWaterSplashEff(shiftedPos, splashInfo, -1, splashSize);
774 dAudio::g_pSndObjMap->startSound(SE_OBJ_CMN_SPLASH_POISON, pos, 0);
777 dBg_c::m_bg_p->setWaterInWave(pos.x, pos.y, 23);
779 dBg_c::m_bg_p->setWaterInWave(pos.x, pos.y, 21);
784 for (
int i = 0; i < 4; i++) {
785 dAcPy_c *player = daPyMng_c::getPlayer(i);
787 if (playerNum !=
nullptr) {
793 if (playerNum !=
nullptr) {
void getCcBounds(mBoundBox &bounds)
static u8 mExecStopReq
The actors for which the execute operation is requested to be disabled.
static u8 mExecStop
The actors for which the execute operation is currently disabled.
static bool getTrgToSrcDirLoop(float trgX, float srcX)
See getTrgToSrcDirFunc.
void deleteActor(u8 deleteForever)
Deletes the actor and optionally disables respawn.
static const float smc_CULL_AREA_XLIMIT
The default max bound X size.
u8 mExecStopMask
The mask required to disable the execute operation for the actor.
static dActor_c * construct(ProfileName profName, unsigned long param, const mVec3_c *position, const mAng3_c *rotation, u8 layer)
Creates a stage actor without a parent.
void slideComboSE(int multiplier, bool shortCombo)
Plays the combo kill sound effect.
virtual bool setEatGlupDown(dActor_c *eatingActor)
Callback for when the actor is about to be fully swallowed.
bool mBlockHit
Whether a block below the actor was hit.
dAcPy_c * searchNearPlayer(mVec2_c &delta)
Gets the closest player to the actor and its distance.
static void setLoopFunc(int loopType)
Sets the position-related functions for the level.
bool checkAreaNo()
Checks if at least one player is in the same zone as the actor.
void carryFukidashiCancel(int fukidashiAction, int playerId)
Hides the given action prompt for all players.
virtual void postCreate(fBase_c::MAIN_STATE_e status)
post method for the create operation.
virtual void postDelete(fBase_c::MAIN_STATE_e status)
post method for the delete operation.
mVec3_c mPreEatScale
The actor's scale before being eaten.
static void setSoftLight_MapObj(m3d::bmdl_c &mdl)
Sets the soft light effect for map objects.
virtual void cancelFunsuiActUpper()
u8 m_00
Seems to be a player bit flag.
static u8 * m_tmpCtSpawnFlags
Temporary storage for the next created sprite actor's spawn flags. See mpSpawnFlags.
static void setSoftLight_Map(m3d::bmdl_c &mdl)
Sets the soft light effect for map actors.
bool mNoRespawn
Whether the actor should not respawn after being deleted.
virtual void setSpinLiftUpActor(dActor_c *carryingActor)
Callback for when the actor is picked up by another actor.
virtual void reviveCc()
Enables the actor's collision.
static void setTmpCtData(u8 layer)
Sets temporary data to be used for the next actor's construction.
static u64 m_tmpCtEventMask
Temporary storage for the next created sprite actor's event mask. See mEventMask.
static u8 m_tmpCtLayerNo
Temporary storage for the next constructed actor's layer. See mLayer.
u8 * mpSpawnFlags
The spawn flags for the actor. See ACTOR_SPAWN_FLAG_e.
dBc_c mBc
The actor-to-tile collision sensor.
static getTrgToSrcDirFunc mGetTrgToSrcDirFunc
The direction detection function.
static u8 m_tmpCtSpriteLayerNo
Temporary storage for the next created sprite actor's layer. See mLayer.
virtual void poisonSplashEffect(const mVec3_c &pos, float size)
Generates a poison water splash effect.
static bool getTrgToSrcDir_Main(float trgX, float srcX)
See getTrgToSrcDirFunc.
static void setSoftLight_Enemy(m3d::bmdl_c &mdl)
Sets the soft light effect for enemies.
void clrComboCnt()
Clears the actor's combo counter.
virtual void setEatTongue(dActor_c *eatingActor)
Callback for when the actor is targeted by Yoshi's tongue.
@ EAT_POINTS_200
Awards 200 points (default).
@ EAT_POINTS_NONE
No points are awarded.
virtual mVec2_c getLookatPos() const
Gets the position players look to when focused on the actor.
@ SKIP_SCREEN_CHECK
The actor position is not checked against the screen boundaries.
@ SKIP_RIDE_CHECK
The actor's ride status is not checked.
@ SKIP_ACTOR_DELETE
The actor is not deleted if out of screen.
static bool getTrgToSrcDirNormal(float trgX, float srcX)
See getTrgToSrcDirFunc.
static void setSoftLight_Boss(m3d::bmdl_c &mdl)
Sets the soft light effect for bosses.
static const float smc_CULL_YLIMIT
The default max bound Y offset.
static void setSoftLight_Player(m3d::bmdl_c &mdl)
Sets the soft light effect for players.
virtual float calcEatScaleRate(dActor_c *eatingActor)
Computes the scaling rate during eating.
static dAcPy_c * searchNearPlayerLoop(mVec2_c &delta, const mVec2_c &pos)
See searchNearPlayerFunc.
static u16 m_tmpCtEventNums
Temporary storage for the next created sprite actor's tracked event IDs. See mEventNums.
u8 mKind
The actor's kind. Value is a STAGE_ACTOR_KIND_e.
u8 mEatState
The actor's eat state. Value is a EAT_STATE_e.
static void changePosAngle(mVec3_c *pos, mAng3_c *ang, int param3)
Adjusts the actor's position to account for looping stages.
bool areaCullCheck(const mVec3_c &pos, const mBoundBox &bound, u8 areaID) const
Checks if the actor should be culled due to zone limits.
dCc_c mCc
The actor-to-actor collision sensor.
static dAcPy_c * searchNearPlayerNormal(mVec2_c &delta, const mVec2_c &pos)
See searchNearPlayerFunc.
@ EAT_TYPE_EAT_PERMANENT
The actor is consumed permanently after being eaten (default).
virtual bool ActorDrawCullCheck()
Checks if the actor is out of view.
dAcPy_c * searchCarryFukidashiPlayer(int fukidashiAction)
Searches the closest player who has not yet performed the given action.
static void setSearchNearPlayerFunc(int loopType)
Sets the player search function to be used for the level.
mVec2_c mVisibleAreaSize
The size of the area inside which the actor is visible.
virtual void removeCc()
Disables the actor's collision.
virtual int preCreate()
pre method for the create operation.
static dAcPy_c * searchNearPlayer_Main(mVec2_c &delta, const mVec2_c &pos)
See searchNearPlayerFunc.
static u8 mDrawStopReq
The actor kinds for which the draw operation is requested to be disabled.
dAcPy_c *(* searchNearPlayerFunc)(mVec2_c &delta, const mVec2_c &pos)
Gets the closest player to the given position and its distance.
virtual void postExecute(fBase_c::MAIN_STATE_e status)
post method for the execute operation.
virtual void eatMove(dActor_c *eatingActor)
Updates the actor's position during eating actions.
static void setGetTrgToSrcDirFunc(int loopType)
Sets the direction detection function to be used for the level.
u8 mEatBehaviour
The actor's eat behaviour. Value is a EAT_BEHAVIOR_e.
u8 mAreaNo
The actor's zone ID.
void setKind(u8 kind)
Sets the actor's kind. See STAGE_ACTOR_KIND_e.
virtual int preExecute()
pre method for the execute operation.
virtual void allEnemyDeathEffSet()
Spawns the visual effects for when all players reach the flagpole and all enemies are cleared.
static void setSoftLight_Item(m3d::bmdl_c &mdl)
Sets the soft light effect for items.
virtual const char * getKindString() const
Gets the base's kind string.
s8 mPlayerNo
The player associated with the actor, -1 if not associated to any player.
bool ActorScrOutCheck(u16 flags)
Checks if the actor is out of gameplay and optionally deletes it.
u32 mComboMultiplier
The current combo multiplier obtained by the actor by colliding with other actors.
virtual void cancelFunsuiActSide(int)
virtual void cancelFunsuiActVanish()
virtual void setEatMouth(dActor_c *eatingActor)
Callback for when the actor is being eaten.
u32 mEatenByID
The unique identifier of the eating actor.
bool carryFukidashiCheck(int fukidashiAction, mVec2_c fukidashiTriggerSize)
Checks if the prompt for the given action should be displayed for each player.
virtual void waterSplashEffect(const mVec3_c &pos, float size)
Generates a water splash effect.
void killActor(s8 playerId, int noScore)
Kills the actor and optionally awards points to one or all players.
virtual void setEatTongueOff(dActor_c *eatingActor)
Callback for when the eating action is canceled.
virtual void block_hit_init()
Callback for when a block directly beneath the actor is hit.
@ EAT_STATE_EATEN
The actor has been successfully eaten.
bool checkCarried(int *playerNum)
Returns whether the actor is being carried by a player.
dActor_c()
Constructs a new actor.
bool checkBgColl()
Returns whether the actor is colliding with any enabled collision sides.
virtual void yoganSplashEffect(const mVec3_c &pos, float size)
Generates a lava splash effect.
@ COLL_FOOT
The actor can collide with the ground.
@ COLL_HEAD
The actor can collide with ceilings.
@ COLL_WALL_L
The actor can collide with walls on its left.
@ COLL_WALL_R
The actor can collide with walls on its right.
@ COLL_NONE
The actor does not collide with any surface.
static const float smc_CULL_AREA_YLIMIT
The default max bound Y size.
dRc_c mRc
The actor's ride surface manager.
@ ACTOR_SPAWNED
The actor is spawned.
@ ACTOR_NO_RESPAWN
The actor must not respawn after deletion.
virtual void calcEatInScale(dActor_c *eatingActor)
Adjusts the actor's scale while being eaten.
u32 mCarryFukidashiPlayerNo
The player for whom an action prompt related to the actor is being displayed. -1 if no players meet t...
virtual int preDraw()
pre method for the draw operation.
virtual s8 * getPlrNo()
Gets the player number associated with the actor. See mPlayerNo.
virtual void setAfterEatScale()
Restores the actor's scale once spat out.
static bool screenCullCheck(const mVec3_c &pos, const mBoundBox &visibleBound, mBoundBox destroyBound, u8 areaID)
Checks if the actor should be culled due to being outside the screen.
static const mVec2_c smc_FUKIDASHI_RANGE
The default trigger area size for displaying action prompts.
virtual bool setEatSpitOut(dActor_c *eatingActor)
Callback for when the actor is about to be spat out.
@ STAGE_ACTOR_GENERIC
A generic stage actor (default).
virtual void calcSpitOutPos(dActor_c *eatingActor)
Calculates the position where the actor will be spat out.
static void setChangePosAngleFunc(int loopType)
Sets the position update function to be used for the level.
virtual void postDraw(fBase_c::MAIN_STATE_e status)
post method for the draw operation.
virtual int preDelete()
pre method for the delete operation.
static const float smc_CULL_XLIMIT
The default max bound X offset.
static searchNearPlayerFunc mSearchNearPlayerFunc
The player search function.
u8 mLayer
The actor's layer.
mVec2_c mVisibleAreaOffset
The offset applied to the area size.
bool(* getTrgToSrcDirFunc)(float trgX, float srcX)
Gets the direction the target position is in, from the source position's viewpoint.
~dActor_c()
Destroys the actor.
u8 mBgCollFlags
The collision directions that the actor can respond to.
static u8 mDrawStop
The actor kinds for which the draw operation is currently disabled.
EAT_POINTS_e mEatPoints
The score awarded when the actor is eaten by Yoshi.
bool mVisible
Whether the actor should be visible or not. Defaults to true .
virtual int preDraw()
pre method for the draw operation.
mVec3_c mScale
The actor's scale (defaults to 1).
mVec3_c mPos
The actor's position.
virtual void postExecute(fBase_c::MAIN_STATE_e status)
post method for the execute operation.
virtual void postDraw(fBase_c::MAIN_STATE_e status)
post method for the draw operation.
mVec3_c mCenterOffs
The offset from the position to the center of the actor (defaults to 0).
static dBaseActor_c * construct(ProfileName profName, unsigned long param, const mVec3_c *position, const mAng3_c *rotation)
Creates an actor without a parent.
virtual int preDelete()
pre method for the delete operation.
virtual void postDelete(fBase_c::MAIN_STATE_e status)
post method for the delete operation.
mVec3_c getCenterPos() const
Gets the actor's centered position.
virtual void postCreate(fBase_c::MAIN_STATE_e status)
post method for the create operation.
u32 mActorProperties
The actor's properties. See fProfile::fActorProfile_c::mActorProperties.
virtual int preExecute()
pre method for the execute operation.
virtual int preCreate()
pre method for the create operation.
dBase_c()
Constructs a new base.
const char * mpKindString
The base's kind string.
AreaBoundU16 * getAreaP(u8 zoneID, mBoundBox *bound)
static float smc_SCORE_X
The score's horizontal offset from the actor position.
static float smc_SCORE_Y
The score's vertical offset from the actor position.
static bool checkPlayer(u8 plrNo)
MAIN_STATE_e
The possible operation results.
@ SUCCESS
The operation was completed successfully.
void deleteRequest()
Requests deletion of the base.
bool mDeleteRequested
If deletion of the base was requested, but the delete operation has not been scheduled yet.
@ NOT_READY
The step could not completed at this time.
@ SUCCEEDED
The step was completed successfully.
fBaseID_e mUniqueID
The base's unique identifier.
static fBase_c * searchBaseByID(fBaseID_e id)
Searches for a base with the given ID.
A three-dimensional short angle vector.
A two-dimensional floating point vector.
A three-dimensional floating point vector.
const u8 l_Ami_Line[]
The sub-layer for each side of chainlink fences.
const float l_Ami_Zpos[]
The additional Z offset for each side of chainlink fences.
@ BASE_ID_NULL
Represents the null base.
void PSMTXTrans(Mtx *mtx, float x, float y, float z)
Sets a translation matrix with the given components.
void PSMTXConcat(const Mtx *a, const Mtx *b, Mtx *out)
Concatenates two matrices.
u16 ProfileName
The name of a profile. Value is a fProfile::PROFILE_NAME_e.
void SetSoftLight_Player(m3d::bmdl_c &, int)
Sets the soft light effect for players.
void SetSoftLight_Enemy(m3d::bmdl_c &, int)
Sets the soft light effect for enemies.
void SetSoftLight_MapObj(m3d::bmdl_c &, int)
Sets the soft light effect for map objects.
void SetSoftLight_Map(m3d::bmdl_c &, int)
Sets the soft light effect for map actors.
void hideFukidashiForLevel(int playerId, int fukidashiAction, int param3)
Hides the given action prompt for the given player for the rest of the current level.
void showFukidashi(int playerId, int fukidashiAction)
Displays the given action prompt to the given player.
bool isGameStop(ulong flag)
Determines if gameplay is currently stopped for the specified reason(s).
bool someCheck(mVec3_c *a, mBoundBox *b)
bool checkRectangleOverlap(mVec3_c *, mVec3_c *, mVec3_c *, mVec3_c *, float)
void SetSoftLight_Boss(m3d::bmdl_c &, int)
Sets the soft light effect for bosses.
void hideFukidashiTemporarily(int playerId, int fukidashiAction, int param3)
Temporarily hides the given action prompt for the given player.
void hideFukidashiForSession(int playerId, int fukidashiAction)
Hides the given action prompt for the given player for the rest of the current session.
@ GAME_STOP_ANY
The game is stopped for any unspecified reason.