diff --git a/.gitignore b/.gitignore index 68db53b..2fe49d6 100644 --- a/.gitignore +++ b/.gitignore @@ -371,4 +371,6 @@ lib/* .vscode src/DiscordIntegration.cpp -include/DiscordIntegration.hpp \ No newline at end of file +include/DiscordIntegration.hpp + +*.ini \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 63fcd8b..dd58049 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,11 +35,5 @@ add_executable(booldozer ${BOOLDOZER_SRC}) target_include_directories(booldozer PUBLIC include lib/libflipper/include lib/libflipper/include/geometry lib/imgui lib/imgui/backends lib/fmt/include lib/glfw/include lib/glad/include lib/glm lib/J3DUltra/include) add_definitions(-DIMGUI_DEFINE_MATH_OPERATORS) - find_package(ICU 61.0 COMPONENTS uc i18n REQUIRED) -target_link_libraries(booldozer PUBLIC imgui glfw gctools ICU::uc ICU::i18n fmt j3dultra discord-rpc) - - -#if(WIN32) -#target_link_libraries(booldozer PUBLIC imgui glfw gctools fmt j3dultra /usr/x86_64-w64-mingw32/lib/libicuin.dll.a /usr/x86_64-w64-mingw32/lib/libicuuc.dll.a /usr/x86_64-w64-mingw32/lib/libicudt.dll.a /usr/x86_64-w64-mingw32/lib/libicuio.dll.a /usr/x86_64-w64-mingw32/lib/libicutu.dll.a /usr/x86_64-w64-mingw32/lib/libicutu.dll.a ssp) -#endif(WIN32) \ No newline at end of file +target_link_libraries(booldozer PUBLIC imgui glfw gctools ICU::uc ICU::i18n fmt j3dultra) \ No newline at end of file diff --git a/README.md b/README.md index 71bc248..712c201 100644 --- a/README.md +++ b/README.md @@ -5,27 +5,35 @@ Booldozer is a work-in-progress editor for the original [Luigi's Mansion on GameCube](https://en.wikipedia.org/wiki/Luigi%27s_Mansion), written by SpaceCats ([@kittensandals](https://twitter.com/kittensandals)) and Gamma ([@SageOfMirrors](https://twitter.com/SageOfMirrors)). It aims to cover as many aspects of modding the game as possible. -### Features -#### Map Editing -![E-k8w2SWUAgQz2b](https://user-images.githubusercontent.com/10427486/133895701-32d46944-6717-4805-9828-ab7f1a69fd14.jpeg) +![screenshot](preview.png) -Create custom maps with Booldozer's various editing modes! Set the scene with Actor Mode, configure loot drops with Item Mode, and customize collision with Collision Mode. +## Build Instructions -#### Spawn Groups -![Peek 2021-09-01 15-54](https://user-images.githubusercontent.com/10427486/131735867-3b93c4eb-bb5e-4ff5-94c3-5ec35e564255.gif) +### Cloning the Repository -Keeping track of create names manually is a thing of the past! Use Booldozer's Spawn Group Editor to make managing waves of enemies as easy as clicking and dragging. +``` +git clone https://github.com/Sage-of-Mirrors/Booldozer.git -#### Ghost Configs (PRM) -![Screenshot_2021-09-01_15-52-16](https://user-images.githubusercontent.com/10427486/131735977-82385508-40a6-408b-8a82-74c3b2d059ac.png) +cd Booldozer -Make objects act the way you want with Booldozer's Ghost Config Editor! Change their attacks, their HP, and even what color they glow. +git submodule update --init --recursive +``` -### Roadmap/TODOs - - Modes - - Collision - - Event - - Complete this list +### Linux + +Ensure all required packages are installed (Iconv, libpng, zlib) + +``` +cmake -S . -B build +cd build +make +``` + +### Windows + +Open the repository in Visual Studio as a CMake Project and compile like any other VS Project. + +**Must** be a version of VS that includes vcpkg.

diff --git a/imgui.ini b/imgui.ini deleted file mode 100644 index 9ada395..0000000 --- a/imgui.ini +++ /dev/null @@ -1,98 +0,0 @@ -[Window][Debug##Default] -Pos=60,60 -Size=400,400 -Collapsed=0 - -[Window][mode combo window] -Pos=5,25 -Size=195,40 -Collapsed=0 - -[Window][render distance window] -Pos=205,25 -Size=150,40 -Collapsed=0 - -[Window][gizmo mode window] -Pos=360,25 -Size=85,40 -Collapsed=0 - -[Window][Open map archive##OpenMapDlg] -Pos=60,60 -Size=832,411 -Collapsed=0 - -[Window][cammove mode window] -Pos=450,25 -Size=110,40 -Collapsed=0 - -[Window][Root Not Set] -Pos=24,183 -Size=591,114 -Collapsed=0 - -[Window][Selected Object Details] -Pos=827,54 -Size=423,647 -Collapsed=0 - -[Window][Scene Hierarchy] -Pos=854,117 -Size=380,324 -Collapsed=1 - -[Window][transform gadget window] -Pos=380,25 -Size=60,35 -Collapsed=0 - -[Window][rotate gadget window] -Pos=445,25 -Size=60,35 -Collapsed=0 - -[Window][scale gadget window] -Pos=510,25 -Size=60,35 -Collapsed=0 - -[Window][Ghost Configurations] -Pos=1040,25 -Size=236,714 -Collapsed=1 - -[Window][Door List] -Pos=18,111 -Size=461,609 -Collapsed=0 - -[Window][Item Data] -Pos=13,177 -Size=252,184 -Collapsed=0 - -[Window][Available Events] -Pos=406,154 -Size=359,309 -Collapsed=0 - -[Window][Event Script] -Pos=16,176 -Size=285,221 -Collapsed=0 - -[Window][Choose a Folder##SaveMapFilesDlg] -Pos=60,60 -Size=975,523 -Collapsed=0 - -[Table][0x3979CA21,4] -RefScale=18 -Column 0 Sort=0v - -[Table][0x33C1868E,4] -RefScale=18 -Column 0 Sort=0v - diff --git a/include/DiscordIntegration.hpp b/include/DiscordIntegration.hpp index bf8e1f0..680ef20 100644 --- a/include/DiscordIntegration.hpp +++ b/include/DiscordIntegration.hpp @@ -1,4 +1,5 @@ #pragma once +/* #include // Invalidated Old ID @@ -14,4 +15,5 @@ namespace Discord { void HandleJoinRequest(const DiscordUser* request); extern DiscordRichPresence RichPresence; -}; \ No newline at end of file +}; +*/ \ No newline at end of file diff --git a/preview.png b/preview.png new file mode 100644 index 0000000..f58a2f2 Binary files /dev/null and b/preview.png differ diff --git a/src/DiscordIntegration.cpp b/src/DiscordIntegration.cpp index 1d6278c..bfb0f4e 100644 --- a/src/DiscordIntegration.cpp +++ b/src/DiscordIntegration.cpp @@ -1,5 +1,6 @@ -#include #include +/* +#include namespace Discord { DiscordRichPresence RichPresence; @@ -21,4 +22,5 @@ namespace Discord { void HandleSpectate(const char* secret){} void HandleJoinRequest(const DiscordUser* request){} -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/src/modes/ActorMode.cpp b/src/modes/ActorMode.cpp index ed5d1dc..c19f3bc 100644 --- a/src/modes/ActorMode.cpp +++ b/src/modes/ActorMode.cpp @@ -4,7 +4,7 @@ #include "ImGuizmo.h" #include "UIUtil.hpp" -#include +//#include LActorMode::LActorMode() { @@ -216,10 +216,12 @@ void LActorMode::Render(std::shared_ptr current_map, LEditorScene* if(mRoomChanged){ if(std::shared_ptr room = mManualRoomSelect.lock()){ + /* std::string room_name = fmt::format("Editing {}", room->GetName()); Discord::RichPresence.details = room_name.c_str(); Discord_UpdatePresence(&Discord::RichPresence); + */ renderer_scene->SetRoom(room); } } diff --git a/src/scene/EditorScene.cpp b/src/scene/EditorScene.cpp index 1411373..96c5e4c 100644 --- a/src/scene/EditorScene.cpp +++ b/src/scene/EditorScene.cpp @@ -31,46 +31,46 @@ struct cube_vertex { //hardcoded cube rendering data static const GLfloat s_cubeVertices[] = { - -1.0f,-1.0f,-1.0f, 0.000059f, 1.0f-0.000004f, - -1.0f,-1.0f, 1.0f, 0.000103f, 1.0f-0.336048f, - -1.0f, 1.0f, 1.0f, 0.335973f, 1.0f-0.335903f, - 1.0f, 1.0f,-1.0f, 1.000023f, 1.0f-0.000013f, - -1.0f,-1.0f,-1.0f, 0.667979f, 1.0f-0.335851f, - -1.0f, 1.0f,-1.0f, 0.999958f, 1.0f-0.336064f, - 1.0f,-1.0f, 1.0f, 0.667979f, 1.0f-0.335851f, - -1.0f,-1.0f,-1.0f, 0.336024f, 1.0f-0.671877f, - 1.0f,-1.0f,-1.0f, 0.667969f, 1.0f-0.671889f, - 1.0f, 1.0f,-1.0f, 1.000023f, 1.0f-0.000013f, - 1.0f,-1.0f,-1.0f, 0.668104f, 1.0f-0.000013f, - -1.0f,-1.0f,-1.0f, 0.667979f, 1.0f-0.335851f, - -1.0f,-1.0f,-1.0f, 0.000059f, 1.0f-0.000004f, - -1.0f, 1.0f, 1.0f, 0.335973f, 1.0f-0.335903f, - -1.0f, 1.0f,-1.0f, 0.336098f, 1.0f-0.000071f, - 1.0f,-1.0f, 1.0f, 0.667979f, 1.0f-0.335851f, - -1.0f,-1.0f, 1.0f, 0.335973f, 1.0f-0.335903f, - -1.0f,-1.0f,-1.0f, 0.336024f, 1.0f-0.671877f, - -1.0f, 1.0f, 1.0f, 1.000004f, 1.0f-0.671847f, - -1.0f,-1.0f, 1.0f, 0.999958f, 1.0f-0.336064f, - 1.0f,-1.0f, 1.0f, 0.667979f, 1.0f-0.335851f, - 1.0f, 1.0f, 1.0f, 0.668104f, 1.0f-0.000013f, - 1.0f,-1.0f,-1.0f, 0.335973f, 1.0f-0.335903f, - 1.0f, 1.0f,-1.0f, 0.667979f, 1.0f-0.335851f, - 1.0f,-1.0f,-1.0f, 0.335973f, 1.0f-0.335903f, - 1.0f, 1.0f, 1.0f, 0.668104f, 1.0f-0.000013f, - 1.0f,-1.0f, 1.0f, 0.336098f, 1.0f-0.000071f, - 1.0f, 1.0f, 1.0f, 0.000103f, 1.0f-0.336048f, - 1.0f, 1.0f,-1.0f, 0.000004f, 1.0f-0.671870f, - -1.0f, 1.0f,-1.0f, 0.336024f, 1.0f-0.671877f, - 1.0f, 1.0f, 1.0f, 0.000103f, 1.0f-0.336048f, - -1.0f, 1.0f,-1.0f, 0.336024f, 1.0f-0.671877f, - -1.0f, 1.0f, 1.0f, 0.335973f, 1.0f-0.335903f, - 1.0f, 1.0f, 1.0f, 0.667969f, 1.0f-0.671889f, - -1.0f, 1.0f, 1.0f, 1.000004f, 1.0f-0.671847f, - 1.0f,-1.0f, 1.0f, 0.667979f, 1.0f-0.335851f + -10.0f,-10.0f,-10.0f, 0.000059f, 10.0f-0.000004f, + -10.0f,-10.0f, 10.0f, 0.000103f, 10.0f-0.336048f, + -10.0f, 10.0f, 10.0f, 0.335973f, 10.0f-0.335903f, + 10.0f, 10.0f,-10.0f, 10.000023f, 10.0f-0.000013f, + -10.0f,-10.0f,-10.0f, 0.667979f, 10.0f-0.335851f, + -10.0f, 10.0f,-10.0f, 0.999958f, 10.0f-0.336064f, + 10.0f,-10.0f, 10.0f, 0.667979f, 10.0f-0.335851f, + -10.0f,-10.0f,-10.0f, 0.336024f, 10.0f-0.671877f, + 10.0f,-10.0f,-10.0f, 0.667969f, 10.0f-0.671889f, + 10.0f, 10.0f,-10.0f, 10.000023f, 10.0f-0.000013f, + 10.0f,-10.0f,-10.0f, 0.668104f, 10.0f-0.000013f, + -10.0f,-10.0f,-10.0f, 0.667979f, 10.0f-0.335851f, + -10.0f,-10.0f,-10.0f, 0.000059f, 10.0f-0.000004f, + -10.0f, 10.0f, 10.0f, 0.335973f, 10.0f-0.335903f, + -10.0f, 10.0f,-10.0f, 0.336098f, 10.0f-0.000071f, + 10.0f,-10.0f, 10.0f, 0.667979f, 10.0f-0.335851f, + -10.0f,-10.0f, 10.0f, 0.335973f, 10.0f-0.335903f, + -10.0f,-10.0f,-10.0f, 0.336024f, 10.0f-0.671877f, + -10.0f, 10.0f, 10.0f, 10.000004f, 10.0f-0.671847f, + -10.0f,-10.0f, 10.0f, 0.999958f, 10.0f-0.336064f, + 10.0f,-10.0f, 10.0f, 0.667979f, 10.0f-0.335851f, + 10.0f, 10.0f, 10.0f, 0.668104f, 10.0f-0.000013f, + 10.0f,-10.0f,-10.0f, 0.335973f, 10.0f-0.335903f, + 10.0f, 10.0f,-10.0f, 0.667979f, 10.0f-0.335851f, + 10.0f,-10.0f,-10.0f, 0.335973f, 10.0f-0.335903f, + 10.0f, 10.0f, 10.0f, 0.668104f, 10.0f-0.000013f, + 10.0f,-10.0f, 10.0f, 0.336098f, 10.0f-0.000071f, + 10.0f, 10.0f, 10.0f, 0.000103f, 10.0f-0.336048f, + 10.0f, 10.0f,-10.0f, 0.000004f, 10.0f-0.671870f, + -10.0f, 10.0f,-10.0f, 0.336024f, 10.0f-0.671877f, + 10.0f, 10.0f, 10.0f, 0.000103f, 10.0f-0.336048f, + -10.0f, 10.0f,-10.0f, 0.336024f, 10.0f-0.671877f, + -10.0f, 10.0f, 10.0f, 0.335973f, 10.0f-0.335903f, + 10.0f, 10.0f, 10.0f, 0.667969f, 10.0f-0.671889f, + -10.0f, 10.0f, 10.0f, 10.000004f, 10.0f-0.671847f, + 10.0f,-10.0f, 10.0f, 0.667979f, 10.0f-0.335851f }; const char* cube_vtx_shader = "#version 460\n\ - #extension GL_ARB_separate_shader_objects : enable\n\ + #extension GL_ARB_separate_shader_objects : enable\n\ struct GXLight {\n\ vec4 Position;\n\ vec4 Direction;\n\ @@ -78,7 +78,7 @@ const char* cube_vtx_shader = "#version 460\n\ vec4 AngleAtten;\n\ vec4 DistAtten;\n\ };\n\ - layout (std140, binding=0) uniform uSharedData {\n\ + layout (std140, binding=0) uniform uSharedData {\n\ mat4 Proj;\n\ mat4 View;\n\ mat4 Model;\n\ @@ -87,34 +87,34 @@ const char* cube_vtx_shader = "#version 460\n\ GXLight Lights[8];\n\ mat4 Envelopes[512];\n\ mat4 TexMatrices[10];\n\ - };\n\ - uniform mat4 transform;\n\ - \ - layout(location = 0) in vec3 inPosition;\n\ - layout(location = 1) in vec2 inTexCoord;\n\ - \ - layout(location = 0) out vec2 fragTexCoord;\n\ - \ - void main()\n\ - {\ - gl_Position = Proj * View * transform * vec4(inPosition, 1.0);\n\ - fragTexCoord = inTexCoord;\n\ - }\ + };\n\ + uniform mat4 transform;\n\ + \ + layout(location = 0) in vec3 inPosition;\n\ + layout(location = 1) in vec2 inTexCoord;\n\ + \ + layout(location = 0) out vec2 fragTexCoord;\n\ + \ + void main()\n\ + {\ + gl_Position = Proj * View * transform * vec4(inPosition, 1.0);\n\ + fragTexCoord = inTexCoord;\n\ + }\ "; const char* cube_frg_shader = "#version 460\n\ - #extension GL_ARB_separate_shader_objects : enable\n\ - \ - uniform sampler2D texSampler;\n\ - layout(location = 0) in vec2 fragTexCoord;\n\ - layout(location = 0) out vec4 outColor;\n\ - \ - void main()\n\ - {\n\ - vec4 baseColor = texture(texSampler, vec2(fragTexCoord.y, fragTexCoord.x));\n\ - outColor = baseColor;\n\ - if(baseColor.a < 1.0 / 1.0f) discard;\n\ - }\ + #extension GL_ARB_separate_shader_objects : enable\n\ + \ + uniform sampler2D texSampler;\n\ + layout(location = 0) in vec2 fragTexCoord;\n\ + layout(location = 0) out vec4 outColor;\n\ + \ + void main()\n\ + {\n\ + vec4 baseColor = texture(texSampler, vec2(fragTexCoord.y, fragTexCoord.x));\n\ + outColor = baseColor;\n\ + if(baseColor.a < 1.0 / 1.0f) discard;\n\ + }\ "; // From: https://github.com/opengl-tutorials/ogl/blob/master/misc05_picking/misc05_picking_custom.cpp @@ -296,12 +296,12 @@ void LCubeManager::render(glm::mat4* transform, bool wireframe=false){ if(wireframe) glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); - glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_2D, mCubeTex); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, mCubeTex); glBindVertexArray(mVao); glDrawArrays(GL_TRIANGLES, 0, 36); - glBindVertexArray(0); + glBindVertexArray(0); if(wireframe) glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); } @@ -314,95 +314,95 @@ void LCubeManager::init(){ uint8_t* data = stbi_load_from_memory(&cube_png[0], cube_png_size, &x, &y, &n, 4); glGenTextures(1, &mCubeTex); - glBindTexture(GL_TEXTURE_2D, mCubeTex); + glBindTexture(GL_TEXTURE_2D, mCubeTex); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, x, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); - - glBindTexture(GL_TEXTURE_2D, 0); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, x, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); + + glBindTexture(GL_TEXTURE_2D, 0); stbi_image_free(data); - glGenVertexArrays(1, &mVao); - glBindVertexArray(mVao); + glGenVertexArrays(1, &mVao); + glBindVertexArray(mVao); - glGenBuffers(1, &mVbo); - glBindBuffer(GL_ARRAY_BUFFER, mVbo); + glGenBuffers(1, &mVbo); + glBindBuffer(GL_ARRAY_BUFFER, mVbo); - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(cube_vertex), (void*)0); - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(cube_vertex), (void*)12); + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(cube_vertex), (void*)0); + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(cube_vertex), (void*)12); - glBufferData(GL_ARRAY_BUFFER, sizeof(s_cubeVertices), s_cubeVertices, GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + glBufferData(GL_ARRAY_BUFFER, sizeof(s_cubeVertices), s_cubeVertices, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - glBindVertexArray(0); + glBindVertexArray(0); - char glErrorLogBuffer[4096]; - GLuint vs = glCreateShader(GL_VERTEX_SHADER); - GLuint fs = glCreateShader(GL_FRAGMENT_SHADER); + char glErrorLogBuffer[4096]; + GLuint vs = glCreateShader(GL_VERTEX_SHADER); + GLuint fs = glCreateShader(GL_FRAGMENT_SHADER); - glShaderSource(vs, 1, &cube_vtx_shader, NULL); - glShaderSource(fs, 1, &cube_frg_shader, NULL); + glShaderSource(vs, 1, &cube_vtx_shader, NULL); + glShaderSource(fs, 1, &cube_frg_shader, NULL); - glCompileShader(vs); + glCompileShader(vs); - GLint status; - glGetShaderiv(vs, GL_COMPILE_STATUS, &status); - if(status == GL_FALSE){ - GLint infoLogLength; - glGetShaderiv(vs, GL_INFO_LOG_LENGTH, &infoLogLength); + GLint status; + glGetShaderiv(vs, GL_COMPILE_STATUS, &status); + if(status == GL_FALSE){ + GLint infoLogLength; + glGetShaderiv(vs, GL_INFO_LOG_LENGTH, &infoLogLength); - glGetShaderInfoLog(vs, infoLogLength, NULL, glErrorLogBuffer); + glGetShaderInfoLog(vs, infoLogLength, NULL, glErrorLogBuffer); - printf("Compile failure in vertex shader:\n%s\n", glErrorLogBuffer); - } + printf("Compile failure in vertex shader:\n%s\n", glErrorLogBuffer); + } - glCompileShader(fs); + glCompileShader(fs); - glGetShaderiv(fs, GL_COMPILE_STATUS, &status); - if(status == GL_FALSE){ - GLint infoLogLength; - glGetShaderiv(fs, GL_INFO_LOG_LENGTH, &infoLogLength); + glGetShaderiv(fs, GL_COMPILE_STATUS, &status); + if(status == GL_FALSE){ + GLint infoLogLength; + glGetShaderiv(fs, GL_INFO_LOG_LENGTH, &infoLogLength); - glGetShaderInfoLog(fs, infoLogLength, NULL, glErrorLogBuffer); + glGetShaderInfoLog(fs, infoLogLength, NULL, glErrorLogBuffer); - printf("Compile failure in fragment shader:\n%s\n", glErrorLogBuffer); - } + printf("Compile failure in fragment shader:\n%s\n", glErrorLogBuffer); + } - mCubeProgram = glCreateProgram(); + mCubeProgram = glCreateProgram(); - glAttachShader(mCubeProgram, vs); - glAttachShader(mCubeProgram, fs); + glAttachShader(mCubeProgram, vs); + glAttachShader(mCubeProgram, fs); - glLinkProgram(mCubeProgram); + glLinkProgram(mCubeProgram); - glGetProgramiv(mCubeProgram, GL_LINK_STATUS, &status); - if(GL_FALSE == status) { - GLint logLen; - glGetProgramiv(mCubeProgram, GL_INFO_LOG_LENGTH, &logLen); - glGetProgramInfoLog(mCubeProgram, logLen, NULL, glErrorLogBuffer); - printf("Cube Shader Program Linking Error:\n%s\n", glErrorLogBuffer); - } + glGetProgramiv(mCubeProgram, GL_LINK_STATUS, &status); + if(GL_FALSE == status) { + GLint logLen; + glGetProgramiv(mCubeProgram, GL_INFO_LOG_LENGTH, &logLen); + glGetProgramInfoLog(mCubeProgram, logLen, NULL, glErrorLogBuffer); + printf("Cube Shader Program Linking Error:\n%s\n", glErrorLogBuffer); + } - glDetachShader(mCubeProgram, vs); - glDetachShader(mCubeProgram, fs); + glDetachShader(mCubeProgram, vs); + glDetachShader(mCubeProgram, fs); - glDeleteShader(vs); - glDeleteShader(fs); + glDeleteShader(vs); + glDeleteShader(fs); } LCubeManager::~LCubeManager(){ glDeleteTextures(1, &mCubeTex); - glDeleteVertexArrays(1, &mVao); - glDeleteBuffers(1, &mVbo); + glDeleteVertexArrays(1, &mVao); + glDeleteBuffers(1, &mVbo); glDeleteBuffers(1, &mIbo); } @@ -619,13 +619,13 @@ void LEditorScene::RenderSubmit(uint32_t m_width, uint32_t m_height){ } } - glFrontFace(GL_CW); + glFrontFace(GL_CW); - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LEQUAL); + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LEQUAL); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); for(std::weak_ptr doorRef : mRoomDoors){ if (std::shared_ptr door = doorRef.lock()) diff --git a/src/ui/BooldozerApp.cpp b/src/ui/BooldozerApp.cpp index 63e422d..035d93e 100644 --- a/src/ui/BooldozerApp.cpp +++ b/src/ui/BooldozerApp.cpp @@ -26,6 +26,7 @@ void DealWithGLErrors(GLenum source, GLenum type, GLuint id, GLenum severity, GL bool LBooldozerApp::Setup() { + /* mDiscordHandlers.ready = Discord::HandleReady; mDiscordHandlers.disconnected = Discord::HandleDisconnected; mDiscordHandlers.errored = Discord::HandleError; @@ -40,6 +41,7 @@ bool LBooldozerApp::Setup() { Discord::RichPresence.largeImageKey = "weeg"; Discord::RichPresence.startTimestamp = 0; Discord_UpdatePresence(&Discord::RichPresence); + */ GCResourceManager.Init(); @@ -122,8 +124,10 @@ bool LBooldozerApp::Setup() { bool LBooldozerApp::Teardown() { + /* Discord_ClearPresence(); Discord_Shutdown(); + */ GCResourceManager.Cleanup(); diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 0000000..7731150 --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,9 @@ +{ + "name" : "Booldozer", + "version-string" : "Booldozer-Win", + "dependencies": [ + "icu", + "zlib", + "libpng" + ] +} \ No newline at end of file