Skip to content

Commit

Permalink
Merge pull request #241 from ko4life-net/fix-encoding
Browse files Browse the repository at this point in the history
Transcode and normalize encoding of all files across the project
  • Loading branch information
stevewgr committed Jul 21, 2024
2 parents 1d152cc + 317d795 commit 957a069
Show file tree
Hide file tree
Showing 677 changed files with 16,407 additions and 15,971 deletions.
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.rc]
charset = utf-16le

[*.{cpp,h,hpp,c}]
indent_style = space
indent_size = 4
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"files.autoGuessEncoding": true,
"files.eol": "\n",
"files.associations": {
"vector": "cpp",
"algorithm": "cpp",
Expand Down
417 changes: 417 additions & 0 deletions script/fix-encoding.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/All.sln
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32630.192
Expand Down
2 changes: 1 addition & 1 deletion src/Game.sln
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32616.157
Expand Down
2 changes: 1 addition & 1 deletion src/Server.sln
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32616.157
Expand Down
2 changes: 1 addition & 1 deletion src/Tool.sln
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32616.157
Expand Down
70 changes: 35 additions & 35 deletions src/engine/N3Base/BitMapFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,50 +21,50 @@ CBitMapFile::~CBitMapFile() {
void CBitMapFile::Release() {
memset(&m_bmfHeader, 0, sizeof(m_bmfHeader));
memset(&m_bmInfoHeader, 0, sizeof(m_bmInfoHeader));
::GlobalFree(m_pPixels); // 실제 픽셀 데이터
::GlobalFree(m_pPixels); // 실제 픽셀 데이터
m_pPixels = NULL;
}

bool CBitMapFile::Load(HANDLE hFile) {
this->Release(); // 일단 다 해제하고..
this->Release(); // 일단 다 해제하고..

DWORD dwRWC = 0;

// 파일 헤더 읽기
// 파일 헤더 읽기
ReadFile(hFile, &m_bmfHeader, sizeof(m_bmfHeader), &dwRWC, NULL);

// bmp 파일임을 나타내는 "BM"마커 확인
// bmp 파일임을 나타내는 "BM"마커 확인
if (m_bmfHeader.bfType != 0x4D42) {
MessageBox(::GetActiveWindow(), "원본 파일이 bitmap파일이 아닙니다.", "error", MB_OK);
MessageBox(::GetActiveWindow(), "원본 파일이 bitmap파일이 아닙니다.", "error", MB_OK);
return FALSE;
}

// BITMAPINFOHEADER 얻기
// BITMAPINFOHEADER 얻기
ReadFile(hFile, &m_bmInfoHeader, sizeof(m_bmInfoHeader), &dwRWC, NULL);

// 픽셀당 비트 수 확인
// 픽셀당 비트 수 확인
WORD wBitCount = m_bmInfoHeader.biBitCount;
if (24 != wBitCount || m_bmInfoHeader.biWidth <= 0 ||
m_bmInfoHeader.biHeight <= 0) // 24비트 bmp가 아니면 return해 버린다.
m_bmInfoHeader.biHeight <= 0) // 24비트 bmp가 아니면 return해 버린다.
{
MessageBox(::GetActiveWindow(), "원본 bitmap이 너비, 높이에 이상이 있거나 24bit파일이 아닙니다.", "error",
MessageBox(::GetActiveWindow(), "원본 bitmap이 너비, 높이에 이상이 있거나 24bit파일이 아닙니다.", "error",
NULL);
return FALSE;
}

// 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
// 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
int iRealWidth = ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4;

// 새로 만들 이미지 메모리 할당
// 새로 만들 이미지 메모리 할당
int iDIBSize = iRealWidth * m_bmInfoHeader.biHeight;

if ((m_pPixels = ::GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, iDIBSize)) == NULL) {
MessageBox(::GetActiveWindow(), "메모리를 할당하지 못했습니다.", "error", MB_OK);
MessageBox(::GetActiveWindow(), "메모리를 할당하지 못했습니다.", "error", MB_OK);
return FALSE;
}

// 픽셀을 읽는다..
for (int y = m_bmInfoHeader.biHeight - 1; y >= 0; y--) // 비트맵은 위아래가 거꾸로 있다..
// 픽셀을 읽는다..
for (int y = m_bmInfoHeader.biHeight - 1; y >= 0; y--) // 비트맵은 위아래가 거꾸로 있다..
{
ReadFile(hFile, (BYTE *)m_pPixels + y * iRealWidth, iRealWidth, &dwRWC, NULL);
}
Expand All @@ -85,17 +85,17 @@ void * CBitMapFile::Pixels(int x, int y) {
bool CBitMapFile::Save(HANDLE hFile) {
DWORD dwRWC = 0;

// 파일 헤더 쓰기
// 파일 헤더 쓰기
WriteFile(hFile, &m_bmfHeader, sizeof(m_bmfHeader), &dwRWC, NULL);

// BITMAPINFOHEADER 쓰기
// BITMAPINFOHEADER 쓰기
WriteFile(hFile, &m_bmInfoHeader, sizeof(m_bmInfoHeader), &dwRWC, NULL);

// 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
// 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
int iRealWidth = this->Pitch();

// 픽셀을 저장한다...
for (int y = m_bmInfoHeader.biHeight - 1; y >= 0; y--) // 비트맵은 위아래가 거꾸로 있다..
// 픽셀을 저장한다...
for (int y = m_bmInfoHeader.biHeight - 1; y >= 0; y--) // 비트맵은 위아래가 거꾸로 있다..
{
WriteFile(hFile, (BYTE *)m_pPixels + y * iRealWidth, iRealWidth, &dwRWC, NULL);
}
Expand Down Expand Up @@ -131,48 +131,48 @@ bool CBitMapFile::SaveRectToFile(const std::string & szFN, RECT rc) {
int nHeight = rc.bottom - rc.top;

if (nWidth <= 0 || nHeight <= 0) {
MessageBox(::GetActiveWindow(), "가로 세로가 0이하인 bitmap으로 저장할수 없습니다.", "error", MB_OK);
MessageBox(::GetActiveWindow(), "가로 세로가 0이하인 bitmap으로 저장할수 없습니다.", "error", MB_OK);
return FALSE;
}

DWORD dwRWC = 0;
HANDLE hFile = ::CreateFile(szFN.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

// 쓰기 모드로 파일 열기
// 쓰기 모드로 파일 열기
if (INVALID_HANDLE_VALUE == hFile) {
MessageBox(::GetActiveWindow(), "원본 bitmap을 열 수 없습니다.", "error", MB_OK);
MessageBox(::GetActiveWindow(), "원본 bitmap을 열 수 없습니다.", "error", MB_OK);
return false;
}

// 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
// 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
int iRealWidthDest = ((int)((nWidth * 3 + 3) / 4)) * 4;
int iDestDIBSize = sizeof(BITMAPINFOHEADER) + iRealWidthDest * nHeight;

// 새로 만들 이미지 file header 정보 채우기
// 새로 만들 이미지 file header 정보 채우기
BITMAPFILEHEADER bmfHeaderDest = m_bmfHeader;
bmfHeaderDest.bfType = 0x4D42; // "BM"
bmfHeaderDest.bfSize = sizeof(bmfHeaderDest) + iDestDIBSize;
bmfHeaderDest.bfOffBits = sizeof(bmfHeaderDest) + sizeof(BITMAPINFOHEADER);

// 새로 만들 이미지 bitmap info header 정보 채우기
// 새로 만들 이미지 bitmap info header 정보 채우기
BITMAPINFOHEADER bmInfoHeaderDest = m_bmInfoHeader;
bmInfoHeaderDest.biSize = sizeof(bmInfoHeaderDest);
bmInfoHeaderDest.biWidth = nWidth;
bmInfoHeaderDest.biHeight = nHeight;
bmInfoHeaderDest.biPlanes = 1;
bmInfoHeaderDest.biSizeImage = iRealWidthDest * nHeight;

// 파일 헤더 쓰기
// 파일 헤더 쓰기
WriteFile(hFile, &bmfHeaderDest, sizeof(bmfHeaderDest), &dwRWC, NULL);

// BITMAPINFOHEADER 쓰기
// BITMAPINFOHEADER 쓰기
WriteFile(hFile, &bmInfoHeaderDest, sizeof(bmInfoHeaderDest), &dwRWC, NULL);

// 픽셀을 저장한다...
// 픽셀을 저장한다...
int iRealWidth = ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4;
for (int y = rc.bottom - 1; y >= rc.top; y--) {
void * pPixelDest = ((uint8_t *)m_pPixels) + iRealWidth * y + (rc.left * 3);
WriteFile(hFile, pPixelDest, iRealWidthDest, &dwRWC, NULL); // 라인 쓰기..
WriteFile(hFile, pPixelDest, iRealWidthDest, &dwRWC, NULL); // 라인 쓰기..
}

CloseHandle(hFile);
Expand Down Expand Up @@ -220,28 +220,28 @@ bool CBitMapFile::Create(int nWidth, int nHeight, int nBPP) {
if (nWidth <= 0 || nHeight <= 0) {
return false;
}
this->Release(); // 일단 다 해제하고..
this->Release(); // 일단 다 해제하고..

if (24 != nBPP) {
return FALSE;
}

int iRealWidth = ((nWidth * 3 + 3) / 4) * 4; // 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
int iDIBSize = iRealWidth * nHeight; // 새로 만들 이미지 메모리 할당
int iRealWidth = ((nWidth * 3 + 3) / 4) * 4; // 실제 이미지의 메모리상에 잡힌 가로 길이 (24bit)
int iDIBSize = iRealWidth * nHeight; // 새로 만들 이미지 메모리 할당

if ((m_pPixels = ::GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, iDIBSize)) == NULL) {
MessageBox(::GetActiveWindow(), "메모리를 할당하지 못했습니다.", "error", MB_OK);
MessageBox(::GetActiveWindow(), "메모리를 할당하지 못했습니다.", "error", MB_OK);
return FALSE;
}

memset(m_pPixels, 0, iDIBSize);

// 새로 만들 이미지 file header 정보 채우기
// 새로 만들 이미지 file header 정보 채우기
m_bmfHeader.bfType = 0x4D42; // "BM"
m_bmfHeader.bfSize = sizeof(m_bmfHeader) + iDIBSize;
m_bmfHeader.bfOffBits = sizeof(m_bmfHeader) + sizeof(BITMAPINFOHEADER);

// 새로 만들 이미지 bitmap info header 정보 채우기
// 새로 만들 이미지 bitmap info header 정보 채우기
m_bmInfoHeader.biSize = sizeof(m_bmInfoHeader);
m_bmInfoHeader.biWidth = nWidth;
m_bmInfoHeader.biHeight = nHeight;
Expand Down
10 changes: 5 additions & 5 deletions src/engine/N3Base/BitMapFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ class CBitMapFile {
BITMAPINFOHEADER m_bmInfoHeader;

public:
void * m_pPixels; // 실제 픽셀 데이터
int Pitch() { return ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; } // 비트맵의 실제 너비(byte 단위)..
bool Create(int nWidth, int nHeight, int nBPP = 24);
bool SaveRectToFile(const std::string & szFN, RECT rc);
void * Pixels(int x = 0, int y = 0);
void * m_pPixels; // 실제 픽셀 데이터
int Pitch() { return ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; } // 비트맵의 실제 너비(byte 단위)..
bool Create(int nWidth, int nHeight, int nBPP = 24);
bool SaveRectToFile(const std::string & szFN, RECT rc);
void * Pixels(int x = 0, int y = 0);
BITMAPINFOHEADER * GetBitmapInfoHeader() { return &m_bmInfoHeader; }
BITMAPFILEHEADER * GetBitmapFileHeader() { return &m_bmfHeader; }
bool Load(HANDLE hFile);
Expand Down
Loading

0 comments on commit 957a069

Please sign in to comment.