Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "external/zlib"]
path = external/zlib
url = https://github.com/madler/zlib
28 changes: 24 additions & 4 deletions Arsenal.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,26 +29,26 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
Expand Down Expand Up @@ -89,12 +89,17 @@
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>$(SolutionDir)external\zlib
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>"mgs/3rdparty/zlib/zlib.lib";%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>call "build_zlib.bat"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
Expand All @@ -105,6 +110,8 @@
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>$(SolutionDir)external\zlib
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -114,6 +121,9 @@
<AdditionalDependencies>"mgs/3rdparty/zlib/zlib.lib";%(AdditionalDependencies)</AdditionalDependencies>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
<PreBuildEvent>
<Command>call "build_zlib.bat"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
Expand All @@ -122,12 +132,17 @@
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>$(SolutionDir)external\zlib
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>"mgs/3rdparty/zlib/zlib.lib";%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>call "build_zlib.bat"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
Expand All @@ -138,6 +153,8 @@
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>$(SolutionDir)external\zlib
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -147,6 +164,9 @@
<AdditionalDependencies>"mgs/3rdparty/zlib/zlib.lib";%(AdditionalDependencies)</AdditionalDependencies>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
<PreBuildEvent>
<Command>call "build_zlib.bat"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="dictionary\dictionary.cpp" />
Expand Down
61 changes: 61 additions & 0 deletions build_zlib.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
@echo off
setlocal

echo ============================================================
echo [PreBuild] Auto-build zlib
echo ============================================================

rem --- Define paths relative to this script (which lives in repo root) ---
set "ROOT=%~dp0"
set "SLN=%ROOT%external\zlib\contrib\vstudio\vc17\zlibvc.sln"
set "OUTDIR=%ROOT%external\zlib\contrib\vstudio\vc17\x64\ZlibStatRelease"
set "BUILT_LIB=%OUTDIR%\zlibstat.lib"
set "TARGET_LIB=%ROOT%mgs\3rdparty\zlib\zlib.lib"

echo [PreBuild] Checking for zlib (Release build)...
echo [PreBuild] Target library: "%TARGET_LIB%"

rem --- If final lib already exists, skip build ---
if exist "%TARGET_LIB%" (
echo [PreBuild] Found existing library: "%TARGET_LIB%"
exit /b 0
)

echo [PreBuild] zlib.lib not found — building static Release library...

rem --- Locate MSBuild using vswhere ---
set "MSBUILD_EXE="
for /f "usebackq tokens=*" %%I in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) do set "MSBUILD_EXE=%%I"

if "%MSBUILD_EXE%"=="" (
echo [PreBuild] ERROR: Could not locate MSBuild.exe via vswhere.
exit /b 1
)

echo [PreBuild] Using MSBuild: "%MSBUILD_EXE%"
"%MSBUILD_EXE%" "%SLN%" /p:Configuration=Release /p:Platform=x64 /t:Build /nologo /v:minimal

if errorlevel 1 (
echo [PreBuild] ERROR: zlib build failed.
exit /b 1
)

if not exist "%BUILT_LIB%" (
echo [PreBuild] ERROR: Build completed, but library not found at "%BUILT_LIB%"
exit /b 1
)

echo [PreBuild] Successfully built zlib: "%BUILT_LIB%"
echo [PreBuild] Copying to "%TARGET_LIB%"...

rem --- Create destination folder if missing ---
for %%F in ("%TARGET_LIB%") do if not exist "%%~dpF" mkdir "%%~dpF"

copy /Y "%BUILT_LIB%" "%TARGET_LIB%" >nul
if errorlevel 1 (
echo [PreBuild] ERROR: Failed to copy built library to target path.
exit /b 1
)

echo [PreBuild] Copied successfully: "%TARGET_LIB%"
exit /b 0
1 change: 1 addition & 0 deletions external/zlib
Submodule zlib added at 5a82f7
2 changes: 1 addition & 1 deletion mgs/3rdparty/zlib/wrapper/ZlibWrapper.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#pragma once
#include "../zlib.h"
#include "zlib.h"

class ZlibWrapper {
public:
Expand Down
2 changes: 1 addition & 1 deletion mgs/archive/face/stage/stage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ void Stage::extract(uint16_t pageID, std::string output) {

void Stage::extractAll(std::string output) {
for (int i = 0; i < header.numPages; i++) {
extract(i, output, "stage", true);
extract(i, output, filenameContainsString(filename, "STAGE2") ? "stage2" : "stage", true);
}
}