swap array for named variables

This commit is contained in:
roeming
2026-04-30 17:25:24 -04:00
parent 289a718446
commit b45e2fa34d
2 changed files with 21 additions and 20 deletions
+19 -18
View File
@@ -3107,7 +3107,8 @@ struct MultiByteAreaFlag
{
// flags treated as bool, shift left after checking bool
const char* name;
std::array<uint16_t, 2> flags;
uint16_t highOrderflag;
uint16_t lowOrderflag;
std::map<uint8_t, const char*> enumValues;
};
constexpr uint16_t AREA_FLAG_NONE = 0;
@@ -3116,7 +3117,7 @@ inline MultiByteAreaFlag ForestTempleMultiByteFlags[] =
{
{
"Worm Room position",
{ 0x0D3C, AREA_FLAG_NONE },
0x0D3C, AREA_FLAG_NONE,
{
{ 0x0, "On Totem", },
{ 0x8, "North", },
@@ -3177,7 +3178,7 @@ inline const std::map<uint8_t, const char*> _SPRIceBlockPuzzleLocations =
inline MultiByteAreaFlag SPRMultiByteFlags[] = {
{
"Courtyard First Floor Cannon",
{ 0x1160, AREA_FLAG_NONE },
0x1160, AREA_FLAG_NONE,
{
{ 1, "North" },
{ 0, "South" },
@@ -3187,7 +3188,7 @@ inline MultiByteAreaFlag SPRMultiByteFlags[] = {
},
{
"Courtyard Second Floor Cannon",
{ 0x1001, 0x1180 },
0x1001, 0x1180,
{
{ 3, "North East" },
{ 0, "South East" },
@@ -3197,7 +3198,7 @@ inline MultiByteAreaFlag SPRMultiByteFlags[] = {
},
{
"Freezard Cage Room Cannon",
{ 0x1203, AREA_FLAG_NONE },
0x1203, AREA_FLAG_NONE,
{
{ 0, "North" },
{ 2, "East" },
@@ -3207,7 +3208,7 @@ inline MultiByteAreaFlag SPRMultiByteFlags[] = {
},
{
"North West Room Cannon",
{ 0x0C0C, AREA_FLAG_NONE },
0x0C0C, AREA_FLAG_NONE,
{
{ 3, "North" },
{ 0, "East" },
@@ -3217,17 +3218,17 @@ inline MultiByteAreaFlag SPRMultiByteFlags[] = {
},
{
"Ice Block 1 Location",
{ 0x0F1F, AREA_FLAG_NONE },
0x0F1F, AREA_FLAG_NONE,
_SPRIceBlockPuzzleLocations
},
{
"Ice Block 2 Location",
{ 0x08F8, AREA_FLAG_NONE },
0x08F8, AREA_FLAG_NONE,
_SPRIceBlockPuzzleLocations
},
{
"Ice Block 3 Location",
{ 0x0807, 0x09C0 },
0x0807, 0x09C0,
_SPRIceBlockPuzzleLocations
}
};
@@ -3313,47 +3314,47 @@ inline const std::map<uint8_t, const char*> _CoOBlockPuzzle3Locations = {
inline MultiByteAreaFlag CoOMultiByteFlags[] = {
{
"Puzzle 1 Block 1 Location",
{ 0x0907, 0x0A80 },
0x0907, 0x0A80,
_CoOBlockPuzzle1Locations
},
{
"Puzzle 1 Block 2 Location",
{ 0x0A3C, AREA_FLAG_NONE },
0x0A3C, AREA_FLAG_NONE,
_CoOBlockPuzzle1Locations
},
{
"Puzzle 1 Block 3 Location",
{ 0x0B0F, AREA_FLAG_NONE },
0x0B0F, AREA_FLAG_NONE,
_CoOBlockPuzzle1Locations
},
{
"Puzzle 2 Block 1 Location",
{ 0x08F0, AREA_FLAG_NONE },
0x08F0, AREA_FLAG_NONE,
_CoOBlockPuzzle2Locations
},
{
"Puzzle 2 Block 2 Location",
{ 0x080F, AREA_FLAG_NONE },
0x080F, AREA_FLAG_NONE,
_CoOBlockPuzzle2Locations
},
{
"Puzzle 2 Block 3 Location",
{ 0x09F0, AREA_FLAG_NONE },
0x09F0, AREA_FLAG_NONE,
_CoOBlockPuzzle2Locations
},
{
"Puzzle 3 Block 1 Location",
{ 0x0E7C, AREA_FLAG_NONE },
0x0E7C, AREA_FLAG_NONE,
_CoOBlockPuzzle3Locations
},
{
"Puzzle 3 Block 2 Location",
{ 0x0E03, 0x0FE0 },
0x0E03, 0x0FE0,
_CoOBlockPuzzle3Locations
},
{
"Puzzle 3 Block 3 Location",
{ 0x0F1F, AREA_FLAG_NONE },
0x0F1F, AREA_FLAG_NONE,
_CoOBlockPuzzle3Locations
}
};
+2 -2
View File
@@ -1609,7 +1609,7 @@ namespace dusk {
}
for (const auto& multiByteFlag : areaFlags.multibyteFlags) {
auto flagValue = LoadSpreadMultiByte(multiByteFlag.flags[0], multiByteFlag.flags[1]);
auto flagValue = LoadSpreadMultiByte(multiByteFlag.highOrderflag, multiByteFlag.lowOrderflag);
const char* currentVal = "UNKNOWN";
@@ -1621,7 +1621,7 @@ namespace dusk {
if (ImGui::BeginCombo(multiByteFlag.name, currentVal)) {
for (const auto& [val, name] : multiByteFlag.enumValues) {
if (ImGui::Selectable(name)) {
SetSpreadMultiByte(multiByteFlag.flags[0], multiByteFlag.flags[1], val);
SetSpreadMultiByte(multiByteFlag.highOrderflag, multiByteFlag.lowOrderflag, val);
}
}
ImGui::EndCombo();