diff --git a/src/EterLib/GrpMarkInstance.cpp b/src/EterLib/GrpMarkInstance.cpp index 727a2ed..4ac9be7 100644 --- a/src/EterLib/GrpMarkInstance.cpp +++ b/src/EterLib/GrpMarkInstance.cpp @@ -185,7 +185,7 @@ void CGraphicMarkInstance::Load() } if (pResource->IsType(CGraphicImage::Type())) - SetImagePointer(static_cast(pResource)); + SetImagePointer(static_cast(pResource)); } void CGraphicMarkInstance::SetImagePointer(CGraphicImage * pImage) diff --git a/src/UserInterface/GuildMarkUploader.cpp b/src/UserInterface/GuildMarkUploader.cpp index 7f37f98..3a94c45 100644 --- a/src/UserInterface/GuildMarkUploader.cpp +++ b/src/UserInterface/GuildMarkUploader.cpp @@ -79,11 +79,13 @@ bool CGuildMarkUploader::__Load(const char* c_szFileName, UINT* peError) } // Copy into our mark buffer (BGRA expected) - for (int i = 0; i < width * height; ++i) { - m_kMark.m_apxBuf[i * 4 + 0] = data[i * 4 + 2]; // B - m_kMark.m_apxBuf[i * 4 + 1] = data[i * 4 + 1]; // G - m_kMark.m_apxBuf[i * 4 + 2] = data[i * 4 + 0]; // R - m_kMark.m_apxBuf[i * 4 + 3] = data[i * 4 + 3]; // A + for (uint32_t i = 0; i < width * height; ++i) { + const uint8_t R = data[i * 4 + 0]; + const uint8_t G = data[i * 4 + 1]; + const uint8_t B = data[i * 4 + 2]; + const uint8_t A = data[i * 4 + 3]; + + m_kMark.m_apxBuf[i] = (uint32_t(A) << 24) | (uint32_t(R) << 16) | (uint32_t(G) << 8) | uint32_t(B); } stbi_image_free(data); diff --git a/src/UserInterface/MarkImage.h b/src/UserInterface/MarkImage.h index 57af096..0f6d3ba 100644 --- a/src/UserInterface/MarkImage.h +++ b/src/UserInterface/MarkImage.h @@ -1,7 +1,7 @@ #ifndef __INC_METIN_II_MARKIMAGE_H__ #define __INC_METIN_II_MARKIMAGE_H__ -typedef unsigned long Pixel; +typedef uint32_t Pixel; struct SGuildMark { @@ -100,7 +100,7 @@ class CGuildMarkImage void BuildAllBlocks(); SGuildMarkBlock m_aakBlock[BLOCK_ROW_COUNT][BLOCK_COL_COUNT]; - Pixel m_apxImage[WIDTH * HEIGHT * sizeof(Pixel)]; + Pixel m_apxImage[WIDTH * HEIGHT]; }; #endif diff --git a/src/UserInterface/PythonTextTail.cpp b/src/UserInterface/PythonTextTail.cpp index c88e541..d7c4f3a 100644 --- a/src/UserInterface/PythonTextTail.cpp +++ b/src/UserInterface/PythonTextTail.cpp @@ -540,9 +540,11 @@ void CPythonTextTail::RegisterCharacterTextTail(DWORD dwGuildID, DWORD dwVirtual if (CGuildMarkManager::Instance().GetMarkImageFilename(dwMarkID / CGuildMarkImage::MARK_TOTAL_COUNT, markImagePath)) { + CPackManager::instance().SetFileLoadMode(); pTextTail->pMarkInstance->SetImageFileName(markImagePath.c_str()); pTextTail->pMarkInstance->Load(); pTextTail->pMarkInstance->SetIndex(dwMarkID % CGuildMarkImage::MARK_TOTAL_COUNT); + CPackManager::instance().SetPackLoadMode(); } }