Skip to content

Commit

Permalink
Merge pull request #72 from bayaraa/dev
Browse files Browse the repository at this point in the history
Dev into master
  • Loading branch information
bayaraa authored Jul 10, 2023
2 parents 3c2d030 + fe10494 commit 68e5088
Show file tree
Hide file tree
Showing 48 changed files with 2,447 additions and 1,261 deletions.
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Cpp11BracedListStyle: false
FixNamespaceComments: false
AlignOperands: false
AlignTrailingComments: false
ContinuationIndentWidth: 2
ContinuationIndentWidth: 4
PenaltyIndentedWhitespace: 0
AllowShortCaseLabelsOnASingleLine: true
IndentExternBlock: NoIndent
Expand Down
31 changes: 29 additions & 2 deletions d2gl/d2gl.vcxitems
Original file line number Diff line number Diff line change
Expand Up @@ -30,36 +30,61 @@
<ClCompile Include="$(MSBuildThisFileDirectory)src\log.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_cursor.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_text.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_text\glyph_set.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\mini_map.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\motion_prediction.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\option\ini.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\option\menu.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\font.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_text\font.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\patch.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\win32.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)vendor\include\imgui\imgui.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Debug|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)vendor\include\imgui\imgui_draw.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Debug|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)vendor\include\imgui\imgui_impl_opengl3.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Debug|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)vendor\include\imgui\imgui_impl_win32.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Debug|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)vendor\include\imgui\imgui_tables.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Debug|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)vendor\include\imgui\imgui_widgets.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug HDText|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='HDText Debug|Win32'">NotUsing</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
Expand All @@ -69,6 +94,8 @@
<ClInclude Include="$(MSBuildThisFileDirectory)src\d2\funcs.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\graphic\command_buffer.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\graphic\vertex.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_text\glyph_set.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_text\variables.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\patch.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\d2\structs.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\d2\stubs.h" />
Expand All @@ -87,7 +114,7 @@
<ClInclude Include="$(MSBuildThisFileDirectory)src\option\ini.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\option\menu.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\pch.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\font.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_text\font.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\types.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\win32.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)vendor\include\stb\stb_image_write.h" />
Expand Down
7 changes: 5 additions & 2 deletions d2gl/d2gl.vcxitems.filters
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@
<ClCompile Include="$(MSBuildThisFileDirectory)src\graphic\object.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_cursor.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_text.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\font.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_text\font.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\mini_map.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\exports.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\patch.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\graphic\command_buffer.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)src\modules\hd_text\glyph_set.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)src\app.h" />
Expand All @@ -55,11 +56,13 @@
<ClInclude Include="$(MSBuildThisFileDirectory)src\graphic\object.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_cursor.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_text.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\font.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_text\font.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\mini_map.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\exports.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\graphic\command_buffer.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\graphic\vertex.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_text\variables.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)src\modules\hd_text\glyph_set.h" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)src\graphic\shaders\mod.glsl" />
Expand Down
34 changes: 17 additions & 17 deletions d2gl/src/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,12 @@ void checkCompatibilityMode()
{
char buffer[1024] = { 0 };
if (GetEnvironmentVariableA("__COMPAT_LAYER", buffer, sizeof(buffer))) {
char* context = NULL;
char* str = strtok_s(buffer, " ", &context);
while (str) {
std::string str_s(str);
if (str_s == "WIN95" || str_s == "WIN98" || str_s == "NT4SP5") {
char msg[128] = { 0 };
sprintf_s(msg, "Please disable the '%s' compatibility mode for game executable and then try to start the game again.", str);
MessageBoxA(NULL, msg, "Compatibility mode detected!", MB_OK);
error_log("Compatibility mode '%s' detected!", str);
break;
}
str = strtok_s(NULL, " ", &context);
std::string compat_str(buffer);
helpers::strToLower(compat_str);
if (compat_str.find("win95") != std::string::npos || compat_str.find("win98") != std::string::npos || compat_str.find("nt4sp5") != std::string::npos) {
MessageBoxA(NULL, "Please disable compatibility mode for game executable and then try to start the game again.", "Compatibility mode detected!", MB_OK | MB_ICONWARNING);
error_log("Compatibility mode '%s' detected!", buffer);
exit(1);
}
}
}
Expand All @@ -51,9 +45,6 @@ void dllAttach(HMODULE hmodule)
std::string command_line = GetCommandLineA();
helpers::strToLower(command_line);

if (command_line.find("-w ") != std::string::npos || command_line.find("-w") == command_line.length() - 2)
return;

if (command_line.find("d2vidtst") != std::string::npos) {
App.video_test = true;
return;
Expand All @@ -65,10 +56,19 @@ void dllAttach(HMODULE hmodule)
if ((App.api == Api::Glide && !flag_3dfx) || (App.api == Api::DDraw && flag_3dfx))
return;

if (command_line.find("-w ") != std::string::npos || command_line.find("-w") == command_line.length() - 2) {
if (App.api == Api::Glide && flag_3dfx) {
MessageBoxA(NULL, "D2GL Glide wrapper is not compatible with \"-w\" flag.\nRemove \"-w\" flag and run game again.", "Unsupported argument detected!", MB_OK | MB_ICONWARNING);
exit(1);
}
return;
}

if (command_line.find("-log") != std::string::npos)
App.log = true;

logInit();
trace_log("Renderer Api: %s", App.api == Api::Glide ? "Glide" : "DDraw");

auto ini_pos = command_line.find("-config ");
if (ini_pos != std::string::npos) {
Expand All @@ -90,10 +90,10 @@ void dllAttach(HMODULE hmodule)
error_log("Game version is not supported!");
exit(1);
}
trace_log("Diablo 2 LoD version %s detected.", helpers::getVersionString().c_str());
trace_log("Diablo 2 LoD (%s) version %s detected.", helpers::getLangString().c_str(), helpers::getVersionString().c_str());

timeBeginPeriod(1);
checkCompatibilityMode();
timeBeginPeriod(1);
win32::setDPIAwareness();
App.hmodule = hmodule;

Expand Down
54 changes: 39 additions & 15 deletions d2gl/src/app.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "types.h"

// #define _DEBUG 1
// #define _HDTEXT 1

namespace d2gl {

Expand All @@ -37,13 +38,14 @@ struct D2GLApp {
bool ready = false;

std::string menu_title = "D2GL";
std::string version_str = "D2GL v1.2.0 by Bayaraa.";
std::string ini_file = "d2gl.ini";
std::string mpq_file = "d2gl.mpq";
std::string log_file = "d2gl.log";

Api api = Api::Glide;
std::unique_ptr<Context> context;
std::string version = "";
std::string gl_version = "";
bool vsync = true;
uint32_t frame_latency = 1;

Expand Down Expand Up @@ -95,15 +97,15 @@ struct D2GLApp {
} cursor;

Select<glm::uvec2> resolutions = {};
glm::ivec4 desktop_resolution = { 0, 0, 0, 0 };
glm::ivec4 desktop_resolution = { 0, 0, 0, 0 };

struct ForegroundFPS {
bool active = false;
Range<int> range = { 60, 25, 240 };
} foreground_fps;

struct BackgroundFPS {
bool active = false;
bool active = true;
Range<int> range = { 25, 25, 60 };
} background_fps;

Expand Down Expand Up @@ -144,18 +146,22 @@ struct D2GLApp {
Range<int> height = { 140, 100, 200 };
} mini_map;

int var1 = 0;
int var2 = 0;
int var3 = 0;
int var4 = 0;
int var5 = 0;
int var6 = 0;
int var7 = 0;
int var8 = 0;
int var9 = 0;
int var10 = 0;
int var11 = 0;
int var12 = 0;
#ifdef _DEBUG
int var[10] = { 0 };
#endif
#ifdef _HDTEXT
struct {
Select<int> fonts = {};
Range<float> size = { 10.0f, 5.0f, 40.0f };
Range<float> weight = { 1.0f, 0.5f, 1.5f };
Range<float> letter_spacing = { 0.0f, -1.0f, 1.0f };
Range<float> line_height = { 1.0f, 0.0f, 3.0f };
Range<float> shadow_intensity = { 0.35f, 0.0f, 1.0f };
Range<float> offset_x = { 0.0f, -10.0f, 10.0f };
Range<float> offset_y = { 0.0f, -10.0f, 10.0f };
bool show_sample = false;
} hdt;
#endif
};
// clang-format on

Expand All @@ -164,4 +170,22 @@ extern D2GLApp App;
void dllAttach(HMODULE hmodule);
void dllDetach();

constexpr inline bool ISGLIDE3X()
{
#ifdef GLIDE3X_EXPORTS
return true;
#else
return false;
#endif
}

constexpr inline float FLOATVAL(float glide3x, float ddraw)
{
#ifdef GLIDE3X_EXPORTS
return glide3x;
#else
return ddraw;
#endif
}

}
Loading

0 comments on commit 68e5088

Please sign in to comment.