1#pragma once
2
3#include <prim/seadSafeString.h>
4
5namespace nn {
6class Result;
7} // namespace nn
8
9namespace nn::nfp {
10struct ModelInfo;
11struct TagId;
12struct TagInfo;
13} // namespace nn::nfp
14
15namespace al {
16struct NfpCharacterId;
17class NfpDirector;
18struct NfpInfo;
19
20bool isNfpTriggerTouch(NfpDirector*, s32);
21bool tryGetTriggerTouchNfpInfo(NfpDirector*, s32);
22bool isNfpError(NfpDirector*, s32);
23bool isNfpErrorDisableNfcDevice(const nn::Result&);
24bool isNfpErrorBreakTagDisableRestore(const nn::Result&);
25bool isNfpErrorBreakTagEnableRestore(const nn::Result&);
26void showNfpErrorApplet(const nn::Result&);
27bool isAnyNfcTagDetected(const NfpInfo& nfpInfo);
28bool isNormalNfc(const NfpInfo& nfpInfo);
29bool isAmiibo(const NfpInfo& nfpInfo);
30bool isEqualUniqueNfcId(const NfpInfo& nfpInfoA, const NfpInfo& nfpInfoB);
31bool isEqualUniqueNfcId(const nn::nfp::TagInfo& tagInfoA, const nn::nfp::TagInfo& tagInfoB);
32bool isEqualCharacterId(const NfpInfo& nfpInfo, NfpCharacterId characterId);
33bool isEqualCharacterId(const nn::nfp::ModelInfo& modelInfo, const NfpCharacterId& characterId);
34bool isEqualCharacterIdBase(const NfpInfo& nfpInfo, NfpCharacterId characterId);
35bool isEqualNumberingId(const NfpInfo& nfpInfo, s32 numberingId);
36bool isEqualNumberingId(const nn::nfp::ModelInfo& modelInfo, s32 numberingId);
37bool tryGetCharacterId(NfpCharacterId* characterId, const NfpInfo& nfpInfo);
38bool tryGetNumberingId(s32*, const NfpInfo& nfpInfo);
39bool isCharacterIdBaseMario(const NfpInfo& nfpInfo);
40bool isCharacterIdBaseDrMario(const NfpInfo& nfpInfo);
41bool isCharacterIdBasePeach(const NfpInfo& nfpInfo);
42bool isCharacterIdBaseKoopa(const NfpInfo& nfpInfo);
43bool isCharacterIdBaseYoshi(const NfpInfo& nfpInfo);
44bool isCharacterIdBaseKinopio(const NfpInfo& nfpInfo);
45bool isNeedFormat(const NfpInfo& nfpInfo);
46bool isNeedRestore(const NfpInfo& nfpInfo);
47bool isNeedRegister(const NfpInfo& nfpInfo);
48bool isNeedRegisterNickName(const NfpInfo& nfpInfo);
49bool isValidRegisterInfo(const NfpInfo& nfpInfo);
50void getAmiiboOwnerName(sead::BufferedSafeStringBase<char16>* ownerName, const NfpInfo& nfpInfo);
51void getAmiiboNickName(sead::BufferedSafeStringBase<char16>* nickName, const NfpInfo& nfpInfo);
52bool isInvalidFormatVersion(const NfpInfo& nfpInfo);
53bool isEqualCharacterIdBase(const nn::nfp::ModelInfo& modelInfo, const NfpCharacterId& characterId);
54bool isEqualUniqueNfcId(const nn::nfp::TagInfo& tagInfoA, const NfpInfo& nfpInfoB);
55bool isEqualUniqueNfcId(const nn::nfp::TagId& tagIdA, const nn::nfp::TagId& tagIdB);
56
57} // namespace al
58