diff --git a/Editor/resources/Fonts/FiraMono-Bold.ttf b/Editor/resources/Fonts/FiraMono-Bold.ttf new file mode 100644 index 00000000..23bc30f6 Binary files /dev/null and b/Editor/resources/Fonts/FiraMono-Bold.ttf differ diff --git a/Editor/resources/Fonts/FiraMono-Regular.ttf b/Editor/resources/Fonts/FiraMono-Regular.ttf new file mode 100644 index 00000000..67bbd428 Binary files /dev/null and b/Editor/resources/Fonts/FiraMono-Regular.ttf differ diff --git a/Editor/resources/Fonts/Poppins-Regular.ttf b/Editor/resources/Fonts/Poppins-Regular.ttf new file mode 100644 index 00000000..9f0c71b7 Binary files /dev/null and b/Editor/resources/Fonts/Poppins-Regular.ttf differ diff --git a/Editor/src/Misc/InterfaceFonts.cpp b/Editor/src/Misc/InterfaceFonts.cpp index 85699d3d..4b26d2e8 100644 --- a/Editor/src/Misc/InterfaceFonts.cpp +++ b/Editor/src/Misc/InterfaceFonts.cpp @@ -12,10 +12,10 @@ void FontManager::LoadFonts() ImFontConfig icons_config; icons_config.MergeMode = true; icons_config.PixelSnapH = true; mFonts[Normal] = io.Fonts->AddFontFromFileTTF("resources/Fonts/fa-solid-900.ttf", 11.0f, &icons_config, icons_ranges); - mFonts[Bold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Bold.ttf", 16.0); - mFonts[LargeBold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Regular.ttf", 32); - mFonts[Title] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Bold.ttf", 50.0); - mFonts[SubTitle] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Regular.ttf", 24.0); + mFonts[Bold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Bold.ttf", 16.0); + mFonts[LargeBold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Regular.ttf", 32); + mFonts[Title] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Bold.ttf", 50.0); + mFonts[SubTitle] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Regular.ttf", 24.0); ImGui::GetIO().Fonts->AddFontDefault(); icons_config.MergeMode = true; mFonts[BigIcon] = io.Fonts->AddFontFromFileTTF("resources/Fonts/fa-solid-900.ttf", 42.0f, &icons_config, icons_ranges); diff --git a/Editor/src/Windows/EditorSelectionPanel.cpp b/Editor/src/Windows/EditorSelectionPanel.cpp index addbb26a..af20949f 100644 --- a/Editor/src/Windows/EditorSelectionPanel.cpp +++ b/Editor/src/Windows/EditorSelectionPanel.cpp @@ -430,8 +430,14 @@ void EditorSelectionPanel::DrawProjectPanel(Ref project) if (ImGui::Button("Locate")) { + const std::string& locationPath = Nuake::FileDialog::OpenFile("TrenchBroom (.exe)\0TrenchBroom.exe\0"); + if (!locationPath.empty()) + { + project->TrenchbroomPath = locationPath; + } } + ImGui::SameLine(); ImGui::InputText("Trenchbroom Path", &project->TrenchbroomPath); } diff --git a/Editor/src/Windows/FileSystemUI.cpp b/Editor/src/Windows/FileSystemUI.cpp index 5b6a9a48..9a790fa6 100644 --- a/Editor/src/Windows/FileSystemUI.cpp +++ b/Editor/src/Windows/FileSystemUI.cpp @@ -213,6 +213,10 @@ namespace Nuake { Editor->Selection = EditorSelection(file); } + if (ImGui::IsItemHovered() && ImGui::IsMouseDoubleClicked(0)) + { + OS::OpenTrenchbroomMap(file->GetAbsolutePath()); + } } ImGui::PopStyleVar(); if (ImGui::BeginDragDropSource()) diff --git a/Editor/src/Windows/ProjectInterface.cpp b/Editor/src/Windows/ProjectInterface.cpp index 5d2a88c0..f899a190 100644 --- a/Editor/src/Windows/ProjectInterface.cpp +++ b/Editor/src/Windows/ProjectInterface.cpp @@ -8,7 +8,6 @@ namespace Nuake { { if (ImGui::Begin("Project settings")) { - char buffer[256]; memset(buffer, 0, sizeof(buffer)); std::strncpy(buffer, Engine::GetProject()->Name.c_str(), sizeof(buffer)); diff --git a/Nuake/src/Core/OS.cpp b/Nuake/src/Core/OS.cpp index a4d1636c..823b1634 100644 --- a/Nuake/src/Core/OS.cpp +++ b/Nuake/src/Core/OS.cpp @@ -1,5 +1,6 @@ #include "OS.h" #include "src/Window.h" +#include "Engine.h" #define GLFW_EXPOSE_NATIVE_WIN32 #include "GLFW/glfw3.h" @@ -69,6 +70,11 @@ void OS::ShowInFileExplorer(const std::string& filePath) ShellExecuteA(nullptr, "open", "explorer.exe", ("/select," + std::string(filePath)).c_str(), nullptr, SW_SHOWDEFAULT); } +void OS::OpenTrenchbroomMap(const std::string& filePath) +{ + ShellExecuteA(nullptr, nullptr, Engine::GetProject()->TrenchbroomPath.c_str(), filePath.c_str(), nullptr, SW_SHOW); +} + void OS::OpenURL(const std::string& url) { ShellExecute(nullptr, nullptr, std::wstring(url.begin(), url.end()).c_str(), 0, 0, SW_SHOW); diff --git a/Nuake/src/Core/OS.h b/Nuake/src/Core/OS.h index fb96e018..a2e4c3b4 100644 --- a/Nuake/src/Core/OS.h +++ b/Nuake/src/Core/OS.h @@ -12,9 +12,10 @@ namespace Nuake static std::string GetFromClipboard(); static int GetTime(); static void OpenIn(const std::string& filePath); - static int OS::RenameFile(const Ref& file, const std::string& newName); - static int OS::RenameDirectory(const Ref& dir, const std::string& newName); + static int RenameFile(const Ref& file, const std::string& newName); + static int RenameDirectory(const Ref& dir, const std::string& newName); static void ShowInFileExplorer(const std::string& filePath); + static void OpenTrenchbroomMap(const std::string& filePath); static void OpenURL(const std::string& url); }; } diff --git a/Nuake/src/Rendering/SceneRenderer.cpp b/Nuake/src/Rendering/SceneRenderer.cpp index 8f74a7ca..64e70822 100644 --- a/Nuake/src/Rendering/SceneRenderer.cpp +++ b/Nuake/src/Rendering/SceneRenderer.cpp @@ -279,6 +279,7 @@ namespace Nuake gBufferShader->SetUniformMat4f("u_View", mView); // Models + glCullFace(GL_FRONT); auto view = scene.m_Registry.view(); for (auto e : view) { @@ -292,8 +293,7 @@ namespace Nuake } } } - - glCullFace(GL_FRONT); + Renderer::Flush(gBufferShader, false); // Quake BSPs diff --git a/Nuake/src/Window.cpp b/Nuake/src/Window.cpp index 07af332e..f47d5424 100644 --- a/Nuake/src/Window.cpp +++ b/Nuake/src/Window.cpp @@ -260,7 +260,7 @@ namespace Nuake { ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); (void)io; - io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Regular.ttf", 16.0); + io.Fonts->AddFontFromFileTTF("resources/Fonts/Poppins-Regular.ttf", 16.0); io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; ImGui::StyleColorsDark();