Skip to content

Commit 6f70529

Browse files
committed
Add error handler dialog
1 parent b85df48 commit 6f70529

File tree

11 files changed

+406
-309
lines changed

11 files changed

+406
-309
lines changed

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ endif()
1212

1313
project(
1414
NavKit
15-
VERSION 0.9.5
15+
VERSION 0.9.7
1616
DESCRIPTION "An app to create NAVP and AIRG files for use with Hitman"
1717
LANGUAGES CXX)
1818

@@ -29,6 +29,8 @@ find_package(GLU REQUIRED)
2929
find_package(GLEW REQUIRED)
3030
find_package(simdjson REQUIRED)
3131
find_package(ftgl REQUIRED)
32+
find_package(cpptrace CONFIG REQUIRED)
33+
3234
#find_package(nfd REQUIRED) # Reenable this once there is a new release of nfd
3335
find_path(SIMPLEINI_INCLUDE_DIRS "ConvertUTF.c")
3436

include/NavKit/NavKit.h

Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@
5353
#include "Renderer.h"
5454
#include "InputHandler.h"
5555
#include "Gui.h"
56+
#include <iomanip>
57+
#include <dbghelp.h>
58+
#include "Resource.h"
59+
#include <SDL_syswm.h>
60+
#include <cpptrace/from_current.hpp>
61+
#include <stdexcept>
62+
#pragma comment(lib, "dbghelp.lib")
5663
#undef main
5764

5865
class Navp;
@@ -66,38 +73,44 @@ class Gui;
6673

6774
class NavKit {
6875
public:
69-
NavKit();
70-
~NavKit();
76+
NavKit();
7177

72-
SceneExtract* sceneExtract;
73-
Navp* navp;
74-
Obj* obj;
75-
Airg* airg;
76-
Renderer* renderer;
77-
InputHandler* inputHandler;
78-
Gui* gui;
78+
~NavKit();
7979

80-
GameConnection* gameConnection;
81-
Sample* sample;
82-
BuildContext ctx;
80+
SceneExtract *sceneExtract;
81+
Navp *navp;
82+
Obj *obj;
83+
Airg *airg;
84+
Renderer *renderer;
85+
InputHandler *inputHandler;
86+
Gui *gui;
8387

84-
bool done;
88+
GameConnection *gameConnection;
89+
Sample *sample;
90+
BuildContext ctx;
8591

86-
float scrollZoom;
87-
bool rotate;
88-
bool movedDuringRotate;
89-
float keybSpeed = 22.0f;
92+
bool done;
9093

91-
InputGeom* geom;
92-
DebugDrawGL m_dd;
94+
float scrollZoom;
95+
bool rotate;
96+
bool movedDuringRotate;
97+
float keybSpeed = 22.0f;
9398

94-
CSimpleIniA ini;
99+
InputGeom *geom;
100+
DebugDrawGL m_dd;
101+
102+
CSimpleIniA ini;
103+
104+
int runProgram(int argc, char **argv);
105+
static INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
106+
void log(rcLogCategory category, const char *message, ...);
107+
108+
static std::string *errorMessage;
95109

96-
int runProgram(int argc, char** argv);
97-
void log(rcLogCategory category, const char* message, ...);
98110
private:
99-
rsj::ConcurrentQueue<std::pair<rcLogCategory, std::string>> logQueue;
100-
void loadSettings();
111+
rsj::ConcurrentQueue<std::pair<rcLogCategory, std::string> > logQueue;
112+
113+
void loadSettings();
101114

102-
static void logRunner(NavKit* navKit);
115+
static void logRunner(NavKit *navKit);
103116
};

include/NavKit/NavKitConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#define NavKit_VERSION_MAJOR "0"
22
#define NavKit_VERSION_MINOR "9"
3-
#define NavKit_VERSION_PATCH "5"
3+
#define NavKit_VERSION_PATCH "7"

include/NavKit/Renderer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ class Renderer {
5555
float moveUp;
5656
float moveDown;
5757
SDL_Window* window;
58+
static HWND hwnd;
5859
Uint32 prevFrameTime;
5960

6061
private:

include/NavKit/Resource.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#pragma once
2+
#define IDD_ERROR_DIALOG 101
3+
#define IDC_ERROR_TEXT 1001
4+
#define IDC_COPY_BUTTON 1003

src/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ include_directories(SYSTEM extern)
55
include_directories(SYSTEM include)
66

77
configure_file("${NavKit_SOURCE_DIR}/include/NavKit/NavKitConfig.h.in" "${NavKit_SOURCE_DIR}/include/NavKit/NavKitConfig.h")
8-
set(RC_FILE "NavKit.rc")
9-
add_executable (NavKit "NavKit.cpp" "RecastDemo/imgui.cpp" "RecastDemo/imguiRenderGL.cpp" "RecastDemo/MeshLoaderObj.cpp" "RecastDemo/InputGeom.cpp" "RecastDemo/ChunkyTriMesh.cpp" "RecastDemo/SampleInterfaces.cpp" "RecastDemo/PerfTimer.cpp" "ReasoningGrid.cpp" "RecastDemo/Sample.cpp" "RecastDemo/Sample_SoloMesh.cpp" "GameConnection.cpp" "easywsclient/easywsclient.cpp" "easywsclient/easywsclient.cpp" "easywsclient/easywsclient.cpp" "Navp.cpp" "Obj.cpp" "FileUtil.cpp" "Airg.cpp" "SceneExtract.cpp" "Renderer.cpp" "InputHandler.cpp" "Gui.cpp" "PfBoxes.cpp" "VisionData.cpp" ${RC_FILE})
8+
add_executable (NavKit "NavKit.cpp" "RecastDemo/imgui.cpp" "RecastDemo/imguiRenderGL.cpp" "RecastDemo/MeshLoaderObj.cpp" "RecastDemo/InputGeom.cpp" "RecastDemo/ChunkyTriMesh.cpp" "RecastDemo/SampleInterfaces.cpp" "RecastDemo/PerfTimer.cpp" "ReasoningGrid.cpp" "RecastDemo/Sample.cpp" "RecastDemo/Sample_SoloMesh.cpp" "GameConnection.cpp" "easywsclient/easywsclient.cpp" "easywsclient/easywsclient.cpp" "easywsclient/easywsclient.cpp" "Navp.cpp" "Obj.cpp" "FileUtil.cpp" "Airg.cpp" "SceneExtract.cpp" "Renderer.cpp" "InputHandler.cpp" "Gui.cpp" "PfBoxes.cpp" "VisionData.cpp" "NavKit.rc")
109
target_include_directories(NavKit PUBLIC "${PROJECT_BINARY_DIR}")
1110
target_include_directories(NavKit PRIVATE ${SIMPLEINI_INCLUDE_DIRS})
1211
target_link_libraries(NavKit PRIVATE ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} )
1312
target_link_libraries(NavKit PRIVATE OpenGL::GLU)
1413
target_link_libraries(NavKit PRIVATE OpenGL::GL)
1514
target_link_libraries(NavKit PRIVATE GLUT::GLUT)
1615
target_link_libraries(NavKit PRIVATE GLEW::GLEW)
16+
target_link_libraries(NavKit PRIVATE cpptrace::cpptrace)
1717
target_link_libraries(NavKit PRIVATE simdjson::simdjson)
1818
target_link_libraries(NavKit PRIVATE RecastNavigation::Recast)
1919
target_link_libraries(NavKit PRIVATE RecastNavigation::DebugUtils)

0 commit comments

Comments
 (0)