yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
feature_flags_menu.h
Go to the documentation of this file.
1#ifndef YAZE_APP_GUI_FEATURE_FLAGS_MENU_H
2#define YAZE_APP_GUI_FEATURE_FLAGS_MENU_H
3
4#include "app/core/features.h"
5#include "imgui/imgui.h"
6
7namespace yaze {
8namespace gui {
9
10using ImGui::BeginMenu;
11using ImGui::Checkbox;
12using ImGui::EndMenu;
13using ImGui::MenuItem;
14using ImGui::Separator;
15
16struct FlagsMenu {
18 Checkbox("Enable Overworld Sprites",
19 &core::FeatureFlags::get().overworld.kDrawOverworldSprites);
20 Separator();
21 Checkbox("Save Overworld Maps",
22 &core::FeatureFlags::get().overworld.kSaveOverworldMaps);
23 Checkbox("Save Overworld Entrances",
24 &core::FeatureFlags::get().overworld.kSaveOverworldEntrances);
25 Checkbox("Save Overworld Exits",
26 &core::FeatureFlags::get().overworld.kSaveOverworldExits);
27 Checkbox("Save Overworld Items",
28 &core::FeatureFlags::get().overworld.kSaveOverworldItems);
29 Checkbox("Save Overworld Properties",
30 &core::FeatureFlags::get().overworld.kSaveOverworldProperties);
31 Checkbox("Enable Custom Overworld Features",
32 &core::FeatureFlags::get().overworld.kLoadCustomOverworld);
33 ImGui::SameLine();
34 if (ImGui::Button("?")) {
35 ImGui::OpenPopup("CustomOverworldHelp");
36 }
37 if (ImGui::BeginPopup("CustomOverworldHelp")) {
38 ImGui::Text("This flag enables ZSCustomOverworld features.");
39 ImGui::Text("If ZSCustomOverworld ASM is already applied to the ROM,");
40 ImGui::Text("features are auto-enabled regardless of this flag.");
41 ImGui::Text("For vanilla ROMs, enable this to use custom features.");
42 ImGui::EndPopup();
43 }
44 Checkbox("Apply ZSCustomOverworld ASM",
45 &core::FeatureFlags::get().overworld.kApplyZSCustomOverworldASM);
46 }
47
49 Checkbox("Save Dungeon Maps", &core::FeatureFlags::get().kSaveDungeonMaps);
50 }
51
53 Checkbox("Save All Palettes", &core::FeatureFlags::get().kSaveAllPalettes);
54 Checkbox("Save Gfx Groups", &core::FeatureFlags::get().kSaveGfxGroups);
55 Checkbox("Save Graphics Sheets", &core::FeatureFlags::get().kSaveGraphicsSheet);
56 }
57
59 Checkbox("Enable Console Logging", &core::FeatureFlags::get().kLogToConsole);
60 Checkbox("Enable Performance Monitoring",
61 &core::FeatureFlags::get().kEnablePerformanceMonitoring);
62 // REMOVED: "Log Instructions" - DisassemblyViewer is always active
63 // Use the viewer's UI controls to enable/disable recording if needed
64 Checkbox("Use Native File Dialog (NFD)",
65 &core::FeatureFlags::get().kUseNativeFileDialog);
66 }
67};
68
69} // namespace gui
70} // namespace yaze
71
72#endif // YAZE_APP_GUI_FEATURE_FLAGS_MENU_H
static Flags & get()
Definition features.h:79
Main namespace for the application.