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:
parent
01496016bd
commit
7d3d109a3a
5 changed files with 85 additions and 2 deletions
45
src/IDs.cpp
Normal file
45
src/IDs.cpp
Normal 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;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue