RedCore
Loading...
Searching...
No Matches
ProfileEx.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadSafeArray.h>
4#include <container/seadStrTreeMap.h>
5#include <actor/ProfileInfo.h>
6#include <actor/Profile.h>
7
8namespace red {
9
10class ProfileEx {
11public:
12 static constexpr s32 cNameMaxLen = 64;
13 static constexpr s32 cMaxCustomProfiles = 4096;
14
15public:
16 [[nodiscard]]
17 static Profile* get(const sead::SafeString& identifier);
18
19 [[nodiscard]]
20 static Profile* get(s32 id);
21
22 [[nodiscard]]
23 static const char* getName(s32 id);
24
25 [[nodiscard]]
26 static s16 getDrawPriority(const sead::SafeString& identifier);
27
28 [[nodiscard]]
29 static s16 getDrawPriority(s32 id);
30
31 [[nodiscard]]
32 static s16 getExecutePriority(const sead::SafeString& identifier);
33
34 [[nodiscard]]
35 static s16 getExecutePriority(s32 id);
36
37 [[nodiscard]]
38 static ProfileInfo::ResType getResType(const sead::SafeString& identifier);
39
40 [[nodiscard]]
42
43 [[nodiscard]]
44 static u32 getResNum(const sead::SafeString& identifier);
45
46 [[nodiscard]]
47 static u32 getResNum(s32 id);
48
49 [[nodiscard]]
50 static const sead::SafeString* getResList(const sead::SafeString& identifier);
51
52 [[nodiscard]]
53 static const sead::SafeString* getResList(s32 id);
54
55public: //! The below are RedCore-internal APIs, do not use!
56 static void addIdentifierProfile(const sead::SafeString& identifier, Profile* profile);
57 static void setResources(const sead::SafeString& identifier, ProfileInfo::ResType resourceType, sead::SafeString* resources, u8 resourceCount);
58 static void setName(s32 id, const char* name);
59 static void setDrawPriority(const sead::SafeString& identifier, s16 priority);
60 static void setExecutePriority(const sead::SafeString& identifier, s16 priority);
61 static void setExecutePriority(s32 id, s16 priority);
62
68
69private:
70 static sead::FixedStrTreeMap<cNameMaxLen, Profile*, cMaxCustomProfiles> sCustomProfiles;
71 static sead::FixedStrTreeMap<cNameMaxLen, ResourceData, cMaxCustomProfiles> sCustomProfileResources;
72 static sead::FixedStrTreeMap<cNameMaxLen, s16, cMaxCustomProfiles> sCustomProfileDrawPriorities;
73 static sead::FixedStrTreeMap<cNameMaxLen, s16, cMaxCustomProfiles> sCustomProfileExecutePriorities;
74 static sead::SafeArray<s16, ProfileInfo::cProfileID_Max> sVanillaProfileExecutePriorities;
75 static const char* sProfileNames[];
76};
77
78} // namespace red
Definition ProfileEx.h:10
static ProfileInfo::ResType getResType(const sead::SafeString &identifier)
static u32 getResNum(const sead::SafeString &identifier)
static const sead::SafeString * getResList(const sead::SafeString &identifier)
static const sead::SafeString * getResList(s32 id)
static Profile * get(s32 id)
static s16 getDrawPriority(s32 id)
static constexpr s32 cNameMaxLen
Definition ProfileEx.h:12
static constexpr s32 cMaxCustomProfiles
Definition ProfileEx.h:13
static s16 getDrawPriority(const sead::SafeString &identifier)
static void setResources(const sead::SafeString &identifier, ProfileInfo::ResType resourceType, sead::SafeString *resources, u8 resourceCount)
static void setName(s32 id, const char *name)
static const char * getName(s32 id)
static void setExecutePriority(s32 id, s16 priority)
static ProfileInfo::ResType getResType(s32 id)
static s16 getExecutePriority(const sead::SafeString &identifier)
static void setExecutePriority(const sead::SafeString &identifier, s16 priority)
static s16 getExecutePriority(s32 id)
static u32 getResNum(s32 id)
static Profile * get(const sead::SafeString &identifier)
static void addIdentifierProfile(const sead::SafeString &identifier, Profile *profile)
The below are RedCore-internal APIs, do not use!
static void setDrawPriority(const sead::SafeString &identifier, s16 priority)
Definition ActorDonutBlock.h:5
Definition ProfileEx.h:63
u8 resource_count
Definition ProfileEx.h:64
ProfileInfo::ResType resource_type
Definition ProfileEx.h:66
const sead::SafeString * resources
Definition ProfileEx.h:65