1
0
Fork 0

IDs: Introduce ID handling functions and data

IDs will be needed by multiple subsystems, so introduce the needed
variables and handling functions.
This commit is contained in:
trotFunky 2023-10-21 18:23:43 +01:00
parent 01496016bd
commit 7d3d109a3a
5 changed files with 85 additions and 2 deletions

45
src/IDs.cpp Normal file
View file

@ -0,0 +1,45 @@
//
// Created by Teo-CD on 19/10/23.
//
#include "IDs.h"
/* IDs are greater than one, offset the array to make it easier to use. */
constexpr char promoDirs[][dirStrSize] = {
"INVALIDE",
"RANDONNEE",
"RESTO",
"AUTOBUS",
"MAYO",
"MADO",
"COOP",
"OURS",
"BAGAR",
"INCAPABLE",
"MYSTERE"
};
constexpr char charDirs[][dirStrSize] = {
"INVALIDE",
"GUILLAUME",
"MICHEL"
};
bool isIdGone(int8_t ID) {
return ID & idMaskGone;
}
bool isIdCharacter(int8_t ID) {
return ID & idMaskChar;
}
uint8_t getRawId(int8_t ID) {
return ID & ~(idMaskGone | idMaskChar);
}
bool isValidId(int8_t ID) {
uint8_t rawId = getRawId(ID);
if (isIdCharacter(ID))
return rawId < sizeof(charDirs) / dirStrSize;
else
return rawId < sizeof(promoDirs) / dirStrSize;
}