3#include <basis/seadAssert.h>
4#include <container/seadSafeArray.h>
5#include <heap/seadHeap.h>
6#include <math/seadVector.h>
28 return static_cast<
Flag>(
29 static_cast<u16>(lhs
) | static_cast<u16>(rhs)
53static_assert(
sizeof(
ActorData) == 0x24,
"ActorData size mismatch");
86 static_assert(
sizeof(
Flag) == 4);
97 return (Flag)((u32)lhs | (u32)rhs);
108 return (Flag)((u32)lhs & (u32)rhs);
119 return (Flag)(~(u32)val);
173static_assert(
sizeof(
Profile) == 0x14,
"Profile size mismatch");
s32 ProfileID
Definition Profile.h:61
Base interface class for all actors in the game. Lifecycle is handled by ActorMgr.
Definition ActorBase.h:19
Definition ModelResource.h:14
void loadResource(sead::Heap *heap)
ActorFactory mFactory
Definition Profile.h:161
friend Flag & operator|=(Flag &lhs, const Flag &rhs)
Definition Profile.h:100
static sead::SafeArray< Profile *, cProfileID_Max > sProfileList
Definition Profile.h:171
Flag
Definition Profile.h:67
@ cFlag_Item
Allows being bumped around by Bump Platforms through the ItemBase bump-related members.
Definition Profile.h:81
@ cFlag_Unk12
Possibly unused.
Definition Profile.h:79
@ cFlag_NoComboScore
Disables awarding Combo scores.
Definition Profile.h:69
@ cFlag_NoFumi
Bypasses stomp classification and always damages the player (applies knockback when penguin-sliding).
Definition Profile.h:76
@ cFlag_WinKill
Kills the actor and awards score when completing the course.
Definition Profile.h:71
@ cFlag_FunsuiFollowY
Causes geysers to drag this actor's position upwards. Only used by Piranha Plants in NSLU.
Definition Profile.h:82
@ cFlag_None
Definition Profile.h:84
@ cFlag_DrawCullCheck
Enables calling Actor::drawCullCheck_() to skip drawing if the actor is considered offscreen.
Definition Profile.h:68
@ cFlag_Unk3
Possibly unused.
Definition Profile.h:70
@ cFlag_NoLoopPosX
Disables horizontal screen-wrapping for this actor.
Definition Profile.h:77
@ cFlag_Unk6
Possibly unused.
Definition Profile.h:73
@ cFlag_Unk8
Possibly unused.
Definition Profile.h:75
@ cFlag_WinKillNoScore
Kills the actor when completing the course but does not award score.
Definition Profile.h:72
@ cFlag_Coin
Counts as a weighted rider on platforms.
Definition Profile.h:80
@ cFlag_Projectile
Used for special collision logic, and kills the actor when completing the course by defeating a boss.
Definition Profile.h:74
@ cFlag_Carryable
Allows other carryable blocks to bounce off this actor, kills the actor when catching Nabbit,...
Definition Profile.h:78
@ cProfileID_Max
Definition Profile.h:91
ActorFactory getActorFactory() const
Definition Profile.h:125
friend Flag & operator&=(Flag &lhs, const Flag &rhs)
Definition Profile.h:111
friend Flag operator|(const Flag &lhs, const Flag &rhs)
Definition Profile.h:95
static Profile * getProfile(ProfileID id)
bool isResLoaded() const
Definition Profile.h:141
ModelResource * getMdlResource(u32 index) const
const ActorData & getActorCreateInfo() const
Definition Profile.h:136
Profile(ActorFactory factory, ProfileID id, const sead::SafeString &name, const ActorData *create_info=nullptr, u32 flag=cFlag_None, void(*)(sead::hostio::Context *)=nullptr)
Flag getFlag() const
Definition Profile.h:146
friend Flag operator&(const Flag &lhs, const Flag &rhs)
Definition Profile.h:106
bool mIsResLoaded
Definition Profile.h:164
const ActorData * mActorCreateInfo
Definition Profile.h:163
Flag mFlag
Definition Profile.h:165
ProfileID getID() const
Definition Profile.h:131
friend Flag operator~(const Flag &val)
Definition Profile.h:117
ProfileID mID
Definition Profile.h:162
Definition ActorCreateParameter.h:108
friend constexpr Flag operator|(Flag lhs, Flag rhs)
Definition Profile.h:26
u16 left
Definition Profile.h:45
s32 offset_y
Definition Profile.h:34
s32 offset_x
Definition Profile.h:33
s32 half_size_x
Definition Profile.h:39
u16 down
Definition Profile.h:44
Flag
Definition Profile.h:11
@ cFlag_NoCoinEdit
Prevents spawning in Coin Edit mode.
Definition Profile.h:16
@ cFlag_ManagedChildTemplate
Treats creation of the map actor as a reusable operation from an external manager actor.
Definition Profile.h:21
@ cFlag_Jouchu
Both cFlag_ScrollSetupDeferred and cFlag_Grouped.
Definition Profile.h:22
@ cFlag_Grouped
Marks the actor as Group Controller-managed, using nybbles 5-6 (high byte of mParam0) as the group ID...
Definition Profile.h:15
@ cFlag_MapObj
Avoids blocking boost mode block placement and adjusts the Z-position to be further in front.
Definition Profile.h:14
@ cFlag_None
Definition Profile.h:24
@ cFlag_Coin
Participates in coin counting routines.
Definition Profile.h:18
@ cFlag_CoinEditPatternControlled
Prevents spawning in Coin Edit mode and is marked as being controlled by a coin edit pattern.
Definition Profile.h:17
@ cFlag_ScrollSetupDeferred
Queues the actor for creation only after scroll limiters and other camera properties have been applie...
Definition Profile.h:13
@ cFlag_CoinBlock
Participates in coin-block counting routines, but only if nybble 20 is 0 and nybble 13 & 1 is 0 (aka ...
Definition Profile.h:19
@ cFlag_IgnoreSpawnRange
Creates the actor regardless of camera proximity.
Definition Profile.h:12
@ cFlag_PakkunBlack
Spawns as a muncher tile instead of constructing an Actor instance.
Definition Profile.h:20
static const ActorData cDefault
Definition Profile.h:51
Flag flag
Definition Profile.h:48
u16 right
Definition Profile.h:46
s32 half_size_y
Definition Profile.h:40
u16 up
Definition Profile.h:43