Skip to content

Commit

Permalink
Merge pull request #142 from SaiyansKing/master
Browse files Browse the repository at this point in the history
Merge latest changes from @SaiyansKing
  • Loading branch information
kirides authored Oct 22, 2023
2 parents 44670ac + b2485c3 commit 2c21615
Show file tree
Hide file tree
Showing 1,023 changed files with 272,266 additions and 1,374 deletions.
26 changes: 19 additions & 7 deletions D3D11Engine/D3D11Engine.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@
<DisableSpecificWarnings>4005;4530;4577;6246;6322;26812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<AdditionalIncludeDirectories>
</AdditionalIncludeDirectories>
<FloatingPointModel>Fast</FloatingPointModel>
<FloatingPointModel>Precise</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<AdditionalOptions>/Zc:inline /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
Expand All @@ -235,6 +235,7 @@
<LanguageStandard>stdcpp17</LanguageStandard>
<LanguageStandard_C>Default</LanguageStandard_C>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<FloatingPointExceptions>true</FloatingPointExceptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -333,6 +334,8 @@ copy "$(OutDir)$(TargetName).pdb" "$(G2_SYSTEM_PATH)\ddraw.pdb"</Command>
<LanguageStandard>stdcpp17</LanguageStandard>
<LanguageStandard_C>Default</LanguageStandard_C>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<FloatingPointExceptions>true</FloatingPointExceptions>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -371,8 +374,11 @@ copy "$(OutDir)$(TargetName).pdb" "$(G2_SYSTEM_PATH)\ddraw.pdb"</Command>
<LanguageStandard>stdcpp17</LanguageStandard>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
<FloatingPointModel>Precise</FloatingPointModel>
<LanguageStandard_C>Default</LanguageStandard_C>
<FloatingPointExceptions>true</FloatingPointExceptions>
<OpenMPSupport>true</OpenMPSupport>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -408,8 +414,11 @@ copy "$(OutDir)$(TargetName).pdb" "$(G1_SYSTEM_PATH)\ddraw.pdb"</Command>
<LanguageStandard>stdcpp17</LanguageStandard>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
<FloatingPointModel>Precise</FloatingPointModel>
<LanguageStandard_C>Default</LanguageStandard_C>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<FloatingPointExceptions>true</FloatingPointExceptions>
<OpenMPSupport>true</OpenMPSupport>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -447,6 +456,9 @@ copy "$(OutDir)$(TargetName).pdb" "$(G1_SYSTEM_PATH)\ddraw.pdb"</Command>
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
<FloatingPointModel>Precise</FloatingPointModel>
<LanguageStandard_C>Default</LanguageStandard_C>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<FloatingPointExceptions>true</FloatingPointExceptions>
<OpenMPSupport>true</OpenMPSupport>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down Expand Up @@ -993,19 +1005,19 @@ copy "$(OutDir)$(TargetName).pdb" "$(G1_SYSTEM_PATH)\ddraw.pdb"</Command>
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\fx11_desktop_2019.2022.8.18.1\build\native\fx11_desktop_2019.targets" Condition="Exists('..\packages\fx11_desktop_2019.2022.8.18.1\build\native\fx11_desktop_2019.targets')" />
<Import Project="..\packages\directxmath.2022.12.12.1\build\native\directxmath.targets" Condition="Exists('..\packages\directxmath.2022.12.12.1\build\native\directxmath.targets')" />
<Import Project="..\packages\directxmesh_desktop_2019.2022.12.18.1\build\native\directxmesh_desktop_2019.targets" Condition="Exists('..\packages\directxmesh_desktop_2019.2022.12.18.1\build\native\directxmesh_desktop_2019.targets')" />
<Import Project="..\packages\Microsoft.XAudio2.Redist.1.2.11\build\native\Microsoft.XAudio2.Redist.targets" Condition="Exists('..\packages\Microsoft.XAudio2.Redist.1.2.11\build\native\Microsoft.XAudio2.Redist.targets')" />
<Import Project="..\packages\directxtk_desktop_2019.2023.2.7.1\build\native\directxtk_desktop_2019.targets" Condition="Exists('..\packages\directxtk_desktop_2019.2023.2.7.1\build\native\directxtk_desktop_2019.targets')" />
<Import Project="..\packages\directxmesh_desktop_2019.2023.4.28.1\build\native\directxmesh_desktop_2019.targets" Condition="Exists('..\packages\directxmesh_desktop_2019.2023.4.28.1\build\native\directxmesh_desktop_2019.targets')" />
<Import Project="..\packages\directxtk_desktop_2019.2023.4.28.1\build\native\directxtk_desktop_2019.targets" Condition="Exists('..\packages\directxtk_desktop_2019.2023.4.28.1\build\native\directxtk_desktop_2019.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\fx11_desktop_2019.2022.8.18.1\build\native\fx11_desktop_2019.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\fx11_desktop_2019.2022.8.18.1\build\native\fx11_desktop_2019.targets'))" />
<Error Condition="!Exists('..\packages\directxmath.2022.12.12.1\build\native\directxmath.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\directxmath.2022.12.12.1\build\native\directxmath.targets'))" />
<Error Condition="!Exists('..\packages\directxmesh_desktop_2019.2022.12.18.1\build\native\directxmesh_desktop_2019.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\directxmesh_desktop_2019.2022.12.18.1\build\native\directxmesh_desktop_2019.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.XAudio2.Redist.1.2.11\build\native\Microsoft.XAudio2.Redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.XAudio2.Redist.1.2.11\build\native\Microsoft.XAudio2.Redist.targets'))" />
<Error Condition="!Exists('..\packages\directxtk_desktop_2019.2023.2.7.1\build\native\directxtk_desktop_2019.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\directxtk_desktop_2019.2023.2.7.1\build\native\directxtk_desktop_2019.targets'))" />
<Error Condition="!Exists('..\packages\directxmesh_desktop_2019.2023.4.28.1\build\native\directxmesh_desktop_2019.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\directxmesh_desktop_2019.2023.4.28.1\build\native\directxmesh_desktop_2019.targets'))" />
<Error Condition="!Exists('..\packages\directxtk_desktop_2019.2023.4.28.1\build\native\directxtk_desktop_2019.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\directxtk_desktop_2019.2023.4.28.1\build\native\directxtk_desktop_2019.targets'))" />
</Target>
<!-- For NuGet! This is needed because we use different configuration names than the defaults -->
<PropertyGroup>
Expand Down
21 changes: 10 additions & 11 deletions D3D11Engine/D3D11GraphicsEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1034,7 +1034,7 @@ XRESULT D3D11GraphicsEngine::OnBeginFrame() {

if ( Engine::GAPI->GetRendererState().RendererSettings.AllowNormalmaps ) {
PS_DiffuseNormalmappedFxMap = ShaderManager->GetPShader( "PS_DiffuseNormalmappedFxMap" );
PS_DiffuseNormalmappedAlphatestFxMap = ShaderManager->GetPShader( "PS_DiffuseNormalmappedAlphatestFxMap" );
PS_DiffuseNormalmappedAlphatestFxMap = ShaderManager->GetPShader( "PS_DiffuseNormalmappedAlphaTestFxMap" );
PS_DiffuseNormalmapped = ShaderManager->GetPShader( "PS_DiffuseNormalmapped" );
PS_DiffuseNormalmappedAlphatest = ShaderManager->GetPShader( "PS_DiffuseNormalmappedAlphaTest" );
} else {
Expand Down Expand Up @@ -6442,6 +6442,15 @@ void D3D11GraphicsEngine::DrawString( const std::string& str, float x, float y,

UIScale *= unionCurrentCustomFontMultiplier;

//
// Set alpha blending
//
DWORD zrenderer = *reinterpret_cast<DWORD*>(GothicMemoryLocations::GlobalObjects::zRenderer);
reinterpret_cast<void( __thiscall* )(DWORD, int, int)>(GothicMemoryLocations::zCRndD3D::XD3D_SetRenderState)(zrenderer, 27, 1);
reinterpret_cast<void( __thiscall* )(DWORD, int, int)>(GothicMemoryLocations::zCRndD3D::XD3D_SetRenderState)(zrenderer, 15, 0);
reinterpret_cast<void( __thiscall* )(DWORD, int, int)>(GothicMemoryLocations::zCRndD3D::XD3D_SetRenderState)(zrenderer, 19, 5);
reinterpret_cast<void( __thiscall* )(DWORD, int, int)>(GothicMemoryLocations::zCRndD3D::XD3D_SetRenderState)(zrenderer, 20, 6);

//
// Backup old renderstates, BlendState can be ignored here.
//
Expand Down Expand Up @@ -6491,19 +6500,9 @@ void D3D11GraphicsEngine::DrawString( const std::string& str, float x, float y,

UI::zFont::AppendGlyphs( vertices, str, maxLen, x, y, font, fontColor, UIScale, zCCamera::GetCamera() );

//if (str[0] == '(') {
// int o = 1;
//}

// Bind the texture.
tx->Bind( 0 );

if ( !Engine::GAPI->GetRendererState().BlendState.BlendEnabled ) {
Engine::GAPI->GetRendererState().BlendState.SetAlphaBlending();
Engine::GAPI->GetRendererState().BlendState.SetDirty();
UpdateRenderStates();
}

//
// Populate TempVertexBuffer
//
Expand Down
17 changes: 16 additions & 1 deletion D3D11Engine/D3D11ShaderManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,9 @@ XRESULT D3D11ShaderManager::Init() {
Shaders.push_back( ShaderInfo( "PS_FixedFunctionPipe", "PS_FixedFunctionPipe.hlsl", "p" ) );
Shaders.back().cBufferSizes.push_back( sizeof( GothicGraphicsState ) );

Shaders.push_back( ShaderInfo( "PS_Video", "PS_Video.hlsl", "p" ) );
Shaders.back().cBufferSizes.push_back( sizeof( GothicGraphicsState ) );

Shaders.push_back( ShaderInfo( "PS_DS_PointLight", "PS_DS_PointLight.hlsl", "p" ) );
Shaders.back().cBufferSizes.push_back( sizeof( DS_PointLightConstantBuffer ) );

Expand Down Expand Up @@ -560,7 +563,7 @@ XRESULT D3D11ShaderManager::CompileShader( const ShaderInfo& si ) {
}
} else {
if ( Engine::GAPI->GetRendererState().RendererSettings.EnableDebugLog )
LogInfo() << "Reloading shader: " << si.name;
LogInfo() << "Loading shader: " << si.name;

XLE( vs->LoadShader( ("system\\GD3D11\\shaders\\" + si.fileName).c_str(), si.layout, si.shaderMakros ) );
for ( unsigned int j = 0; j < si.cBufferSizes.size(); j++ ) {
Expand All @@ -572,6 +575,9 @@ XRESULT D3D11ShaderManager::CompileShader( const ShaderInfo& si ) {
// See if this is a reload
D3D11PShader* ps = new D3D11PShader();
if ( IsPShaderKnown( si.name ) ) {
if ( Engine::GAPI->GetRendererState().RendererSettings.EnableDebugLog )
LogInfo() << "Reloading shader: " << si.name;

if ( XR_SUCCESS != ps->LoadShader( ("system\\GD3D11\\shaders\\" + si.fileName).c_str(), si.shaderMakros ) ) {
LogError() << "Failed to reload shader: " << si.fileName;

Expand All @@ -585,6 +591,9 @@ XRESULT D3D11ShaderManager::CompileShader( const ShaderInfo& si ) {
UpdatePShader( si.name, ps );
}
} else {
if ( Engine::GAPI->GetRendererState().RendererSettings.EnableDebugLog )
LogInfo() << "Loading shader: " << si.name;

XLE( ps->LoadShader( ("system\\GD3D11\\shaders\\" + si.fileName).c_str(), si.shaderMakros ) );
for ( unsigned int j = 0; j < si.cBufferSizes.size(); j++ ) {
ps->GetConstantBuffer().push_back( new D3D11ConstantBuffer( si.cBufferSizes[j], nullptr ) );
Expand All @@ -595,6 +604,9 @@ XRESULT D3D11ShaderManager::CompileShader( const ShaderInfo& si ) {
// See if this is a reload
D3D11GShader* gs = new D3D11GShader();
if ( IsGShaderKnown( si.name ) ) {
if ( Engine::GAPI->GetRendererState().RendererSettings.EnableDebugLog )
LogInfo() << "Reloading shader: " << si.name;

if ( XR_SUCCESS != gs->LoadShader( ("system\\GD3D11\\shaders\\" + si.fileName).c_str(), si.shaderMakros, si.layout != 0, si.layout ) ) {
LogError() << "Failed to reload shader: " << si.fileName;

Expand All @@ -607,6 +619,9 @@ XRESULT D3D11ShaderManager::CompileShader( const ShaderInfo& si ) {
UpdateGShader( si.name, gs );
}
} else {
if ( Engine::GAPI->GetRendererState().RendererSettings.EnableDebugLog )
LogInfo() << "Loading shader: " << si.name;

XLE( gs->LoadShader( ("system\\GD3D11\\shaders\\" + si.fileName).c_str(), si.shaderMakros, si.layout != 0, si.layout ) );
for ( unsigned int j = 0; j < si.cBufferSizes.size(); j++ ) {
gs->GetConstantBuffer().push_back( new D3D11ConstantBuffer( si.cBufferSizes[j], nullptr ) );
Expand Down
8 changes: 6 additions & 2 deletions D3D11Engine/D3D11Texture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,9 @@ UINT D3D11Texture::GetRowPitchBytes( int mip ) {
int px = (TextureSize.x >> mip);
//int py = (TextureSize.y >> mip);

if ( TextureFormat == DXGI_FORMAT_BC1_UNORM || TextureFormat == DXGI_FORMAT_BC2_UNORM ||
if ( TextureFormat == DXGI_FORMAT_R8_UNORM ) {
return px;
} else if ( TextureFormat == DXGI_FORMAT_BC1_UNORM || TextureFormat == DXGI_FORMAT_BC2_UNORM ||
TextureFormat == DXGI_FORMAT_BC3_UNORM ) {
return Toolbox::GetDDSRowPitchSize( px, TextureFormat == DXGI_FORMAT_BC1_UNORM );
} else { // Use B8G8R8A8
Expand All @@ -157,7 +159,9 @@ UINT D3D11Texture::GetSizeInBytes( int mip ) {
int px = (TextureSize.x >> mip);
int py = (TextureSize.y >> mip);

if ( TextureFormat == DXGI_FORMAT_BC1_UNORM || TextureFormat == DXGI_FORMAT_BC2_UNORM ||
if ( TextureFormat == DXGI_FORMAT_R8_UNORM ) {
return px * py;
} else if ( TextureFormat == DXGI_FORMAT_BC1_UNORM || TextureFormat == DXGI_FORMAT_BC2_UNORM ||
TextureFormat == DXGI_FORMAT_BC3_UNORM ) {
return Toolbox::GetDDSStorageRequirements( px, py, TextureFormat == DXGI_FORMAT_BC1_UNORM );
} else { // Use B8G8R8A8
Expand Down
1 change: 1 addition & 0 deletions D3D11Engine/D3D11Texture.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class D3D11Texture {

/** Layec out for DXGI */
enum ETextureFormat {
TF_R8 = DXGI_FORMAT_R8_UNORM,
TF_B8G8R8A8 = DXGI_FORMAT_B8G8R8A8_UNORM,
TF_DXT1 = DXGI_FORMAT_BC1_UNORM,
TF_DXT3 = DXGI_FORMAT_BC2_UNORM,
Expand Down
2 changes: 1 addition & 1 deletion D3D11Engine/GMesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include "Engine.h"
#include "GothicAPI.h"

#pragma comment(lib, "assimp-vc142-mt.lib")
#pragma comment(lib, "assimp-vc143-mt.lib")

using namespace Assimp;

Expand Down
2 changes: 1 addition & 1 deletion D3D11Engine/GMeshSimple.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "BaseGraphicsEngine.h"
#include "GothicAPI.h"

#pragma comment(lib, "assimp-vc142-mt.lib")
#pragma comment(lib, "assimp-vc143-mt.lib")

using namespace Assimp;

Expand Down
62 changes: 34 additions & 28 deletions D3D11Engine/GothicAPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1216,17 +1216,29 @@ void GothicAPI::GetVisibleDecalList( std::vector<zCVob*>& decals ) {

/** Called when a material got removed */
void GothicAPI::OnMaterialDeleted( zCMaterial* mat ) {
#define UnloadMaterial(cont, m) \
do { \
auto mit = cont.find(m); \
if ( mit != cont.end() ) { \
for ( auto& mi : mit->second ) { \
delete mi; \
} \
cont.erase(mit); \
} \
} while (0)

LoadedMaterials.erase( mat );
if ( !mat )
return;
for ( auto&& it : SkeletalMeshVisuals ) {
it.second->Meshes.erase( mat );
it.second->SkeletalMeshes.erase( mat );
UnloadMaterial( it.second->Meshes, mat );
UnloadMaterial( it.second->SkeletalMeshes, mat );
}
for ( auto&& it : SkeletalMeshNpcs ) {
it.second->Meshes.erase( mat );
it.second->SkeletalMeshes.erase( mat );
UnloadMaterial( it.second->Meshes, mat );
UnloadMaterial( it.second->SkeletalMeshes, mat );
}
#undef UnloadMaterial
}

/** Called when a material got created */
Expand Down Expand Up @@ -1768,26 +1780,6 @@ void GothicAPI::OnAddVob( zCVob* vob, zCWorld* world ) {
break;
}

std::string str = static_cast<zCModel*>(vob->GetVisual())->GetVisualName();
if ( str.empty() ) { // Happens when the model has no skeletal-mesh
zSTRING mds = static_cast<zCModel*>(vob->GetVisual())->GetModelName();
str = mds.ToChar();
mds.Delete();
}

// TODO: HAMMEL_BODY seems to have fucked up bones, but only this model! Replace with usual sheep before I fix this
if ( str == "HAMMEL_BODY" ) {
str = "SHEEP_BODY";
if ( !SkeletalMeshVisuals[str] ) {
RegisteredVobs.erase( vob );
SkeletalMeshVisuals.erase( str );
return; // Just don't load it here!
}
}

// Load the model or get it from cache if already done
SkeletalMeshVisualInfo* mi = LoadzCModelData( static_cast<zCModel*>(vob->GetVisual()) );

// Add vob to the skeletal list
SkeletalVobInfo* vi = new SkeletalVobInfo;
vi->Vob = vob;
Expand Down Expand Up @@ -1887,9 +1879,6 @@ void GothicAPI::DrawSkeletalMeshVob( SkeletalVobInfo* vi, float distance, bool u
return;
#endif

if ( model->GetDrawHandVisualsOnly() )
return; // Not supported yet

float4 modelColor;
if ( Engine::GAPI->GetRendererState().RendererSettings.EnableShadows ) {
// Let shadows do the work
Expand Down Expand Up @@ -1936,7 +1925,13 @@ void GothicAPI::DrawSkeletalMeshVob( SkeletalVobInfo* vi, float distance, bool u
}

if ( !static_cast<SkeletalMeshVisualInfo*>(vi->VisualInfo)->SkeletalMeshes.empty() ) {
Engine::GraphicsEngine->DrawSkeletalMesh( vi, transforms, modelColor, fatness );
#ifdef BUILD_GOTHIC_2_6_fix
if ( !model->GetDrawHandVisualsOnly() || *reinterpret_cast<BYTE*>(0x57A694) == 0x90 ) {
#else
if ( !model->GetDrawHandVisualsOnly() ) {
#endif
Engine::GraphicsEngine->DrawSkeletalMesh( vi, transforms, modelColor, fatness );
}
} else {
if ( model->GetMeshSoftSkinList()->NumInArray > 0 ) {
// Just in case somehow we end up without skeletal meshes and they are available
Expand Down Expand Up @@ -1991,6 +1986,17 @@ void GothicAPI::DrawSkeletalMeshVob( SkeletalVobInfo* vi, float distance, bool u
WorldConverter::ExtractNodeVisual( i, node, nodeAttachments );
}

if ( model->GetDrawHandVisualsOnly() ) {
std::string NodeName = node->ProtoNode->NodeName.ToChar();
#ifdef BUILD_GOTHIC_2_6_fix
if ( NodeName.find( "HAND" ) == std::string::npos && (*reinterpret_cast<BYTE*>(0x57A694) != 0x90 || NodeName.find( "ARM" ) == std::string::npos) ) {
#else
if ( NodeName.find( "HAND" ) == std::string::npos ) {
#endif
continue;
}
}

if ( nodeAttachments.find( i ) != nodeAttachments.end() ) {
// Go through all attachments this node has
for ( MeshVisualInfo* mvi : nodeAttachments[i] ) {
Expand Down
1 change: 1 addition & 0 deletions D3D11Engine/HookedFunctions.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ struct HookedFunctionInfo {
zCViewBlitText original_zCViewBlit = reinterpret_cast<zCViewBlitText>(GothicMemoryLocations::zCView::Blit);
zCViewBlitText original_zCViewBlitText = reinterpret_cast<zCViewBlitText>(GothicMemoryLocations::zCView::BlitText);
zCViewPrint original_zCViewPrint = reinterpret_cast<zCViewPrint>(GothicMemoryLocations::zCView::Print);
zCViewPrint original_zCViewPrintChars = reinterpret_cast<zCViewPrint>(GothicMemoryLocations::zCView::PrintChars);
#endif
//CGameManagerExitGame original_CGameManagerExitGame = reinterpret_cast<CGameManagerExitGame>(GothicMemoryLocations::CGameManager::ExitGame);
//GenericThiscall original_zCWorldDisposeWorld = reinterpret_cast<GenericThiscall>(GothicMemoryLocations::zCWorld::DisposeWorld);
Expand Down
Loading

0 comments on commit 2c21615

Please sign in to comment.