1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadVector.h>
5#include <time/seadDateTime.h>
6
7#include "System/GameDataHolderAccessor.h"
8
9namespace al {
10class IUseMessageSystem;
11class LayoutActor;
12class LiveActor;
13} // namespace al
14
15class AchievementHolder;
16class AchievementNpc;
17
18namespace rs {
19
20const char16* getAchievementName(const al::IUseMessageSystem* user, const char* label);
21const char16* getAchievementName(const al::LayoutActor* layout, s32 achievementIdx);
22const char16* getAchievementHint(const al::IUseMessageSystem* user, const char* label);
23const char16* getAchievementHint(const al::LayoutActor* layout, s32 achievementIdx);
24AchievementHolder* getAchievementHolder(const al::LayoutActor* layout);
25void unlockAchievementShineName(GameDataHolderAccessor accessor);
26bool isUnlockAchievementShineName(GameDataHolderAccessor accessor);
27bool checkGetAchievement(GameDataHolderAccessor accessor, const char* label);
28bool checkGetAchievement(const al::LayoutActor* layout, s32 achievementIdx);
29sead::DateTime findAchievementGetTime(const al::LayoutActor* layout, s32 achievementIdx);
30sead::DateTime findAchievementGetTime(const al::LayoutActor* layout, const char* label);
31sead::Vector3f* findAchievementTrans(const al::LayoutActor* layout, s32 achievementIdx);
32s32 getAchievementNum(const al::LayoutActor* layout);
33s32 calcReceivedAchievementNum(const GameDataHolder* holder);
34s32 getTotalCoinNum(const GameDataHolder* holder);
35s32 calcWorldWarpHoleThroughNum(const GameDataHolder* holder);
36s32 getWorldWarpHoleThroughNumMax(const GameDataHolder* holder);
37s32 calcGetCheckpointNum(const GameDataHolder* holder);
38s32 calcBuyItemNumForCoinCollectByWorld(const GameDataHolder* holder);
39s32 calcClearWorldNum(const GameDataHolder* holder);
40void addPlayerJumpCount(const al::LiveActor* actor);
41s32 getPlayerJumpCount(const GameDataHolder* holder);
42void addPlayerThrowCapCount(const al::LiveActor* actor);
43s32 getPlayerThrowCapCount(const GameDataHolder* holder);
44bool checkGetCoinCollectAllInWorld(const al::LiveActor* actor, s32 worldId);
45bool checkGetCoinCollectHalfInWorld(const AchievementNpc* achievementNpc, s32 worldId);
46bool checkGetShineAllInWorld(const AchievementNpc* achievementNpc, s32 worldId);
47bool checkGetClothAndCapNum(const AchievementNpc* achievementNpc, s32 num);
48bool checkUnlockMoonRockAllWorld(GameDataHolderAccessor accessor);
49s32 calcUnlockMoonRockNum(GameDataHolderAccessor accessor);
50s32 calcHackObjNum(GameDataHolderAccessor accessor);
51s32 calcSphinxQuizCompleteNum(GameDataHolderAccessor accessor);
52s32 calcGetShineNumDot(const GameDataHolder* holder);
53s32 calcGetShineNumTreasureBox(const GameDataHolder* holder);
54s32 calcGetShineNumNoteObj(const GameDataHolder* holder);
55s32 calcGetShineNumTimerAthletic(const GameDataHolder* holder);
56s32 calcGetShineNumKinopioBrigade(const GameDataHolder* holder);
57s32 calcGetShineNumWorldTravelingPeach(const GameDataHolder* holder);
58s32 calcGetShineNumCollectAnimal(const GameDataHolder* holder);
59s32 calcAllShineNumCollectAnimal(const GameDataHolder* holder);
60s32 calcGetShineNumKuriboGirl(const GameDataHolder* holder);
61s32 calcGetShineNumJugemFish(const GameDataHolder* holder);
62s32 calcGetShineNumGrowPlant(const GameDataHolder* holder);
63s32 calcGetShineNumRabbit(const GameDataHolder* holder);
64s32 calcGetShineNumDigPoint(const GameDataHolder* holder);
65s32 calcGetShineNumCapHanger(const GameDataHolder* holder);
66s32 calcGetShineNumBird(const GameDataHolder* holder);
67s32 calcGetShineNumCostumeRoom(const GameDataHolder* holder);
68s32 calcGetShineNumSlot(const GameDataHolder* holder);
69s32 calcGetShineNumRace(const GameDataHolder* holder);
70s32 calcGetShineNumFigureWalking(const GameDataHolder* holder);
71s32 calcGetShineNumHideAndSeekCapMan(const GameDataHolder* holder);
72s32 calcAllShineNumHideAndSeekCapMan(const GameDataHolder* holder);
73s32 calcGetShineNumCollectBgmNpc(const GameDataHolder* holder);
74s32 calcAllShineNumCollectBgmNpc(const GameDataHolder* holder);
75s32 calcGetShineNumHintPhoto(const GameDataHolder* holder);
76
77} // namespace rs
78