TuZaKK 1
TuZaKK
mannaxxx 1
mannaxxx
Agora Metin2 1
Agora Metin2
[DEV]AB 1
[DEV]AB
metin2008 1
metin2008
kaptanmikro1 1
kaptanmikro1
Scarlet 1
Scarlet
emirhanHCL 1
emirhanHCL
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

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

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