From 2593729634211817ac782cbae77d59f33411ac5d Mon Sep 17 00:00:00 2001 From: "code@koerner-de.net" Date: Thu, 23 Aug 2012 18:41:21 +0000 Subject: [PATCH] BugFix: Now all functions with a IDirect3DSurface9 object passed object check for a uMod_IDirect3DSurface9 object before they call the original function. other changes: %lu to %p for pointers --- uMod_DX9/uMod_DX9_dll.cpp | 4 +- uMod_DX9/uMod_IDirect3D9.cpp | 6 +- uMod_DX9/uMod_IDirect3D9Ex.cpp | 2 +- uMod_DX9/uMod_IDirect3DCubeTexture9.cpp | 2 +- uMod_DX9/uMod_IDirect3DDevice9.cpp | 130 +++++++++++++++++++++- uMod_DX9/uMod_IDirect3DDevice9.h | 2 + uMod_DX9/uMod_IDirect3DDevice9Ex.cpp | 25 ++++- uMod_DX9/uMod_IDirect3DDevice9Ex.h | 2 + uMod_DX9/uMod_IDirect3DTexture9.cpp | 4 +- uMod_DX9/uMod_IDirect3DVolumeTexture9.cpp | 2 +- uMod_DXMain/uMod_ArrayHandler.cpp | 8 +- uMod_DXMain/uMod_ArrayHandler.h | 8 +- uMod_DXMain/uMod_DXMain_dll.cpp | 2 +- uMod_DXMain/uMod_TextureClient.cpp | 10 +- uMod_DXMain/uMod_TextureServer.cpp | 2 +- uMod_GlobalDefines.h | 4 +- 16 files changed, 181 insertions(+), 32 deletions(-) diff --git a/uMod_DX9/uMod_DX9_dll.cpp b/uMod_DX9/uMod_DX9_dll.cpp index 99254da..fd34280 100644 --- a/uMod_DX9/uMod_DX9_dll.cpp +++ b/uMod_DX9/uMod_DX9_dll.cpp @@ -226,7 +226,7 @@ DWORD WINAPI D3DPERF_GetStatus( void ) IDirect3D9 *APIENTRY uMod_Direct3DCreate9(UINT SDKVersion) { - Message("uMod_Direct3DCreate9: original %lu, uMod %lu\n", Direct3DCreate9_fn, uMod_Direct3DCreate9); + Message("uMod_Direct3DCreate9: original %p, uMod %p\n", Direct3DCreate9_fn, uMod_Direct3DCreate9); // in the Internet are many tutorials for detouring functions and all of them will work without the following 5 marked lines // but somehow, for me it only works, if I retour the function and calling afterward the original function @@ -272,7 +272,7 @@ IDirect3D9 *APIENTRY uMod_Direct3DCreate9(UINT SDKVersion) HRESULT APIENTRY uMod_Direct3DCreate9Ex( UINT SDKVersion, IDirect3D9Ex **ppD3D) { - Message( "uMod_Direct3DCreate9Ex: original %lu, uMod %lu\n", Direct3DCreate9Ex_fn, uMod_Direct3DCreate9Ex); + Message( "uMod_Direct3DCreate9Ex: original %p, uMod %p\n", Direct3DCreate9Ex_fn, uMod_Direct3DCreate9Ex); // in the Internet are many tutorials for detouring functions and all of them will work without the following 5 marked lines // but somehow, for me it only works, if I retour the function and calling afterward the original function diff --git a/uMod_DX9/uMod_IDirect3D9.cpp b/uMod_DX9/uMod_IDirect3D9.cpp index dd1e700..7af53de 100644 --- a/uMod_DX9/uMod_IDirect3D9.cpp +++ b/uMod_DX9/uMod_IDirect3D9.cpp @@ -30,14 +30,14 @@ along with Universal Modding Engine. If not, see uMod_IDirect3D9::uMod_IDirect3D9( IDirect3D9 *pOriginal, uMod_TextureServer* server) { - Message( PRE_MESSAGE "::" PRE_MESSAGE "( %lu, %lu): %lu\n", pOriginal, server, this); + Message( PRE_MESSAGE "::" PRE_MESSAGE "( %p, %p): %p\n", pOriginal, server, this); m_pIDirect3D9 = pOriginal; uMod_Server = server; } uMod_IDirect3D9::~uMod_IDirect3D9(void) { - Message( PRE_MESSAGE "::~" PRE_MESSAGE "(): %lu\n", this); + Message( PRE_MESSAGE "::~" PRE_MESSAGE "(): %p\n", this); } HRESULT __stdcall uMod_IDirect3D9::QueryInterface(REFIID riid, void** ppvObj) @@ -143,7 +143,7 @@ HMONITOR __stdcall uMod_IDirect3D9::GetAdapterMonitor(UINT Adapter) HRESULT __stdcall uMod_IDirect3D9::CreateDevice(UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DDevice9** ppReturnedDeviceInterface) { - Message( PRE_MESSAGE "::CreateDevice(): %lu\n", this); + Message( PRE_MESSAGE "::CreateDevice(): %p\n", this); // we intercept this call and provide our own "fake" Device Object HRESULT hres = m_pIDirect3D9->CreateDevice( Adapter, DeviceType, hFocusWindow, BehaviorFlags, pPresentationParameters, ppReturnedDeviceInterface); diff --git a/uMod_DX9/uMod_IDirect3D9Ex.cpp b/uMod_DX9/uMod_IDirect3D9Ex.cpp index f9ce98a..4abc8f8 100644 --- a/uMod_DX9/uMod_IDirect3D9Ex.cpp +++ b/uMod_DX9/uMod_IDirect3D9Ex.cpp @@ -39,7 +39,7 @@ along with Universal Modding Engine. If not, see HRESULT __stdcall uMod_IDirect3D9Ex::CreateDeviceEx( UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS *pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode, IDirect3DDevice9Ex **ppReturnedDeviceInterface) { - Message( "uMod_IDirect3D9Ex::CreateDeviceEx: %lu\n", this); + Message( "uMod_IDirect3D9Ex::CreateDeviceEx: %p\n", this); // we intercept this call and provide our own "fake" Device Object HRESULT hres = m_pIDirect3D9Ex->CreateDeviceEx( Adapter, DeviceType, hFocusWindow, BehaviorFlags, pPresentationParameters, pFullscreenDisplayMode, ppReturnedDeviceInterface); diff --git a/uMod_DX9/uMod_IDirect3DCubeTexture9.cpp b/uMod_DX9/uMod_IDirect3DCubeTexture9.cpp index 0873f0d..a6caedb 100644 --- a/uMod_DX9/uMod_IDirect3DCubeTexture9.cpp +++ b/uMod_DX9/uMod_IDirect3DCubeTexture9.cpp @@ -70,7 +70,7 @@ ULONG APIENTRY uMod_IDirect3DCubeTexture9::AddRef() //this function yields for the non switched texture object ULONG APIENTRY uMod_IDirect3DCubeTexture9::Release() { - Message("uMod_IDirect3DCubeTexture9::Release(): %lu\n", this); + Message("uMod_IDirect3DCubeTexture9::Release(): %p\n", this); void *cpy; long ret = m_D3Ddev->QueryInterface( IID_IDirect3DTexture9, &cpy); diff --git a/uMod_DX9/uMod_IDirect3DDevice9.cpp b/uMod_DX9/uMod_IDirect3DDevice9.cpp index 18d39a3..50b50b1 100644 --- a/uMod_DX9/uMod_IDirect3DDevice9.cpp +++ b/uMod_DX9/uMod_IDirect3DDevice9.cpp @@ -156,7 +156,6 @@ int uMod_IDirect3DDevice9::CreateSingleTexture(void) int uMod_IDirect3DDevice9::ComputetHash( DWORD64 &CRC64, DWORD32 &CRC32, IDirect3DSurface9 *surface, bool compute_crc) { - IDirect3DSurface9 *offscreen_surface = NULL; D3DLOCKED_RECT d3dlr; D3DSURFACE_DESC desc; @@ -310,6 +309,29 @@ int uMod_IDirect3DDevice9::ComputetHash( DWORD64 &CRC64, DWORD32 &CRC32, IDirect } +int uMod_IDirect3DDevice9::CheckForChangeSurface(uMod_IDirect3DSurface9 *surface) +{ + if (surface!=NULL) + { + if (surface->m_D3DTex!=NULL) + { + DWORD64 crc64 = surface->m_D3DTex->CRC64; + DWORD32 crc32 = surface->m_D3DTex->CRC32; + surface->m_D3DTex->ComputetHash(crc32>0); + if (crc64!=surface->m_D3DTex->CRC64) + uMod_Client->CRCHasChanged(surface->m_D3DTex); + } + else if (surface->m_D3DCubeTex!=NULL) + { + DWORD64 crc64 = surface->m_D3DCubeTex->CRC64; + DWORD32 crc32 = surface->m_D3DCubeTex->CRC32; + surface->m_D3DCubeTex->ComputetHash(crc32>0); + if (crc64!=surface->m_D3DCubeTex->CRC64) + uMod_Client->CRCHasChanged(surface->m_D3DCubeTex); + } + } + return (0); +} @@ -453,6 +475,15 @@ HRESULT uMod_IDirect3DDevice9::GetCreationParameters(D3DDEVICE_CREATION_PARAMETE HRESULT uMod_IDirect3DDevice9::SetCursorProperties(UINT XHotSpot,UINT YHotSpot,IDirect3DSurface9* pCursorBitmap) { + IDirect3DSurface9* cpy; + if( pCursorBitmap != NULL ) + { + long int ret = pCursorBitmap->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + pCursorBitmap = ((uMod_IDirect3DSurface9*)pCursorBitmap)->m_D3Dsurf; + } + } return(m_pIDirect3DDevice9->SetCursorProperties(XHotSpot,YHotSpot,pCursorBitmap)); } @@ -832,22 +863,93 @@ HRESULT uMod_IDirect3DDevice9::UpdateTexture(IDirect3DBaseTexture9* pSourceTextu HRESULT uMod_IDirect3DDevice9::GetRenderTargetData(IDirect3DSurface9* pRenderTarget,IDirect3DSurface9* pDestSurface) { - return(m_pIDirect3DDevice9->GetRenderTargetData(pRenderTarget,pDestSurface)); + Message( PRE_MESSAGE "::GetRenderTargetData( %p, %p): %p\n", pRenderTarget, pDestSurface, this); + IDirect3DSurface9* cpy; + uMod_IDirect3DSurface9 *DestSurf=NULL; + if( pRenderTarget != NULL ) + { + long int ret = pRenderTarget->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + pRenderTarget = ((uMod_IDirect3DSurface9*)pRenderTarget)->m_D3Dsurf; + } + } + if( pDestSurface != NULL ) + { + long int ret = pDestSurface->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + DestSurf = ((uMod_IDirect3DSurface9*)pDestSurface); + pDestSurface = DestSurf->m_D3Dsurf; + } + } + HRESULT ret = (m_pIDirect3DDevice9->GetRenderTargetData(pRenderTarget,pDestSurface)); + + CheckForChangeSurface(DestSurf); + return ret; } HRESULT uMod_IDirect3DDevice9::GetFrontBufferData(UINT iSwapChain,IDirect3DSurface9* pDestSurface) { + Message( PRE_MESSAGE "::GetFrontBufferData( %u, %p): %p\n", iSwapChain, pDestSurface, this); + IDirect3DSurface9* cpy; + if( pDestSurface != NULL ) + { + long int ret = pDestSurface->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + pDestSurface = ((uMod_IDirect3DSurface9*)pDestSurface)->m_D3Dsurf; + } + } return(m_pIDirect3DDevice9->GetFrontBufferData(iSwapChain,pDestSurface)); } HRESULT uMod_IDirect3DDevice9::StretchRect(IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestSurface,CONST RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter) { - return(m_pIDirect3DDevice9->StretchRect(pSourceSurface,pSourceRect,pDestSurface,pDestRect,Filter)); + Message( PRE_MESSAGE "::StretchRect( %p, %p, %p, %p): %p\n", pSourceSurface, pSourceRect, pDestSurface, pDestRect, this); + IDirect3DSurface9* cpy; + uMod_IDirect3DSurface9 *DestSurf=NULL; + if( pSourceSurface != NULL ) + { + long int ret = pSourceSurface->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + pSourceSurface = ((uMod_IDirect3DSurface9*)pSourceSurface)->m_D3Dsurf; + } + } + if( pDestSurface != NULL ) + { + long int ret = pDestSurface->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + DestSurf = ((uMod_IDirect3DSurface9*)pDestSurface); + pDestSurface = DestSurf->m_D3Dsurf; + } + } + HRESULT ret = (m_pIDirect3DDevice9->StretchRect(pSourceSurface,pSourceRect,pDestSurface,pDestRect,Filter)); + + CheckForChangeSurface(DestSurf); + return (ret); } HRESULT uMod_IDirect3DDevice9::ColorFill(IDirect3DSurface9* pSurface,CONST RECT* pRect,D3DCOLOR color) { - return(m_pIDirect3DDevice9->ColorFill(pSurface,pRect,color)); + Message( PRE_MESSAGE "::ColorFill( %p, %u): %p\n", pSurface, color, this); + IDirect3DSurface9* cpy; + uMod_IDirect3DSurface9 *Surf=NULL; + if( pSurface != NULL ) + { + long int ret = pSurface->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + Surf = ((uMod_IDirect3DSurface9*)pSurface); + pSurface = Surf->m_D3Dsurf; + } + } + HRESULT ret = (m_pIDirect3DDevice9->ColorFill(pSurface,pRect,color)); + + CheckForChangeSurface(Surf); + return (ret); } HRESULT uMod_IDirect3DDevice9::CreateOffscreenPlainSurface(UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) @@ -857,6 +959,7 @@ HRESULT uMod_IDirect3DDevice9::CreateOffscreenPlainSurface(UINT Width,UINT Heigh HRESULT uMod_IDirect3DDevice9::SetRenderTarget(DWORD RenderTargetIndex,IDirect3DSurface9* pRenderTarget) { + Message( PRE_MESSAGE "::SetRenderTarget( %u, %p): %p\n", RenderTargetIndex, pRenderTarget, this); { IDirect3DSurface9 *back_buffer; NormalRendering = false; @@ -867,6 +970,15 @@ HRESULT uMod_IDirect3DDevice9::SetRenderTarget(DWORD RenderTargetIndex,IDirect3D back_buffer->Release(); } } + IDirect3DSurface9* cpy; + if( pRenderTarget != NULL ) + { + long int ret = pRenderTarget->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + pRenderTarget = ((uMod_IDirect3DSurface9*)pRenderTarget)->m_D3Dsurf; + } + } return (m_pIDirect3DDevice9->SetRenderTarget(RenderTargetIndex,pRenderTarget)); } @@ -877,6 +989,16 @@ HRESULT uMod_IDirect3DDevice9::GetRenderTarget(DWORD RenderTargetIndex,IDirect3D HRESULT uMod_IDirect3DDevice9::SetDepthStencilSurface(IDirect3DSurface9* pNewZStencil) { + Message( PRE_MESSAGE "::SetDepthStencilSurface( %p): %p\n", pNewZStencil, this); + IDirect3DSurface9* cpy; + if( pNewZStencil != NULL ) + { + long int ret = pNewZStencil->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + pNewZStencil = ((uMod_IDirect3DSurface9*)pNewZStencil)->m_D3Dsurf; + } + } return(m_pIDirect3DDevice9->SetDepthStencilSurface(pNewZStencil)); } diff --git a/uMod_DX9/uMod_IDirect3DDevice9.h b/uMod_DX9/uMod_IDirect3DDevice9.h index fe68b1c..eef6778 100644 --- a/uMod_DX9/uMod_IDirect3DDevice9.h +++ b/uMod_DX9/uMod_IDirect3DDevice9.h @@ -33,6 +33,7 @@ along with Universal Modding Engine. If not, see #include "uMod_IDirect3DTexture9.h" #include "uMod_IDirect3DVolumeTexture9.h" #include "uMod_IDirect3DCubeTexture9.h" +#include "uMod_IDirect3DSurface9.h" class uMod_TextureClient_DX9; @@ -183,6 +184,7 @@ public: uMod_IDirect3DCubeTexture9* GetSingleCubeTexture(void) {return (SingleCubeTexture);} int ComputetHash( DWORD64 &CRC64, DWORD32 &CRC32, IDirect3DSurface9 *surface, bool compute_crc); + int CheckForChangeSurface(uMod_IDirect3DSurface9 *surface); void SetNextTextureIsFake(void) {NextTextureIsFake=true;} diff --git a/uMod_DX9/uMod_IDirect3DDevice9Ex.cpp b/uMod_DX9/uMod_IDirect3DDevice9Ex.cpp index e49262a..b956bb7 100644 --- a/uMod_DX9/uMod_IDirect3DDevice9Ex.cpp +++ b/uMod_DX9/uMod_IDirect3DDevice9Ex.cpp @@ -48,7 +48,30 @@ HRESULT __stdcall uMod_IDirect3DDevice9Ex::CheckResourceResidency( IDirect3DReso HRESULT __stdcall uMod_IDirect3DDevice9Ex::ComposeRects( IDirect3DSurface9 *pSource, IDirect3DSurface9 *pDestination, IDirect3DVertexBuffer9 *pSrcRectDescriptors, UINT NumRects, IDirect3DVertexBuffer9 *pDstRectDescriptors, D3DCOMPOSERECTSOP Operation, INT XOffset, INT YOffset) { - return(m_pIDirect3DDevice9Ex->ComposeRects( pSource, pDestination, pSrcRectDescriptors, NumRects, pDstRectDescriptors, Operation, XOffset, YOffset)); + Message( PRE_MESSAGE "::ComposeRects( %p, %p, %p, %u, %p, ...): %p\n", pSource, pDestination, pSrcRectDescriptors, NumRects, this); + IDirect3DSurface9* cpy; + uMod_IDirect3DSurface9 *DestSurf=NULL; + if( pSource != NULL ) + { + long int ret = pSource->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + pSource = ((uMod_IDirect3DSurface9*)pSource)->m_D3Dsurf; + } + } + if( pDestination != NULL ) + { + long int ret = pDestination->QueryInterface( IID_IDirect3D9, (void**) &cpy); + if (ret == 0x01000000L) + { + DestSurf = ((uMod_IDirect3DSurface9*)pDestination); + pDestination = DestSurf->m_D3Dsurf; + } + } + HRESULT ret = (m_pIDirect3DDevice9Ex->ComposeRects( pSource, pDestination, pSrcRectDescriptors, NumRects, pDstRectDescriptors, Operation, XOffset, YOffset)); + + CheckForChangeSurface(DestSurf); + return (ret); } HRESULT __stdcall uMod_IDirect3DDevice9Ex::CreateDepthStencilSurfaceEx( UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9 **ppSurface, HANDLE *pSharedHandle, DWORD Usage) diff --git a/uMod_DX9/uMod_IDirect3DDevice9Ex.h b/uMod_DX9/uMod_IDirect3DDevice9Ex.h index 72b51f8..4325c8d 100644 --- a/uMod_DX9/uMod_IDirect3DDevice9Ex.h +++ b/uMod_DX9/uMod_IDirect3DDevice9Ex.h @@ -25,6 +25,7 @@ along with Universal Modding Engine. If not, see #include "uMod_IDirect3DTexture9.h" #include "uMod_IDirect3DVolumeTexture9.h" #include "uMod_IDirect3DCubeTexture9.h" +#include "uMod_IDirect3DSurface9.h" class uMod_TextureClient_DX9; @@ -195,6 +196,7 @@ public: uMod_IDirect3DCubeTexture9* GetSingleCubeTexture(void) {return (SingleCubeTexture);} int ComputetHash( DWORD64 &CRC64, DWORD32 &CRC32, IDirect3DSurface9 *surface, bool compute_crc); + int CheckForChangeSurface(uMod_IDirect3DSurface9 *surface); void SetNextTextureIsFake(void) {NextTextureIsFake=true;} diff --git a/uMod_DX9/uMod_IDirect3DTexture9.cpp b/uMod_DX9/uMod_IDirect3DTexture9.cpp index 0cbd3a6..28b333f 100644 --- a/uMod_DX9/uMod_IDirect3DTexture9.cpp +++ b/uMod_DX9/uMod_IDirect3DTexture9.cpp @@ -70,7 +70,7 @@ ULONG APIENTRY uMod_IDirect3DTexture9::AddRef() //this function yields for the non switched texture object ULONG APIENTRY uMod_IDirect3DTexture9::Release() { - Message("uMod_IDirect3DTexture9::Release(): %lu\n", this); + Message("uMod_IDirect3DTexture9::Release(): %p\n", this); void *cpy; long ret = m_D3Ddev->QueryInterface( IID_IDirect3DTexture9, &cpy); @@ -124,7 +124,7 @@ ULONG APIENTRY uMod_IDirect3DTexture9::Release() delete(this); } - Message("uMod_IDirect3DTexture9::Release() end: %lu\n", this); + Message("uMod_IDirect3DTexture9::Release() end: %p\n", this); return (count); } diff --git a/uMod_DX9/uMod_IDirect3DVolumeTexture9.cpp b/uMod_DX9/uMod_IDirect3DVolumeTexture9.cpp index 98745c3..bce8e86 100644 --- a/uMod_DX9/uMod_IDirect3DVolumeTexture9.cpp +++ b/uMod_DX9/uMod_IDirect3DVolumeTexture9.cpp @@ -68,7 +68,7 @@ ULONG APIENTRY uMod_IDirect3DVolumeTexture9::AddRef() //this function yields for the non switched texture object ULONG APIENTRY uMod_IDirect3DVolumeTexture9::Release() { - Message("uMod_IDirect3DVolumeTexture9::Release(): %lu\n", this); + Message("uMod_IDirect3DVolumeTexture9::Release(): %p\n", this); void *cpy; long ret = m_D3Ddev->QueryInterface( IID_IDirect3DTexture9, &cpy); diff --git a/uMod_DXMain/uMod_ArrayHandler.cpp b/uMod_DXMain/uMod_ArrayHandler.cpp index b345b2a..df8c34f 100644 --- a/uMod_DXMain/uMod_ArrayHandler.cpp +++ b/uMod_DXMain/uMod_ArrayHandler.cpp @@ -29,7 +29,7 @@ along with Universal Modding Engine. If not, see uMod_FileHandler::uMod_FileHandler(void) { - Message("uMod_FileHandler(void): %lu\n", this); + Message("uMod_FileHandler(void): %p\n", this); Number = 0; FieldCounter = 0; Files = NULL; @@ -37,7 +37,7 @@ uMod_FileHandler::uMod_FileHandler(void) uMod_FileHandler::~uMod_FileHandler(void) { - Message("~uMod_FileHandler(void): %lu\n", this); + Message("~uMod_FileHandler(void): %p\n", this); if (Files!=NULL) { for (int i=0; iReference>=0) return (RETURN_UPDATE_ALLREADY_ADDED); @@ -92,7 +92,7 @@ int uMod_FileHandler::Add(TextureFileStruct* file) int uMod_FileHandler::Remove(TextureFileStruct* file) { - Message("uMod_FileHandler::Remove(%lu): %lu\n", file, this); + Message("uMod_FileHandler::Remove(%p): %p\n", file, this); if (gl_ErrorState & uMod_ERROR_FATAL) return (RETURN_FATAL_ERROR); int ref = file->Reference; diff --git a/uMod_DXMain/uMod_ArrayHandler.h b/uMod_DXMain/uMod_ArrayHandler.h index 7baebe2..230aece 100644 --- a/uMod_DXMain/uMod_ArrayHandler.h +++ b/uMod_DXMain/uMod_ArrayHandler.h @@ -101,7 +101,7 @@ typedef uMod_TextureHandler uMod_FileHandler; template uMod_TextureHandler::uMod_TextureHandler(void) { - Message("uMod_TextureHandler(void): %lu\n", this); + Message("uMod_TextureHandler(void): %p\n", this); Number = 0; FieldCounter = 0; @@ -111,7 +111,7 @@ uMod_TextureHandler::uMod_TextureHandler(void) template uMod_TextureHandler::~uMod_TextureHandler(void) { - Message("~uMod_TextureHandler(void): %lu\n", this); + Message("~uMod_TextureHandler(void): %p\n", this); if (Content!=NULL) { for (int i=0; i::~uMod_TextureHandler(void) template int uMod_TextureHandler::Add(T* entry) { - Message("uMod_TextureHandler::Add( %lu): %lu\n", entry, this); + Message("uMod_TextureHandler::Add( %p): %p\n", entry, this); if (gl_ErrorState & uMod_ERROR_FATAL) return (RETURN_FATAL_ERROR); if (entry->Reference>=0) return (RETURN_TEXTURE_ALLREADY_ADDED); @@ -168,7 +168,7 @@ int uMod_TextureHandler::Add(T* entry) template int uMod_TextureHandler::Remove(T* entry) //will be called, if a texture is completely released { - Message("uMod_TextureHandler::Remove( %lu): %lu\n", entry, this); + Message("uMod_TextureHandler::Remove( %p): %p\n", entry, this); if (gl_ErrorState & uMod_ERROR_FATAL) return (RETURN_FATAL_ERROR); int ref = entry->Reference; diff --git a/uMod_DXMain/uMod_DXMain_dll.cpp b/uMod_DXMain/uMod_DXMain_dll.cpp index c025d55..7e4c710 100644 --- a/uMod_DXMain/uMod_DXMain_dll.cpp +++ b/uMod_DXMain/uMod_DXMain_dll.cpp @@ -98,7 +98,7 @@ void InitInstance(HINSTANCE hModule) if (HookThisProgram( game, 10*MAX_PATH)) //ask if we need to hook this program { OpenMessage(); - Message("InitInstance: %lu (%ls)\n", hModule, game); + Message("InitInstance: %p (%ls)\n", hModule, game); gl_TextureServer = new uMod_TextureServer(game); //create the server which listen on the pipe and prepare the update for the texture clients diff --git a/uMod_DXMain/uMod_TextureClient.cpp b/uMod_DXMain/uMod_TextureClient.cpp index 47dff12..5fb1216 100644 --- a/uMod_DXMain/uMod_TextureClient.cpp +++ b/uMod_DXMain/uMod_TextureClient.cpp @@ -23,7 +23,7 @@ along with Universal Modding Engine. If not, see uMod_TextureClient::uMod_TextureClient(const int version) : Version(version) { - Message("uMod_TextureClient::uMod_TextureClient(void): %lu\n", this); + Message("uMod_TextureClient::uMod_TextureClient(void): %p\n", this); Server = NULL; BoolSaveAllTextures = false; BoolSaveSingleTexture = false; @@ -57,7 +57,7 @@ uMod_TextureClient::uMod_TextureClient(const int version) : Version(version) uMod_TextureClient::~uMod_TextureClient(void) { - Message("uMod_TextureClient::~uMod_TextureClient(void): %lu\n", this); + Message("uMod_TextureClient::~uMod_TextureClient(void): %p\n", this); if (Server!=NULL) Server->RemoveClient(this, Version); if (Mutex!=NULL) CloseHandle(Mutex); @@ -92,7 +92,7 @@ int uMod_TextureClient::ConnectToServer(uMod_TextureServer* server) int uMod_TextureClient::SetSaveDirectory( wchar_t *dir) { - Message("uMod_TextureClient::SetSaveDirectory( %ls): %lu\n", dir, this); + Message("uMod_TextureClient::SetSaveDirectory( %ls): %p\n", dir, this); int i = 0; for (i=0; iValue; - Message("MainLoop: CONTROL_ADD_TEXTURE (%#lX %u, %u %u): %lu\n", commands->Hash, size, sizeof(MsgStruct), sizeof(char), this); + Message("MainLoop: CONTROL_ADD_TEXTURE (%#lX %u, %u %u): %p\n", commands->Hash, size, sizeof(MsgStruct), sizeof(char), this); if (pos + sizeof(MsgStruct) + size <= num) AddFile( (wchar_t*) &buffer[pos + sizeof(MsgStruct)], commands->Hash, force); //update_textures = true; force = false; diff --git a/uMod_GlobalDefines.h b/uMod_GlobalDefines.h index 53f057f..01606eb 100644 --- a/uMod_GlobalDefines.h +++ b/uMod_GlobalDefines.h @@ -49,8 +49,8 @@ typedef struct #define uMod_APP_DX9 L"uMod_DX9.txt" #define uMod_APP_DIR L"uMod" -#define uMod_VERSION_char "uMod V 2.0 alpha (r52)" -#define uMod_VERSION L"uMod V 2.0 alpha (r52)" +#define uMod_VERSION_char "uMod V 2.0 alpha (r53)" +#define uMod_VERSION L"uMod V 2.0 alpha (r53)" #define PIPE_uMod2Game L"\\\\.\\pipe\\uMod2Game" #define PIPE_Game2uMod L"\\\\.\\pipe\\Game2uMod"