#ifndef YAZE_APP_EDITOR_UTILS_FLAGS_H #define YAZE_APP_EDITOR_UTILS_FLAGS_H #include "imgui/imgui.h" #include "core/common.h" namespace yaze { namespace app { namespace editor { using ImGui::BeginMenu; using ImGui::Checkbox; using ImGui::EndMenu; using ImGui::MenuItem; using ImGui::Separator; struct FlagsMenu : public core::ExperimentFlags { void Draw() { if (BeginMenu("Overworld Flags")) { Checkbox("Enable Overworld Sprites", &mutable_flags()->overworld.kDrawOverworldSprites); Separator(); Checkbox("Save Overworld Maps", &mutable_flags()->overworld.kSaveOverworldMaps); Checkbox("Save Overworld Entrances", &mutable_flags()->overworld.kSaveOverworldEntrances); Checkbox("Save Overworld Exits", &mutable_flags()->overworld.kSaveOverworldExits); Checkbox("Save Overworld Items", &mutable_flags()->overworld.kSaveOverworldItems); Checkbox("Save Overworld Properties", &mutable_flags()->overworld.kSaveOverworldProperties); ImGui::EndMenu(); } if (BeginMenu("Dungeon Flags")) { Checkbox("Draw Dungeon Room Graphics", &mutable_flags()->kDrawDungeonRoomGraphics); Separator(); Checkbox("Save Dungeon Maps", &mutable_flags()->kSaveDungeonMaps); ImGui::EndMenu(); } if (BeginMenu("Emulator Flags")) { Checkbox("Load Audio Device", &mutable_flags()->kLoadAudioDevice); ImGui::EndMenu(); } Checkbox("Use built-in file dialog", &mutable_flags()->kNewFileDialogWrapper); Checkbox("Enable Console Logging", &mutable_flags()->kLogToConsole); Checkbox("Enable Texture Streaming", &mutable_flags()->kLoadTexturesAsStreaming); Checkbox("Use Bitmap Manager", &mutable_flags()->kUseBitmapManager); Checkbox("Log Instructions to Debugger", &mutable_flags()->kLogInstructions); Checkbox("Save All Palettes", &mutable_flags()->kSaveAllPalettes); Checkbox("Save Gfx Groups", &mutable_flags()->kSaveGfxGroups); Checkbox("Use New ImGui Input", &mutable_flags()->kUseNewImGuiInput); } }; } // namespace editor } // namespace app } // namespace yaze #endif // YAZE_APP_EDITOR_UTILS_FLAGS_H_