Add reg editor tab (#31)

This commit is contained in:
Garrett Cox
2024-05-22 09:04:58 -05:00
parent 1dc80ffc3a
commit 1ad3317705
2 changed files with 66 additions and 0 deletions
+65
View File
@@ -9,6 +9,7 @@ extern SaveContext gSaveContext;
extern TexturePtr gItemIcons[131];
extern u8 gItemSlots[77];
void Interface_LoadItemIconImpl(PlayState* play, u8 btn);
extern RegEditor* gRegEditor;
}
bool safeMode = true;
@@ -21,6 +22,8 @@ const uint16_t HEART_COUNT_MIN = 3;
const uint16_t HEART_COUNT_MAX = 20;
const int16_t S16_ZERO = 0;
const int8_t S8_ZERO = 0;
const u8 REG_PAGES_MAX = REG_PAGES;
const u8 REG_GROUPS_MAX = REG_GROUPS - 1;
const char* MAGIC_LEVEL_NAMES[3] = { "No Magic", "Single Magic", "Double Magic" };
const int8_t MAGIC_LEVEL_MAX = 2;
@@ -423,6 +426,63 @@ void DrawItemsAndMasksTab() {
ImGui::PopStyleVar(2);
}
const char* regGroupNames[] = {
"REG (0)",
"SREG (1)",
"OREG (2)",
"PREG (3)",
"QREG (4)",
"MREG (5)",
"YREG (6)",
"DREG (7)",
"UREG (8)",
"IREG (9)",
"ZREG (10)",
"CREG (11)",
"NREG (12)",
"KREG (13)",
"XREG (14)",
"cREG (15)",
"sREG (16)",
"iREG (17)",
"WREG (18)",
"AREG (19)",
"VREG (20)",
"HREG (21)",
"GREG (22)",
"mREG (23)",
"nREG (24)",
"BREG (25)",
"dREG (26)",
"kREG (27)",
"bREG (28)",
};
void DrawRegEditorTab() {
UIWidgets::PushStyleSlider();
ImGui::SliderScalar("Reg Group", ImGuiDataType_U8, &gRegEditor->regGroup, &S8_ZERO, &REG_GROUPS_MAX, regGroupNames[gRegEditor->regGroup]);
ImGui::SliderScalar("Reg Page", ImGuiDataType_U8, &gRegEditor->regPage, &S8_ZERO, &REG_PAGES_MAX, "%d");
for (int i = 0; i < REG_PER_PAGE; i++) {
ImGui::PushID(i);
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x * 0.5f - 4.0f);
ImGui::BeginGroup();
ImGui::Text("%02X (%d)", i + gRegEditor->regPage * REG_PER_PAGE, i + gRegEditor->regPage * REG_PER_PAGE);
ImGui::SameLine();
ImGui::PushStyleColor(ImGuiCol_FrameBg, UIWidgets::Colors::Gray);
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f);
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(10.0f, 8.0f));
ImGui::InputScalar("##regInput", ImGuiDataType_S16, &gRegEditor->data[i + gRegEditor->regPage * REG_PER_PAGE + gRegEditor->regGroup * REG_PER_PAGE * REG_PAGES], NULL, NULL, "%d");
ImGui::PopStyleVar(2);
ImGui::PopStyleColor(1);
ImGui::EndGroup();
ImGui::PopItemWidth();
ImGui::PopID();
}
UIWidgets::PopStyleSlider();
}
void SaveEditorWindow::DrawElement() {
ImGui::SetNextWindowSize(ImVec2(480,600), ImGuiCond_FirstUseEver);
if (!ImGui::Begin("Save Editor", &mIsVisible, ImGuiWindowFlags_NoFocusOnAppearing)) {
@@ -441,6 +501,11 @@ void SaveEditorWindow::DrawElement() {
ImGui::EndTabItem();
}
if (ImGui::BeginTabItem("Reg Editor")) {
DrawRegEditorTab();
ImGui::EndTabItem();
}
// if (ImGui::BeginTabItem("Equipment")) {
// DrawEquipmentTab();
// ImGui::EndTabItem();
+1
View File
@@ -8,6 +8,7 @@ extern "C" {
#include "z64.h"
#include "BenPort.h"
#include "libultraship/luslog.h"
void bootproc(void);
void ViConfig_UpdateVi(u32 black);