bList 1
bList
kaptanmikro1 1
kaptanmikro1
farkmt2official 1
farkmt2official
Hikaye Ekle

Client açılırken CDXTCImage crash fix

  • Konuyu başlatan Konuyu başlatan Koray'
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 7
  • Görüntüleme Görüntüleme 2K
CDXTCImage classından kaynaklı olarak oyun açılırken ekran gelmeden önce aşağıdaki resimdeki şekilde crash atıyorsa onu çözecek fixi paylaşıyorum.

raw


* EterImageLib/DXTCImage.cpp

Arat:
return LoadFromMemory((const BYTE*)pvMap);

Değiştir:
return LoadFromMemory((const BYTE*)pvMap, mappedFile.Size());

--

Arat:
bool CDXTCImage::LoadHeaderFromMemory(const BYTE* c_pbMap)

Değiştir:
bool CDXTCImage::LoadHeaderFromMemory(const BYTE* c_pbMap, DWORD dwSize)

--

Arat:
DWORD dwMagic;

Değiştir:
if (dwSize <= sizeof(DWORD))
return false;

--

Arat:
dwMagic = *(DWORD*)c_pbMap;

Değiştir:
DWORD dwMagic = *(DWORD*)c_pbMap;
if (dwMagic != MAKEFOURCC('D', 'D', 'S', ' '))
return false;

--

Arat:
//!@#
// if (dwMagic != MAKEFOURCC('D','D','S',' '))
// return false;

Değiştir:
if (dwSize - sizeof(DWORD) <= sizeof(DDSURFACEDESC2))
return false;

Son hali:
raw

--

Arat:
bool CDXTCImage::LoadFromMemory(const BYTE* c_pbMap)

Değiştir:
bool CDXTCImage::LoadFromMemory(const BYTE* c_pbMap, DWORD dwBufSize)

--

Arat:
if (!LoadHeaderFromMemory(c_pbMap))

Değiştir:
if (!LoadHeaderFromMemory(c_pbMap, dwBufSize))

--

* EterImageLib/DXTCImage.h

Arat:
bool LoadFromMemory(const BYTE* c_pbMap);
bool LoadHeaderFromMemory(const BYTE* c_pbMap);

Değiştir:
bool LoadFromMemory(const BYTE* c_pbMap, DWORD dwBufSize);
bool LoadHeaderFromMemory(const BYTE* c_pbMap, DWORD dwBufSize);

--

* EterLib/GrpImageTexture.cpp

Arat:
if (image.LoadHeaderFromMemory((const BYTE*)c_pvBuf))

Değiştir:
if (image.LoadHeaderFromMemory((const BYTE*)c_pvBuf, bufSize))
 

En Çok Reaksiyon Alan Mesajlar

CDXTCImage classından kaynaklı olarak oyun açılırken ekran gelmeden önce aşağıdaki resimdeki şekilde crash atıyorsa onu çözecek fixi paylaşıyorum.

raw


* EterImageLib/DXTCImage.cpp

Arat:
return LoadFromMemory((const BYTE*)pvMap);

Değiştir:
return LoadFromMemory((const BYTE*)pvMap, mappedFile.Size());

--

Arat:
bool CDXTCImage::LoadHeaderFromMemory(const BYTE* c_pbMap)

Değiştir:
bool CDXTCImage::LoadHeaderFromMemory(const BYTE* c_pbMap, DWORD dwSize)

--

Arat:
DWORD dwMagic;

Değiştir:
if (dwSize <= sizeof(DWORD))
return false;

--

Arat:
dwMagic = *(DWORD*)c_pbMap;

Değiştir:
DWORD dwMagic = *(DWORD*)c_pbMap;
if (dwMagic != MAKEFOURCC('D', 'D', 'S', ' '))
return false;

--

Arat:
//!@#
// if (dwMagic != MAKEFOURCC('D','D','S',' '))
// return false;

Değiştir:
if (dwSize - sizeof(DWORD) <= sizeof(DDSURFACEDESC2))
return false;

Son hali:
raw

--

Arat:
bool CDXTCImage::LoadFromMemory(const BYTE* c_pbMap)

Değiştir:
bool CDXTCImage::LoadFromMemory(const BYTE* c_pbMap, DWORD dwBufSize)

--

Arat:
if (!LoadHeaderFromMemory(c_pbMap))

Değiştir:
if (!LoadHeaderFromMemory(c_pbMap, dwBufSize))

--

* EterImageLib/DXTCImage.h

Arat:
bool LoadFromMemory(const BYTE* c_pbMap);
bool LoadHeaderFromMemory(const BYTE* c_pbMap);

Değiştir:
bool LoadFromMemory(const BYTE* c_pbMap, DWORD dwBufSize);
bool LoadHeaderFromMemory(const BYTE* c_pbMap, DWORD dwBufSize);

--

* EterLib/GrpImageTexture.cpp

Arat:
if (image.LoadHeaderFromMemory((const BYTE*)c_pvBuf))

Değiştir:
if (image.LoadHeaderFromMemory((const BYTE*)c_pvBuf, bufSize))

Paylaşım için teşekkürler.

Sorunu özetlemek gerekirse .tga formatındaki dosyaları .dds formatındaki dosya gibi algılayıp yüklemeye çalışması sonucu oluşan bir crash genellikle pack dosyaları karman çorman olan kişilerde meydana gelmekte olan bir sorun.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst