3#include <actor/ProfileInfo.h>
5#include <basis/seadAssert.h>
6#include <container/seadSafeArray.h>
7#include <heap/seadHeap.h>
8#include <math/seadVector.h>
30 return static_cast<
Flag>(
31 static_cast<u16>(lhs
) | static_cast<u16>(rhs)
55static_assert(
sizeof(
ActorCreateInfo) == 0x24,
"ActorCreateInfo size mismatch");
86 static_assert(
sizeof(
Flag) == 4);
91 return (Flag)((u32)lhs | (u32)rhs);
102 return (Flag)((u32)lhs & (u32)rhs);
113 return (Flag)(~(u32)val);
169static_assert(
sizeof(
Profile) == 0x14,
"Profile size mismatch");
Base interface class for all actors in the game. Lifecycle is handled by ActorMgr.
Definition ActorBase.h:18
Definition ModelResource.h:13
void loadResource(sead::Heap *heap)
ActorFactory mFactory
Definition Profile.h:157
s32 mID
Definition Profile.h:158
void unloadResource(sead::Heap *heap)
friend Flag & operator|=(Flag &lhs, const Flag &rhs)
Definition Profile.h:94
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
s32 getID() const
Definition Profile.h:126
static Profile * get(s32 id)
ActorFactory getActorFactory() const
Definition Profile.h:120
friend Flag & operator&=(Flag &lhs, const Flag &rhs)
Definition Profile.h:105
friend Flag operator|(const Flag &lhs, const Flag &rhs)
Definition Profile.h:89
ModelResource * getResource(u32 index) const
const ActorCreateInfo * mActorCreateInfo
Definition Profile.h:159
bool isResLoaded() const
Definition Profile.h:136
Profile(ActorFactory factory, s32 id, const sead::SafeString &name, const ActorCreateInfo *create_info=nullptr, Flag flag=cFlag_None)
Flag getFlag() const
Definition Profile.h:141
friend Flag operator&(const Flag &lhs, const Flag &rhs)
Definition Profile.h:100
bool mIsResLoaded
Definition Profile.h:160
Flag mFlag
Definition Profile.h:161
static sead::SafeArray< Profile *, ProfileInfo::cProfileID_Max > sProfileList
Definition Profile.h:167
friend Flag operator~(const Flag &val)
Definition Profile.h:111
const ActorCreateInfo & getActorCreateInfo() const
Definition Profile.h:131
u16 down
Definition Profile.h:46
friend constexpr Flag operator|(Flag lhs, Flag rhs)
Definition Profile.h:28
Flag
Definition Profile.h:13
@ cFlag_GroupedScrollSetupDeferred
Both cFlag_ScrollSetupDeferred and cFlag_Grouped.
Definition Profile.h:24
@ cFlag_IgnoreSpawnRange
Creates the actor regardless of camera proximity.
Definition Profile.h:14
@ cFlag_ScrollSetupDeferred
Queues the actor for creation only after scroll limiters and other camera properties have been applie...
Definition Profile.h:15
@ cFlag_Grouped
Marks the actor as Group Controller-managed, using nybbles 5-6 (high byte of mParam0) as the group ID...
Definition Profile.h:17
@ cFlag_NoCoinEdit
Prevents spawning in Coin Edit mode.
Definition Profile.h:18
@ cFlag_MapObj
Avoids blocking boost mode block placement and adjusts the Z-position to be further in front.
Definition Profile.h:16
@ cFlag_None
Definition Profile.h:26
@ 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:21
@ cFlag_Coin
Participates in coin counting routines.
Definition Profile.h:20
@ cFlag_CoinEditPatternControlled
Prevents spawning in Coin Edit mode and is marked as being controlled by a coin edit pattern.
Definition Profile.h:19
@ cFlag_ManagedChildTemplate
Treats creation of the map actor as a reusable operation from an external manager actor.
Definition Profile.h:23
@ cFlag_PakkunBlack
Spawns as a muncher tile instead of constructing an Actor instance.
Definition Profile.h:22
s32 half_size_y
Definition Profile.h:42
s32 offset_x
Definition Profile.h:35
u16 up
Definition Profile.h:45
s32 offset_y
Definition Profile.h:36
u16 left
Definition Profile.h:47
Flag flag
Definition Profile.h:50
s32 half_size_x
Definition Profile.h:41
static const ActorCreateInfo cDefault
Definition Profile.h:53
u16 right
Definition Profile.h:48
Definition ActorCreateParam.h:108