From f362c9caddf2768a093b1d3caf878f3ab94b0e9c Mon Sep 17 00:00:00 2001 From: "sap_al@hotmail.com" Date: Sat, 16 Mar 2024 12:32:31 +0300 Subject: [PATCH 1/3] Convert Comments converting comments from korean to english. --- src/engine/N3Base/BitMapFile.cpp | 70 +- src/engine/N3Base/BitMapFile.h | 4 +- src/engine/N3Base/DFont.cpp | 114 +- src/engine/N3Base/DFont.h | 66 +- src/engine/N3Base/JPEG.CPP | 84 +- src/engine/N3Base/JPEG.H | 166 +- src/engine/N3Base/LogWriter.cpp | 8 +- src/engine/N3Base/My_3DStruct.h | 90 +- src/engine/N3Base/N3AlphaPrimitiveManager.cpp | 28 +- src/engine/N3Base/N3AlphaPrimitiveManager.h | 16 +- src/engine/N3Base/N3AnimControl.h | 42 +- src/engine/N3Base/N3AnimKey.cpp | 34 +- src/engine/N3Base/N3AnimKey.h | 6 +- src/engine/N3Base/N3AnimatedTexures.cpp | 12 +- src/engine/N3Base/N3Base.cpp | 36 +- src/engine/N3Base/N3Base.h | 82 +- src/engine/N3Base/N3BaseFileAccess.cpp | 14 +- src/engine/N3Base/N3BaseFileAccess.h | 16 +- src/engine/N3Base/N3Board.cpp | 32 +- src/engine/N3Base/N3Board.h | 4 +- src/engine/N3Base/N3Camera.cpp | 46 +- src/engine/N3Base/N3Camera.h | 12 +- src/engine/N3Base/N3Cloak.cpp | 4 +- src/engine/N3Base/N3Cloak.h | 6 +- src/engine/N3Base/N3Eng.cpp | 86 +- src/engine/N3Base/N3Eng.h | 16 +- src/engine/N3Base/N3FXPartParticles.cpp | 2 +- src/engine/N3Base/N3FXPlug.cpp | 24 +- src/engine/N3Base/N3FXPlug.h | 10 +- src/engine/N3Base/N3IMesh.cpp | 20 +- src/engine/N3Base/N3IMesh.h | 26 +- src/engine/N3Base/N3Joint.cpp | 56 +- src/engine/N3Base/N3Joint.h | 6 +- src/engine/N3Base/N3Light.cpp | 4 +- src/engine/N3Base/N3Light.h | 20 +- src/engine/N3Base/N3Log.cpp | 2 +- src/engine/N3Base/N3Log.h | 1 + src/engine/N3Base/N3Mesh.cpp | 62 +- src/engine/N3Base/N3Mesh.h | 10 +- src/engine/N3Base/N3Mng.h | 32 +- src/engine/N3Base/N3PMesh.cpp | 30 +- src/engine/N3Base/N3PMesh.h | 26 +- src/engine/N3Base/N3PMeshInstance.cpp | 30 +- src/engine/N3Base/N3PMeshInstance.h | 8 +- src/engine/N3Base/N3Shape.cpp | 246 +- src/engine/N3Base/N3Shape.h | 46 +- src/engine/N3Base/N3ShapeExtra.cpp | 10 +- src/engine/N3Base/N3ShapeExtra.h | 10 +- src/engine/N3Base/N3ShapeMgr.cpp | 9 + src/engine/N3Base/N3SndDef.h | 12 +- src/engine/N3Base/N3SndMgr.cpp | 40 +- src/engine/N3Base/N3SndMgr.h | 6 +- src/engine/N3Base/N3SndObj.cpp | 20 +- src/engine/N3Base/N3SndObj.h | 4 +- src/engine/N3Base/N3SndObjStream.cpp | 12 +- src/engine/N3Base/N3SndObjStream.h | 14 +- src/engine/N3Base/N3TableBase.h | 106 +- src/engine/N3Base/N3Texture.cpp | 178 +- src/engine/N3Base/N3Texture.h | 16 +- src/engine/N3Base/N3Transform.cpp | 60 +- src/engine/N3Base/N3Transform.h | 10 +- src/engine/N3Base/N3TransformCollision.cpp | 16 +- src/engine/N3Base/N3TransformCollision.h | 22 +- src/engine/N3Base/N3VMesh.cpp | 44 +- src/engine/N3Base/N3VMesh.h | 12 +- src/engine/N3Base/WaveFile.cpp | 26 +- src/engine/N3Base/WaveFile.h | 23 +- src/game/GameBase.cpp | 193 +- src/game/GameBase.h | 40 +- src/game/GameProcMain.cpp | 78 +- src/game/GameProcedure.cpp | 270 +-- src/game/KnightOnLine.vcxproj | 6 +- src/game/LocalInput.cpp | 72 +- src/game/LocalInput.h | 46 +- src/game/Main.cpp | 54 +- src/game/Main.h | 1 + src/game/N3Terrain.cpp | 10 +- src/game/SharedMem.cpp | 10 +- src/game/SharedMem.h | 10 +- src/game/WarMessage.cpp | 4 +- src/server/AIServer/AIServer.vcxproj.filters | 8 +- src/server/AIServer/AIServerDlg.cpp | 120 +- src/server/AIServer/User.cpp | 10 +- src/server/AIServer/res/AIServer.rc | 18 +- src/server/AIServer/res/RCa06316 | Bin 0 -> 10860 bytes src/server/AIServer/res/RCa10000 | Bin 0 -> 10860 bytes src/server/AIServer/res/RCa13276 | Bin 0 -> 10860 bytes src/server/AIServer/res/RCb10000 | Bin 0 -> 10860 bytes src/server/AIServer/res/RCb13276 | Bin 0 -> 10860 bytes src/server/AIServer/res/RCc10000 | Bin 0 -> 10858 bytes src/server/AIServer/res/RCd10000 | Bin 0 -> 10858 bytes src/server/AIServer/res/RCe10000 | Bin 0 -> 10858 bytes src/server/Ebenezer/Ebenezer.rc | 278 ++- src/server/Ebenezer/Ebenezer.vcxproj.user | 3 + src/server/Ebenezer/GameDefine.h | 1 + src/server/Ebenezer/Ini.cpp | 8 +- src/server/Ebenezer/User.cpp | 2 +- src/server/ItemManager/DBAgent.cpp | 5 +- src/server/ItemManager/Define.h | 8 +- src/server/ItemManager/SharedMem.cpp | 4 +- src/server/LoginServer/LoginServer.rc | 181 +- src/tool/Launcher/Launcher/LauncherDlg.cpp | 44 +- src/tool/Launcher/Launcher/LauncherDlg.h | 2 +- src/tool/Launcher/Launcher/PacketDef.h | 8 +- src/tool/N3Indoor/N3Indoor.rc | 380 ++- src/tool/N3ME/DlgMapView.cpp | 2 +- src/tool/N3ME/DlgRiverProperty.cpp | 5 + src/tool/N3ME/DlgRiverProperty.h | 2 + src/tool/N3ME/N3ME.rc | 2105 +++++++++-------- src/tool/N3ME/N3ME.vcxproj.user | 3 + src/tool/N3ME/Resource.h | 790 +++---- src/tool/RscTables/RscTables.rc | 146 +- src/tool/RscTables/res/RscTables.ico | Bin 3638 -> 3638 bytes src/tool/UIE/UIE.rc | 348 ++- src/tool/UIE/UIE.vcxproj | 2 + 115 files changed, 3943 insertions(+), 3739 deletions(-) create mode 100644 src/server/AIServer/res/RCa06316 create mode 100644 src/server/AIServer/res/RCa10000 create mode 100644 src/server/AIServer/res/RCa13276 create mode 100644 src/server/AIServer/res/RCb10000 create mode 100644 src/server/AIServer/res/RCb13276 create mode 100644 src/server/AIServer/res/RCc10000 create mode 100644 src/server/AIServer/res/RCd10000 create mode 100644 src/server/AIServer/res/RCe10000 diff --git a/src/engine/N3Base/BitMapFile.cpp b/src/engine/N3Base/BitMapFile.cpp index 2abd342f..83c758e3 100644 --- a/src/engine/N3Base/BitMapFile.cpp +++ b/src/engine/N3Base/BitMapFile.cpp @@ -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 instead of bm if (m_bmfHeader.bfType != 0x4D42) { - MessageBox(::GetActiveWindow(), " bitmap ƴմϴ.", "error", MB_OK); + MessageBox(::GetActiveWindow(), "What bitmap?", "error", MB_OK); return FALSE; } - // 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) { - MessageBox(::GetActiveWindow(), " bitmap ʺ, ̿ ̻ ְų 24bit ƴմϴ.", "error", + MessageBox(::GetActiveWindow(), "my bitmap, 24 bit.", "error", NULL); return FALSE; } - // ̹ ޸𸮻 (24bit) + // 24 bit int iRealWidth = ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; - // ̹ ޸ Ҵ + // why? int iDIBSize = iRealWidth * m_bmInfoHeader.biHeight; if ((m_pPixels = ::GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, iDIBSize)) == NULL) { - MessageBox(::GetActiveWindow(), "޸𸮸 Ҵ ߽ϴ.", "error", MB_OK); + MessageBox(::GetActiveWindow(), "What is it?", "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--) // What is it? { ReadFile(hFile, (BYTE *)m_pPixels + y * iRealWidth, iRealWidth, &dwRWC, NULL); } @@ -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 + WriteFile(hFile, &m_bmInfoHeader, sizeof(m_bmInfoHeader), &dwRWC, NULL); - // ̹ ޸𸮻 (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); } @@ -131,30 +131,30 @@ 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(), "Bitmap width and height.", "error", MB_OK); return FALSE; } DWORD dwRWC = 0; HANDLE hFile = ::CreateFile(szFN.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - // + // Contacted or reached if (INVALID_HANDLE_VALUE == hFile) { - MessageBox(::GetActiveWindow(), " bitmap ϴ.", "error", MB_OK); + MessageBox(::GetActiveWindow(), "What a bitmap.", "error", MB_OK); return false; } - // ̹ ޸𸮻 (24bit) + // 24 bit int iRealWidthDest = ((int)((nWidth * 3 + 3) / 4)) * 4; int iDestDIBSize = sizeof(BITMAPINFOHEADER) + iRealWidthDest * nHeight; - // ̹ file header ä + // What is the name of the 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; @@ -162,17 +162,17 @@ bool CBitMapFile::SaveRectToFile(const std::string & szFN, RECT rc) { bmInfoHeaderDest.biPlanes = 1; bmInfoHeaderDest.biSizeImage = iRealWidthDest * nHeight; - // + WriteFile(hFile, &bmfHeaderDest, sizeof(bmfHeaderDest), &dwRWC, NULL); - // 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); @@ -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; + int iDIBSize = iRealWidth * nHeight; if ((m_pPixels = ::GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, iDIBSize)) == NULL) { - MessageBox(::GetActiveWindow(), "޸𸮸 Ҵ ߽ϴ.", "error", MB_OK); + MessageBox(::GetActiveWindow(), "What is it?", "error", MB_OK); return FALSE; } memset(m_pPixels, 0, iDIBSize); - // ̹ file header ä + // What is the name of the 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; diff --git a/src/engine/N3Base/BitMapFile.h b/src/engine/N3Base/BitMapFile.h index 296b5cb0..a3566cdd 100644 --- a/src/engine/N3Base/BitMapFile.h +++ b/src/engine/N3Base/BitMapFile.h @@ -10,8 +10,8 @@ class CBitMapFile { BITMAPINFOHEADER m_bmInfoHeader; public: - void * m_pPixels; // ȼ - int Pitch() { return ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; } // Ʈ ʺ(byte ).. + void * m_pPixels; // actual pixel data + int Pitch() { return ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; } // Actual width of the bitmap (byte unit). 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); diff --git a/src/engine/N3Base/DFont.cpp b/src/engine/N3Base/DFont.cpp index c86ef10c..0d7ba8a2 100644 --- a/src/engine/N3Base/DFont.cpp +++ b/src/engine/N3Base/DFont.cpp @@ -18,7 +18,7 @@ HFONT CDFont::s_hFontOld = NULL; CDFont::CDFont(const std::string & szFontName, DWORD dwHeight, DWORD dwFlags) { if (0 == s_iInstanceCount) { s_hDC = CreateCompatibleDC(NULL); - // ӽ Ʈ s_hFontOld ´. + // Create a temporary font and get s_hFontOld. HFONT hFont = CreateFont(0, 0, 0, 0, 0, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, VARIABLE_PITCH, ""); if (hFont) { @@ -193,7 +193,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { int iStrLen = szText.size(); HRESULT hr; - // \n ٷ  ϱ + // \n Calculate character length by subtracting and making it one line int iCount = 0; int iTempCount = 0; SIZE size; @@ -202,9 +202,9 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { while (iCount < iStrLen) { if ('\n' == szText[iCount]) { // \n ++iCount; - } else if (0x80 & szText[iCount]) { // 2BYTE - if ((iCount + 2) > iStrLen) { // ̻ ڿ̴.. - // __ASSERT(0, "̻ ڿ̴.!!!"); + } else if (0x80 & szText[iCount]) { // 2BYTE characters + if ((iCount + 2) > iStrLen) { // It's a strange string... + // __ASSERT(0, "It's a strange string.!!!"); break; } else { memcpy(&(szTemp[iTempCount]), &(szText[iCount]), 2); @@ -216,12 +216,12 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { ++iTempCount; ++iCount; } - __ASSERT(iCount <= iStrLen, "??"); // ̻ ڰ + __ASSERT(iCount <= iStrLen, "??"); // If you receive a strange text } // szTemp[iTempCount] = 0x00; - // ؽ ϱ + // Determine texture size SelectObject(s_hDC, m_hFont); GetTextExtentPoint32(s_hDC, szTemp.c_str(), szTemp.size(), &size); szTemp = ""; @@ -232,7 +232,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { } int iExtent = size.cx * size.cy; - SIZE size2; // ѱ ݱ ũ.. + SIZE size2; // Size of half letters in Hangul... GetTextExtentPoint32(s_hDC, "", lstrlen(""), &size2); size2.cx = ((size2.cx / 2) + (size2.cx % 2)); @@ -257,7 +257,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { m_dwTexWidth = m_dwTexHeight = d3dCaps.MaxTextureWidth; } - // ؽ ũⰡ ؽ ũ ٸ ٽ . + // If the size of the existing texture is different from the size of the new texture, create it again. if (m_pTexture) { D3DSURFACE_DESC sd; ZeroMemory(&sd, sizeof(sd)); @@ -272,7 +272,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { if (NULL == m_pTexture) { int iMipMapCount = 1; if (dwFlags & D3DFONT_FILTERED) { - iMipMapCount = 0; // ͸ ؽƮ Ӹ .. + iMipMapCount = 0; // Filtering text creates a mipmap. } hr = m_pd3dDevice->CreateTexture(m_dwTexWidth, m_dwTexHeight, iMipMapCount, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, @@ -297,7 +297,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { HBITMAP hbmBitmap = CreateDIBSection(s_hDC, &bmi, DIB_RGB_COLORS, (VOID **)&pBitmapBits, NULL, 0); if (NULL == hbmBitmap) { - __ASSERT(0, "CreateDIBSection "); + __ASSERT(0, "CreateDIBSection failed"); if (m_pTexture) { m_pTexture->Release(); m_pTexture = NULL; @@ -315,7 +315,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { // Loop through all printable character and output them to the bitmap.. // Meanwhile, keep track of the corresponding tex coords for each character. - // ۾ ۾ Ƕ + // Printing text and creating a board to print text on if (m_Is2D) { Make2DVertex(size.cy, szText); } else { @@ -343,11 +343,11 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { // Done updating texture, so clean up used objects m_pTexture->UnlockRect(0); - ::SelectObject(s_hDC, hObjPrev); // ݵ ǰ ؾ.. - DeleteObject(hbmBitmap); // .. + ::SelectObject(s_hDC, hObjPrev); // You must choose the previous one. + DeleteObject(hbmBitmap); // It is erased properly. //////////////////////////////////////////////////////////// - // ͸ ؽó... MipMap .. + // The filtering texture is created as a MipMap. if (dwFlags & D3DFONT_FILTERED) { int iMMC = m_pTexture->GetLevelCount(); for (int i = 1; i < iMMC; i++) { @@ -358,7 +358,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { if (lpSurfSrc && lpSurfDest) { ::D3DXLoadSurfaceFromSurface(lpSurfDest, NULL, NULL, lpSurfSrc, NULL, NULL, D3DX_FILTER_TRIANGLE, - 0); // ǽ + 0); // Copy Surface } if (lpSurfSrc) { @@ -369,7 +369,7 @@ HRESULT CDFont::SetText(const std::string & szText, DWORD dwFlags) { } } } - // ͸ ؽó... MipMap .. + // The filtering texture is created as a MipMap. //////////////////////////////////////////////////////////// return S_OK; @@ -399,17 +399,17 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { int iTempCount = 0; char szTempChar[3] = ""; - DWORD dwColor = 0xffffffff; // Ʈ + DWORD dwColor = 0xffffffff; // font color m_dwFontColor = 0xffffffff; SIZE size; - float fMaxX = 0.0f, fMaxY = 0.0f; // ۾ ִ ּҰ ϱ ؼ. + float fMaxX = 0.0f, fMaxY = 0.0f; // To investigate the maximum and minimum values of the range in which letters can be printed. while (iCount < iStrLen) { if ('\n' == szText[iCount]) { // \n ++iCount; - // vertex + // Create vertices if (sx != x) { FLOAT tx1 = ((FLOAT)(sx)) / m_dwTexWidth; FLOAT ty1 = ((FLOAT)(y)) / m_dwTexHeight; @@ -419,7 +419,7 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { FLOAT w = (tx2 - tx1) * m_dwTexWidth / m_fTextScale; FLOAT h = (ty2 - ty1) * m_dwTexHeight / m_fTextScale; - __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // Vertex buffer ڶ. + __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // There is not enough vertex buffer. if (dwNumTriangles + 2 >= MAX_NUM_VERTICES) { break; } @@ -450,16 +450,16 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { fMaxY = fBottom; } } - // ȭ ٷ ѱ + // Skip to the next line on the screen sx = x; vtx_sx = 0; vtx_sy = vtx_sy + ((float)(iFontHeight)) / m_fTextScale; continue; - } else if (0x80 & szText[iCount]) { // 2BYTE + } else if (0x80 & szText[iCount]) { memcpy(szTempChar, &(szText[iCount]), 2); iCount += 2; szTempChar[2] = 0x00; - } else { // 1BYTE + } else { memcpy(szTempChar, &(szText[iCount]), 1); iCount += 1; szTempChar[1] = 0x00; @@ -467,8 +467,8 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { SelectObject(s_hDC, m_hFont); GetTextExtentPoint32(s_hDC, szTempChar, lstrlen(szTempChar), &size); - if ((x + size.cx) > m_dwTexWidth) { // vertex ٷ ѱ.. - // vertex + if ((x + size.cx) > m_dwTexWidth) { // Create a vertex and move it to the next line.. + // Create vertices if (sx != x) { FLOAT tx1 = ((FLOAT)(sx)) / m_dwTexWidth; FLOAT ty1 = ((FLOAT)(y)) / m_dwTexHeight; @@ -478,7 +478,7 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { FLOAT w = (tx2 - tx1) * m_dwTexWidth / m_fTextScale; FLOAT h = (ty2 - ty1) * m_dwTexHeight / m_fTextScale; - __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // Vertex buffer ڶ. + __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); //There is not enough vertex buffer. if (dwNumTriangles + 2 >= MAX_NUM_VERTICES) { break; } @@ -508,7 +508,7 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { fMaxY = fBottom; } - // ؽ ٷ ѱ + // Skip to next line of texture x = sx = 0; y += iFontHeight; vtx_sx = vtx_sx + w; @@ -518,13 +518,13 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { } } - // dc + // dc SelectObject(s_hDC, m_hFont); ExtTextOut(s_hDC, x, y, ETO_OPAQUE, NULL, szTempChar, lstrlen(szTempChar), NULL); x += size.cx; } - // vertex + // Create the last remaining vertex if (sx != x) { FLOAT tx1 = ((FLOAT)(sx)) / m_dwTexWidth; FLOAT ty1 = ((FLOAT)(y)) / m_dwTexHeight; @@ -534,7 +534,7 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { FLOAT w = (tx2 - tx1) * m_dwTexWidth / m_fTextScale; FLOAT h = (ty2 - ty1) * m_dwTexHeight / m_fTextScale; - __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // Vertex buffer ڶ. + __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // There is not enough vertex buffer. FLOAT fLeft = vtx_sx + 0 - 0.5f; FLOAT fRight = vtx_sx + w - 0.5f; @@ -578,7 +578,7 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO int iStrLen = szText.size(); - // ӽ vertex buffer ֱ + // Insert into temporary vertex buffer __VertexXyzColorT1 TempVertices[MAX_NUM_VERTICES]; __VertexXyzColorT1 * pVertices = TempVertices; DWORD dwNumTriangles = 0; @@ -594,14 +594,14 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO char szTempChar[3] = ""; SIZE size; - float fMaxX = 0.0f, fMaxY = 0.0f; // ۾ ִ ּҰ ϱ ؼ. + float fMaxX = 0.0f, fMaxY = 0.0f; // To investigate the maximum and minimum values of the range in which letters can be printed. while (iCount < iStrLen) { if ('\n' == szText[iCount]) // \n { ++iCount; - // vertex + // Create vertices if (sx != x) { FLOAT tx1 = ((FLOAT)(sx)) / m_dwTexWidth; FLOAT ty1 = ((FLOAT)(y)) / m_dwTexHeight; @@ -611,7 +611,7 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO FLOAT w = (tx2 - tx1) * m_dwTexWidth / m_fTextScale; FLOAT h = (ty2 - ty1) * m_dwTexHeight / m_fTextScale; - __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // Vertex buffer ڶ. + __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // There is not enough vertex buffer. if (dwNumTriangles + 2 >= MAX_NUM_VERTICES) { break; } @@ -641,17 +641,17 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO fMaxY = (-fBottom); } } - // ȭ ٷ ѱ + // Skip to the next line on the screen sx = x; vtx_sx = 0; vtx_sy = vtx_sy - ((float)(iFontHeight)) / m_fTextScale; continue; - } else if (0x80 & szText[iCount]) // 2BYTE + } else if (0x80 & szText[iCount]) { memcpy(szTempChar, &(szText[iCount]), 2); iCount += 2; szTempChar[2] = 0x00; - } else // 1BYTE + } else { memcpy(szTempChar, &(szText[iCount]), 1); iCount += 1; @@ -660,8 +660,8 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO SelectObject(s_hDC, m_hFont); GetTextExtentPoint32(s_hDC, szTempChar, lstrlen(szTempChar), &size); - if ((x + size.cx) > m_dwTexWidth) { // vertex ٷ ѱ.. - // vertex + if ((x + size.cx) > m_dwTexWidth) { // Create a vertex and move it to the next line.. + // Create vertices if (sx != x) { FLOAT tx1 = ((FLOAT)(sx)) / m_dwTexWidth; FLOAT ty1 = ((FLOAT)(y)) / m_dwTexHeight; @@ -671,7 +671,7 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO FLOAT w = (tx2 - tx1) * m_dwTexWidth / m_fTextScale; FLOAT h = (ty2 - ty1) * m_dwTexHeight / m_fTextScale; - __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // Vertex buffer ڶ. + __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // There is not enough vertex buffer. if (dwNumTriangles + 2 >= MAX_NUM_VERTICES) { break; } @@ -700,7 +700,7 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO fMaxY = (-fBottom); } - // ؽ ٷ ѱ + // Skip to next line of texture x = sx = 0; y += iFontHeight; vtx_sx = vtx_sx + w; @@ -710,13 +710,13 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO } } - // dc + // dc SelectObject(s_hDC, m_hFont); ExtTextOut(s_hDC, x, y, ETO_OPAQUE, NULL, szTempChar, lstrlen(szTempChar), NULL); x += size.cx; } - // vertex + // Create the last remaining vertex if (sx != x) { FLOAT tx1 = ((FLOAT)(sx)) / m_dwTexWidth; FLOAT ty1 = ((FLOAT)(y)) / m_dwTexHeight; @@ -726,7 +726,7 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO FLOAT w = (tx2 - tx1) * m_dwTexWidth / m_fTextScale; FLOAT h = (ty2 - ty1) * m_dwTexHeight / m_fTextScale; - __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // Vertex buffer ڶ. + __ASSERT(dwNumTriangles + 2 < MAX_NUM_VERTICES, "??"); // There is not enough vertex buffer. FLOAT fLeft = vtx_sx + 0; FLOAT fRight = vtx_sx + w; @@ -753,9 +753,9 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO } } - if (dwFlags & D3DFONT_CENTERED) //  ̸ vertexǥ  ؼ ijֱ + if (dwFlags & D3DFONT_CENTERED) // If it is centered, calculate the vertex coordinates to the center and correct it. { - // ã.. + // Find the longest line... int iRectangleCount = dwNumTriangles / 2; int iContinueCount = 1; @@ -769,10 +769,10 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO fCY = TempVertices[iCount * 6].y; while (iCount + iContinueCount < iRectangleCount) { - if (TempVertices[(iCount + iContinueCount) * 6].y == fCY) { // 簢 ̴. + if (TempVertices[(iCount + iContinueCount) * 6].y == fCY) { // It is the same line as the next square. fCX = TempVertices[(iCount + iContinueCount) * 6 + 3].x; ++iContinueCount; - } else { // 簢 ٸ ̴. + } else { // It is a different line from the next square. break; } } @@ -787,14 +787,14 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO } } - // Vertex buffer ű. + // Move to vertex buffer. // lock vertex buffer m_pVB->Lock(0, 0, (VOID **)&pVertices, 0); iCount = dwNumTriangles * 3; for (int i = 0; i < iCount; ++i) { - TempVertices[i].x /= ((float)m_dwFontHeight); // ũ ̱ - TempVertices[i].y /= ((float)m_dwFontHeight); // ũ ̱ + TempVertices[i].x /= ((float)m_dwFontHeight); // reduce to a certain size + TempVertices[i].y /= ((float)m_dwFontHeight); // reduce to a certain size *pVertices++ = TempVertices[i]; } @@ -820,7 +820,7 @@ HRESULT CDFont::DrawText(FLOAT sx, FLOAT sy, DWORD dwColor, DWORD dwFlags, FLOAT return E_FAIL; } - // ġ + // Position color adjustment D3DXVECTOR2 vDiff = D3DXVECTOR2(sx, sy) - m_PrevLeftTop; if (fabs(vDiff.x) > 0.5f || fabs(vDiff.y) > 0.5f || dwColor != m_dwFontColor) { // lock vertex buffer @@ -851,7 +851,7 @@ HRESULT CDFont::DrawText(FLOAT sx, FLOAT sy, DWORD dwColor, DWORD dwFlags, FLOAT } } - // if (fZ != 1.0f) { // Z 1.0f ٲپش. + // if (fZ != 1.0f) { // If the Z value does not reach 1.0f, change it. // for (int i = 0; i < iVC; ++i) { // pVertices[i].z = fZ; // } @@ -894,7 +894,7 @@ HRESULT CDFont::DrawText(FLOAT sx, FLOAT sy, DWORD dwColor, DWORD dwFlags, FLOAT m_pd3dDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); } // } - // else if ( D3DZB_TRUE != dwZEnable) m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE ); // fZ 1.0 ƴϸ z Ѱ ׸. + // else if ( D3DZB_TRUE != dwZEnable) m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE ); // If fZ is not 1.0, turn on the z buffer and draw. if (FALSE != dwFog) { m_pd3dDevice->SetRenderState(D3DRS_FOGENABLE, FALSE); } @@ -1264,7 +1264,7 @@ void CDFont::AddToAlphaManager(DWORD dwColor, float fDist, __Matrix44 & mtxWorld } } - // if (fZ != 1.0f) { // Z 1.0f ٲپش. + // if (fZ != 1.0f) { // If the Z value does not reach 1.0f, change it. // for (int i = 0; i < iVC; ++i) { // pVertices[i].z = fZ; // } @@ -1291,6 +1291,6 @@ void CDFont::AddToAlphaManager(DWORD dwColor, float fDist, __Matrix44 & mtxWorld pAP->MtxWorld = mtxWorld; if (!(dwFlags & D3DFONT_FILTERED)) { - pAP->nRenderFlags |= RF_POINTSAMPLING; // ͸ ؽƮ ʴ´. + pAP->nRenderFlags |= RF_POINTSAMPLING; // Do not use filtering text. } } \ No newline at end of file diff --git a/src/engine/N3Base/DFont.h b/src/engine/N3Base/DFont.h index b4768107..c98738cb 100644 --- a/src/engine/N3Base/DFont.h +++ b/src/engine/N3Base/DFont.h @@ -1,11 +1,11 @@ // DFont.h: interface for the CDFont class. -// -// 1. SetTextԼ 귮 .(۾ ٲܶ θ(߿)) -// 2. DrawText Լ 2d ׷ش. -// 3. DrawText3D Լ 3d ׸ Ѵ.(SetTextԼ 3D Ѵ.) -// : Ƕ⸦ 50ۿ Ѵ.( ̻ Ϸ MAX_NUM_VERTICES ָ ȴ.) -// 4. InvalidateDeviceObjects(); ȣ ٽ ۾ ٽ SetTextԼ ȣ Ѵ. -// 5. 3D ۾  ؼ SetTextԼ ι° ĶͿ (D3DFONT_3D|D3DFONT_CENTERED) ־ش. +// Usage and usage restrictions +// 1. The SetText function requires a lot of calculations. (Call it only when changing the text (important)) +// 2. The DrawText function draws on a 2d plane. +// 3. The DrawText3D function is used when drawing in 3D. (3D must be specified in the SetText function.) +// Limitation: Currently, only 50 plates can be created. (If you want to create more than this, you can change MAX_NUM_VERTICES.) +// 4. To write again after calling InvalidateDeviceObjects();, you must call the SetText function again. +// 5. When writing text in 3D space, if you want to align it in the center, enter (D3DFONT_3D|D3DFONT_CENTERED) in the second parameter of the SetText function. ////////////////////////////////////////////////////////////////////// #pragma warning(disable : 4786) @@ -26,11 +26,11 @@ #define D3DFONT_3D 0x0008 // 3D text // set text flag -#define D3DFONT_CENTERED 0x0004 // 3D font.. +#define D3DFONT_CENTERED 0x0004 // Only in 3D fonts.. -// Font rendering flags (drawtext or DrawText3D Լ flag) -#define D3DFONT_TWOSIDED 0x0010 // 3D font.. -#define D3DFONT_FILTERED 0x0020 // texture D3DSAMP_MAGFILTER +// Font rendering flags (flags used in drawtext or DrawText3D function) +#define D3DFONT_TWOSIDED 0x0010 // Only in 3D fonts.. +#define D3DFONT_FILTERED 0x0020 // Take a texture with D3DSAMP_MAGFILTER class CDFont : public CN3Base { public: @@ -60,17 +60,17 @@ class CDFont : public CN3Base { LPDIRECT3DVERTEXBUFFER9 m_pVB; // VertexBuffer for rendering text DWORD m_dwTexWidth; // Texture dimensions DWORD m_dwTexHeight; // Texture dimensions - FLOAT m_fTextScale; // Ʈ ʹ Ŭ ī忡 - // texture ũ Ѿ - // ̷ Scale ̿Ͽ ũ ÷ ´. - - // HDC m_hDC; // DC handle - HFONT m_hFont; // Font handle - UINT m_iPrimitiveCount; // ۾ - D3DXVECTOR2 m_PrevLeftTop; // DrawText ġ Ǿ - DWORD m_dwFontColor; // ۾ - BOOL m_Is2D; // 2D Textΰ? - SIZE m_Size; // ۾ ϴ ũ(pixel, ) + FLOAT m_fTextScale; // If the font to use is too large, the video card + // Because it exceeds the texture size limit + // In this case, use Scale to enlarge the image. + + // HDC m_hDC; // DC handle + HFONT m_hFont; //Font handle + UINT m_iPrimitiveCount; // Number of plates to write on + D3DXVECTOR2 m_PrevLeftTop; // In case of DrawText, variable for when the location of the drawing location changes + DWORD m_dwFontColor; // font color + BOOL m_Is2D; // Is it 2D Text? + SIZE m_Size; // Size occupied by written letters (pixel unit, width and height) // Operations public: @@ -81,24 +81,24 @@ class CDFont : public CN3Base { return false; } void AddToAlphaManager(DWORD dwColor, float fDist, __Matrix44 & mtxWorld, DWORD dwFlags); - HRESULT SetFontColor(DWORD dwColor); // ۾ ٲ۴. - HRESULT InitDeviceObjects(LPDIRECT3DDEVICE9 pd3dDevice); // d3d device ִ ʱȭ Լ (InitҶ ȣ) - HRESULT RestoreDeviceObjects(); // resource ޸𸮿 ϴ ʱȭ Լ (InitҶ ȣ) - HRESULT InvalidateDeviceObjects(); // resource ȿȭŰ Լ (releaseҶ ȣ) - HRESULT DeleteDeviceObjects(); // resource ޸𸮿 (releaseҶ ȣ) + HRESULT SetFontColor(DWORD dwColor); // Change the font color. + HRESULT InitDeviceObjects(LPDIRECT3DDEVICE9 pd3dDevice); // Initialization function that determines the d3d device (called when Init) + HRESULT RestoreDeviceObjects(); // Initialization function to set resources in memory (called when Init) + HRESULT InvalidateDeviceObjects(); // Function to invalidate resources, etc. (called when releasing) + HRESULT DeleteDeviceObjects(); // Release resources, etc. from memory (called when releasing) - HRESULT SetText(const std::string & szText, DWORD dwFlags = 0L); // ۾ ޶ ȣϴ ߿. + HRESULT SetText(const std::string & szText, DWORD dwFlags = 0L); // It is important to call this only when the text to be printed changes. HRESULT DrawText(FLOAT sx, FLOAT sy, DWORD dwColor, DWORD dwFlags, - FLOAT fZ = 1.0f); // ۿ ۾ ׸.(2d) - HRESULT DrawText3D(DWORD dwColor, DWORD dwFlags); // ۿ ۾ ׸.(3d) + FLOAT fZ = 1.0f); // Draw the text stored in the buffer. (2d) + HRESULT DrawText3D(DWORD dwColor, DWORD dwFlags); // Draw the text stored in the buffer. (3d) HRESULT SetFont(const std::string & szFontName, DWORD dwHeight, - DWORD dwFlags = 0L); // Font ٲٰ ȣѴ. (dwHeight point size ִ´.) + DWORD dwFlags = 0L); // Called when you want to change the font. (dwHeight enters the point size.) BOOL GetTextExtent(const std::string & szString, int iStrLen, SIZE * pSize); protected: void Make2DVertex(const int iFontHeight, - const std::string & szText); // Է ڸ ϰ ġ 2d . + const std::string & szText); // Converts the input text into appropriately placed 2D polygons. void Make3DVertex(const int iFontHeight, const std::string & szText, - DWORD dwFlags); // Է ڸ ϰ ġ 3d . + DWORD dwFlags); // Creates 3D polygons with appropriately placed input characters. }; diff --git a/src/engine/N3Base/JPEG.CPP b/src/engine/N3Base/JPEG.CPP index ac392f1b..2eefd155 100644 --- a/src/engine/N3Base/JPEG.CPP +++ b/src/engine/N3Base/JPEG.CPP @@ -57,11 +57,11 @@ void CJpeg::LoadJPG(LPCSTR FileName) { FindSOF(); // Frame Header Loading FindSOS(); // Scan Header Loading & Decoding - if ((*pByte == 0xff) && (*(pByte + 1) == 0xd9)) { // + if ((*pByte == 0xff) && (*(pByte + 1) == 0xd9)) { // When you reach the end break; } Count++; - if (Count > 50) { // Loop ɼ + if (Count > 50) { // When there is little chance of the loop ending break; } } @@ -79,7 +79,7 @@ void CJpeg::FindSOI() { void CJpeg::FindDHT() { if ((m_pBuf[m_Index] == 0xff) && (m_pBuf[m_Index + 1] == 0xc4)) { WORD SegSize = m_pBuf[m_Index + 2] * 256 + m_pBuf[m_Index + 3]; - // ġ ͷ Ѵ. + //Sets the current position of the buffer as a pointer. BYTE * p = &m_pBuf[m_Index + 4]; do { @@ -89,7 +89,7 @@ void CJpeg::FindDHT() { BYTE Th = *p; // Table Number memcpy(BITS, p, 17); p = p + 17; - //17 ؼ Num + // Add all 17 values and store them in Num. for (i = 1; i < 17; i++) { Num = Num + BITS[i]; } @@ -99,9 +99,9 @@ void CJpeg::FindDHT() { TbH[Th].HUFFCODE = new WORD[Num + 1]; TbH[Th].HUFFSIZE = new BYTE[Num + 1]; TbH[Th].HUFFVAL = new BYTE[Num + 1]; - //Huffman Value Numũ⸸ŭ p д´. + //Read the Huffman Value value as much as Num from p. memcpy(TbH[Th].HUFFVAL, p, Num); - //p + //p increases p = p + Num; // Generation of table of Huffman code sizes // @@ -236,7 +236,7 @@ void CJpeg::FindSOS() { m_Index = m_Index + SegSize + 2; - // ִ Sampling Factor // + // Find the maximum sampling factor // Hmax = Vmax = 0; for (int i = 0; i < FrameHeader.Nf; i++) { if (FrameHeader.H[i] > Hmax) { @@ -247,11 +247,11 @@ void CJpeg::FindSOS() { } } - // ̹ // + // Save actual image size // m_rWidth = FrameHeader.X; m_rHeight = FrameHeader.Y; - // ̹  MCU ũ⿡ ¾ ٽ // + // Recalculate image size to match MCU size if (FrameHeader.X % (8 * Hmax) != 0) { FrameHeader.X = (FrameHeader.X / (8 * Hmax) + 1) * (8 * Hmax); } @@ -334,8 +334,8 @@ void CJpeg::DecodeAC(int Th) { memset((LPSTR)&ZZ[1], 0, 63 * sizeof(short)); BYTE RS, SSSS, RRRR, R; - // RRRR : ZZ 0 ƴ κ ġ - // SSSS : 0 ƴ (category) + // RRRR : Position relative to the previous non-zero value in ZZ + // SSSS : Range of non-zero values (category) while (TRUE) { RS = hDecode(Th); @@ -517,10 +517,10 @@ void CJpeg::Decode() { MCU = new SET[Vmax * Hmax * 64]; - // NextByte Լ // + // Pointer reset for NextByte function pByte = &m_pBuf[m_Index]; - // Decoding Procedure // + // Practical Decoding Procedure // int Count = 0; /// for (int i = 0; i < my; i++) { @@ -543,7 +543,7 @@ void CJpeg::Decode() { delete[] MCU; - // RGB ٲ // + //Convert to RGB// ConvertYUV2RGB(); } @@ -631,7 +631,7 @@ void CJpeg::ConvertYUV2RGB() { delete[] m_pData; m_pData = pBuf2; - // ̹ // + // Restore to original image size // FrameHeader.X = m_rWidth; FrameHeader.Y = m_rHeight; } @@ -651,18 +651,18 @@ void CJpeg::SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp) { m_rWidth = Width; m_rHeight = Height; - int BMPWidth = (Width * 3 + 3) / 4 * 4; // BITMAP 4 + int BMPWidth = (Width * 3 + 3) / 4 * 4; // Area that is a multiple of 4 in BITMAP int bWidth = Width; int bHeight = Height; if (Width % 8 != 0) { - bWidth = (Width / 8 + 1) * 8; // bWidth 8 + bWidth = (Width / 8 + 1) * 8; // bWidth is the width in multiples of 8 } if (Height % 8 != 0) { - bHeight = (Height / 8 + 1) * 8; // bHeight 8 + bHeight = (Height / 8 + 1) * 8; // bHeight is the height in multiples of 8 } - // Huffman Table ʱȭ // + // Initializing Huffman Table // for (int i = 0; i < 20; i++) { if (TbH[i].Flag) { delete[] TbH[i].HUFFCODE; @@ -677,25 +677,25 @@ void CJpeg::SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp) { return; } PutSOI(fh); // Start Of Image // - PutDQT(fh); // Quantization Table // - PutDHT(fh); // Huffman Table // - PutSOF(fh, Width, Height); // FrameHeader // - PutSOS(fh); // Scan Header // + PutDQT(fh); // Save Quantization Table // + PutDHT(fh); // Save Huffman Table // + PutSOF(fh, Width, Height); // Save FrameHeader // + PutSOS(fh); // Save Scan Header // - // ۸ սô! // + // Let's have a buffer! // if (m_pData != NULL) { delete[] m_pData; } m_pData = new BYTE[(bWidth * 3) * bHeight]; - memset(m_pData, 0, (bWidth * 3) * bHeight); // 0 ʱȭ // + memset(m_pData, 0, (bWidth * 3) * bHeight); // reset to 0 // - // 8 µ ۸  ̹ մϴ // + // Create a buffer to fit a multiple of 8 and copy the original image. // for (int i = 0; i < Height; i++) { memcpy(&m_pData[i * (bWidth * 3)], &pp[i * BMPWidth], BMPWidth); } - // RGB Color YCbCr Color ȯմϴ. // + // Convert RGB Color to YCbCr Color. // float R, G, B; float y, cb, cr; BYTE * pos; @@ -811,8 +811,8 @@ void CJpeg::SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp) { delete[] DC2; delete[] DC3; - /* AC ̺ ˻ ϱ Ͽ - ̺ ü ִ *PT Ѵ. */ + /* To speed up AC Huffman table search + Set *PT in the Huffman table structure. */ int Num, iTh[4] = {16, 17}, Th, key; @@ -836,9 +836,9 @@ void CJpeg::SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp) { /* HUFFMAN CODE ENCODEING!! */ - m_pBuf = new BYTE[bWidth * bHeight * 3]; // ڵ Ͱ - m_Index = 0; // ε - cnt = 0; // Bit + m_pBuf = new BYTE[bWidth * bHeight * 3]; // Buffer where the actual encoded data will be stored + m_Index = 0; // index reset + cnt = 0; // Bit total reset hEncode(bWidth, bHeight); @@ -852,7 +852,7 @@ void CJpeg::SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp) { PutEOI(fh); - // ӽ ޸ // + // Free all temporary memory // for (int i = 0; i < 2; i++) { Th = iTh[i]; @@ -872,13 +872,13 @@ void CJpeg::SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp) { delete[] Cb; delete[] Cr; - // // + // file closed// CloseHandle(fh); } void CJpeg::PutSOI(HANDLE hFile) { - // SOI // + // Save SOI // DWORD dwWritten; WORD Marker = (0xd8 << 8) | 0xff; WriteFile(hFile, (LPSTR)&Marker, 2, &dwWritten, NULL); @@ -1006,7 +1006,7 @@ void CJpeg::PutDQT(HANDLE hFile) { } void CJpeg::DCT(short * pos, int bWidth, BOOL Flag) { - // DCT и ƴ϶, DCT Zigzag ... Դٰ Quantization !?// + // DNot only CT, but also Zigzag after DCT... and even Quantization!?// BYTE Qtb0[64] = {16, 11, 12, 14, 12, 10, 16, 14, 13, 14, 18, 17, 16, 19, 24, 40, 26, 24, 22, 22, 24, 49, 36, 37, 29, 40, 58, 51, 61, 60, 57, 51, 56, 55, 64, 72, 92, 78, 64, 68, 87, 69, 66, 57, @@ -1083,8 +1083,8 @@ void CJpeg::Zigzag2() { } void CJpeg::PutDHT(HANDLE hFile) { - /* standard ̺ о鿩 ü - ϰ ϴ Ͽ ִ ԼԴϴ. */ + /* The standard Huffman table is read and set in the member structure. + This is a function that is written into the file you want to save. */ m_pBuf = new BYTE[421]; BYTE HuffTb[421] = { @@ -1109,7 +1109,7 @@ void CJpeg::PutDHT(HANDLE hFile) { 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250, 255}; memcpy(m_pBuf, HuffTb, 421); - m_Index = 0; // Huffman Table о̱ Ͽ Index Reset + m_Index = 0; //Reset the index to read the Huffman Table FindDHT(); //_lwrite(hFile, (LPSTR)m_pBuf, 420); DWORD dwWritten; @@ -1117,7 +1117,7 @@ void CJpeg::PutDHT(HANDLE hFile) { delete[] m_pBuf; } -// ־ Ƽ ҼӵǴ ȯϴ Լ // +// A function that returns which ketigory a given value belongs to. // BYTE CJpeg::GetCategory(short V) { BYTE Num = 0; if (V < 0) { @@ -1236,7 +1236,7 @@ void CJpeg::ShotBit(BYTE Bit) { cnt = 0; m_pBuf[m_Index] = Bullet; m_Index++; - if (Bullet == 0xff) // 0xff 0x00 Byte Stuffing!! + if (Bullet == 0xff) // If 0xff appears, Byte Stuffing with 0x00!! { m_pBuf[m_Index] = 0x00; m_Index++; @@ -1246,7 +1246,7 @@ void CJpeg::ShotBit(BYTE Bit) { } void CJpeg::PutEOI(HANDLE hFile) { - // EOI // + // Save EOI // WORD Marker = (0xd9 << 8) | 0xff; DWORD dwWritten; WriteFile(hFile, (LPSTR)&Marker, 2, &dwWritten, NULL); diff --git a/src/engine/N3Base/JPEG.H b/src/engine/N3Base/JPEG.H index e1027091..f90f486a 100644 --- a/src/engine/N3Base/JPEG.H +++ b/src/engine/N3Base/JPEG.H @@ -2,50 +2,50 @@ // // Jpeg.h: interface for the CJpeg class. // -// ֿ䵿 : JPEG ڵϿ о̰ų ũ . +// Main operation: Decode the JPEG file and read it or write it to disk. // -// : -// : +// Original author: unknown +// Modified by: Lee Hyun-seok // E-Mail : evaasuka1004@hotmail.com ////////////////////////////////////////////////////////////////////// #pragma once struct SET { - BYTE C[3]; // Y, Cb, Cr + BYTE C[3]; //Y, Cb, Cr components }; struct DQT { - BYTE Q[64]; // Qantization Table + BYTE Q[64]; // Quantization Table Values }; struct DHT { - BOOL Flag; // Ǿ θ Ÿ ÷ - int Num; // ڵ - WORD * HUFFCODE; // ڵ - BYTE * HUFFSIZE; // ڵ - BYTE * HUFFVAL; // ڵ尡 Ÿ - WORD MAXCODE[17]; // ش ̿ ū ڵ - WORD MINCODE[17]; // ش ̿ ڵ - int VALPTR[17]; // ش ڵ尡 ۵Ǵ ε - int * PT; // VALUE INDEX ã + BOOL Flag; // flag indicating whether it was used or not + int Num; // Number of Huffman codes + WORD * HUFFCODE; // Huffman code + BYTE * HUFFSIZE; // Length of Huffman code + BYTE * HUFFVAL; // Value indicated by Huffman code + WORD MAXCODE[17]; // Largest code of that length + WORD MINCODE[17]; // smallest code of that length + int VALPTR[17]; // Index where code of that length starts + int * PT; // Pointer to quickly find INDEX by VALUE }; struct FRAMEHEADER { - WORD Y; // ̹ - WORD X; // ̹ - BYTE Nf; // Ʈ - BYTE C[3]; // Ʈ ̵ - BYTE H[3]; // Ʈ Horizontal Sampling Factor - BYTE V[3]; // Ʈ Vertical Sampling Factor - BYTE Tq[3]; // ش Ʈ Ǵ ȭ̺ ȣ + WORD Y; // height of image + WORD X; //width of image + BYTE Nf; // number of components + BYTE C[3]; // component ID + BYTE H[3]; // Horizontal Sampling Factor of the component + BYTE V[3]; // Vertical Sampling Factor of the component + BYTE Tq[3]; // Quantization table number used for the component }; struct SCANHEADER { - BYTE Ns; // Ʈ - BYTE Cs[3]; // Ʈ ̵ - BYTE Td[3]; // Ʈ DC Huffman Table ȣ - BYTE Ta[3]; // Ʈ AC Huffman Table ȣ + BYTE Ns; // number of components + BYTE Cs[3]; // component ID + BYTE Td[3]; // DC Huffman Table number of the component + BYTE Ta[3]; // AC Huffman Table number of the component BYTE Ss; BYTE Se; BYTE Ah; @@ -54,75 +54,75 @@ struct SCANHEADER { class CJpeg { public: - // JPEG File Loadϱ Լ // - void LoadJPG(LPCSTR FileName); // JPEG File Loadϴ Լ - void FindSOI(); // Start of Image Ŀ ã Լ - void FindDQT(); // Quantization Table ã ü ϴ Լ - void FindDHT(); // Huffman Table ã ü ϴ Լ - void FindSOF(); // Frame Header ã ü ϴ Լ - void FindSOS(); // Scan Header ã ü ϴ Լ - void FindETC(); // DRI(Define Restart Interval) ε - void Decode(); // ڵ带 ϰ ڵ带 - void DecodeMCU(int mx, int my); // MCU ڵϴ Լ - void DecodeDU(int N); // 8x8 Data Unit ڵϴ Լ - void IDCT(); // Inverse DCT ϴ Լ - void Zigzag(); // Zigzag Ǿִ DU 󺹱ͽŰ Լ - void DecodeAC(int Th); // DU, AC ڵϴ Լ - void DecodeDC(int Th); // DU, DC ڵϴ Լ - short Extend(WORD V, BYTE T); // V īװ T µ Ȯ - WORD Receive(BYTE SSSS); // ۿ SSSSƮŭ о Լ - BYTE hDecode(int Th); // ȣ ڵϴ κ - BYTE NextByte(); // ۿ 1 Ʈ о Լ - WORD NextBit(); // ۿ 1 Ʈ о Լ - void ConvertYUV2RGB(); // ڵ ͸ ÷ ٲް ÿ - // Ʈʿ ȣȯǵ ȯϴ Լ - - // JPEG File Saveϱ Լ // - void SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp); // JPEG ϴ Լ - - void PutSOI(HANDLE hFile); // Start of Image Ŀ - void PutDQT(HANDLE hFile); // Quantizatino Table - void PutDHT(HANDLE hFile); // Huffmann Table - void PutSOF(HANDLE hFile, int Width, int Height); // FrameHeader - void PutSOS(HANDLE hFile); // ScanHeader - void PutEOI(HANDLE hFile); // End of Image Ŀ - - void ShotBit(BYTE Bit); // 1Ʈ ۿ ϴ Լ - void ChargeCode(WORD Code, int Size); // Sizeŭ (Ʒڸκ) Code ۿ ϴ Լ - void EncodeDU(short * pos, BOOL Flag, int bWidth); // 8x8 Block ڵϴ Լ - void hEncode(int bWidth, int bHeight); // ڵ ϴ κ - BYTE GetCategory(short V); // ־ īװ ϴ Լ - void Zigzag2(); // Zigzag Լ - void DCT(short * pos, int bWidth, BOOL Flag); // DCT Zigzag Quantization ϴ Լ - - int GetHeight(); // ̹ ̸ ȯϴ Լ - int GetWidth(); // ̹ ̸ ȯϴ Լ + // Functions for loading JPEG File // + void LoadJPG(LPCSTR FileName); // Function to load JPEG File + void FindSOI(); // Function to find the Start of Image marker + void FindDQT(); // Function to find the Quantization Table and set it in the structure + void FindDHT(); // Function to find the Huffman Table and set it in the structure + void FindSOF(); // Function to find the Frame Header and set it in the structure + void FindSOS(); // Function to find the Scan Header and set it in the structure + void FindETC(); // Load DRI (Define Restart Interval) + void Decode(); // Set information for decoding and start decoding + void DecodeMCU(int mx, int my); // Function to decode the MCU block + void DecodeDU(int N); // Function to decode 8x8 Data Unit + void IDCT(); // Function to perform inverse DCT + void Zigzag(); // Function to restore DU in Zigzag order to its original state + void DecodeAC(int Th); // Function to decode AC component during DU + void DecodeDC(int Th); // Function to decode DC component during DU + short Extend(WORD V, BYTE T); // extend V to fit category T + WORD Receive(BYTE SSSS); // Function to read SSSS bits from the buffer + BYTE hDecode(int Th); // The part that decodes the Huffman code + BYTE NextByte(); // Function to read the next 1 byte from the buffer + WORD NextBit(); // Function to read the next 1 bit from the buffer + void ConvertYUV2RGB(); // At the same time as changing the color model of the decoded data + // Function to convert to be compatible with bitmap + + // Functions for saving JPEG File // + void SaveJPG(LPCSTR FileName, int Width, int Height, BYTE * pp); // Function to save JPEG file + + void PutSOI(HANDLE hFile); // Insert Start of Image marker + void PutDQT(HANDLE hFile); // Insert Quantizatino Table + void PutDHT(HANDLE hFile); // Insert Huffmann Table + void PutSOF(HANDLE hFile, int Width, int Height); // Insert FrameHeader + void PutSOS(HANDLE hFile); // Insert ScanHeader + void PutEOI(HANDLE hFile); // Insert End of Image marker + + void ShotBit(BYTE Bit); // Function to store 1 bit in the buffer + void ChargeCode(WORD Code, int Size); // Function to store the code in the buffer as long as Size (from the bottom) + void EncodeDU(short * pos, BOOL Flag, int bWidth); // Function to encode 8x8 Block + void hEncode(int bWidth, int bHeight); // Huffman encoding part + BYTE GetCategory(short V); // Function to find the category of a given value + void Zigzag2(); // Function to create in Zigzag order + void DCT(short * pos, int bWidth, BOOL Flag); // Function for Zigzag and Quantization after DCT + + int GetHeight(); // Function that returns the height of the image + int GetWidth(); // Function that returns the width of the image WORD Ri; // Restart Interval - int m_rWidth; // ̹ - int m_rHeight; // ̹ - BYTE * pByte; // NextByte()Լ + int m_rWidth; // actual width of the image + int m_rHeight; // actual height of the image + BYTE * pByte; // Used in NextByte() function - int cnt; // Ʈ ̴ ī + int cnt; // Counter used when calculating in bit units - short * Y; // Save ̴ Y Buffer - short * Cb; // Save ̴ Cb Buffer - short * Cr; // Save ̴ Cr Buffer + short * Y; // Y Buffer used when saving + short * Cb; // Cb Buffer used when saving + short * Cr; // Cr Buffer used when saving - SET * MCU; // MCU + SET * MCU; //MCU unit block BYTE Hmax; // Maximum Horizontal Sampling Factor BYTE Vmax; // Maximum Vertical Sampling Factor - BYTE * m_pData; // ̹ - BYTE * m_pBuf; // - int m_Index; // ġ Ÿ ε + BYTE * m_pData; // image buffer + BYTE * m_pBuf; // buffer + int m_Index; // Index indicating the location of the buffer DQT TbQ[20]; // Quantization Table DHT TbH[20]; // Huffman Table - short ZZ[64]; // 8x8 Block 迭 - FRAMEHEADER FrameHeader; // FrameHeader ä - SCANHEADER ScanHeader; // ScanHeader ü - short PrevDC[3]; // DC Predictor + short ZZ[64]; // Array containing 8x8 Block information + FRAMEHEADER FrameHeader; // FrameHeader structure + SCANHEADER ScanHeader; //ScanHeader structure + short PrevDC[3]; // Predictor of DC component CJpeg(); virtual ~CJpeg(); diff --git a/src/engine/N3Base/LogWriter.cpp b/src/engine/N3Base/LogWriter.cpp index 6878e95f..cf19a9e5 100644 --- a/src/engine/N3Base/LogWriter.cpp +++ b/src/engine/N3Base/LogWriter.cpp @@ -36,7 +36,7 @@ void CLogWriter::Open(const std::string & szFN) { DWORD dwSizeHigh = 0; DWORD dwSizeLow = ::GetFileSize(hFile, &dwSizeHigh); - if (dwSizeLow > 256000) //  ʹ ũ .. + if (dwSizeLow > 256000) { CloseHandle(hFile); ::DeleteFile(s_szFileName.c_str()); @@ -46,7 +46,7 @@ void CLogWriter::Open(const std::string & szFN) { } } - ::SetFilePointer(hFile, 0, NULL, FILE_END); // ߰ ϱ ؼ ű.. + ::SetFilePointer(hFile, 0, NULL, FILE_END); char szBuff[1024]; SYSTEMTIME time; @@ -75,7 +75,7 @@ void CLogWriter::Close() { } if (hFile) { - ::SetFilePointer(hFile, 0, NULL, FILE_END); // ߰ ϱ ؼ ű.. + ::SetFilePointer(hFile, 0, NULL, FILE_END); char szBuff[1024]; SYSTEMTIME time; @@ -129,7 +129,7 @@ void CLogWriter::Write(const char * lpszFormat, ...) { } if (hFile) { - ::SetFilePointer(hFile, 0, NULL, FILE_END); // ߰ ϱ ؼ ű.. + ::SetFilePointer(hFile, 0, NULL, FILE_END); WriteFile(hFile, szFinal, iLength, &dwRWC, NULL); CloseHandle(hFile); diff --git a/src/engine/N3Base/My_3DStruct.h b/src/engine/N3Base/My_3DStruct.h index 3dde2f14..267e75e4 100644 --- a/src/engine/N3Base/My_3DStruct.h +++ b/src/engine/N3Base/My_3DStruct.h @@ -605,10 +605,10 @@ inline __Matrix44 __Matrix44::operator*(const D3DXMATRIX & mtx) { mtxTmp._43 = _41 * mtx._13 + _42 * mtx._23 + _43 * mtx._33 + _44 * mtx._43; mtxTmp._44 = _41 * mtx._14 + _42 * mtx._24 + _43 * mtx._34 + _44 * mtx._44; - // ȭ ڵ.. - // dino .. Ʒ ڵ 4° Ͽ Ȯ Ѵ. - // 4° (0, 0, 0, 1) matrix projection matrix - // (0, 0, 1, 0) matrix Ƿ ̻ ʷѴ. + //Optimized code.. + // Block dino.. The code below omits the calculation of the 4th row and makes inaccurate calculations. + // Usually we use a matrix where the 4th row is (0, 0, 0, 1), but in the case of projection matrix + // Because it uses a matrix of (0, 0, 1, 0), it causes strange results. // mtxTmp._11 = _11 * mtx._11 + _12 * mtx._21 + _13 * mtx._31; // mtxTmp._12 = _11 * mtx._12 + _12 * mtx._22 + _13 * mtx._32; // mtxTmp._13 = _11 * mtx._13 + _12 * mtx._23 + _13 * mtx._33; @@ -657,9 +657,9 @@ inline void __Matrix44::operator*=(const D3DXMATRIX & mtx) { _43 = mtxTmp._41 * mtx._13 + mtxTmp._42 * mtx._23 + mtxTmp._43 * mtx._33 + mtxTmp._44 * mtx._43; _44 = mtxTmp._41 * mtx._14 + mtxTmp._42 * mtx._24 + mtxTmp._43 * mtx._34 + mtxTmp._44 * mtx._44; - // dino .. Ʒ ڵ 4° Ͽ Ȯ Ѵ. - // 4° (0, 0, 0, 1) matrix projection matrix - // (0, 0, 1, 0) matrix Ƿ ̻ ʷѴ. + // Block dino.. The code below omits the calculation of the 4th row and makes inaccurate calculations. + // Usually we use a matrix where the 4th row is (0, 0, 0, 1), but in the case of projection matrix + // Because it uses a matrix of (0, 0, 1, 0), it causes strange results. // _11 = mtxTmp._11 * mtx._11 + mtxTmp._12 * mtx._21 + mtxTmp._13 * mtx._31; // _12 = mtxTmp._11 * mtx._12 + mtxTmp._12 * mtx._22 + mtxTmp._13 * mtx._32; // _13 = mtxTmp._11 * mtx._13 + mtxTmp._12 * mtx._23 + mtxTmp._13 * mtx._33; @@ -816,23 +816,23 @@ const DWORD FVF_XYZNORMALCOLORT1 = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | const DWORD RF_NOTHING = 0x0; const DWORD RF_ALPHABLENDING = 0x1; // Alpha blending -const DWORD RF_NOTUSEFOG = 0x2; // Ȱ -const DWORD RF_DOUBLESIDED = 0x4; // - D3DCULL_NONE -const DWORD RF_BOARD_Y = 0x8; // Y ؼ.. ī޶ . -const DWORD RF_POINTSAMPLING = 0x10; // MipMap .. PointSampling Ѵ.. -const DWORD RF_WINDY = 0x20; // ٶ .. ٶ CN3Base::s_vWindFactor Ѵ.. +const DWORD RF_NOTUSEFOG = 0x2; // ignore fog +const DWORD RF_DOUBLESIDED = 0x4; //Double-sided - D3DCULL_NONE +const DWORD RF_BOARD_Y = 0x8; // Use the Y axis to look at the camera. +const DWORD RF_POINTSAMPLING = 0x10; // Use PointSampling in MipMap. +const DWORD RF_WINDY = 0x20; // It blows in the wind.. For the wind value, refer to CN3Base::s_vWindFactor. const DWORD RF_NOTUSELIGHT = 0x40; // Light Off -const DWORD RF_DIFFUSEALPHA = 0x80; // Diffuse ϰ Alpha blending -const DWORD RF_NOTZWRITE = 0x100; // ZBuffer Ⱦ. -const DWORD RF_UV_CLAMP = 0x200; // texture UV Clamp Ѵ..default wrap̴.. -const DWORD RF_NOTZBUFFER = 0x400; // ZBuffer . +const DWORD RF_DIFFUSEALPHA = 0x80; // Alpha blending transparently with diffuse value +const DWORD RF_NOTZWRITE = 0x100; // Not used in ZBuffer. +const DWORD RF_UV_CLAMP = 0x200; // Apply texture UV to Clamp..default is wrap.. +const DWORD RF_NOTZBUFFER = 0x400; // Ignore ZBuffer. struct __Material : public _D3DMATERIAL9 { public: DWORD dwColorOp, dwColorArg1, dwColorArg2; - BOOL nRenderFlags; // 1-AlphaBlending | 2-Ȱ | 4-Double Side | 8- ?? - DWORD dwSrcBlend; // ҽ - DWORD dwDestBlend; // Ʈ + BOOL nRenderFlags; // 1-AlphaBlending | 2-No relation to fog | 4-Double Side | 8- ?? + DWORD dwSrcBlend; // Source blending method + DWORD dwDestBlend; // Death blending method public: void Init(const _D3DCOLORVALUE & diffuseColor) { @@ -852,7 +852,7 @@ struct __Material : public _D3DMATERIAL9 { dwDestBlend = D3DBLEND_INVSRCALPHA; } - void Init() // ⺻ .. + void Init() //Make it basic white. { D3DCOLORVALUE crDiffuse = {1.0f, 1.0f, 1.0f, 1.0f}; this->Init(crDiffuse); @@ -1019,7 +1019,7 @@ struct __VertexT2 : public __VertexT1 { struct __VertexTransformed : public __Vector3 { public: float rhw; - D3DCOLOR color; // ʿ .. + D3DCOLOR color; // Not required.. float tu, tv; public: @@ -1344,7 +1344,7 @@ struct __VertexXyzNormalColor : public __Vector3 { } }; -const int MAX_MIPMAP_COUNT = 10; // 1024 * 1024 ܰ +const int MAX_MIPMAP_COUNT = 10; // Generate up to 1024 * 1024 steps const DWORD OBJ_UNKNOWN = 0; const DWORD OBJ_BASE = 0x1; @@ -1467,7 +1467,7 @@ inline bool _CheckCollisionByBox(const __Vector3 & vOrig, const __Vector3 & vDir static __Vector3 Vertices[36]; int nFace = 0; - // z + // z-axis negative side nFace = 0; Vertices[nFace + 0].Set(vMin.x, vMax.y, vMin.z); Vertices[nFace + 1].Set(vMax.x, vMax.y, vMin.z); @@ -1476,7 +1476,7 @@ inline bool _CheckCollisionByBox(const __Vector3 & vOrig, const __Vector3 & vDir Vertices[nFace + 4] = Vertices[nFace + 2]; Vertices[nFace + 5].Set(vMin.x, vMin.y, vMin.z); - // x + // x-axis positive side nFace = 6; Vertices[nFace + 0].Set(vMax.x, vMax.y, vMin.z); Vertices[nFace + 1].Set(vMax.x, vMax.y, vMax.z); @@ -1485,7 +1485,7 @@ inline bool _CheckCollisionByBox(const __Vector3 & vOrig, const __Vector3 & vDir Vertices[nFace + 4] = Vertices[nFace + 2]; Vertices[nFace + 5].Set(vMax.x, vMin.y, vMin.z); - // z + //z axis positive side nFace = 12; Vertices[nFace + 0].Set(vMax.x, vMax.y, vMax.z); Vertices[nFace + 1].Set(vMin.x, vMax.y, vMax.z); @@ -1494,7 +1494,7 @@ inline bool _CheckCollisionByBox(const __Vector3 & vOrig, const __Vector3 & vDir Vertices[nFace + 4] = Vertices[nFace + 2]; Vertices[nFace + 5].Set(vMax.x, vMin.y, vMax.z); - // x + // x-axis negative side nFace = 18; Vertices[nFace + 0].Set(vMin.x, vMax.y, vMax.z); Vertices[nFace + 1].Set(vMin.x, vMax.y, vMin.z); @@ -1503,7 +1503,7 @@ inline bool _CheckCollisionByBox(const __Vector3 & vOrig, const __Vector3 & vDir Vertices[nFace + 4] = Vertices[nFace + 2]; Vertices[nFace + 5].Set(vMin.x, vMin.y, vMax.z); - // y + // y axis positive side nFace = 24; Vertices[nFace + 0].Set(vMin.x, vMax.y, vMax.z); Vertices[nFace + 1].Set(vMax.x, vMax.y, vMax.z); @@ -1512,7 +1512,7 @@ inline bool _CheckCollisionByBox(const __Vector3 & vOrig, const __Vector3 & vDir Vertices[nFace + 4] = Vertices[nFace + 2]; Vertices[nFace + 5].Set(vMin.x, vMax.y, vMin.z); - // y + // y axis negative side nFace = 30; Vertices[nFace + 0].Set(vMin.x, vMin.y, vMin.z); Vertices[nFace + 1].Set(vMax.x, vMin.y, vMin.z); @@ -1521,7 +1521,7 @@ inline bool _CheckCollisionByBox(const __Vector3 & vOrig, const __Vector3 & vDir Vertices[nFace + 4] = Vertices[nFace + 2]; Vertices[nFace + 5].Set(vMin.x, vMin.y, vMax.z); - // 鿡 ؼ 浹 ˻.. + // Collision check for each side. for (int i = 0; i < 12; i++) { if (true == ::_IntersectTriangle(vOrig, vDir, Vertices[i * 3 + 0], Vertices[i * 3 + 1], Vertices[i * 3 + 2])) { return true; @@ -1544,7 +1544,7 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, __Vector3 pVec; float fDet; - // By : Ecli666 ( On 2001-09-12 10:39:01 ) + // By: Ecli666 (On 2001-09-12 10:39:01 AM) pVec.Cross(vEdge1, vEdge2); fDet = pVec.Dot(vDir); @@ -1552,13 +1552,13 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, return FALSE; } - // ~(By Ecli666 On 2001-09-12 10:39:01 ) + // ~(By Ecli666 On 2001-09-12 10:39:01 AM) pVec.Cross(vDir, vEdge2); // If determinant is near zero, ray lies in plane of triangle fDet = vEdge1.Dot(pVec); - if (fDet < 0.0001f) { // 0 ﰢ ϴ. + if (fDet < 0.0001f) { // When it is close to 0, the plane of the triangle and the line passing through it are parallel. return FALSE; } @@ -1588,17 +1588,17 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, fU *= fInvDet; fV *= fInvDet; - // t Ŭ ָ ִ. - // t*dir + orig ϸ ִ. - // u v ǹ̴ ϱ? - // : v0 (0,0), v1(1,0), v2(0,1) <ȣ (U, V)ǥ> ̷ Ÿ + // The larger t is, the farther the point where the straight line meets the plane is. + // You can find the meeting point by finding t*dir + orig. + // What do u and v mean? + // Guess: v0 (0,0), v1(1,0), v2(0,1) <(U, V) coordinates in parentheses> This seems to indicate which point is closest. // if (pVCol) { - (*pVCol) = vOrig + (vDir * fT); // .. + (*pVCol) = vOrig + (vDir * fT); // Calculate contact points.. } - // *t < 0 ̸ ... + // If *t < 0, later... if (fT < 0.0f) { return FALSE; } @@ -1616,7 +1616,7 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, vEdge1 = v1 - v0; vEdge2 = v2 - v0; - // By : Ecli666 ( On 2001-09-12 10:39:01 ) + // By: Ecli666 (On 2001-09-12 10:39:01 AM) pVec.Cross(vEdge1, vEdge2); fDet = pVec.Dot(vDir); @@ -1624,13 +1624,13 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, return FALSE; } - // ~(By Ecli666 On 2001-09-12 10:39:01 ) + // ~(By Ecli666 On 2001-09-12 10:39:01 AM) pVec.Cross(vDir, vEdge2); // If determinant is near zero, ray lies in plane of triangle fDet = vEdge1.Dot(pVec); - if (fDet < 0.0001f) { // 0 ﰢ ϴ. + if (fDet < 0.0001f) { // If it is close to 0, the line passing through the triangle plane is parallel. return FALSE; } @@ -1655,7 +1655,7 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, // Calculate t, scale parameters, ray intersects triangle fT = D3DXVec3Dot(&vEdge2, &qVec) / fDet; - // *t < 0 ̸ ... + // If *t < 0, later... if (fT < 0.0f) { return FALSE; } @@ -1705,7 +1705,7 @@ inline void _Convert2D_To_3DCoordinate(int ixScreen, int iyScreen, const __Matri inline float _Yaw2D(float fDirX, float fDirZ) { //////////////////////////////// - // ϰ.. -> ȸ ϴ ƾ̴.. + // This is a routine that finds the direction... -> Finds the value to rotate. if (fDirX >= 0.0f) // ^^ { if (fDirZ >= 0.0f) { @@ -1720,7 +1720,7 @@ inline float _Yaw2D(float fDirX, float fDirZ) { return (D3DXToRadian(180.0f) + (float)(asin(-fDirX))); } } - // ϰ.. + // Find the direction... //////////////////////////////// } @@ -1731,7 +1731,7 @@ inline short int _IsKeyDowned(int iVirtualKey) { return (GetAsyncKeyState(iVirtualKey) & 0x00ff); } -//macro.. -> Template ٲ.. +//macro.. -> Changed to Template.. template const T T_Max(const T a, const T b) { return ((a > b) ? b : a); } diff --git a/src/engine/N3Base/N3AlphaPrimitiveManager.cpp b/src/engine/N3Base/N3AlphaPrimitiveManager.cpp index bb83e352..d48e627b 100644 --- a/src/engine/N3Base/N3AlphaPrimitiveManager.cpp +++ b/src/engine/N3Base/N3AlphaPrimitiveManager.cpp @@ -26,7 +26,7 @@ void CN3AlphaPrimitiveManager::Render() { for (int i = 0; i < m_nToDrawCount; i++) { pBuffs[i] = &(m_Buffers[i]); } - qsort(pBuffs, m_nToDrawCount, 4, SortByCameraDistance); // ۿ Ƽ ϰ.. + qsort(pBuffs, m_nToDrawCount, 4, SortByCameraDistance); // Sort according to the primitives accumulated in the buffer. struct __RenderState { DWORD dwAlpha, dwFog, dwCull, dwLgt, dwZWrite, dwAO, dwAA1, dwAA2, dwCO, dwCA1, dwCA2, dwPointSampling; @@ -34,8 +34,8 @@ void CN3AlphaPrimitiveManager::Render() { DWORD dwSrcBlend, dwDestBlend; DWORD dwZEnable; }; - __RenderState RS_old; // render state (߿ ǵ ) - __RenderState RS_current; // render state (  ΰ Ǵϱ ) + __RenderState RS_old; // Previous render state (to revert later) + __RenderState RS_current; // Current render state (to determine what the current state is) CN3Base::s_lpD3DDev->GetRenderState(D3DRS_ALPHABLENDENABLE, &RS_old.dwAlpha); CN3Base::s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &RS_old.dwFog); @@ -136,7 +136,7 @@ void CN3AlphaPrimitiveManager::Render() { CN3Base::s_lpD3DDev->SetFVF(pBuffs[i]->dwFVF); CN3Base::s_lpD3DDev->SetTexture(0, pBuffs[i]->lpTex); - CN3Base::s_lpD3DDev->SetTransform(D3DTS_WORLD, &(pBuffs[i]->MtxWorld)); // + CN3Base::s_lpD3DDev->SetTransform(D3DTS_WORLD, &(pBuffs[i]->MtxWorld)); // Apply world matrix if (pBuffs[i]->lpTex) { CN3Base::s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE); @@ -147,7 +147,7 @@ void CN3AlphaPrimitiveManager::Render() { CN3Base::s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE); } - if (pBuffs[i]->pwIndices && pBuffs[i]->nPrimitiveCount > 0) // Index .. + if (pBuffs[i]->pwIndices && pBuffs[i]->nPrimitiveCount > 0) // If there is an Index... { if (pBuffs[i]->bUseVB) { CN3Base::s_lpD3DDev->SetStreamSource(0, (LPDIRECT3DVERTEXBUFFER9)pBuffs[i]->pVertices, 0, @@ -176,7 +176,7 @@ void CN3AlphaPrimitiveManager::Render() { #endif } - m_nToDrawCount = 0; // ׷ȴ... + m_nToDrawCount = 0; // I drew it all... // restore CN3Base::s_lpD3DDev->SetRenderState(D3DRS_ALPHABLENDENABLE, RS_old.dwAlpha); @@ -207,14 +207,14 @@ void CN3AlphaPrimitiveManager::Render() { for (int i = 0; i < m_nToDrawCount; i++) { pBuffs[i] = &(m_Buffers[i]); } - qsort(pBuffs, m_nToDrawCount, 4, SortByCameraDistance); // ۿ Ƽ ϰ.. + qsort(pBuffs, m_nToDrawCount, 4, SortByCameraDistance); // Sort according to the primitives accumulated in the buffer. struct __RenderState { DWORD dwAlpha, dwFog, dwCull, dwLgt, dwZWrite, dwAO, dwAA1, dwAA2, dwCO, dwCA1, dwCA2, dwPointSampling; DWORD dwSrcBlend, dwDestBlend; }; - __RenderState RS_old; // render state (߿ ǵ ) - __RenderState RS_current; // render state (  ΰ Ǵϱ ) + __RenderState RS_old; // Previous render state (to revert later) + __RenderState RS_current; // Current render state (to determine what the current state is) CN3Base::s_lpD3DDev->GetRenderState(D3DRS_ALPHABLENDENABLE, &RS_old.dwAlpha); CN3Base::s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &RS_old.dwFog); @@ -338,7 +338,7 @@ void CN3AlphaPrimitiveManager::Render() { CN3Base::s_lpD3DDev->SetFVF(pBuffs[i]->dwFVF); CN3Base::s_lpD3DDev->SetTexture(0, pBuffs[i]->lpTex); - CN3Base::s_lpD3DDev->SetTransform(D3DTS_WORLD, &(pBuffs[i]->MtxWorld)); // + CN3Base::s_lpD3DDev->SetTransform(D3DTS_WORLD, &(pBuffs[i]->MtxWorld)); // Apply world matrix if (pBuffs[i]->lpTex) { if (D3DTOP_MODULATE != RS_current.dwCO) { @@ -364,7 +364,7 @@ void CN3AlphaPrimitiveManager::Render() { } } - if (pBuffs[i]->pwIndices && pBuffs[i]->nPrimitiveCount > 0) // Index .. + if (pBuffs[i]->pwIndices && pBuffs[i]->nPrimitiveCount > 0) // If there is an Index... { if (pBuffs[i]->bUseVB) { CN3Base::s_lpD3DDev->SetStreamSource(0, (LPDIRECT3DVERTEXBUFFER9)pBuffs[i]->pVertices, 0, @@ -393,7 +393,7 @@ void CN3AlphaPrimitiveManager::Render() { #endif } - m_nToDrawCount = 0; // ׷ȴ... + m_nToDrawCount = 0; // I drew it all... // restore if (RS_old.dwAlpha != RS_current.dwAlpha) { @@ -458,7 +458,7 @@ __AlphaPrimitive * CN3AlphaPrimitiveManager::Add(__Vector3 & vCamera, DWORD dwBl int nVertexCount, const void * pVertices, const __Matrix44 & MtxWorld) { __ASSERT(m_nToDrawCount < MAX_ALPHAPRIMITIVE_BUFFER, "Alpha primnitive buffer is full"); - // η ݵ Ŭ Render() ѹ ȣ־ ۸ ش.. + // During main rendering, you must call Render() of this class once to empty the buffer. __Vector3 vPos = *((__Vector3 *)pVertices); @@ -487,7 +487,7 @@ int CN3AlphaPrimitiveManager::SortByCameraDistance(const void * pArg1, const voi __AlphaPrimitive * pObj2 = *((__AlphaPrimitive **)pArg2); if (pObj1->fCameraDistance > pObj2->fCameraDistance) { - return -1; // Ÿ հͺ .. + return -1; // Sorting from the farthest distance... } else if (pObj1->fCameraDistance < pObj2->fCameraDistance) { return 1; } else { diff --git a/src/engine/N3Base/N3AlphaPrimitiveManager.h b/src/engine/N3Base/N3AlphaPrimitiveManager.h index 0970389c..2206ee5d 100644 --- a/src/engine/N3Base/N3AlphaPrimitiveManager.h +++ b/src/engine/N3Base/N3AlphaPrimitiveManager.h @@ -12,19 +12,19 @@ //const DWORD RF_DOUBLESIDED = 4; struct __AlphaPrimitive { - float fCameraDistance; // ī޶ Ÿ.. + float fCameraDistance; // Distance from camera... DWORD dwBlendSrc; DWORD dwBlendDest; - int nRenderFlags; // ÷.. RF_... .. + int nRenderFlags; // Rendering flag.. RF_... See.. LPDIRECT3DTEXTURE9 lpTex; // Texture pointer DWORD dwFVF; // flexible vertex format D3DPRIMITIVETYPE ePrimitiveType; // Primitive Type int nPrimitiveCount; // PrimitiveCount DWORD dwPrimitiveSize; // Primitive Size .. stream 0 stride - BOOL bUseVB; // ؽ , ε ۸ ΰ ƴѰ - const void * pwIndices; // Index ̸... NULL ƴѰ ȴ. + BOOL bUseVB; // Whether to use vertex buffer or index buffer + const void * pwIndices; // If it is Index-based... just enter something other than NULL. int nVertexCount; - const void * pVertices; // ﰢ.. .. ȯ پ Ѵ.. + const void * pVertices; //Triangle.. is a vector type, but it must be used to accept various point formats through forced type conversion.. __Matrix44 MtxWorld; // Matrix }; @@ -32,8 +32,8 @@ const int MAX_ALPHAPRIMITIVE_BUFFER = 1024; class CN3AlphaPrimitiveManager { protected: - int m_nToDrawCount; // ׷ - __AlphaPrimitive m_Buffers[MAX_ALPHAPRIMITIVE_BUFFER]; // Ƽ .. + int m_nToDrawCount; // Number of buffers to draw + __AlphaPrimitive m_Buffers[MAX_ALPHAPRIMITIVE_BUFFER]; // Primitive buffer.. public: int ToDrawCount() { return m_nToDrawCount; } @@ -41,7 +41,7 @@ class CN3AlphaPrimitiveManager { void Render(); - static int SortByCameraDistance(const void * pArg1, const void * pArg2); // Լ.. + static int SortByCameraDistance(const void * pArg1, const void * pArg2); // Sort function.. CN3AlphaPrimitiveManager(); virtual ~CN3AlphaPrimitiveManager(); diff --git a/src/engine/N3Base/N3AnimControl.h b/src/engine/N3Base/N3AnimControl.h index f9fbe9f6..9634fedb 100644 --- a/src/engine/N3Base/N3AnimControl.h +++ b/src/engine/N3Base/N3AnimControl.h @@ -16,9 +16,9 @@ typedef struct __AnimData { public: std::string szName; - float fFrmStart; // ü - float fFrmEnd; // ü - float fFrmPerSec; // ʴ 30 ǥ̴.. + float fFrmStart; // start upper body + float fFrmEnd; // upper body end + float fFrmPerSec; // 30 frames per second is standard. float fFrmPlugTraceStart; float fFrmPlugTraceEnd; @@ -26,20 +26,20 @@ typedef struct __AnimData { float fFrmSound0; float fFrmSound1; - float fTimeBlend; // ٸ ۰ ð - int iBlendFlags; // ÷ 0 ̸ .. 1̸ ν ŸӸŭ ð + float fTimeBlend; // Blending time when connected to other actions + int iBlendFlags; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. float fFrmStrike0; float fFrmStrike1; __AnimData() { - fFrmPerSec = 30.0f; // ʴ 30 ǥ̴.. + fFrmPerSec = 30.0f; // 30 frames per second is standard. fFrmStart = fFrmEnd = 0; fFrmPlugTraceStart = fFrmPlugTraceEnd = 0; fFrmSound0 = fFrmSound1 = 0; - fTimeBlend = 0.25f; // ⺻ ð.. - iBlendFlags = 0; // ÷ 0 ̸ .. 1̸ ν ŸӸŭ ð + fTimeBlend = 0.25f; // Basic blending time.. + iBlendFlags = 0; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. fFrmStrike0 = fFrmStrike1 = 0; } @@ -55,7 +55,7 @@ typedef struct __AnimData { fFrmSound1 = other.fFrmSound1; fTimeBlend = other.fTimeBlend; - iBlendFlags = other.iBlendFlags; // ÷ 0 ̸ .. 1̸ ν ŸӸŭ ð + iBlendFlags = other.iBlendFlags; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. fFrmStrike0 = other.fFrmStrike0; fFrmStrike1 = other.fFrmStrike1; @@ -71,11 +71,11 @@ typedef struct __AnimData { DWORD dwRWC = 0; int nL = 0; - ReadFile(hFile, &nL, 4, &dwRWC, NULL); // ڿ Ͱ ִڸ̴.. ȣȯ 켭.. ... + ReadFile(hFile, &nL, 4, &dwRWC, NULL); // Originally, this is where the string pointer was... for compatibility... just... - ReadFile(hFile, &fFrmStart, 4, &dwRWC, NULL); // ü - ReadFile(hFile, &fFrmEnd, 4, &dwRWC, NULL); // ü - ReadFile(hFile, &fFrmPerSec, 4, &dwRWC, NULL); // ʴ 30 ǥ̴.. + ReadFile(hFile, &fFrmStart, 4, &dwRWC, NULL); // start upper body + ReadFile(hFile, &fFrmEnd, 4, &dwRWC, NULL); // upper body end + ReadFile(hFile, &fFrmPerSec, 4, &dwRWC, NULL); // 30 frames per second is standard. ReadFile(hFile, &fFrmPlugTraceStart, 4, &dwRWC, NULL); ReadFile(hFile, &fFrmPlugTraceEnd, 4, &dwRWC, NULL); @@ -85,12 +85,12 @@ typedef struct __AnimData { ReadFile(hFile, &fTimeBlend, 4, &dwRWC, NULL); ReadFile(hFile, &iBlendFlags, 4, &dwRWC, - NULL); // ÷ 0 ̸ .. 1̸ ν ŸӸŭ ð + NULL); // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. ReadFile(hFile, &fFrmStrike0, 4, &dwRWC, NULL); ReadFile(hFile, &fFrmStrike1, 4, &dwRWC, NULL); - // ̸ б.. + // Read name... szName = ""; ReadFile(hFile, &nL, 4, &dwRWC, NULL); if (nL > 0) { @@ -107,11 +107,11 @@ typedef struct __AnimData { DWORD dwRWC = 0; int nL = 0; - WriteFile(hFile, &nL, 4, &dwRWC, NULL); // ڿ Ͱ ִڸ̴.. ȣȯ 켭.. ... + WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Originally, this is where the string pointer was... for compatibility... just... - WriteFile(hFile, &fFrmStart, 4, &dwRWC, NULL); // ü - WriteFile(hFile, &fFrmEnd, 4, &dwRWC, NULL); // ü - WriteFile(hFile, &fFrmPerSec, 4, &dwRWC, NULL); // ʴ 30 ǥ̴.. + WriteFile(hFile, &fFrmStart, 4, &dwRWC, NULL); // start upper body + WriteFile(hFile, &fFrmEnd, 4, &dwRWC, NULL); // upper body end + WriteFile(hFile, &fFrmPerSec, 4, &dwRWC, NULL); // 30 frames per second is standard. WriteFile(hFile, &fFrmPlugTraceStart, 4, &dwRWC, NULL); WriteFile(hFile, &fFrmPlugTraceEnd, 4, &dwRWC, NULL); @@ -121,12 +121,12 @@ typedef struct __AnimData { WriteFile(hFile, &fTimeBlend, 4, &dwRWC, NULL); WriteFile(hFile, &iBlendFlags, 4, &dwRWC, - NULL); // ÷ 0 ̸ .. 1̸ ν ŸӸŭ ð + NULL); // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. WriteFile(hFile, &fFrmStrike0, 4, &dwRWC, NULL); WriteFile(hFile, &fFrmStrike1, 4, &dwRWC, NULL); - // ̸ б.. + // Read name... nL = szName.size(); WriteFile(hFile, &nL, 4, &dwRWC, NULL); if (nL > 0) { diff --git a/src/engine/N3Base/N3AnimKey.cpp b/src/engine/N3Base/N3AnimKey.cpp index 54a1040a..3f8f4d45 100644 --- a/src/engine/N3Base/N3AnimKey.cpp +++ b/src/engine/N3Base/N3AnimKey.cpp @@ -11,7 +11,7 @@ CN3AnimKey::CN3AnimKey() { m_eType = KEY_VECTOR3; - m_nCount = 0; // Ű īƮ + m_nCount = 0; // key count m_fSamplingRate = 30.0; m_pDatas = NULL; } @@ -22,7 +22,7 @@ CN3AnimKey::~CN3AnimKey() { } void CN3AnimKey::Release() { - m_nCount = 0; // Ű īƮ + m_nCount = 0; // key count m_fSamplingRate = 30.0; delete[] m_pDatas; m_pDatas = NULL; @@ -38,7 +38,7 @@ void CN3AnimKey::Alloc(int nCount, float fSamplingRate, ANIMATION_KEY_TYPE eType return; } if (fSamplingRate <= 0.0f) { - __ASSERT(0, "Animation Sampling Rate ݵ 0 Ŀ մϴ."); + __ASSERT(0, "Animation Sampling Rate must be greater than 0."); return; } @@ -53,10 +53,10 @@ void CN3AnimKey::Alloc(int nCount, float fSamplingRate, ANIMATION_KEY_TYPE eType m_fSamplingRate = fSamplingRate; if (KEY_VECTOR3 == m_eType) { - m_pDatas = new __Vector3[nCount + 1]; // Ѱ ְ Ҵ. + m_pDatas = new __Vector3[nCount + 1]; // Allocate one more space. memset(m_pDatas, 0, sizeof(__Vector3) * (nCount + 1)); } else if (KEY_QUATERNION == m_eType) { - m_pDatas = new __Quaternion[nCount + 1]; // Ѱ ְ Ҵ. + m_pDatas = new __Quaternion[nCount + 1]; // Allocate one more space. memset(m_pDatas, 0, sizeof(__Quaternion) * (nCount + 1)); } } @@ -67,9 +67,9 @@ bool CN3AnimKey::Load(HANDLE hFile) { } DWORD dwRWC = 0; - ReadFile(hFile, &m_nCount, 4, &dwRWC, NULL); // Ű  ִ + ReadFile(hFile, &m_nCount, 4, &dwRWC, NULL); // How many keys are there? - // Ű Ͽ б.. + // Read key value from file.. if (m_nCount > 0) { ReadFile(hFile, &m_eType, 4, &dwRWC, NULL); // Key Type ReadFile(hFile, &m_fSamplingRate, 4, &dwRWC, NULL); // Sampling Rate @@ -77,11 +77,11 @@ bool CN3AnimKey::Load(HANDLE hFile) { this->Alloc(m_nCount, m_fSamplingRate, m_eType); if (KEY_VECTOR3 == m_eType) { ReadFile(hFile, m_pDatas, sizeof(__Vector3) * m_nCount, &dwRWC, NULL); - __Vector3 * pKeys = (__Vector3 *)m_pDatas; // ϳ ش. + __Vector3 * pKeys = (__Vector3 *)m_pDatas; // Copy one more at the end. pKeys[m_nCount] = pKeys[m_nCount - 1]; } else if (KEY_QUATERNION == m_eType) { ReadFile(hFile, m_pDatas, sizeof(__Quaternion) * m_nCount, &dwRWC, NULL); - __Quaternion * pKeys = (__Quaternion *)m_pDatas; // ϳ ش. + __Quaternion * pKeys = (__Quaternion *)m_pDatas; // Copy one more at the end. pKeys[m_nCount] = pKeys[m_nCount - 1]; } } @@ -92,7 +92,7 @@ bool CN3AnimKey::Load(HANDLE hFile) { #ifdef _N3TOOL bool CN3AnimKey::Save(HANDLE hFile) { DWORD dwRWC = 0; - WriteFile(hFile, &m_nCount, 4, &dwRWC, NULL); // Ű  ִ + WriteFile(hFile, &m_nCount, 4, &dwRWC, NULL); // How many keys are there? if (m_nCount > 0) { WriteFile(hFile, &m_eType, 4, &dwRWC, NULL); // Key Type @@ -135,7 +135,7 @@ void CN3AnimKey::Add(CN3AnimKey & AKSrc, int nIndexS, int nIndexE) { return; } - int nAddCount = nIndexE - nIndexS + 1; // ߰ + int nAddCount = nIndexE - nIndexS + 1; // Number to add int nPrevCount = m_nCount; void * pVBackup = NULL; @@ -150,17 +150,17 @@ void CN3AnimKey::Add(CN3AnimKey & AKSrc, int nIndexS, int nIndexE) { } } - this->Alloc(nPrevCount + nAddCount, AKSrc.SamplingRate(), AKSrc.Type()); // Ҵ. + this->Alloc(nPrevCount + nAddCount, AKSrc.SamplingRate(), AKSrc.Type()); // New allocation. if (nPrevCount > 0) { if (KEY_VECTOR3 == m_eType) { - memcpy(m_pDatas, pVBackup, sizeof(__Vector3) * nPrevCount); // restore + memcpy(m_pDatas, pVBackup, sizeof(__Vector3) * nPrevCount); // restore what was backed up } else if (KEY_QUATERNION == m_eType) { - memcpy(m_pDatas, pVBackup, sizeof(__Quaternion) * nPrevCount); // restore + memcpy(m_pDatas, pVBackup, sizeof(__Quaternion) * nPrevCount); // restore what was backed up } } if (KEY_VECTOR3 == m_eType) { - for (int i = 0; i < nAddCount; i++) // ߰. + for (int i = 0; i < nAddCount; i++) // addition. { __Vector3 * pvTmp = (__Vector3 *)AKSrc.DataGet(nIndexS + i); if (pvTmp) { @@ -170,7 +170,7 @@ void CN3AnimKey::Add(CN3AnimKey & AKSrc, int nIndexS, int nIndexE) { } } } else if (KEY_QUATERNION == m_eType) { - for (int i = 0; i < nAddCount; i++) // ߰. + for (int i = 0; i < nAddCount; i++) // addition. { __Quaternion * pvTmp = (__Quaternion *)AKSrc.DataGet(nIndexS + i); if (pvTmp) { @@ -194,7 +194,7 @@ void CN3AnimKey::Duplicate(CN3AnimKey * pSrc) { m_nCount = pSrc->Count(); - // Ű Ͽ б.. + // Read key value from file.. if (m_nCount > 0) { m_eType = pSrc->Type(); m_fSamplingRate = pSrc->SamplingRate(); diff --git a/src/engine/N3Base/N3AnimKey.h b/src/engine/N3Base/N3AnimKey.h index 2d354cb3..52940dd7 100644 --- a/src/engine/N3Base/N3AnimKey.h +++ b/src/engine/N3Base/N3AnimKey.h @@ -17,12 +17,12 @@ class CN3AnimKey : CN3Base { protected: ANIMATION_KEY_TYPE m_eType; // Key Type - Position Rotation Scale - int m_nCount; // Ű īƮ - float m_fSamplingRate; // Sampling Rate - ǥ 30 Frame Per Sec ̴.. + int m_nCount; // key count + float m_fSamplingRate; // Sampling Rate - The standard is 30 Frame Per Sec. void * m_pDatas; public: - ANIMATION_KEY_TYPE Type() { return m_eType; } // Ű , Ϳ ʹϾ ° ִ.. + ANIMATION_KEY_TYPE Type() { return m_eType; } // There are key types, vector and quaternion types. void Add(CN3AnimKey & AKSrc, int nIndexS, int nIndexE); // void Translate(int nIndexStart, int nIndexEnd, float fDelta, int nKFlags); bool DataGet(float fFrm, __Vector3 & v) { diff --git a/src/engine/N3Base/N3AnimatedTexures.cpp b/src/engine/N3Base/N3AnimatedTexures.cpp index bb732565..945f0340 100644 --- a/src/engine/N3Base/N3AnimatedTexures.cpp +++ b/src/engine/N3Base/N3AnimatedTexures.cpp @@ -51,13 +51,13 @@ bool CN3AnimatedTexures::Load(HANDLE hFile) { int nL = 0; char szFN[256] = ""; - m_TexRefs.assign(iTC, NULL); // Texture Pointer Pointer Ҵ.. - for (int i = 0; i < iTC; i++) // Texture Count ŭ ̸ о ؽó θ.. + m_TexRefs.assign(iTC, NULL); // Texture Pointer Pointer allocation.. + for (int i = 0; i < iTC; i++) // Read the file name as much as Texture Count and load the texture. { ReadFile(hFile, &nL, 4, &dwRWC, NULL); if (nL > 0) { ReadFile(hFile, szFN, nL, &dwRWC, NULL); - szFN[nL] = NULL; // ؽó ̸.. + szFN[nL] = NULL; //Texture file name.. m_TexRefs[i] = s_MngTex.Get(szFN); } } @@ -75,7 +75,7 @@ bool CN3AnimatedTexures::Save(HANDLE hFile) { int iTC = m_TexRefs.size(); WriteFile(hFile, &iTC, 4, &dwRWC, NULL); - for (int i = 0; i < iTC; i++) // Texture Count ŭ ̸ о ؽó θ.. + for (int i = 0; i < iTC; i++) // Read the file name as much as Texture Count and load the texture. { nL = 0; if (m_TexRefs[i]) { @@ -83,7 +83,7 @@ bool CN3AnimatedTexures::Save(HANDLE hFile) { } WriteFile(hFile, &nL, 4, &dwRWC, NULL); if (nL > 0) { - WriteFile(hFile, m_TexRefs[i]->FileName().c_str(), nL, &dwRWC, NULL); // ؽó ̸.. + WriteFile(hFile, m_TexRefs[i]->FileName().c_str(), nL, &dwRWC, NULL); //Texture file name.. } } @@ -99,6 +99,6 @@ void CN3AnimatedTexures::Tick() { int iTC = m_TexRefs.size(); m_fTexIndex += CN3Base::s_fSecPerFrm * m_fTexFPS; if (m_fTexIndex >= iTC) { - m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // Ҽ ȴ??(Ͽư ~) + m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) } } diff --git a/src/engine/N3Base/N3Base.cpp b/src/engine/N3Base/N3Base.cpp index 010591b3..76b0da5f 100644 --- a/src/engine/N3Base/N3Base.cpp +++ b/src/engine/N3Base/N3Base.cpp @@ -15,50 +15,50 @@ ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// -LPDIRECT3DDEVICE9 CN3Base::s_lpD3DDev = NULL; // .. ڴ ϸ ȵȴ.. -DWORD CN3Base::s_dwTextureCaps = 0; // Texture ȣȯ.. +LPDIRECT3DDEVICE9 CN3Base::s_lpD3DDev = NULL; // Reference pointers.. should not be freed arbitrarily.. +DWORD CN3Base::s_dwTextureCaps = 0; // Texture compatibility... float CN3Base::s_fFrmPerSec = 30.0f; // Frame Per Second float CN3Base::s_fSecPerFrm = 1.0f / 30.0f; // Second per Frame -HWND CN3Base::s_hWndBase = NULL; // Init Ҷ Window Handle -HWND CN3Base::s_hWndPresent = NULL; // ֱٿ Present Window Handle +HWND CN3Base::s_hWndBase = NULL; // Window handle used at init +HWND CN3Base::s_hWndPresent = NULL; // Window Handle recently presented -D3DPRESENT_PARAMETERS CN3Base::s_DevParam; // Device Present Parameter -D3DCAPS9 CN3Base::s_DevCaps; // Device ȣȯ... +D3DPRESENT_PARAMETERS CN3Base::s_DevParam; // Device Creation Present Parameter +D3DCAPS9 CN3Base::s_DevCaps; // Device Compatibility... std::string CN3Base::s_szPath; __CameraData CN3Base::s_CameraData; // Camera Data __ResrcInfo CN3Base::s_ResrcInfo; // Rendering Information -__Options CN3Base::s_Options; // ɼǵ... +__Options CN3Base::s_Options; // Various options etc... #ifdef _DEBUG __RenderInfo CN3Base::s_RenderInfo; // Rendering Information #endif -#ifdef _N3GAME // ƴ ʿ... -CN3SndMgr CN3Base::s_SndMgr; // ޴. +#ifdef _N3GAME // In non-game tools, you don't need it... +CN3SndMgr CN3Base::s_SndMgr; // Sound Manager. #endif -#ifdef _N3UIE // ui ϶ ʿϴ. -CN3SndMgr CN3Base::s_SndMgr; // ޴. +#ifdef _N3UIE // Required for ui editor. +CN3SndMgr CN3Base::s_SndMgr; // Sound Manager. #endif CN3Mng CN3Base::s_MngTex; // Texture Manager CN3Mng CN3Base::s_MngMesh; // Mesh Manager -CN3Mng CN3Base::s_MngVMesh; // ܼ ︸ ִ ޽ - ַ 浹 üũ .. +CN3Mng CN3Base::s_MngVMesh; // A mesh with only polygons - mainly used for collision checking. CN3Mng CN3Base::s_MngPMesh; // Progressive Mesh Manager CN3Mng CN3Base::s_MngJoint; // Joint Manager CN3Mng CN3Base::s_MngSkins; // Character Part Skins Manager CN3Mng CN3Base::s_MngAniCtrl; // Animation Manager -CN3Mng CN3Base::s_MngFXPMesh; // FX PMesh - Ϲ PMesh ٸ. -CN3Mng CN3Base::s_MngFXShape; // FX Shape - Ϲ shape ٸ. +CN3Mng CN3Base::s_MngFXPMesh; // PMesh used in FX - The file uses general PMesh, but the contents are different. +CN3Mng CN3Base::s_MngFXShape; // Shape used in FX - The file uses a general shape, but the inside is different. CN3AlphaPrimitiveManager CN3Base:: - s_AlphaMgr; // Alpha blend .. ߰ߴٰ.. ī޶ Ÿ ߾ ϰ Ѳ ׸.. + s_AlphaMgr; // Manage the polygons to be alpha blended.. Add them.. Arrange them according to the camera distance and draw them all at once.. #ifdef _N3GAME -CLogWriter g_Log; // α ... +CLogWriter g_Log; // Leave a log... #endif CN3Base::CN3Base() { - m_dwType = OBJ_BASE; // "MESH", "CAMERA", "SCENE", "???" .... ... + m_dwType = OBJ_BASE; // "MESH", "CAMERA", "SCENE", "???" .... and so on... m_szName = ""; } @@ -260,7 +260,7 @@ void CN3Base::PathSet(const std::string & szPath) { return; } - CharLower(&(s_szPath[0])); // ݵ ҹڷ ش.. + CharLower(&(s_szPath[0])); // Be sure to make it in lower case. if (s_szPath.size() > 1) { if (s_szPath[s_szPath.size() - 1] != '\\') { s_szPath += '\\'; diff --git a/src/engine/N3Base/N3Base.h b/src/engine/N3Base/N3Base.h index ce989b91..d3172917 100644 --- a/src/engine/N3Base/N3Base.h +++ b/src/engine/N3Base/N3Base.h @@ -15,10 +15,10 @@ #include -#if _N3GAME // ƴ ʿ... +#if _N3GAME // In non-game tools, you don't need it... #include "N3SndMgr.h" #endif -#ifdef _N3UIE // ui ϶ ʿϴ. +#ifdef _N3UIE // Required for ui editor. #include "N3SndMgr.h" #endif @@ -32,7 +32,7 @@ const DWORD TEX_CAPS_MIPMAP = 0x00000040; const DWORD TEX_CAPS_POW2 = 0x00000080; const float CAMERA_RADIUS_UNIT = 2.0f; -const int MAX_CAMERA_RADIUS = 512; // 2 128 Ʈ δƮ ̸ ´.. +const int MAX_CAMERA_RADIUS = 512; // Pre-calculate 128 dot products in units of 2 meters. enum TIMER_COMMAND { TIMER_RESET, @@ -56,9 +56,9 @@ struct __CameraData { __Vector3 vAt; // Camera At Vector __Vector3 vUp; // Camera Up Vector - float fFOV; // ī޶ : Field Of View + float fFOV; // camera lens angle : Field Of View // float fInverse_SineHalfOfFOV; - float fAspect; // Ⱦ + float fAspect; // aspect ratio float fNP; // NearPlane float fFP; // FarPlane D3DVIEWPORT9 vp; // ViewPort; @@ -68,12 +68,12 @@ struct __CameraData { float fFrustum[6][4]; - // fRadius - ü ణ ְ ׸ŭ Ŭ ְ Ѵ.. + // fRadius - If you hold it a little more than the radius of the object and insert it, you will have enough room for clipping. BOOL IsOutOfFrustum(const __Vector3 & vPosition, float fRadius) - // ̸ ī޶ Ʈ δƮ ī޶ ü ۿ ش. + // Returns true if it is outside the camera tetrahedron based on the precomputed dot product of the camera plane. { if ((vEye - vPosition).Magnitude() > fFP + fRadius) { - return TRUE; // Far Plane Ÿüũ + return TRUE; // Far Plane - distance check } int p; @@ -91,16 +91,16 @@ struct __CameraData { struct __RenderInfo { int nShape; int nShape_Part; - int nShape_Polygon; // ܼ + int nShape_Polygon; // Simple Polygon int nChr; int nChr_Part; - int nChr_Polygon; // ij - int nChr_Plug; // ijͿ .. - int nChr_Plug_Polygon; // ijͿ .. + int nChr_Polygon; // character polygon + int nChr_Plug; // Weapons attached to the character, etc. + int nChr_Plug_Polygon; // Polygons such as weapons attached to characters.. - int nTerrain_Polygon; // Ÿ .. - int nTerrain_Tile_Polygon; // Ÿ .. + int nTerrain_Polygon; // Tiled terrain polygons.. + int nTerrain_Tile_Polygon; // Tiled terrain polygons.. int nAlpha_Polygon; @@ -109,7 +109,7 @@ struct __RenderInfo { int nTexture_128X128; // 128 X 128 Texture int nTexture_256X256; // 256 X 256 Texture int nTexture_512X512; // 512 X 512 Texture - int nTexture_Huge; // 512 X 512 ̻ size + int nTexture_Huge; // 512 X 512 or larger size int nTexture_OtherSize; // Other size }; @@ -119,24 +119,24 @@ struct __ResrcInfo { int nTexture_Loaded_128X128; // 128 X 128 Texture int nTexture_Loaded_256X256; // 256 X 256 Texture int nTexture_Loaded_512X512; // 512 X 512 Texture - int nTexture_Loaded_Huge; // 512 X 512 ̻ size + int nTexture_Loaded_Huge; // 512 X 512 or larger size int nTexture_Loaded_OtherSize; // Other size }; struct __Options { int iUseShadow; - int iTexLOD_Chr; // 0 - ũ.. 1 - Ѵܰ ۰. 2 - δܰ ۰.. - int iTexLOD_Shape; // 0 - ũ.. 1 - Ѵܰ ۰. 2 - δܰ ۰.. - int iTexLOD_Terrain; // 0 - ũ.. 1 - Ѵܰ ۰. 2 - δܰ ۰.. + int iTexLOD_Chr; // 0 - original size. 1 - one size smaller. 2 - two steps smaller.. + int iTexLOD_Shape; // 0 - original size. 1 - one size smaller. 2 - two steps smaller.. + int iTexLOD_Terrain; // 0 - original size. 1 - one size smaller. 2 - two steps smaller.. int iViewWidth; int iViewHeight; int iViewColorDepth; int iViewDist; - int iEffectSndDist; // Ʈ Ÿ + int iEffectSndDist; // effect sound distance bool bSndEnable; // 0 - High, 1 - Low - bool bSndDuplicated; // ߺ - bool bWindowCursor; // 0 - ӿ ׷ִ Ŀ 1 - Ŀ + bool bSndDuplicated; // Use of duplicate sound sources + bool bWindowCursor; // 0 - Cursor drawn by game 1 - Use window cursor void InitDefault() { iUseShadow = true; @@ -157,47 +157,47 @@ struct __Options { class CN3Base { public: - static LPDIRECT3DDEVICE9 s_lpD3DDev; // Device .. ڴ ϸ ȵȴ.. - static D3DPRESENT_PARAMETERS s_DevParam; // Device Present Parameter - static D3DCAPS9 s_DevCaps; // Device ȣȯ... - static DWORD s_dwTextureCaps; // Texture .. DXT1 ~ DXT5, Square Only - static HWND s_hWndBase; // Init Ҷ Window Handle - static HWND s_hWndPresent; // ֱٿ Present Window Handle - - static __CameraData s_CameraData; // ī޶ .. + static LPDIRECT3DDEVICE9 s_lpD3DDev; // Device reference pointer.. You must not release it arbitrarily.. + static D3DPRESENT_PARAMETERS s_DevParam; // Device Creation Present Parameter + static D3DCAPS9 s_DevCaps; // Device Compatibility... + static DWORD s_dwTextureCaps; // Texture support.. DXT1 ~ DXT5, Square Only + static HWND s_hWndBase; // Window handle used at init + static HWND s_hWndPresent; // Window Handle recently presented + + static __CameraData s_CameraData; // Camera data static variable.. static __ResrcInfo s_ResrcInfo; // Rendering Information.. - static __Options s_Options; // ɼǵ... + static __Options s_Options; // Various options... #ifdef _DEBUG static __RenderInfo s_RenderInfo; // Rendering Information.. #endif static float s_fFrmPerSec; // Frame Per Second - static float s_fSecPerFrm; // Second Per Frame = 1.0f/s_fFrmPerSec (Dino ߰) + static float s_fSecPerFrm; // Second Per Frame = 1.0f/s_fFrmPerSec (added by Dino) -#ifdef _N3GAME // ƴ ʿ... +#ifdef _N3GAME // In non-game tools, you don't need it... static CN3SndMgr s_SndMgr; #endif -#ifdef _N3UIE // ui ϶ ʿϴ. +#ifdef _N3UIE // Required for ui editor. static CN3SndMgr s_SndMgr; #endif static CN3AlphaPrimitiveManager - s_AlphaMgr; // Alpha blend .. ߰ߴٰ.. ī޶ Ÿ ߾ ϰ Ѳ ׸.. + s_AlphaMgr; // Manages the polygons to be alpha blended.. Adds them.. Washes them at the camera distance, arranges them, and draws them all at once.. static CN3Mng s_MngTex; // Texture Manager static CN3Mng s_MngMesh; // Normal Mesh Manager - static CN3Mng s_MngVMesh; // ܼ ︸ ִ ޽ - ַ 浹 üũ .. + static CN3Mng s_MngVMesh; // A mesh with only polygons - mainly used for collision checking. static CN3Mng s_MngPMesh; // Progressive Mesh Manager static CN3Mng s_MngJoint; // Joint Manager static CN3Mng s_MngSkins; // Character Part Skin Manager static CN3Mng s_MngAniCtrl; // Animation Manager - static CN3Mng s_MngFXPMesh; // FX PMesh - Ϲ PMesh ٸ. - static CN3Mng s_MngFXShape; // FX Shape - Ϲ shape ٸ. + static CN3Mng s_MngFXPMesh; // PMesh used in FX - The file uses general PMesh, but the contents are different. + static CN3Mng s_MngFXShape; // Shape used in FX - The file uses a general shape, but the inside is different. protected: - static std::string s_szPath; // α׷ .. + static std::string s_szPath; // path where the program was executed. protected: - DWORD m_dwType; // "MESH", "CAMERA", "SCENE", "???" .... ... + DWORD m_dwType; // "MESH", "CAMERA", "SCENE", "???" .... and so on... public: std::string m_szName; @@ -212,7 +212,7 @@ class CN3Base { static float TimerProcess(TIMER_COMMAND command); - DWORD Type() { return m_dwType; } // ü .. + DWORD Type() { return m_dwType; } // object type... void ReleaseResrc(); //#ifdef _N3TOOL diff --git a/src/engine/N3Base/N3BaseFileAccess.cpp b/src/engine/N3Base/N3BaseFileAccess.cpp index a94b8d25..f8c1756f 100644 --- a/src/engine/N3Base/N3BaseFileAccess.cpp +++ b/src/engine/N3Base/N3BaseFileAccess.cpp @@ -12,14 +12,14 @@ CN3BaseFileAccess::CN3BaseFileAccess() { m_dwType |= OBJ_BASE_FILEACCESS; m_szFileName = ""; - m_iLOD = 0; // εҶ LOD + m_iLOD = 0; // LOD for loading } CN3BaseFileAccess::~CN3BaseFileAccess() {} void CN3BaseFileAccess::Release() { m_szFileName = ""; - m_iLOD = 0; // εҶ LOD + m_iLOD = 0; // LOD for loading CN3Base::Release(); } @@ -27,11 +27,11 @@ void CN3BaseFileAccess::FileNameSet(const std::string & szFileName) { std::string szTmpFN = szFileName; if (!szTmpFN.empty()) { - CharLower(&(szTmpFN[0])); // ҹڷ .. + CharLower(&(szTmpFN[0])); // All lowercase letters... } - int iPos = szTmpFN.find(s_szPath); // ڿ Base Path ġϴ ̸ ִ . + int iPos = szTmpFN.find(s_szPath); // See if the string has a name that matches the Base Path. if (iPos >= 0) { - m_szFileName = szTmpFN.substr(s_szPath.size()); // ΰ ġϸ.. δ ©ش.. + m_szFileName = szTmpFN.substr(s_szPath.size()); // If the paths match, the long path is cut off. } else { m_szFileName = szTmpFN; } @@ -62,7 +62,7 @@ bool CN3BaseFileAccess::LoadFromFile() { std::string szFullPath; if (-1 != m_szFileName.find(':') || -1 != m_szFileName.find("\\\\") || - -1 != m_szFileName.find("//")) // ڿ ':', '\\', '//' ü ̴.. + -1 != m_szFileName.find("//")) // If the string contains ':', '\\', or '//', it is a full path. { szFullPath = m_szFileName; } else { @@ -107,7 +107,7 @@ bool CN3BaseFileAccess::SaveToFile() { std::string szFullPath; if (-1 != m_szFileName.find(':') || -1 != m_szFileName.find("\\\\") || - -1 != m_szFileName.find("//")) // ڿ ':', '\\', '//' ü ̴.. + -1 != m_szFileName.find("//")) // If the string contains ':', '\\', '//', it is the full path. { szFullPath = m_szFileName; } else { diff --git a/src/engine/N3Base/N3BaseFileAccess.h b/src/engine/N3Base/N3BaseFileAccess.h index 95b5301c..4ce50994 100644 --- a/src/engine/N3Base/N3BaseFileAccess.h +++ b/src/engine/N3Base/N3BaseFileAccess.h @@ -11,22 +11,22 @@ class CN3BaseFileAccess : public CN3Base { protected: - std::string m_szFileName; // Base Path + ̸ + std::string m_szFileName; // Local path excluding Base Path + file name public: - int m_iLOD; // εҶ LOD + int m_iLOD; // LOD to use when loading public: const std::string & FileName() const { return m_szFileName; } // Full Path void FileNameSet(const std::string & szFileName); - bool LoadFromFile(); // Ͽ о. - virtual bool LoadFromFile(const std::string & szFileName); // Ͽ о. - virtual bool Load(HANDLE hFile); // ڵ鿡 о.. + bool LoadFromFile(); // Read from file. + virtual bool LoadFromFile(const std::string & szFileName); // Read from file. + virtual bool Load(HANDLE hFile); // Read from handle.. - virtual bool SaveToFile(); // ̸ . - virtual bool SaveToFile(const std::string & szFileName); // ̸ . - virtual bool Save(HANDLE hFile); // ڵ .. + virtual bool SaveToFile(); // Save as current file name. + virtual bool SaveToFile(const std::string & szFileName); // Save with new name. + virtual bool Save(HANDLE hFile); // Save through handle.. public: void Release(); diff --git a/src/engine/N3Base/N3Board.cpp b/src/engine/N3Base/N3Board.cpp index 88e2f778..63e10085 100644 --- a/src/engine/N3Base/N3Board.cpp +++ b/src/engine/N3Base/N3Board.cpp @@ -48,7 +48,7 @@ void CN3Board::Release() { } void CN3Board::Tick(float fFrm) { - // ȸ Ų.. + // Rotate.. if (m_dwBoardType == BOARD_Y) { __Vector3 vDir = s_CameraData.vEye - m_vPos; if (vDir.x > 0.0f) { @@ -67,7 +67,7 @@ void CN3Board::Tick(float fFrm) { if (iTC > 1) { m_fTexIndex += CN3Base::s_fSecPerFrm * m_fTexFPS; if (m_fTexIndex >= iTC) { - m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // Ҽ ȴ??(Ͽư ~) + m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) } } } @@ -82,7 +82,7 @@ void CN3Board::Render() { s_lpD3DDev->SetTransform(D3DTS_WORLD, &m_Matrix); static DWORD dwAlpha, dwFog, dwCull; - if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // Alpha + if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // use Alpha { s_lpD3DDev->GetRenderState(D3DRS_ALPHABLENDENABLE, &dwAlpha); if (TRUE != dwAlpha) { @@ -91,7 +91,7 @@ void CN3Board::Render() { s_lpD3DDev->SetRenderState(D3DRS_SRCBLEND, m_Mtl.dwSrcBlend); s_lpD3DDev->SetRenderState(D3DRS_DESTBLEND, m_Mtl.dwDestBlend); } - if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Fog .. + if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Ignore Fog... { s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwFog); if (TRUE == dwFog) { @@ -117,7 +117,7 @@ void CN3Board::Render() { s_lpD3DDev->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); } if ((m_Mtl.nRenderFlags & RF_NOTUSEFOG) && TRUE == dwFog) { - s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Ȱ ʴ´.. + s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Do not use fog.. } if ((m_Mtl.nRenderFlags & RF_DOUBLESIDED) && D3DCULL_NONE != dwCull) { s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, dwCull); @@ -174,38 +174,38 @@ void CN3Board::LoadFromText(const std::string & szFName) { Release(); FILE * stream = fopen(szFName.c_str(), "r"); - __ASSERT(stream, " ã ϴ."); + __ASSERT(stream, "The specified file cannot be found."); int result, iCount; char szBoardType[64] = ""; __Vector3 vPos; float fWidth, fHeight; result = fscanf(stream, "Position = %f %f %f\n", &(vPos.x), &(vPos.y), &(vPos.z)); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Size = %f %f\n", &fWidth, &fHeight); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Rotation Axis = %s\n", szBoardType); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Frame per Sec = %f\n", &m_fTexFPS); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Render Flag = %d\n", &m_Mtl.nRenderFlags); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Source Blend = %d\n", &m_Mtl.dwSrcBlend); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Dest Blend = %d\n", &m_Mtl.dwDestBlend); - __ASSERT(result != EOF, "߸ Machine "); - // Ȱ, culling ɼ 켱 . + __ASSERT(result != EOF, "Invalid machine settings file"); + // Lets not decide on fog or culling options first. result = fscanf(stream, "Texture Count = %d\n", &iCount); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); if (iCount > 0) { char szTexFName[_MAX_PATH]; TexAlloc(iCount); for (int i = 0; i < iCount; ++i) { result = fscanf(stream, "Texture Name = %s\n", &szTexFName); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); TexSet(i, szTexFName); } } diff --git a/src/engine/N3Base/N3Board.h b/src/engine/N3Base/N3Board.h index 93543bbc..eda6db0f 100644 --- a/src/engine/N3Base/N3Board.h +++ b/src/engine/N3Base/N3Board.h @@ -17,12 +17,12 @@ class CN3Board : public CN3Transform { protected: __VertexT1 m_vRects[4]; float m_fTexIndex; - std::vector m_TexRefs; // ؽó Ʈ.. + std::vector m_TexRefs; // Texture pointer list.. public: DWORD m_dwBoardType; // Board Type float m_fTexFPS; // Frame Per Second - __Material m_Mtl; // .. + __Material m_Mtl; // texture.. public: void TexSet(int index, const std::string & szFN); diff --git a/src/engine/N3Base/N3Camera.cpp b/src/engine/N3Base/N3Camera.cpp index 3341944b..5749410c 100644 --- a/src/engine/N3Base/N3Camera.cpp +++ b/src/engine/N3Base/N3Camera.cpp @@ -15,7 +15,7 @@ CN3Camera::CN3Camera() { m_Data.vAt = m_vAt = __Vector3(0, 0, 0); m_Data.vUp = m_vScale = __Vector3(0, 1, 0); - m_Data.fFOV = D3DXToRadian(55.0f); // ⺻ 55 + m_Data.fFOV = D3DXToRadian(55.0f); // Default 55 degrees m_Data.fNP = 0.7f; m_Data.fFP = 512.0f; @@ -37,7 +37,7 @@ void CN3Camera::Release() { m_Data.vAt = m_vAt = __Vector3(0, 0, 0); m_Data.vUp = m_vScale = __Vector3(0, 1, 0); - m_Data.fFOV = D3DXToRadian(55.0f); // ⺻ 55 + m_Data.fFOV = D3DXToRadian(55.0f); // Default 55 degrees m_Data.fNP = 0.7f; m_Data.fFP = 512.0f; @@ -210,7 +210,7 @@ BOOL CN3Camera::MoveByWindowMessage(MSG * pMsg) { return TRUE; } } - default: // 콺 ޼ ƴҰ ī޶ ƴϴ. + default: // If it is not a mouse message, it is not a camera movement. return FALSE; } } @@ -230,9 +230,9 @@ void CN3Camera::Zoom(float fDelta) { float fDist = (vPos - m_Data.vAt).Magnitude(); #ifndef _N3INDOOR if (fDist < 0.3f) { - return; // ʹ ʴ´.. + return; // If it is too close, it will not be applied. } else if (fDist > m_Data.fFP * 2.0f) { - return; // ʹ ָ ʴ´. + return; // If it is too far, it will not be applied. } #endif @@ -250,7 +250,7 @@ void CN3Camera::Rotate(float fRadianX, float fRadianY) { __Matrix44 mtx; //by lynus... mtx.RotationY(fRadianY); - __Vector3 v1 = m_vAt - m_vPos, v2; // Rotation LookAt Position ó, Scale UpVector ó .. + __Vector3 v1 = m_vAt - m_vPos, v2; // Rotation is used like LookAt Position, and Scale is used like UpVector. v1 *= mtx; m_vScale *= mtx; @@ -270,7 +270,7 @@ void CN3Camera::Rotate(float fRadianX, float fRadianY) { } #ifdef _N3TOOL -void CN3Camera::LookAround(float fRadianX, float fRadianY) //At Postion ߽ ī޶ .. ġ ٲ.. +void CN3Camera::LookAround(float fRadianX, float fRadianY) //The camera rotates around At Postion, so the position changes. { //static __Matrix44 mtx; //static __Vector3 v1, v2; @@ -296,7 +296,7 @@ void CN3Camera::Rotate(float fRadianX, float fRadianY) { m_vScale *= mtx; #endif */ - m_vPos = m_vAt + v1; // Rotation LookAt Position ó, Scale UpVector ó .. + m_vPos = m_vAt + v1; // Rotation is used like LookAt Position, and Scale is used like UpVector. } #endif // end of #ifdef _N3TOOL @@ -322,7 +322,7 @@ void CN3Camera::MoveStraight(float fDistance, bool bSmall) { #ifdef _N3TOOL void CN3Camera::MovePlane(float fX, float fY) { - __Vector3 vDir = m_vAt - m_vPos; // Rotation LookAt Position ó, Scale UpVector ó .. + __Vector3 vDir = m_vAt - m_vPos; // Rotation is used like LookAt Position, and Scale is used like UpVector. vDir.Normalize(); __Vector3 vHoriz; @@ -337,7 +337,7 @@ void CN3Camera::MovePlane(float fX, float fY) { __Vector3 vMove = (vHoriz * fX) + (vDown * fY); m_vPos += vMove; - m_vAt += vMove; // Rotation LookAt Position ó, Scale UpVector ó .. + m_vAt += vMove; // Rotation is used like LookAt Position, and Scale is used like UpVector. } #endif // end of #ifdef _N3TOOL @@ -371,15 +371,15 @@ void CN3Camera::Apply() { s_lpD3DDev->SetRenderState(D3DRS_FOGTABLEMODE, D3DFOG_NONE); s_lpD3DDev->SetRenderState(D3DRS_FOGVERTEXMODE, D3DFOG_LINEAR); s_lpD3DDev->SetRenderState(D3DRS_RANGEFOGENABLE, TRUE); - // Range Fog : - Ÿ fog ȴ. - poligon fog ȴ.(ū fog ִ.) - // range fog = FALSE depth fog Ǿ ȴ. + //Range Fog: Advantages - Fog is applied based on distance. Disadvantage - The same fog value is applied per poligon. (If there is a large polygon, the fog may be awkward.) + // When range fog = FALSE, fog is calculated and applied based on the depth buffer. - // vertex fog pixel fog(table fog) - Dino.. - // vertex fog : vertex depth vertex Ǵ . - // ī޶ ٺ vertex ߽ fog ϴ° ȴ. - // pixel fog : pixel depth fog ϴ° . + // Difference between vertex fog and pixel fog (table fog) - Written by Dino.. + // Vertex fog: It seems to be calculated by interpolation between vertices based on the depth value of the vertices. + // Therefore, when rotating the camera, the fog is observed to change around the vertex. + // pixel fog: It seems that fog is calculated based on the depth value of the pixel. - // fog ̸ ū ϳ ׷ fog ־ ִ. + // To see the differences between all the fogs above, you can easily observe them by drawing a large board and adding the fog. // s_lpD3DDev->SetRenderState( D3DRS_FOGSTART, *(DWORD*)&m_fFogStart); // s_lpD3DDev->SetRenderState( D3DRS_FOGEND, *(DWORD*)&m_fFogEnd); @@ -400,19 +400,19 @@ void CN3Camera::Tick(float fFrm) { // View Matrix Projection Matrix Setting ///////////////////////////////////////////////////////////////////////////////////////////////////////// - // __Vector3 m_vEye, m_vUp ->> m_vPos, m_vScale Ѵ.. ߿!! + // __Vector3 m_vEye, m_vUp ->> m_vPos, m_vScale Replace with... Important!! m_Data.vEye = m_vPos; m_Data.vAt = m_vAt; - m_Data.vUp = m_vScale; // Up Vector ó . + m_Data.vUp = m_vScale; // Up Vector Write it like ///////////////////////////////////////////////////////////////////////////////////////////////////////// // m_Data.fInverse_SineHalfOfFOV = 1.0f/sinf(m_Data.fFOV*0.5f); - ::D3DXMatrixLookAtLH(&m_Data.mtxView, &m_Data.vEye, &m_Data.vAt, &m_Data.vUp); // Look At - ::D3DXMatrixInverse(&m_Data.mtxViewInverse, NULL, &m_Data.mtxView); // View Inverse ϱ.. - CN3Base::s_lpD3DDev->GetViewport(&m_Data.vp); // View port ... + ::D3DXMatrixLookAtLH(&m_Data.mtxView, &m_Data.vEye, &m_Data.vAt, &m_Data.vUp); // Apply Look At + ::D3DXMatrixInverse(&m_Data.mtxViewInverse, NULL, &m_Data.mtxView); // Find the View Inverse matrix... + CN3Base::s_lpD3DDev->GetViewport(&m_Data.vp); // Get view port... - m_Data.fAspect = (float)m_Data.vp.Width / (float)m_Data.vp.Height; // Ⱦ + m_Data.fAspect = (float)m_Data.vp.Width / (float)m_Data.vp.Height; // aspect ratio if (m_bOrtho) { float fL = (m_Data.vAt - m_Data.vEye).Magnitude() / 2.0f; ::D3DXMatrixOrthoLH(&m_Data.mtxProjection, fL, fL / m_Data.fAspect, m_Data.fNP * (1.0f + fL / 1000.0f), diff --git a/src/engine/N3Base/N3Camera.h b/src/engine/N3Base/N3Camera.h index 7097f950..b5859be2 100644 --- a/src/engine/N3Base/N3Camera.h +++ b/src/engine/N3Base/N3Camera.h @@ -23,19 +23,19 @@ class CN3Camera : public CN3Transform { void LookAt(const __Vector3 & vEye, const __Vector3 & vAt, const __Vector3 & vUp); __Vector3 EyePos() { return m_vPos; } __Vector3 AtPos() { return m_vAt; } - __Vector3 UpVector() { return m_vScale; } // Rotation LookAt Position ó, Scale UpVector ó .. + __Vector3 UpVector() { return m_vScale; } // Rotation is used like LookAt Position, and Scale is used like UpVector. __Vector3 Dir() { __Vector3 vDir = m_vAt - m_vPos; vDir.Normalize(); return vDir; - } // ǵ. + } // Reverse direction. void EyePosSet(const __Vector3 & v) { m_vPos = v; } void EyePosSet(float x, float y, float z) { m_vPos.Set(x, y, z); } void AtPosSet(const __Vector3 & v) { m_vAt = v; } void AtPosSet(float x, float y, float z) { m_vAt.Set(x, y, z); } - void UpVectorSet(const __Vector3 & v) { m_vScale = v; } // Scale UpVector ó .. - void UpVectorSet(float x, float y, float z) { m_vScale.Set(x, y, z); } // Scale UpVector ó .. + void UpVectorSet(const __Vector3 & v) { m_vScale = v; } // Scale is used like UpVector. + void UpVectorSet(float x, float y, float z) { m_vScale.Set(x, y, z); } // Scale is used like UpVector. bool Load(HANDLE hFile); @@ -52,7 +52,7 @@ class CN3Camera : public CN3Transform { CN3Camera(); virtual ~CN3Camera(); - void Tick(float fFrm = FRAME_SELFPLAY); // ī޶󰪸 ܼ ϱ⸸ Ѵ.. + void Tick(float fFrm = FRAME_SELFPLAY); // Simply set the camera values. void Render(float fUnitSize = 1.0f); - void Apply(); // õ ī޶ D3DDevice + void Apply(); // Apply set camera values to actual D3DDevice }; diff --git a/src/engine/N3Base/N3Cloak.cpp b/src/engine/N3Base/N3Cloak.cpp index a20811fb..52927231 100644 --- a/src/engine/N3Base/N3Cloak.cpp +++ b/src/engine/N3Base/N3Cloak.cpp @@ -376,7 +376,7 @@ void CN3Cloak::ApplyOffset(D3DXVECTOR3 & vDif) { m_vOffset[i].z = vDif.z * Weight[i]; } m_fOffsetRecoveryTime = 1.4f; - } else { // offset Ǿ ִ . + } else { // Offset is applied. m_fOffsetRecoveryTime -= s_fSecPerFrm; if (m_fOffsetRecoveryTime < 0.0f) { // Recovery process for (int i = 0; i < m_nGridW; i++) { @@ -399,7 +399,7 @@ void CN3Cloak::TickYaw() { } float fYaw = m_bpPlayerBase->Yaw(); - if (fYaw != m_fPrevYaw) { // ȸ ־. + if (fYaw != m_fPrevYaw) { // There was a rotation. if (fYaw - m_fPrevYaw > 0.0f) { if (m_eAnchorPattern == AMP_NONE && m_fAnchorPreserveTime < 0.0f) { MoveAnchorLine(AMP_YAWCCW, 2.0f); diff --git a/src/engine/N3Base/N3Cloak.h b/src/engine/N3Base/N3Cloak.h index 68b39a7b..a8d7bad9 100644 --- a/src/engine/N3Base/N3Cloak.h +++ b/src/engine/N3Base/N3Cloak.h @@ -8,7 +8,7 @@ #define CLOAK_MAX_WIDTH 7 #define CLOAK_MAX_HEIGHT 7 -#define CLOAK_SKIP_LINE 2 // 信 Ŀ ؽ  ִ μ. ̺κ ̵ . ok? +#define CLOAK_SKIP_LINE 2 // Number of lines containing decorative vertices in the cloak. This part does not move. ok? enum e_Cloak_AnchorMovePattern { AMP_NONE = 0, @@ -74,8 +74,8 @@ class CN3Cloak : public CN3Base { float m_fPrevYaw; __Particle * m_pParticle; - D3DXVECTOR3 m_GravityForce; // ߷(.y) ׻־ Ͼ ʴ´.. - D3DXVECTOR3 m_Force; // ܺο . + D3DXVECTOR3 m_GravityForce; // Gravity (.y) must always be present to prevent deformation. + D3DXVECTOR3 m_Force; // Force applied from outside. void UpdateLocalForce(); void ApplyForce(); diff --git a/src/engine/N3Base/N3Eng.cpp b/src/engine/N3Base/N3Eng.cpp index 84e2180b..c4272209 100644 --- a/src/engine/N3Base/N3Eng.cpp +++ b/src/engine/N3Base/N3Eng.cpp @@ -18,17 +18,17 @@ CN3Eng::CN3Eng() { memset(&m_DeviceInfo, 0, sizeof(__D3DDEV_INFO)); m_nModeActive = -1; - m_nAdapterCount = 1; // ׷ ī + m_nAdapterCount = 1; // Number of graphics cards delete[] m_DeviceInfo.pModes; memset(&m_DeviceInfo, 0, sizeof(m_DeviceInfo)); - // Direct3D + // Create Direct3D m_lpD3D = NULL; m_lpD3D = Direct3DCreate9(D3D_SDK_VERSION); if (NULL == m_lpD3D) { MessageBox(::GetActiveWindow(), "Direct3D9 is not installed or lower version.", "Initialization", MB_OK); - // for (int iii = 0; iii < 1; iii++) { // ~ + // for (int iii = 0; iii < 1; iii++) { // Beep several times~ // Beep(2000, 200); // Sleep(300); // } @@ -39,14 +39,14 @@ CN3Eng::CN3Eng() { exit(-1); } - // α׷ .. + // Path where the program was executed.. if (s_szPath.empty()) { char szPath[256]; char szDrive[_MAX_DRIVE], szDir[_MAX_DIR]; ::GetModuleFileName(NULL, szPath, 256); _splitpath(szPath, szDrive, szDir, NULL, NULL); sprintf(szPath, "%s%s", szDrive, szDir); - this->PathSet(szPath); // .. + this->PathSet(szPath); //Path settings.. } #ifdef _N3GAME @@ -86,7 +86,7 @@ CN3Eng::~CN3Eng() { void CN3Eng::Release() { m_nModeActive = -1; - m_nAdapterCount = 1; // ׷ ī + m_nAdapterCount = 1; // Number of graphics cards delete[] m_DeviceInfo.pModes; memset(&m_DeviceInfo, 0, sizeof(m_DeviceInfo)); @@ -109,14 +109,14 @@ void CN3Eng::Release() { } bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, BOOL bUseHW) { - memset(&s_ResrcInfo, 0, sizeof(__ResrcInfo)); // Rendering Information ʱȭ.. + memset(&s_ResrcInfo, 0, sizeof(__ResrcInfo)); // Initialize Rendering Information.. s_hWndBase = hWnd; - int nAMC = m_lpD3D->GetAdapterModeCount(0, D3DFMT_X8R8G8B8); // ÷ īƮ + int nAMC = m_lpD3D->GetAdapterModeCount(0, D3DFMT_X8R8G8B8); // display mode count if (nAMC <= 0) { MessageBox(hWnd, "Can't create D3D - Invalid display mode property.", "initialization", MB_OK); -// { for(int iii = 0; iii < 2; iii++) Beep(2000, 200); Sleep(300); } // ~ +// { for(int iii = 0; iii < 2; iii++) Beep(2000, 200); Sleep(300); } // Beep several times~ #ifdef _N3GAME CLogWriter::Write("Can't create D3D - Invalid display mode property."); #endif @@ -131,7 +131,7 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR delete[] m_DeviceInfo.pModes; m_DeviceInfo.pModes = new D3DDISPLAYMODE[nAMC]; for (int i = 0; i < nAMC; i++) { - m_lpD3D->EnumAdapterModes(0, D3DFMT_X8R8G8B8, i, &m_DeviceInfo.pModes[i]); // ÷ .. + m_lpD3D->EnumAdapterModes(0, D3DFMT_X8R8G8B8, i, &m_DeviceInfo.pModes[i]); // Get display mode.. } D3DDEVTYPE DevType = D3DDEVTYPE_REF; @@ -147,7 +147,7 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR s_DevParam.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT; D3DFORMAT BBFormat = D3DFMT_UNKNOWN; - if (TRUE == bWindowed) // + if (TRUE == bWindowed) // In case of window mode { D3DDISPLAYMODE dm; m_lpD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &dm); @@ -162,7 +162,7 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR s_DevParam.hDeviceWindow = hWnd; } else { s_DevParam.BackBufferCount = 1; - s_DevParam.AutoDepthStencilFormat = D3DFMT_D16; // ڵ ̸ õȴ. + s_DevParam.AutoDepthStencilFormat = D3DFMT_D16; // Ignored if automatically generated. if (16 == dwBPP) { BBFormat = D3DFMT_R5G6B5; } else if (24 == dwBPP) { @@ -176,7 +176,7 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR s_DevParam.BackBufferWidth = dwWidth; s_DevParam.BackBufferHeight = dwHeight; s_DevParam.BackBufferFormat = BBFormat; - s_DevParam.MultiSampleType = D3DMULTISAMPLE_NONE; // Swap Effect Discard ° ƴϸ ݵ ̷ ̾ Ѵ. + s_DevParam.MultiSampleType = D3DMULTISAMPLE_NONE; // If the Swap Effect is not Discard type, it must be like this. s_DevParam.Flags = 0; //#ifdef _N3TOOL s_DevParam.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER; @@ -185,10 +185,10 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR int nMC = m_DeviceInfo.nModeCount; for (int i = 0; i < nMC; i++) { // if (m_DeviceInfo.pModes[i].Width == dwWidth && m_DeviceInfo.pModes[i].Height == dwHeight && - if (m_DeviceInfo.pModes[i].Format == BBFormat) // 尡 ġϸ + if (m_DeviceInfo.pModes[i].Format == BBFormat) // If the modes match { this->FindDepthStencilFormat(0, m_DeviceInfo.DevType, m_DeviceInfo.pModes[i].Format, - &s_DevParam.AutoDepthStencilFormat); // ̿ ٽ ۸ ã´. + &s_DevParam.AutoDepthStencilFormat); // Find the depth and stencil buffer. m_nModeActive = i; break; } @@ -214,7 +214,7 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR CLogWriter::Write(errMsg.str().c_str()); #endif LocalFree(pszDebug); - // for (int iii = 0; iii < 3; iii++) { // ~ + // for (int iii = 0; iii < 3; iii++) { // Beep several times~ // Beep(2000, 200); // Sleep(300); // } @@ -227,21 +227,21 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR #endif } - // Device ׸?? - // DXT .. + // What device support items?? + // Whether DXT is supported... s_dwTextureCaps = 0; s_DevCaps.DeviceType = DevType; s_lpD3DDev->GetDeviceCaps(&s_DevCaps); if (s_DevCaps.MaxTextureWidth < 256 || - s_DevCaps.MaxTextureHeight < 256) // ؽó ũⰡ 256 ϸ.. ƿ .. + s_DevCaps.MaxTextureHeight < 256) // If the texture support size is 256 or less, give up completely. { MessageBox(::GetActiveWindow(), "Can't support this graphic card : Texture size is too small", "Initialization error", MB_OK); #ifdef _N3GAME CLogWriter::Write("Can't support this graphic card : Texture size is too small"); #endif - // for (int iii = 0; iii < 4; iii++) { // ~ + // for (int iii = 0; iii < 4; iii++) { // Beep several times~ // Beep(2000, 200); // Sleep(300); // } @@ -275,7 +275,7 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR s_dwTextureCaps |= TEX_CAPS_POW2; } - // ⺻ Ʈ .. + // Specify basic light information.. for (int i = 0; i < 8; i++) { CN3Light::__Light Lgt; _D3DCOLORVALUE LgtColor = {1.0f, 1.0f, 1.0f, 1.0f}; @@ -283,13 +283,13 @@ bool CN3Eng::Init(BOOL bWindowed, HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWOR s_lpD3DDev->SetLight(i, &Lgt); } - // ⺻ . + // Default view and projection settings. this->LookAt(__Vector3(5, 5, -10), __Vector3(0, 0, 0), __Vector3(0, 1, 0)); this->SetProjection(0.1f, 256.0f, D3DXToRadian(45.0f), (float)dwHeight / dwWidth); RECT rcView = {0, 0, dwWidth, dwHeight}; this->SetViewPort(rcView); - this->SetDefaultEnvironment(); // ⺻ · .. + this->SetDefaultEnvironment(); // Set to default state.. if (m_CB.Init) { if (!m_CB.Init()) { @@ -390,7 +390,7 @@ void CN3Eng::Present(HWND hWnd, RECT * pRC) { // } RECT rc; - if (s_DevParam.Windowed) // ... + if (s_DevParam.Windowed) // In Windows mode... { GetClientRect(s_hWndBase, &rc); pRC = &rc; @@ -402,7 +402,7 @@ void CN3Eng::Present(HWND hWnd, RECT * pRC) { HRESULT rval = s_lpD3DDev->Present(pRC, pRC, hWnd, NULL); if (D3D_OK == rval) { - s_hWndPresent = hWnd; // Present window handle ´. + s_hWndPresent = hWnd; // Save the Present window handle. } else if (D3DERR_DEVICELOST == rval || D3DERR_DEVICENOTRESET == rval) { rval = s_lpD3DDev->Reset(&s_DevParam); if (D3D_OK != rval) { @@ -426,12 +426,12 @@ void CN3Eng::Present(HWND hWnd, RECT * pRC) { } //////////////////////////////////////////////////////////////////////////////// - // ... + // Frame rate measurement... // float fTime = CN3Base::TimerProcess(TIMER_GETABSOLUTETIME); // static float fTimePrev = fTime - 0.03333f; // static DWORD dwFrm = 0; // dwFrm++; - // if (fTime - fTimePrev > 1.0f) { // 1 ̻ Ѵ.. ׷ ġ ´.. + // if (fTime - fTimePrev > 1.0f) { // Only after more than 1 second passes to measure the frame. Otherwise, jagged figures will appear. // s_fFrmPerSec = (float)dwFrm / (fTime - fTimePrev); // dwFrm = 0; // fTimePrev = fTime; @@ -439,18 +439,18 @@ void CN3Eng::Present(HWND hWnd, RECT * pRC) { s_fSecPerFrm = CN3Base::TimerProcess(TIMER_GETELAPSEDTIME); if (s_fSecPerFrm <= 0.001f || s_fSecPerFrm >= 1.0f) { - s_fSecPerFrm = 0.033333f; // ʹ ȳ ⺻ 30 .. + s_fSecPerFrm = 0.033333f; // If it doesn't come out too well, set it to the default value of 30 frames. } - s_fFrmPerSec = 1.0f / s_fSecPerFrm; // ʴ .. + s_fFrmPerSec = 1.0f / s_fSecPerFrm; // Measures the number of frames per second. // fTimePrev = fTime; - // ... + // Frame rate measurement... //////////////////////////////////////////////////////////////////////////////// } void CN3Eng::Clear(D3DCOLOR crFill, RECT * pRC) { RECT rc; - if (NULL == pRC && s_DevParam.Windowed) // ... + if (NULL == pRC && s_DevParam.Windowed) // In Windows mode... { GetClientRect(s_hWndBase, &rc); pRC = &rc; @@ -469,9 +469,9 @@ void CN3Eng::Clear(D3DCOLOR crFill, RECT * pRC) { } void CN3Eng::ClearAuto(RECT * pRC) { - DWORD dwFillColor = D3DCOLOR_ARGB(255, 192, 192, 192); // ⺻ + DWORD dwFillColor = D3DCOLOR_ARGB(255, 192, 192, 192); // Basic color DWORD dwUseFog = FALSE; - s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwUseFog); // Ȱ Ȱ ش.. + s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwUseFog); // When using fog, the fog color is applied as the background color. if (dwUseFog != 0) { s_lpD3DDev->GetRenderState(D3DRS_FOGCOLOR, &dwFillColor); } else { @@ -491,7 +491,7 @@ void CN3Eng::ClearAuto(RECT * pRC) { void CN3Eng::ClearZBuffer(const RECT * pRC) { RECT rc; - if (NULL == pRC && s_DevParam.Windowed) // ... + if (NULL == pRC && s_DevParam.Windowed) // In Windows mode... { GetClientRect(s_hWndBase, &rc); pRC = &rc; @@ -512,7 +512,7 @@ bool CN3Eng::Reset(BOOL bWindowed, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP) { if (dwWidth <= 0 || dwHeight <= 0) { return false; } - if (dwWidth == s_DevParam.BackBufferWidth && dwHeight == s_DevParam.BackBufferHeight) // ʺ ̰ .. + if (dwWidth == s_DevParam.BackBufferWidth && dwHeight == s_DevParam.BackBufferHeight) // When the width and height are the same... { if (0 == dwBPP) { return false; @@ -554,10 +554,10 @@ bool CN3Eng::Reset(BOOL bWindowed, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP) { int nMC = m_DeviceInfo.nModeCount; for (int i = 0; i < nMC; i++) { // if (m_DeviceInfo.pModes[i].Width == dwWidth && m_DeviceInfo.pModes[i].Height == dwHeight && - if (m_DeviceInfo.pModes[i].Format == s_DevParam.BackBufferFormat) // 尡 ġϸ + if (m_DeviceInfo.pModes[i].Format == s_DevParam.BackBufferFormat) // If the modes match { this->FindDepthStencilFormat(0, m_DeviceInfo.DevType, m_DeviceInfo.pModes[i].Format, - &s_DevParam.AutoDepthStencilFormat); // ̿ ٽ ۸ ã´. + &s_DevParam.AutoDepthStencilFormat); // Find the depth and stencil buffer. m_nModeActive = i; break; } @@ -585,13 +585,13 @@ bool CN3Eng::Reset(BOOL bWindowed, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP) { } void CN3Eng::SetDefaultEnvironment() { - // ⺻ + // Specify default rendering state __Matrix44 matWorld; matWorld.Identity(); s_lpD3DDev->SetTransform(D3DTS_WORLD, &matWorld); - // s_lpD3DDev->SetRenderState(D3DRS_ZENABLE, D3DZB_USEW); // Z 밡 - s_lpD3DDev->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); // Z 밡 + // s_lpD3DDev->SetRenderState(D3DRS_ZENABLE, D3DZB_USEW); // Z buffer available + s_lpD3DDev->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); // Z buffer available s_lpD3DDev->SetRenderState(D3DRS_LIGHTING, TRUE); s_lpD3DDev->SetRenderState(D3DRS_DITHERENABLE, TRUE); @@ -600,12 +600,12 @@ void CN3Eng::SetDefaultEnvironment() { s_lpD3DDev->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); s_lpD3DDev->SetRenderState(D3DRS_ALPHAFUNC, - D3DCMP_GREATER); // ⺻ - ָ ؽó ٳ⵵ Ѵ. + D3DCMP_GREATER); // Basic alpha function - If you don't do it, alpha textures may break. s_lpD3DDev->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); - // ⺻ ؽó . + // Specifies a default texture filter. float fMipMapLODBias = -1.0f; for (int i = 0; i < 8; i++) { s_lpD3DDev->SetTexture(i, NULL); @@ -615,7 +615,7 @@ void CN3Eng::SetDefaultEnvironment() { s_lpD3DDev->SetSamplerState(i, D3DSAMP_MIPMAPLODBIAS, *((LPDWORD)(&fMipMapLODBias))); } - // Ŭ + // Specify clipping status D3DCLIPSTATUS9 cs; cs.ClipUnion = cs.ClipIntersection = D3DCS_ALL; s_lpD3DDev->SetClipStatus(&cs); diff --git a/src/engine/N3Base/N3Eng.h b/src/engine/N3Base/N3Eng.h index 4622fd21..cb00d001 100644 --- a/src/engine/N3Base/N3Eng.h +++ b/src/engine/N3Base/N3Eng.h @@ -20,12 +20,12 @@ class CN3Eng : public CN3Base { typedef struct __D3DDEV_INFO { char szDeviceName[128]; char szDeviceDesc[128]; - int nAdapter; // ° ׷ ī. - int nDevice; // ° ġ. + int nAdapter; // Which graphics card is it? + int nDevice; // Which device is it? - D3DDEVTYPE DevType; // ϵ . - int nModeCount; // ÷ - D3DDISPLAYMODE * pModes; // ÷ + D3DDEVTYPE DevType; // Is it hardware acceleration? + int nModeCount; // Number of display modes + D3DDISPLAYMODE * pModes; // display mode } __D3DDevInfo; LPDIRECT3D9 m_lpD3D; @@ -34,9 +34,9 @@ class CN3Eng : public CN3Base { static CN3EngCallbacks m_CB; protected: - int m_nModeActive; // õ Mode - int m_nAdapterCount; // ׷ ī - __D3DDEV_INFO m_DeviceInfo; // Device + int m_nModeActive; // Currently selected Mode + int m_nAdapterCount; // Number of graphics cards + __D3DDEV_INFO m_DeviceInfo; //Device information public: HKEY RegistryOpen(const std::string & szKey); diff --git a/src/engine/N3Base/N3FXPartParticles.cpp b/src/engine/N3Base/N3FXPartParticles.cpp index 125e3c11..8df94e38 100644 --- a/src/engine/N3Base/N3FXPartParticles.cpp +++ b/src/engine/N3Base/N3FXPartParticles.cpp @@ -1287,7 +1287,7 @@ void CN3FXPartParticles::Duplicate(CN3FXPartParticles * pSrc) { if (m_dwEmitType == FX_PART_PARTICLE_EMIT_TYPE_SPREAD) { m_uEmitCon.fEmitAngle = pSrc->m_uEmitCon.fEmitAngle; } else if (m_dwEmitType == FX_PART_PARTICLE_EMIT_TYPE_GATHER) { - m_uEmitCon.vGatherPoint = m_uEmitCon.vGatherPoint; + m_uEmitCon.vGatherPoint = pSrc->m_uEmitCon.vGatherPoint; } m_vPtEmitDir = pSrc->m_vPtEmitDir; diff --git a/src/engine/N3Base/N3FXPlug.cpp b/src/engine/N3Base/N3FXPlug.cpp index d78380af..bff03980 100644 --- a/src/engine/N3Base/N3FXPlug.cpp +++ b/src/engine/N3Base/N3FXPlug.cpp @@ -82,10 +82,10 @@ bool CN3FXPlugPart::Save(HANDLE hFile) { void CN3FXPlugPart::Tick(const __Matrix44 & mtxParent) { if (m_pFXB) { - // ġ + // location m_pFXB->m_vPos = m_vOffsetPos * mtxParent; - // ȸ + // rotation static __Matrix44 mtxRot; mtxRot = mtxParent; mtxRot.PosSet(0, 0, 0); @@ -98,7 +98,7 @@ void CN3FXPlugPart::Tick(const __Matrix44 & mtxParent) { void CN3FXPlugPart::Tick(const CN3Chr * pChr) { __ASSERT(pChr, "no chr"); if (m_pFXB) { - // ġ + // location const __Matrix44 * pMtxJoint = pChr->MatrixGet(m_nRefIndex); if (NULL == pMtxJoint) { return; @@ -109,7 +109,7 @@ void CN3FXPlugPart::Tick(const CN3Chr * pChr) { mtx *= pChr->m_Matrix; m_pFXB->m_vPos = m_vOffsetPos * mtx; - // ȸ + // rotation mtx.PosSet(0, 0, 0); m_pFXB->m_vDir = m_vOffsetDir * mtx; @@ -131,10 +131,10 @@ void CN3FXPlugPart::SetFXB(const std::string & strFN) { } m_pFXB->LoadFromFile(strFN); - m_vOffsetPos = m_pFXB->m_vPos; //ϴ FXB Ǿ ִ vPos vDir ͼ . + m_vOffsetPos = m_pFXB->m_vPos; //First, get the vPos and vDir values set in FXB and apply them. m_vOffsetDir = m_pFXB->m_vDir; - m_pFXB->Init(); // FX ϱ + m_pFXB->Init(); // Make FX appear m_pFXB->Trigger(); } @@ -179,7 +179,7 @@ bool CN3FXPlug::Load(HANDLE hFile) { __ASSERT(0 == m_FXPParts.size(), "must 0"); DWORD dwNum; int nCount; - ReadFile(hFile, &nCount, sizeof(nCount), &dwNum, NULL); // Part + ReadFile(hFile, &nCount, sizeof(nCount), &dwNum, NULL); // Number of Parts if (nCount > 0) { m_FXPParts.assign(nCount, NULL); } @@ -223,11 +223,11 @@ bool CN3FXPlug::Save(HANDLE hFile) { return false; } - RemoveFXPParts_HaveNoBundle(); // Ʈ + RemoveFXPParts_HaveNoBundle(); // Delete unbundled parts DWORD dwNum; int nCount = m_FXPParts.size(); - WriteFile(hFile, &nCount, sizeof(nCount), &dwNum, NULL); // Part + WriteFile(hFile, &nCount, sizeof(nCount), &dwNum, NULL); // Number of Parts for (int i = 0; i < nCount; ++i) { m_FXPParts[i]->Save(hFile); } @@ -235,16 +235,16 @@ bool CN3FXPlug::Save(HANDLE hFile) { return true; } -void CN3FXPlug::RemoveFXPParts_HaveNoBundle() // Part ϱ +void CN3FXPlug::RemoveFXPParts_HaveNoBundle() // Remove unbundled parts { for (int i = 0; i < m_FXPParts.size(); ++i) { if (m_FXPParts[i] && NULL == m_FXPParts[i]->GetFXB()) { - delete m_FXPParts[i]; // FXB Ʈ . + delete m_FXPParts[i]; // If there is no FXB, delete this part. m_FXPParts[i] = NULL; } } - // NULL ͵ ش. + // Delete pointers that are NULL. std::vector::iterator itor; for (itor = m_FXPParts.begin(); itor != m_FXPParts.end();) { if (NULL == (*itor)) { diff --git a/src/engine/N3Base/N3FXPlug.h b/src/engine/N3Base/N3FXPlug.h index da767251..f5ea6504 100644 --- a/src/engine/N3Base/N3FXPlug.h +++ b/src/engine/N3Base/N3FXPlug.h @@ -22,10 +22,10 @@ class CN3FXPlugPart : public CN3BaseFileAccess { public: protected: class CN3FXBundle * m_pFXB; - int m_nRefIndex; // referance index (ij : joint index) + int m_nRefIndex; // reference index (character: joint index) - __Vector3 m_vOffsetPos; // Joint - __Vector3 m_vOffsetDir; // Joint + __Vector3 m_vOffsetPos; // Distance from Joint + __Vector3 m_vOffsetDir; // Direction away from the joint // Operations public: @@ -71,11 +71,11 @@ class CN3FXPlug : public CN3BaseFileAccess { virtual bool Load(HANDLE hFile); void StopAll(bool bImmediately = false); // FX Stop - void TriggerAll(); // FX + void TriggerAll(); //start FX #ifdef _N3TOOL virtual bool Save(HANDLE hFile); - void RemoveFXPParts_HaveNoBundle(); // Part ϱ + void RemoveFXPParts_HaveNoBundle(); // Removing unbundled parts CN3FXPlugPart * FXPPartAdd(); void FXPPartDelete(int nIndex); diff --git a/src/engine/N3Base/N3IMesh.cpp b/src/engine/N3Base/N3IMesh.cpp index 995e8583..6c3192a5 100644 --- a/src/engine/N3Base/N3IMesh.cpp +++ b/src/engine/N3Base/N3IMesh.cpp @@ -16,8 +16,8 @@ CN3IMesh::CN3IMesh() { m_nFC = 0; - m_pwVtxIndices = NULL; // ε Ʈ. - m_pwUVsIndices = NULL; // ؽó ǥ ε Ʈ. + m_pwVtxIndices = NULL; // List of point indices. + m_pwUVsIndices = NULL; // Texture coordinate index list. m_nVC = m_nUVC = 0; m_pVertices = NULL; @@ -32,9 +32,9 @@ CN3IMesh::~CN3IMesh() { m_pfUVs = NULL; delete[] m_pwVtxIndices; - m_pwVtxIndices = NULL; // ε Ʈ. + m_pwVtxIndices = NULL; // List of point indices. delete[] m_pwUVsIndices; - m_pwUVsIndices = NULL; // ؽó ǥ ε Ʈ. + m_pwUVsIndices = NULL; // Texture coordinate index list. // if(m_lpVB) m_lpVB->Release(); } @@ -52,9 +52,9 @@ void CN3IMesh::Release() { m_pfUVs = NULL; delete[] m_pwVtxIndices; - m_pwVtxIndices = NULL; // ε Ʈ. + m_pwVtxIndices = NULL; // List of point indices. delete[] m_pwUVsIndices; - m_pwUVsIndices = NULL; // ؽó ǥ ε Ʈ. + m_pwUVsIndices = NULL; // Texture coordinate index list. // if(m_lpVB) m_lpVB->Release(); m_lpVB = NULL; @@ -87,7 +87,7 @@ bool CN3IMesh::Create(int nFC, int nVC, int nUVC) { if (nUVC > 0) { m_nUVC = nUVC; m_pfUVs = new float[nUVC * 2]; - memset(m_pfUVs, 0, 8 * nUVC); //  8 float 2 ׷.. + memset(m_pfUVs, 0, 8 * nUVC); // The reason the size is 8 is because there are 2 floats. m_pwUVsIndices = new WORD[nFC * 3]; memset(m_pwUVsIndices, 0, 2 * nFC * 3); // unsigned short } @@ -306,7 +306,7 @@ void CN3IMesh::RenderSelected() { vFace[1] = pVs[i * 3 + 1]; vFace[2] = pVs[i * 3 + 2]; vFace[3] = vFace[0]; - CN3Base::RenderLines(vFace, 3, 0xff00ff00); // .. + CN3Base::RenderLines(vFace, 3, 0xff00ff00); // Rendered in green... } } #endif // end of _N3TOOL @@ -334,7 +334,7 @@ bool CN3IMesh::Load(HANDLE hFile) { ReadFile(hFile, m_pwUVsIndices, 2 * nFC * 3, &dwRWC, NULL); // unsigned short } - this->FindMinMax(); // ּ ִ밪 ã´.. + this->FindMinMax(); // Find the minimum and maximum values.. return true; } @@ -371,7 +371,7 @@ void CN3IMesh::FindMinMax() { return; } - // ּ, ִ ã´. + // Find the minimum and maximum points. m_vMin.Set(FLT_MAX, FLT_MAX, FLT_MAX); m_vMax.Set(-FLT_MAX, -FLT_MAX, -FLT_MAX); for (int i = 0; i < m_nVC; i++) { diff --git a/src/engine/N3Base/N3IMesh.h b/src/engine/N3Base/N3IMesh.h index b488ef8f..4a086677 100644 --- a/src/engine/N3Base/N3IMesh.h +++ b/src/engine/N3Base/N3IMesh.h @@ -13,18 +13,18 @@ class CN3IMesh : public CN3BaseFileAccess { static __VertexT1 s_Vertices[MAX_IMESH_BUFFER]; static __VertexT2 s_Vertices2[MAX_IMESH_BUFFER]; - int m_nFC; // ﰢ + int m_nFC; // Number of triangles int m_nVC; // Vertex Count - WORD * m_pwVtxIndices; // ε Ʈ. - int m_nUVC; // UV ǥ Count - WORD * m_pwUVsIndices; // ؽó ǥ ε Ʈ. + WORD * m_pwVtxIndices; // List of point indices. + int m_nUVC; // UV coordinate Count + WORD * m_pwUVsIndices; // Texture coordinate index list. - __VertexXyzNormal * m_pVertices; // ǥ Data - float * m_pfUVs; // UV Data - m_nUVC * 2 ŭ ҴѴ. - // LPDIRECT3DVERTEXBUFFER9 m_lpVB; + __VertexXyzNormal * m_pVertices;// Coordinate Data + float * m_pfUVs; // UV Data - Allocate as much as m_nUVC * 2. + // LPDIRECT3DVERTEXBUFFER9 m_lpVB; - __Vector3 m_vMin, m_vMax; // ּ, ִ.. ϱ 뷫... + __Vector3 m_vMin, m_vMax; // Minimum and maximum points... they may change, but roughly... public: #ifdef _N3TOOL @@ -36,8 +36,8 @@ class CN3IMesh : public CN3BaseFileAccess { __Vector3 Max() { return m_vMax; } void FindMinMax(); void Render(bool bUseTwoUV = false); - __VertexT1 * BuildVertexList(); // Vertex Buffer ٰ .. ÿ ι ʵ ǰ ʿ - __VertexT2 * BuildVertexListTwoUV(); // Vertex Buffer ٰ .. ÿ ι ʵ ǰ ʿ + __VertexT1 * BuildVertexList(); // Create a point in the Vertex Buffer. Be careful not to use it twice at the same time. + __VertexT2 * BuildVertexListTwoUV(); // Create a point in the Vertex Buffer. Be careful not to use it twice at the same time. int FaceCount() { return m_nFC; } int VertexCount() { return m_nVC; } @@ -63,7 +63,7 @@ class CN3IMesh : public CN3BaseFileAccess { } #endif // end of _N3TOOL - virtual bool Create(int nFC, int nVC, int nUVC); // ʴ Face Count, VertexCount, UV Count + virtual bool Create(int nFC, int nVC, int nUVC); // In order, Face Count, VertexCount, UV Count bool Load(HANDLE hFile); #ifdef _N3TOOL bool Save(HANDLE hFile); @@ -73,7 +73,7 @@ class CN3IMesh : public CN3BaseFileAccess { CN3IMesh(); virtual ~CN3IMesh(); -// By : Ecli666 ( On 2002-07-23 5:31:41 ) +// By: Ecli666 (On 2002-07-23 5:31:41 PM) // #ifdef _N3GAME void TickForShadow(bool bUseTwoUV = false); @@ -84,5 +84,5 @@ class CN3IMesh : public CN3BaseFileAccess { __Vector3 * m_pVertexT1; #endif - // ~(By Ecli666 On 2002-07-23 5:31:41 ) + // ~(By Ecli666 On 2002-07-23 5:31:41 PM) }; diff --git a/src/engine/N3Base/N3Joint.cpp b/src/engine/N3Base/N3Joint.cpp index 50c90c2c..6adbb4f0 100644 --- a/src/engine/N3Base/N3Joint.cpp +++ b/src/engine/N3Base/N3Joint.cpp @@ -25,7 +25,7 @@ CN3Joint::~CN3Joint() { void CN3Joint::Release() { m_qOrient.Identity(); // Joint Orient Quaternion - m_KeyOrient.Release(); // Joint Orient Ű... NULL ̸ °Ŵ.. + m_KeyOrient.Release(); // Joint Orient key value... If it is NULL, it does not exist. for (it_Joint it = m_Children.begin(), itEnd = m_Children.end(); it != itEnd; it++) { delete *it; @@ -114,7 +114,7 @@ void CN3Joint::Render(const __Matrix44 * pMtxParent, float fUnitSize) { s_lpD3DDev->SetMaterial(&smtl); s_lpD3DDev->SetTexture(0, NULL); - if (m_pParent) // θ ִ̾ .. + if (m_pParent) // The line connecting the parent joint... { static __Vector3 v[2]; static __VertexColor vBone[2]; @@ -130,10 +130,10 @@ void CN3Joint::Render(const __Matrix44 * pMtxParent, float fUnitSize) { vBone[0].Set(v[0], 0xff00ff00); vBone[1].Set(v[1], 0xff0000ff); s_lpD3DDev->SetFVF(FVF_CV); - s_lpD3DDev->DrawPrimitiveUP(D3DPT_LINELIST, 1, vBone, sizeof(__VertexColor)); // ׸.. + s_lpD3DDev->DrawPrimitiveUP(D3DPT_LINELIST, 1, vBone, sizeof(__VertexColor)); // Drawing a line... } - // ڽ ׸.. + // Drawing a box... static __VertexColor vBoxes[36]; static __VertexColor vAxis[6]; static bool bBoxCreated = false; @@ -169,9 +169,9 @@ void CN3Joint::Render(const __Matrix44 * pMtxParent, float fUnitSize) { s_lpD3DDev->SetFVF(FVF_CV); s_lpD3DDev->SetTransform(D3DTS_WORLD, &mtxBox); - s_lpD3DDev->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 12, vBoxes, sizeof(__VertexColor)); // ڽ ׸.. + s_lpD3DDev->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 12, vBoxes, sizeof(__VertexColor)); // Drawing a box... s_lpD3DDev->SetTransform(D3DTS_WORLD, &mtxAxis); - s_lpD3DDev->DrawPrimitiveUP(D3DPT_LINELIST, 3, vAxis, sizeof(__VertexColor)); // ׸.. + s_lpD3DDev->DrawPrimitiveUP(D3DPT_LINELIST, 3, vAxis, sizeof(__VertexColor)); // Draw axis... if (dwZ) { s_lpD3DDev->SetRenderState(D3DRS_ZENABLE, dwZ); @@ -259,7 +259,7 @@ void CN3Joint::NodeCount(int & nCount) { #ifdef _N3TOOL BOOL CN3Joint::FindPointerByName(const std::string & szName, - CN3Joint *& pJoint) // ̸ ش ͸ ش.. + CN3Joint *& pJoint) // If you enter a name, a pointer to the node is returned. { if (szName.empty()) { pJoint = NULL; @@ -373,42 +373,42 @@ bool CN3Joint::TickAnimationKey(float fFrm) { void CN3Joint::ReCalcMatrix() { static __Matrix44 mtx; static __Quaternion qt; - // ڵ... - // m_Matrix.Identity(); - // mtx.Rotation(m_vRot.x, m_vRot.y, m_vRot.z); m_Matrix *= mtx; // θ ŭ ȸ. - // mtx.Scale(m_vScale); m_Matrix *= mtx; // θ ŭ ȸ. - // mtx.Rotation(m_vOrigin.x, m_vOrigin.y, m_vOrigin.z); m_Matrix *= mtx; // θ ŭ ȸ. - // mtx.Identity(); mtx.PosSet(m_vPos); m_Matrix *= mtx; // ̵ + // Original matrix calculation code... + // m_Matrix.Identity(); + // mtx.Rotation(m_vRot.x, m_vRot.y, m_vRot.z); m_Matrix *= mtx; // Rotate by the parent axis. + // mtx.Scale(m_vScale); m_Matrix *= mtx; // Rotate by the parent axis. + // mtx.Rotation(m_vOrigin.x, m_vOrigin.y, m_vOrigin.z); m_Matrix *= mtx; // Rotate by parent local axis. + //mtx.Identity(); mtx.PosSet(m_vPos); m_Matrix *= mtx; // movement // if(m_RotSeq == ROT_SEQ_XYZ) // { - // m_Matrix.Rotation(m_vRot.x, m_vRot.y, m_vRot.z); // θ ŭ ȸ. // XYZ ȸ϶.. + // m_Matrix.Rotation(m_vRot.x, m_vRot.y, m_vRot.z); // Rotate by the parent axis. // When rotating XYZ... // } // else if(ROT_SEQ_YXZ) // { // m_Matrix.Identity(); - // mtx.RotationY(m_vRot.y); m_Matrix *= mtx; // YXZ ȸ϶ + // mtx.RotationY(m_vRot.y); m_Matrix *= mtx; // When rotating YXZ // mtx.RotationX(m_vRot.x); m_Matrix *= mtx; // mtx.RotationZ(m_vRot.z); m_Matrix *= mtx; // } - if (m_KeyOrient.Count() > 0) // Orient Ű .. + if (m_KeyOrient.Count() > 0) // If there is an Orient key value... { qt = m_qRot * m_qOrient; - ::D3DXMatrixRotationQuaternion(&m_Matrix, &qt); // ȸ.. ʹϾ .. + ::D3DXMatrixRotationQuaternion(&m_Matrix, &qt); // Rotation.. Quaternion calculation.. } else { - ::D3DXMatrixRotationQuaternion(&m_Matrix, &m_qRot); // ȸ.. ʹϾ .. + ::D3DXMatrixRotationQuaternion(&m_Matrix, &m_qRot); // Rotation.. Quaternion calculation.. } - if (1.0f != m_vScale.x || 1.0f != m_vScale.y || 1.0f != m_vScale.z) // .. + if (1.0f != m_vScale.x || 1.0f != m_vScale.y || 1.0f != m_vScale.z) // If there is a scale value... { - mtx.Scale(m_vScale); // + mtx.Scale(m_vScale); // scale m_Matrix *= mtx; } m_Matrix.PosSet(m_vPos); if (m_pParent) { - m_Matrix *= m_pParent->m_Matrix; // θ + m_Matrix *= m_pParent->m_Matrix; // parent matrix } } @@ -457,7 +457,7 @@ void CN3Joint::ReCalcMatrixBlended(float fFrm0, float fFrm1, float fWeight0) { m_qOrient.Slerp(qt1, qt2, fWeight1); } - this->ReCalcMatrix(); // Matrix ... + this->ReCalcMatrix(); // Matrix calculation... } #ifdef _N3TOOL @@ -499,11 +499,11 @@ void CN3Joint::KeyDelete(CN3Joint * pJoint, int nKS, int nKE) { } } - // Child ٽ ش. + // Create the Child again. int nCC = pJoint->ChildCount(); for (int i = 0; i < nCC; i++) { CN3Joint * pChild = pJoint->Child(i); - pChild->KeyDelete(pChild, nKS, nKE); // Ʈ .. + pChild->KeyDelete(pChild, nKS, nKE); // Copy subjoint.. } } #endif // end of _N3TOOL @@ -523,12 +523,12 @@ void CN3Joint::AddKey(CN3Joint * pJSrc, int nIndexS, int nIndexE) { CN3Joint * pChildSrc = *it; CN3Joint * pChildDest = *it2; - pChildDest->AddKey(pChildSrc, nIndexS, nIndexE); // ȣ + pChildDest->AddKey(pChildSrc, nIndexS, nIndexE); // recursive call } } #endif // end of _N3TOOL -// ȸ +// rotation value, etc. #ifdef _N3TOOL void CN3Joint::CopyExceptAnimationKey(CN3Joint * pJSrc) { this->Release(); @@ -567,10 +567,10 @@ void CN3Joint::CopyExceptAnimationKey(CN3Joint * pJSrc) { itEnd = pJSrc->m_Children.end(); for (; it != itEnd; it++) { CN3Joint * pChildDest = new CN3Joint(); - this->ChildAdd(pChildDest); // ڽ ߰.. + this->ChildAdd(pChildDest); // Add children.. CN3Joint * pChildSrc = *it; - pChildDest->CopyExceptAnimationKey(pChildSrc); // ȣ + pChildDest->CopyExceptAnimationKey(pChildSrc); // recursive call } } #endif // end of _N3TOOL diff --git a/src/engine/N3Base/N3Joint.h b/src/engine/N3Base/N3Joint.h index f4bf3dbf..44f6a40c 100644 --- a/src/engine/N3Base/N3Joint.h +++ b/src/engine/N3Base/N3Joint.h @@ -15,10 +15,10 @@ typedef typename std::list::iterator it_Joint; const int MAX_JOINT_TRANSFORM = 64; class CN3Joint : public CN3Transform { - friend class CN3Joint; // Position, Rotation, Scale Ӱ ٷ ־ Ѵ.. + friend class CN3Joint; // You must be able to freely handle Position, Rotation, and Scale values. public: __Quaternion m_qOrient; // Joint Orient Quaternion - CN3AnimKey m_KeyOrient; // Joint Orient Ű... NULL ̸ °Ŵ.. + CN3AnimKey m_KeyOrient; // Joint Orient key value... If it is NULL, it does not exist. protected: CN3Joint * m_pParent; @@ -58,7 +58,7 @@ class CN3Joint : public CN3Transform { #ifdef _N3TOOL BOOL FindIndex(const std::string & szName, int & nIndex); BOOL FindPointerByName(const std::string & szName, - CN3Joint *& pJoint); // ̸ ش ͸ ش.. + CN3Joint *& pJoint); // If you enter a name, a pointer to the corresponding node is returned. void RotSet(const __Quaternion & qtRot) { m_qRot = qtRot; this->ReCalcMatrix(); diff --git a/src/engine/N3Base/N3Light.cpp b/src/engine/N3Base/N3Light.cpp index 87914819..e1d17f7b 100644 --- a/src/engine/N3Base/N3Light.cpp +++ b/src/engine/N3Base/N3Light.cpp @@ -25,7 +25,7 @@ bool CN3Light::Load(HANDLE hFile) { CN3Transform::Load(hFile); DWORD dwRWC; - ReadFile(hFile, &m_Data, sizeof(m_Data), &dwRWC, NULL); // Ʈ . + ReadFile(hFile, &m_Data, sizeof(m_Data), &dwRWC, NULL); // Light settings. __ASSERT(m_Data.nNumber >= 0 && m_Data.nNumber < 8, "Light Loading Warning - Light ȣ ϴ."); @@ -37,7 +37,7 @@ bool CN3Light::Save(HANDLE hFile) { CN3Transform::Save(hFile); DWORD dwRWC; - WriteFile(hFile, &m_Data, sizeof(m_Data), &dwRWC, NULL); // Ʈ . + WriteFile(hFile, &m_Data, sizeof(m_Data), &dwRWC, NULL); // Light settings.. return true; } diff --git a/src/engine/N3Base/N3Light.h b/src/engine/N3Base/N3Light.h index c719f0b0..10ee5299 100644 --- a/src/engine/N3Base/N3Light.h +++ b/src/engine/N3Base/N3Light.h @@ -10,14 +10,14 @@ class CN3Light : public CN3Transform { public: typedef struct __Light : public _D3DLIGHT9 { public: - BOOL bOn; // Ʈ ִ.. + BOOL bOn; // Is the light on? int nNumber; // 0 ~ 8 void Zero() { memset(this, 0, sizeof(__Light)); } void InitPoint(int nLgtNumber, const D3DXVECTOR3 & dvPos, const D3DCOLORVALUE & ltColor, float fRange = 10000.0f, float fAttenuation = 0.5f) { this->Zero(); - nNumber = nLgtNumber; // Ʈ ȣ.. + nNumber = nLgtNumber; // light number.. Type = D3DLIGHT_POINT; Position = dvPos; //Specular = @@ -26,12 +26,12 @@ class CN3Light : public CN3Transform { Ambient.g = ltColor.g * 0.7f; Ambient.b = ltColor.b * 0.7f; - Falloff = 1.0f; // ȿ ̹ϰ ϱ ɸ 1.0 . + Falloff = 1.0f; // Because the effect is minimal and there is a load, 1.0 is usually used. if (fRange < 0.0001f) { fRange = 0.0001f; } Attenuation0 = 1.0f - fAttenuation; - Attenuation1 = fAttenuation / fRange; // . Ȯϰ 谡 ǵ Ѵ.. + Attenuation1 = fAttenuation / fRange; // Attenuation range calculation. Make sure that half of the range is exactly half attenuated. Attenuation2 = fAttenuation / (fRange * fRange); Range = fRange * 4.0f; bOn = TRUE; @@ -39,7 +39,7 @@ class CN3Light : public CN3Transform { void InitDirection(int nLgtNumber, const D3DXVECTOR3 & dvDir, const D3DCOLORVALUE & ltColor) { this->Zero(); - nNumber = nLgtNumber; // Ʈ ȣ.. + nNumber = nLgtNumber; // Light number.. bOn = TRUE; Type = D3DLIGHT_DIRECTIONAL; @@ -54,7 +54,7 @@ class CN3Light : public CN3Transform { void InitSpot(int nLgtNumber, const D3DXVECTOR3 & dvPos, const D3DXVECTOR3 & dvDir, const D3DCOLORVALUE & ltColor, float fTheta, float fPhi, float fRange = 10000.0f) { this->Zero(); - nNumber = nLgtNumber; // Ʈ ȣ.. + nNumber = nLgtNumber; // Light number.. Type = D3DLIGHT_SPOT; Position = dvPos; Direction = dvDir; @@ -68,10 +68,10 @@ class CN3Light : public CN3Transform { fRange = 0.0001f; } Attenuation0 = 1.0f; - Attenuation1 = 1.0f / (fRange / 2.0f); // . Ȯϰ 谡 ǵ Ѵ.. + Attenuation1 = 1.0f / (fRange / 2.0f); // Calculate attenuation range. Make sure that half of the range is exactly half attenuated.. Range = fRange; - Falloff = 1.0f; // ȿ ̹ϰ ϱ ɸ 1.0 . + Falloff = 1.0f; //Because the effect is minimal and there is a load, 1.0 is usually used. Theta = fTheta; Phi = fPhi; bOn = TRUE; @@ -96,8 +96,8 @@ class CN3Light : public CN3Transform { m_vPos = m_Data.Position; } - void Apply(); // õ Ʈ D3DDevice - void Tick(float fFrm = FRAME_SELFPLAY); // Ʈ Ѵ.. + void Apply(); // Apply the set light value to the actual D3DDevice + void Tick(float fFrm = FRAME_SELFPLAY); // Set only the light value. bool Load(HANDLE hFile); #ifdef _N3TOOL diff --git a/src/engine/N3Base/N3Log.cpp b/src/engine/N3Base/N3Log.cpp index 1d697c3a..e386dde3 100644 --- a/src/engine/N3Base/N3Log.cpp +++ b/src/engine/N3Base/N3Log.cpp @@ -11,7 +11,7 @@ void CN3Log::Init(const std::string & loggerName) { #ifdef _DEBUG AllocConsole(); - // Position console window aside + // Position console window aside. // TODO: Make this more dynamic, like calculating the position of the game windows and screen resolution. HWND hConsole = GetConsoleWindow(); int xpos = 1024; diff --git a/src/engine/N3Base/N3Log.h b/src/engine/N3Base/N3Log.h index c94e3f81..be6ea294 100644 --- a/src/engine/N3Base/N3Log.h +++ b/src/engine/N3Base/N3Log.h @@ -14,6 +14,7 @@ class CN3Log { static std::shared_ptr s_Logger; }; +// TODO : Learn what spdlog is... #ifdef _DEBUG #define N3_TRACE(...) CN3Log::GetLogger()->trace(__VA_ARGS__) #define N3_DEBUG(...) CN3Log::GetLogger()->debug(__VA_ARGS__) diff --git a/src/engine/N3Base/N3Mesh.cpp b/src/engine/N3Base/N3Mesh.cpp index db129161..912c9c13 100644 --- a/src/engine/N3Base/N3Mesh.cpp +++ b/src/engine/N3Base/N3Mesh.cpp @@ -20,8 +20,8 @@ CN3Mesh::CN3Mesh() { m_nVC = 0; m_nIC = 0; - m_pVertices = NULL; // - m_psnIndices = NULL; // ε + m_pVertices = NULL; // dot buffer + m_psnIndices = NULL; // index buffer } CN3Mesh::~CN3Mesh() { @@ -61,16 +61,16 @@ bool CN3Mesh::Load(HANDLE hFile) { DWORD dwRWC = 0; - ReadFile(hFile, &m_nVC, 4, &dwRWC, NULL); // б.. + ReadFile(hFile, &m_nVC, 4, &dwRWC, NULL); // Read the number of dots... if (m_nVC > 0) { - this->Create(m_nVC, 0); // Vertex Buffer ä + this->Create(m_nVC, 0); // Create Vertex Buffer and fill data ReadFile(hFile, m_pVertices, m_nVC * sizeof(__VertexT1), &dwRWC, NULL); - this->FindMinMax(); // ִ, ּҰ ã´. + this->FindMinMax(); // Find the maximum and minimum values. } - ReadFile(hFile, &m_nIC, 4, &dwRWC, NULL); // ε б.. + ReadFile(hFile, &m_nIC, 4, &dwRWC, NULL); // Read the number of indexes... if (m_nIC > 0) { - this->Create(0, m_nIC); // ε ä + this->Create(0, m_nIC); // Create index buffer and fill data ReadFile(hFile, m_psnIndices, m_nIC * 2, &dwRWC, NULL); } @@ -81,12 +81,12 @@ bool CN3Mesh::Load(HANDLE hFile) { bool CN3Mesh::Save(HANDLE hFile) { DWORD dwRWC = 0; - WriteFile(hFile, &m_nVC, 4, &dwRWC, NULL); // б.. + WriteFile(hFile, &m_nVC, 4, &dwRWC, NULL); // Read the number of dots... if (m_nVC > 0) { WriteFile(hFile, m_pVertices, m_nVC * sizeof(__VertexT1), &dwRWC, NULL); } - WriteFile(hFile, &m_nIC, 4, &dwRWC, NULL); // ε б.. + WriteFile(hFile, &m_nIC, 4, &dwRWC, NULL); // Read the number of indexes... if (m_nIC > 0) { WriteFile(hFile, m_psnIndices, m_nIC * 2, &dwRWC, NULL); } @@ -142,7 +142,7 @@ void CN3Mesh::MakeIndexed() { #endif // end of _N3TOOL void CN3Mesh::Create(int nVC, int nIC) { - if (nVC > 0) // ... + if (nVC > 0) // If there is a point... { #ifdef _N3GAME if (nVC > 32768) { @@ -153,11 +153,11 @@ void CN3Mesh::Create(int nVC, int nIC) { this->ReleaseVertices(); } m_pVertices = new __VertexT1[nVC]; - memset(m_pVertices, 0, nVC * sizeof(__VertexT1)); // Vertex Buffer + memset(m_pVertices, 0, nVC * sizeof(__VertexT1)); // Create Vertex Buffer m_nVC = nVC; } - if (nIC > 0) // Mesh ε ϰ, ε .. + if (nIC > 0) // If mesh loading is successful and there is an index... { #ifdef _N3GAME if (nIC > 32768) { @@ -168,7 +168,7 @@ void CN3Mesh::Create(int nVC, int nIC) { this->ReleaseIndices(); } m_psnIndices = new WORD[nIC]; - memset(m_psnIndices, 0, nIC * 2); // Index Buffer + memset(m_psnIndices, 0, nIC * 2); // Create Index Buffer m_nIC = nIC; } } @@ -181,7 +181,7 @@ void CN3Mesh::FindMinMax() { return; } - // ּ, ִ ã´. + // Find the minimum and maximum points. m_vMin.Set(FLT_MAX, FLT_MAX, FLT_MAX); m_vMax.Set(-FLT_MAX, -FLT_MAX, -FLT_MAX); @@ -215,7 +215,7 @@ void CN3Mesh::Create_Cube(const __Vector3 & vMin, const __Vector3 & vMax) { __Vector3 vN; float fTUVs[6][2] = {0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1}; - // z + // z-axis negative side vN.Set(0, 0, -1); vPs[0].Set(vMin.x, vMax.y, vMin.z); vPs[1].Set(vMax.x, vMax.y, vMin.z); @@ -227,7 +227,7 @@ void CN3Mesh::Create_Cube(const __Vector3 & vMin, const __Vector3 & vMax) { m_pVertices[0 + i].Set(vPs[i], vN, fTUVs[i][0], fTUVs[i][1]); } - // x + // x-axis positive side vN.Set(1, 0, 0); vPs[0].Set(vMax.x, vMax.y, vMin.z); vPs[1].Set(vMax.x, vMax.y, vMax.z); @@ -239,7 +239,7 @@ void CN3Mesh::Create_Cube(const __Vector3 & vMin, const __Vector3 & vMax) { m_pVertices[6 + i].Set(vPs[i], vN, fTUVs[i][0], fTUVs[i][1]); } - // z + // z axis positive side vN.Set(0, 0, 1); vPs[0].Set(vMax.x, vMax.y, vMax.z); vPs[1].Set(vMin.x, vMax.y, vMax.z); @@ -251,7 +251,7 @@ void CN3Mesh::Create_Cube(const __Vector3 & vMin, const __Vector3 & vMax) { m_pVertices[12 + i].Set(vPs[i], vN, fTUVs[i][0], fTUVs[i][1]); } - // x + // x-axis negative side vN.Set(-1, 0, 0); vPs[0].Set(vMin.x, vMax.y, vMax.z); vPs[1].Set(vMin.x, vMax.y, vMin.z); @@ -263,7 +263,7 @@ void CN3Mesh::Create_Cube(const __Vector3 & vMin, const __Vector3 & vMax) { m_pVertices[18 + i].Set(vPs[i], vN, fTUVs[i][0], fTUVs[i][1]); } - // y + //y axis positive side vN.Set(0, 1, 0); vPs[0].Set(vMin.x, vMax.y, vMax.z); vPs[1].Set(vMax.x, vMax.y, vMax.z); @@ -275,7 +275,7 @@ void CN3Mesh::Create_Cube(const __Vector3 & vMin, const __Vector3 & vMax) { m_pVertices[24 + i].Set(vPs[i], vN, fTUVs[i][0], fTUVs[i][1]); } - // y + // y axis negative side vN.Set(0, -1, 0); vPs[0].Set(vMin.x, vMin.y, vMin.z); vPs[1].Set(vMax.x, vMin.y, vMin.z); @@ -313,13 +313,13 @@ void CN3Mesh::Create_Axis(float fLength) { __Matrix44 mtx; - // y + //y axis mtx.RotationZ(D3DX_PI / -2.0f); for (int i = 0; i < 4; i++) { m_pVertices[4 + i].Set(m_pVertices[i] * mtx, m_pVertices[i].n * mtx, 0, 0); } - // z + //z axis mtx.RotationY(D3DX_PI / -2.0f); for (int i = 0; i < 4; i++) { m_pVertices[8 + i].Set(m_pVertices[i] * mtx, m_pVertices[i].n * mtx, 0, 0); @@ -335,23 +335,23 @@ bool CN3Mesh::Import(CN3PMesh * pPMesh) { if (0 >= iNumIndices) { return false; } - Release(); // ʱȭ + Release(); // reset - // pmesh instance lod ְ · + // Create pmesh instance and adjust lod to highest state CN3PMeshInstance PMeshInstance; PMeshInstance.Create(pPMesh); PMeshInstance.SetLODByNumVertices(pPMesh->GetMaxNumVertices()); - // vertex, index buffer + // Create vertex, index buffer Create(PMeshInstance.GetNumVertices(), PMeshInstance.GetNumIndices()); - // vertex index buffer + // Copy vertex index buffer __VertexT1 * pVertices = PMeshInstance.GetVertices(); WORD * pIndices = PMeshInstance.GetIndices(); memcpy(m_pVertices, pVertices, sizeof(__VertexT1) * m_nVC); memcpy(m_psnIndices, pIndices, sizeof(WORD) * m_nIC); - m_szName = pPMesh->m_szName; // ̸.. + m_szName = pPMesh->m_szName; // name.. return true; } @@ -372,13 +372,13 @@ bool CN3Mesh::Import(CN3IMesh * pIMesh) { memcpy(m_pVertices, pvSrc, sizeof(__VertexT1) * nFC * 3); __Vector3 v0, v1, v2, vN(0, 0, 0); - for (int i = 0; i < nFC; i++) // Normal ٽ .. + for (int i = 0; i < nFC; i++) // Reset normal value.. { v0 = m_pVertices[i * 3 + 0]; v1 = m_pVertices[i * 3 + 1]; v2 = m_pVertices[i * 3 + 2]; - vN.Cross(v1 - v0, v2 - v1); // Normal ϰ... + vN.Cross(v1 - v0, v2 - v1); // Calculate the normal value.... vN.Normalize(); m_pVertices[i * 3 + 0].n = vN; @@ -386,7 +386,7 @@ bool CN3Mesh::Import(CN3IMesh * pIMesh) { m_pVertices[i * 3 + 2].n = vN; } - m_szName = pIMesh->m_szName; // ̸.. + m_szName = pIMesh->m_szName; // name.. return true; } @@ -421,7 +421,7 @@ void CN3Mesh::ReGenerateSmoothNormal() { } if (m_pVertices[i] == v0 || m_pVertices[i] == v1 || m_pVertices[i] == v2) { - vN.Cross(v1 - v0, v2 - v1); // Normal ϰ... + vN.Cross(v1 - v0, v2 - v1); // Calculate the Normal value... vN.Normalize(); pnNs[i]++; diff --git a/src/engine/N3Base/N3Mesh.h b/src/engine/N3Base/N3Mesh.h index 203fe737..016b5549 100644 --- a/src/engine/N3Base/N3Mesh.h +++ b/src/engine/N3Base/N3Mesh.h @@ -11,11 +11,11 @@ class CN3PMesh; class CN3Mesh : public CN3BaseFileAccess { protected: - __VertexT1 * m_pVertices; // - WORD * m_psnIndices; // ε + __VertexT1 * m_pVertices; // dot buffer + WORD * m_psnIndices; // index buffer - int m_nVC; // - int m_nIC; // + int m_nVC; // number of points + int m_nIC; // number of points __Vector3 m_vMin, m_vMax; public: @@ -26,7 +26,7 @@ class CN3Mesh : public CN3BaseFileAccess { int VertexCount() { return m_nVC; } __VertexT1 * Vertices() { return m_pVertices; } int IndexCount() { return m_nIC; } - WORD * Indices() { return m_psnIndices; } // ε + WORD * Indices() { return m_psnIndices; }// index buffer bool Load(HANDLE hFile); diff --git a/src/engine/N3Base/N3Mng.h b/src/engine/N3Base/N3Mng.h index 08adb683..5f5bc378 100644 --- a/src/engine/N3Base/N3Mng.h +++ b/src/engine/N3Base/N3Mng.h @@ -54,7 +54,7 @@ template class CN3Mng { #ifdef _N3GAME CLogWriter::Write("CN3Mng::Add - duplicated object's file name."); #endif - m_Refs.erase(pairRef.first); // īƮ .. + m_Refs.erase(pairRef.first); // Clear the reference count... return -1; } @@ -91,44 +91,44 @@ template class CN3Mng { T * pData = NULL; it_Data it = m_Datas.find(szFN2); - if (it == m_Datas.end()) // ãҴ.. + if (it == m_Datas.end()) // I couldn't find it... { pData = new T(); - pData->m_iLOD = iLOD; // ε LOD + pData->m_iLOD = iLOD; // Apply LOD when loading - if (false == pData->LoadFromFile(szFN2)) // б⿡ ߴ!! + if (false == pData->LoadFromFile(szFN2)) // Failed to read file!! { delete pData; pData = NULL; } else { - int reChk = Add(pData); // б ϸ ߰.. + int reChk = Add(pData); // If reading is successful, add... // asm - if (reChk == -1) // ߰ Ͱ ־ īƮ ϳ Ѵ + if (reChk == -1) // When adding, there is data before, so one reference count is added. { - T * pBakData = pData; // Ÿ ޾ (ο ׸ ٲ ִ) + T * pBakData = pData; // Receives and returns all data from the same file (may not be changed to a new image) it_Data it = m_Datas.find(pBakData->FileName()); pData = (*it).second; if (bIncreaseRefCount) { it_Ref it2 = m_Refs.find(pData); - if (it2 != m_Refs.end()) // īƮ ã.. + if (it2 != m_Refs.end()) // Find reference count... { ((*it2).second)++; } } - delete pBakData; // ̹ Ÿ ʿ䰡 Ƿ + delete pBakData; // Delete the data read this time as it is no longer needed. pBakData = NULL; } // asm } - } else // ãҴ..!! + } else // found..!! { pData = (*it).second; if (bIncreaseRefCount) { it_Ref it2 = m_Refs.find(pData); - if (it2 != m_Refs.end()) // īƮ ã.. + if (it2 != m_Refs.end()) // Find reference count... { ((*it2).second)++; } @@ -148,11 +148,11 @@ template class CN3Mng { } else { return false; } - } // ֳ ~ + } // Is it there or not? void Delete(T ** ppData, bool bReleaseOrg = true) { #ifndef _N3GAME - bReleaseOrg = true; // + bReleaseOrg = true; // In the tool, unconditionally #endif if (NULL == ppData || NULL == *ppData) { return; @@ -160,11 +160,11 @@ template class CN3Mng { it_Data it = m_Datas.find((*ppData)->FileName()); if (it == m_Datas.end()) { - return; // ãҴ.. - } else // ãҴ..!! + return; // I couldn't find it... + } else // found..!! { it_Ref it2 = m_Refs.find(*ppData); - if (bReleaseOrg && it2 != m_Refs.end()) // īƮ ã.. + if (bReleaseOrg && it2 != m_Refs.end()) // Find reference count... { ((*it2).second)--; if (0 == (*it2).second) { diff --git a/src/engine/N3Base/N3PMesh.cpp b/src/engine/N3Base/N3PMesh.cpp index 3c9c3d78..78529624 100644 --- a/src/engine/N3Base/N3PMesh.cpp +++ b/src/engine/N3Base/N3PMesh.cpp @@ -167,10 +167,10 @@ bool CN3PMesh::Load(HANDLE hFile) { if (m_iNumCollapses > 0) { m_pCollapses = new __EdgeCollapse [m_iNumCollapses + - 1]; // +1 : PMeshInstance::SplitOne() Լ εϰ Ͱ 輱 Ű ؾ ϴ 찡 ־. + 1]; // +1 : PMeshInstance::SplitOne() There are times when a pointer must inevitably point to a boundary line in a function. ReadFile(hFile, m_pCollapses, m_iNumCollapses * sizeof(__EdgeCollapse), &dwNum, NULL); ZeroMemory(m_pCollapses + m_iNumCollapses, - sizeof(__EdgeCollapse)); // +1 . Ÿ ʱȭ ص + sizeof(__EdgeCollapse)); // Same as the reason for +1 above. I initialized the last data just in case. bool bFixed = false; for (int i = 0; i < m_iNumCollapses; i++) { @@ -181,7 +181,7 @@ bool CN3PMesh::Load(HANDLE hFile) { } #ifdef _DEBUG if (bFixed) { - ::MessageBox(s_hWndBase, "߸ Progressive Mesh ", m_szName.c_str(), MB_OK); + ::MessageBox(s_hWndBase, "Fix incorrect Progressive Mesh", m_szName.c_str(), MB_OK); } #endif } @@ -248,7 +248,7 @@ bool CN3PMesh::Save(HANDLE hFile) { if (m_iNumCollapses > 0) { for (int i = 0; i < m_iNumCollapses; i++) { if (m_pCollapses[i].iIndexChanges < 0) { - m_pCollapses[i].iIndexChanges = 0; // .. + m_pCollapses[i].iIndexChanges = 0; // save.. } } WriteFile(hFile, m_pCollapses, m_iNumCollapses * sizeof(__EdgeCollapse), &dwNum, NULL); @@ -274,7 +274,7 @@ void CN3PMesh::FindMinMax() { return; } - // ּ, ִ ã´. + // Find the minimum and maximum points. m_vMin.Set(FLT_MAX, FLT_MAX, FLT_MAX); m_vMax.Set(-FLT_MAX, -FLT_MAX, -FLT_MAX); @@ -329,7 +329,7 @@ void CN3PMesh::FindMinMax() { } #endif - // ִ ּҰ Ѵ.. + // Calculate the radius with the maximum and minimum values. m_fRadius = (m_vMax - m_vMin).Magnitude() * 0.5f; } @@ -361,10 +361,10 @@ void CN3PMesh::CopyMesh(CN3PMesh * pSrcPMesh) { if (m_iNumCollapses > 0) { m_pCollapses = new __EdgeCollapse [m_iNumCollapses + - 1]; // +1 : PMeshInstance::SplitOne() Լ εϰ Ͱ 輱 Ű ؾ ϴ 찡 ־. + 1]; // Reason for +1: In the PMeshInstance::SplitOne() function, there are cases where the pointer must inevitably point to the boundary line. CopyMemory(m_pCollapses, pSrcPMesh->m_pCollapses, sizeof(__EdgeCollapse) * m_iNumCollapses); ZeroMemory(m_pCollapses + m_iNumCollapses, - sizeof(__EdgeCollapse)); // +1 . Ÿ ʱȭ ص + sizeof(__EdgeCollapse)); // Same as the reason for +1 above. I initialized the last data just in case. } hr = Create(m_iMaxNumVertices, m_iMaxNumIndices); @@ -522,7 +522,7 @@ void CN3PMesh::LODCtrlSet(__LODCtrlValue * pLODCtrls, int nCount) { m_pLODCtrlValues = new __LODCtrlValue[nCount]; memcpy(m_pLODCtrlValues, pLODCtrls, sizeof(__LODCtrlValue) * nCount); - // Ÿ + // Sort by distance qsort(m_pLODCtrlValues, m_iLODCtrlValueCount, sizeof(__LODCtrlValue), SortByDistance); } } @@ -550,9 +550,9 @@ void CN3PMesh::ReGenerateSmoothNormal() { } CN3PMeshInstance PMI(this); - PMI.SetLODByNumVertices(m_iMaxNumVertices); // ִ ϰ.. + PMI.SetLODByNumVertices(m_iMaxNumVertices); // Set it to the maximum point... int nIC = PMI.GetNumIndices(); // Index Count... - WORD * pwIndices = PMI.GetIndices(); // Index ... + WORD * pwIndices = PMI.GetIndices(); //Index... int * pnNs = new int[m_iMaxNumVertices]; memset(pnNs, 0, 4 * m_iMaxNumVertices); @@ -569,7 +569,7 @@ void CN3PMesh::ReGenerateSmoothNormal() { v2 = m_pVertices[pwIndices[j * 3 + 2]]; if (m_pVertices[i] == v0 || m_pVertices[i] == v1 || m_pVertices[i] == v2) { - vN.Cross(v1 - v0, v2 - v1); // Normal ϰ... + vN.Cross(v1 - v0, v2 - v1); // Calculate the Normal value... vN.Normalize(); pnNs[i]++; @@ -594,9 +594,9 @@ void CN3PMesh::ReGenerateSharpNormal() { } CN3PMeshInstance PMI(this); - PMI.SetLODByNumVertices(m_iMaxNumVertices); // ִ ϰ.. + PMI.SetLODByNumVertices(m_iMaxNumVertices); // Set it to the maximum point... int nIC = PMI.GetNumIndices(); // Index Count... - WORD * pwIndices = PMI.GetIndices(); // Index ... + WORD * pwIndices = PMI.GetIndices(); //Index... int nFC = nIC / 3; __Vector3 v0, v1, v2, vN(0, 0, 0); @@ -605,7 +605,7 @@ void CN3PMesh::ReGenerateSharpNormal() { v1 = m_pVertices[pwIndices[j * 3 + 1]]; v2 = m_pVertices[pwIndices[j * 3 + 2]]; - vN.Cross(v1 - v0, v2 - v1); // Normal ϰ... + vN.Cross(v1 - v0, v2 - v1); // Calculate the Normal value... vN.Normalize(); m_pVertices[pwIndices[j * 3 + 0]].n = vN; diff --git a/src/engine/N3Base/N3PMesh.h b/src/engine/N3Base/N3PMesh.h index 8ec8a960..30c07112 100644 --- a/src/engine/N3Base/N3PMesh.h +++ b/src/engine/N3Base/N3PMesh.h @@ -4,7 +4,7 @@ #pragma once -//#define _USE_VERTEXBUFFER // ϸ VertexBuffer IndexBuffer Ѵ. +//#define _USE_VERTEXBUFFER // When declared, VertexBuffer and IndexBuffer are used. #include "N3BaseFileAccess.h" @@ -12,7 +12,7 @@ class CN3PMesh : public CN3BaseFileAccess { friend class CN3FXPMeshInstance; friend class CN3PMeshInstance; friend class CN3PMeshCreate; - friend class CPMeshEditor; // N3Viewer Ŭ + friend class CPMeshEditor; // N3Viewer class public: struct __LODCtrlValue { @@ -25,14 +25,14 @@ class CN3PMesh : public CN3BaseFileAccess { // float Value; int NumIndicesToLose, NumIndicesToChange, NumVerticesToLose; //int *IndexChanges; - int iIndexChanges; // n° (0, 1, 2,...) + int iIndexChanges; // store nth instead of pointer (0, 1, 2,...) int CollapseTo; - bool bShouldCollapse; // ⼭ /⸦ ߸ Ը. ܰ踦 ؾ. + bool bShouldCollapse; // If you stop merging/dividing here, a hole will open. You need to proceed to the next step. }; protected: //int m_iNumMaterials; - int m_iNumCollapses; // ﰢ Ʈ + int m_iNumCollapses; // triangle merge list int m_iTotalIndexChanges; int * m_pAllIndexChanges; // All the index changes @@ -41,7 +41,7 @@ class CN3PMesh : public CN3BaseFileAccess { __EdgeCollapse * m_pCollapses; - // Mesh + // Mesh information #ifdef _USE_VERTEXBUFFER LPDIRECT3DVERTEXBUFFER9 m_pVB; LPDIRECT3DINDEXBUFFER9 m_pIB; @@ -53,10 +53,10 @@ class CN3PMesh : public CN3BaseFileAccess { int m_iMaxNumVertices, m_iMaxNumIndices; int m_iMinNumVertices, m_iMinNumIndices; - __Vector3 m_vMin, m_vMax; // ִ ּҰ.. - float m_fRadius; // + __Vector3 m_vMin, m_vMax; //maximum value.. + float m_fRadius; // radius - // LOD ..(Ÿ Vertex ִ.) + // LOD adjustment information.. (The number of vertices can be adjusted depending on the distance.) int m_iLODCtrlValueCount; __LODCtrlValue * m_pLODCtrlValues; @@ -84,8 +84,8 @@ class CN3PMesh : public CN3BaseFileAccess { // __PMLODCtrlValue* GetLODCtrlValue(int iIndex) const {if (iIndex>=0&&m_iLODCtrlValueCount>iIndex)return m_pLODCtrlValues+iIndex; return NULL;} // void SetLODCtrlValues(__PMLODCtrlValue* pValues) {m_pLODCtrlValues = pValues;} - __Vector3 Min() { return m_vMin; } // ּҰ̴. - __Vector3 Max() { return m_vMax; } // ִ밪̴. + __Vector3 Min() { return m_vMin; } // This is the minimum value without applying the world matrix. + __Vector3 Max() { return m_vMax; } // This is the maximum value without applying the world matrix. void Release(); HRESULT Create(int iNumVertices, int iNumIndices); @@ -110,8 +110,8 @@ class CN3PMesh : public CN3BaseFileAccess { #else __VertexT1 * GetVertices() const { return m_pVertices; }; __VertexT2 * GetVertices2() const { return m_pVertices2; }; - WORD * GetIndices() const { return m_pIndices; }; // ε Index ƴ - // ( ε N3PMeshInstance LOD ε ȴ.) + WORD * GetIndices() const { return m_pIndices; }; // Not a proper Index + // (To obtain the correct index, create an N3PMeshInstance, adjust the LOD, and obtain the index value.) #endif #ifdef _N3TOOL diff --git a/src/engine/N3Base/N3PMeshInstance.cpp b/src/engine/N3Base/N3PMeshInstance.cpp index 0f39b752..d948a422 100644 --- a/src/engine/N3Base/N3PMeshInstance.cpp +++ b/src/engine/N3Base/N3PMeshInstance.cpp @@ -134,7 +134,7 @@ bool CN3PMeshInstance::Create(CN3PMesh * pN3PMesh) { bool CN3PMeshInstance::Create(const std::string & szFN) { if (m_pPMesh && m_pPMesh->FileName() == szFN) { - return true; // ̸ ʰ + return true; //If the file name is the same, return it without creating a new one. } this->Release(); @@ -154,7 +154,7 @@ void CN3PMeshInstance::SetLODByNumVertices(int iNumVertices) { } else if (iDiff > 0) { while (iNumVertices > m_iNumVertices) { if (m_pCollapseUpTo->NumVerticesToLose + m_iNumVertices > iNumVertices) { - break; // ڵ.. + break; //Anti-flicker code.. } if (SplitOne() == false) { break; @@ -179,12 +179,12 @@ void CN3PMeshInstance::SetLODByNumVertices(int iNumVertices) { void CN3PMeshInstance::SetLOD(float value) { #define _USE_LODCONTROL_VALUE #ifdef _USE_LODCONTROL_VALUE - // value distance * FOV̴. + // value is distance * FOV. if (m_pPMesh == NULL) { return; } - if (m_pPMesh->m_iLODCtrlValueCount == 0) { // LODCtrlValue ׸. + if (m_pPMesh->m_iLODCtrlValueCount == 0) { // If LODCtrlValue is not present, all are drawn. SetLODByNumVertices(0x7fffffff); return; } @@ -193,11 +193,11 @@ void CN3PMeshInstance::SetLOD(float value) { CN3PMesh::__LODCtrlValue * pTmpLODCV = m_pPMesh->m_pLODCtrlValues + m_pPMesh->m_iLODCtrlValueCount - 1; - if (value < m_pPMesh->m_pLODCtrlValues[0].fDist) { // ּ ġ Ƿ ׸. + if (value < m_pPMesh->m_pLODCtrlValues[0].fDist) { // Since it is closer than the minimum standard, it is drawn with the most sides. SetLODByNumVertices(m_pPMesh->m_pLODCtrlValues[0].iNumVertices); - } else if (pTmpLODCV->fDist < value) { // ִ ġ ָ Ƿ ׸. + } else if (pTmpLODCV->fDist < value) { // Since it is farther than the maximum reference value, draw with the fewest sides. SetLODByNumVertices(pTmpLODCV->iNumVertices); - } else { // ߰ ° ׸. + } else {// Draw with the number of sides adjusted to the intermediate value. for (int i = 1; i < m_pPMesh->m_iLODCtrlValueCount; ++i) { if (value < m_pPMesh->m_pLODCtrlValues[i].fDist) { CN3PMesh::__LODCtrlValue * pHiValue = m_pPMesh->m_pLODCtrlValues + i; @@ -210,7 +210,7 @@ void CN3PMeshInstance::SetLOD(float value) { } } #else - // value distance * FOV̴. + // value is distance * FOV. if (m_pCollapseUpTo == NULL || m_pPMesh == NULL) { return; } @@ -272,11 +272,11 @@ bool CN3PMeshInstance::CollapseOne() { bool CN3PMeshInstance::SplitOne() { if (m_pCollapseUpTo >= m_pPMesh->m_pCollapses + m_pPMesh->m_iNumCollapses) { - return false; // ̷ ϸ ϳ ȴ.. + return false; // If you do this, a pointer will stick out. } - // ̷ ٽ ϴ Ʒ ڵ ϸ ׷ ʴ´. - // ̷ ص ֵ ڵ带 ־. m_pPMesh->m_pCollapses ҴҶ 1 Ҵϰ ͸ ʱⰪ ־. - // if (m_pCollapseUpTo >= m_pPMesh->m_pCollapses + m_pPMesh->m_iNumCollapses - 1) return false; // ̰ ̴.. + // But the reason for doing this again is that if you use the code below, the last polygon is never drawn. + // I included defense code so that it would be okay to do this. When allocating m_pPMesh->m_pCollapses, one more was allocated and the last data was set as the initial value. + // if (m_pCollapseUpTo >= m_pPMesh->m_pCollapses + m_pPMesh->m_iNumCollapses - 1) return false; // This is normal.. m_iNumIndices += m_pCollapseUpTo->NumIndicesToLose; m_iNumVertices += m_pCollapseUpTo->NumVerticesToLose; @@ -362,7 +362,7 @@ void CN3PMeshInstance::RenderTwoUV() { return; } if (NULL == m_pPMesh->GetVertices2()) { - m_pPMesh->GenerateSecondUV(); // ι° UV .. + m_pPMesh->GenerateSecondUV(); // There is no second UV. Create a new one. } if (NULL == m_pPMesh->GetVertices2()) { return; @@ -430,7 +430,7 @@ __VertexT1 * CN3PMeshInstance::GetVertices() const { } #endif -// By : Ecli666 ( On 2002-08-06 4:33:04 ) +// By: Ecli666 (On 2002-08-06 4:33:04 PM) // #ifdef _USE_VERTEXBUFFER void CN3PMeshInstance::PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB) { @@ -542,4 +542,4 @@ void CN3PMeshInstance::PartialRender(int iCount, WORD * pIndices) { #endif } - // ~(By Ecli666 On 2002-08-06 4:33:04 ) + // ~(By Ecli666 On 2002-08-06 4:33:04 PM) diff --git a/src/engine/N3Base/N3PMeshInstance.h b/src/engine/N3Base/N3PMeshInstance.h index 4c8207ee..e84eaed2 100644 --- a/src/engine/N3Base/N3PMeshInstance.h +++ b/src/engine/N3Base/N3PMeshInstance.h @@ -27,11 +27,11 @@ class CN3PMeshInstance : public CN3Base { int m_iNumIndices, m_iNumVertices; // number of triangles/vertices to use at this moment. - CN3PMesh::__EdgeCollapse * m_pCollapseUpTo; // + CN3PMesh::__EdgeCollapse * m_pCollapseUpTo; // reference pointer // A pointer to the original mesh. This is where you'll find the vertex data (which // is invariant between PMRInstance's) - CN3PMesh * m_pPMesh; // + CN3PMesh * m_pPMesh; // reference pointer public: BOOL IsLOD() { @@ -66,7 +66,7 @@ class CN3PMeshInstance : public CN3Base { WORD * GetIndices() const { return m_pIndices; }; #endif -// By : Ecli666 ( On 2002-08-06 4:33:04 ) +// By: Ecli666 (On 2002-08-06 4:33:04 PM) // #ifdef _USE_VERTEXBUFFER void PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB); @@ -75,5 +75,5 @@ class CN3PMeshInstance : public CN3Base { #endif int GetIndexByiOrder(int iOrder); __Vector3 GetVertexByIndex(int iIndex); - // ~(By Ecli666 On 2002-08-06 4:33:04 ) + // ~(By Ecli666 On 2002-08-06 4:33:04 PM) }; diff --git a/src/engine/N3Base/N3Shape.cpp b/src/engine/N3Base/N3Shape.cpp index 9bebcca2..93929c89 100644 --- a/src/engine/N3Base/N3Shape.cpp +++ b/src/engine/N3Base/N3Shape.cpp @@ -9,18 +9,18 @@ CN3SPart::CN3SPart() { m_dwType |= OBJ_SHAPE_PART; - m_vPivot.Set(0, 0, 0); // Local - m_Matrix.Identity(); // World Matrix.. Shape Loading ̸ ؾ .. - m_bOutOfCameraRange = TRUE; // Camera ٱ ... - m_Mtl.Init(); // Material + m_vPivot.Set(0, 0, 0); // Local axis + m_Matrix.Identity(); // World Matrix.. It is best to calculate it in advance when Shape Loading. + m_bOutOfCameraRange = TRUE; // Outside Camera range... + m_Mtl.Init(); //Material m_fTexFPS = 10.0f; // Texture Animation Interval; - m_fTexIndex = 0; // Current Texture Index.. Animation ų ʿ ε̴.. + m_fTexIndex = 0; // Current Texture Index.. This is the index needed for Animation.. - // m_vWindFactorCur.Zero(); // ٶ δ .. ̰ ȸ Ų.. - // m_vWindFactorToReach.Zero(); // ٶ δ .. - m_fTimeToSetWind = 0; // ٶ δ ٲٱ ð.. - m_fWindFactorCur = 0; // ٶ δ .. ̰ ȸ Ų.. - m_fWindFactorToReach = 0; // ٶ δ .. + // m_vWindFactorCur.Zero(); // Current wind blowing value.. Rotate with this value.. + // m_vWindFactorToReach.Zero(); // Windy value... + m_fTimeToSetWind = 0; // Time to change the wind blowing value... + m_fWindFactorCur = 0; // Current wind blowing value.. Rotate with this value.. + m_fWindFactorToReach = 0; // Windy value... } CN3SPart::~CN3SPart() { @@ -31,18 +31,18 @@ CN3SPart::~CN3SPart() { } void CN3SPart::Release() { - m_vPivot.Set(0, 0, 0); // Local - m_Matrix.Identity(); // World Matrix.. Shape Loading ̸ ؾ .. - m_bOutOfCameraRange = TRUE; // Camera ٱ ... - m_Mtl.Init(); // Material + m_vPivot.Set(0, 0, 0); // Local axis + m_Matrix.Identity(); // World Matrix.. It is best to calculate it in advance when Shape Loading. + m_bOutOfCameraRange = TRUE; // Outside Camera range... + m_Mtl.Init(); //Material m_fTexFPS = 10.0f; // Texture Animation Interval; - m_fTexIndex = 0; // Current Texture Index.. Animation ų ʿ ε̴.. + m_fTexIndex = 0; // Current Texture Index.. This is the index needed for Animation.. - // m_vWindFactorCur.Zero(); // ٶ δ .. ̰ ȸ Ų.. - // m_vWindFactorToReach.Zero(); // ٶ δ .. - m_fTimeToSetWind = 0; // ٶ δ ٲٱ ð.. - m_fWindFactorCur = 0; // ٶ δ .. ̰ ȸ Ų.. - m_fWindFactorToReach = 0; // ٶ δ .. + // m_vWindFactorCur.Zero(); // Current wind blowing value.. Rotate with this value.. + // m_vWindFactorToReach.Zero(); // Windy value... + m_fTimeToSetWind = 0; // Time to change the wind blowing value... + m_fWindFactorCur = 0; // Current wind blowing value.. Rotate with this value.. + m_fWindFactorToReach = 0; // Windy value... int iTC = m_TexRefs.size(); for (int i = 0; i < iTC; i++) { @@ -71,7 +71,7 @@ void CN3SPart::TexAlloc(int nCount) { } void CN3SPart::Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, - float fScale) // timeGetTime Texture Animation Ʈ Ѵ.. + float fScale) // Entering the value obtained with timeGetTime controls Texture Animation. { CN3PMesh * pPMesh = m_PMInst.GetMesh(); if (NULL == pPMesh) { @@ -80,9 +80,9 @@ void CN3SPart::Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, m_bOutOfCameraRange = FALSE; - // ī޶ ָ .. + // If you get too far away from the camera, it will pass by. __Vector3 vCenter = (this->Min() + this->Max()) * 0.5f; - if (s_CameraData.IsOutOfFrustum(vCenter, this->Radius() * fScale)) // ī޶ ü ٱ̸ .. + if (s_CameraData.IsOutOfFrustum(vCenter, this->Radius() * fScale)) // If it is outside the camera tetrahedron, it passes. { m_bOutOfCameraRange = TRUE; return; @@ -93,20 +93,20 @@ void CN3SPart::Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, // float fLOD = fDist + fDist * (s_CameraData.fFOV - 1.0f) / 3.0f; // float fLOD = fDist * s_CameraData.fFOV * (512.0f / s_CameraData.fFP); - // ī޶ Ÿ LOD Ѵ. + // Adjust the LOD level according to the camera distance. // fLOD *= 256.0f / s_CameraData.fFP; m_PMInst.SetLOD(fLOD); int iTC = m_TexRefs.size(); - if (iTC > 1) // ؽó ϸ̼ + if (iTC > 1) // texture animation { m_fTexIndex += CN3Base::s_fSecPerFrm * m_fTexFPS; if (m_fTexIndex >= iTC) { - m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // Ҽ ȴ??(Ͽư ~) + m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) } } - if (m_Mtl.nRenderFlags & RF_BOARD_Y) // ī޶ ٶϴ Ÿ.. + if (m_Mtl.nRenderFlags & RF_BOARD_Y) // If you have to look at the camera... { __Vector3 vPos = m_vPivot * mtxParent; __Vector3 vDir = s_CameraData.vEye - vPos; @@ -116,7 +116,7 @@ void CN3SPart::Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, m_Matrix.RotationY(-atanf(vDir.z / vDir.x) + (D3DX_PI * 0.5f)); } - // θ ȸ ݴ ȸ Ų.. + // Rotates in the opposite direction to the parent rotation. float fAngle; qRot.AxisAngle(vDir, fAngle); if (fAngle != 0) { @@ -129,17 +129,17 @@ void CN3SPart::Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, m_Matrix.PosSet(vPos); } - if (m_Mtl.nRenderFlags & RF_WINDY) // ٶ ¦ ϸ.. + if (m_Mtl.nRenderFlags & RF_WINDY) // If you have to blow it slightly in the wind... { m_fTimeToSetWind -= CN3Base::s_fSecPerFrm; if (m_fTimeToSetWind <= 0) { // m_vWindFactorToReach.x = 0.05f - (0.1f * (rand()%100) / 100.0f); - // m_vWindFactorToReach.y = 0.05f - (0.1f * (rand()%100) / 100.0f); // Ʒδ ݸ Ұ Ѵ. + // m_vWindFactorToReach.y = 0.05f - (0.1f * (rand()%100) / 100.0f); // Let it blow slightly up and down. // m_vWindFactorToReach.z = 0.05f - (0.1f * (rand()%100) / 100.0f); m_fWindFactorToReach = (rand() % 100) / 100.0f; - m_fTimeToSetWind = 3.0f * ((rand() % 100) / 100.0f); // ٶ ӵ .. + m_fTimeToSetWind = 3.0f * ((rand() % 100) / 100.0f); // The value at which the wind will last.. } else if (m_fWindFactorToReach != m_fWindFactorCur) // else if(m_vWindFactorToReach != m_vWindFactorCur) { @@ -193,7 +193,7 @@ void CN3SPart::Render() { } } - if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // Alpha + if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // use Alpha { __AlphaPrimitive * pAP = s_AlphaMgr.Add(); if (pAP) { @@ -213,7 +213,7 @@ void CN3SPart::Render() { pAP->pwIndices = m_PMInst.GetIndices(); } - return; // . + return; // No rendering. } // static DWORD dwAlpha, dwFog, dwCull; @@ -227,7 +227,7 @@ void CN3SPart::Render() { CN3Base::s_RenderInfo.nShape_Polygon += m_PMInst.GetNumIndices() / 3; // Rendering Information Update... #endif - if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Fog .. + if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Ignore Fog... { s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwFog); if (TRUE == dwFog) { @@ -240,7 +240,7 @@ void CN3SPart::Render() { s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); } - s_lpD3DDev->SetMaterial(&m_Mtl); // .. + s_lpD3DDev->SetMaterial(&m_Mtl); // Material settings.. s_lpD3DDev->SetTexture(0, lpTex); if (NULL != lpTex) { s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLOROP, m_Mtl.dwColorOp); @@ -251,14 +251,14 @@ void CN3SPart::Render() { s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE); } - // εҶ ̸ .. + // When loading, apply the pre-calculated world matrix... s_lpD3DDev->SetTransform(D3DTS_WORLD, &m_Matrix); m_PMInst.Render(); // if((m_Mtl.nRenderFlags & RF_ALPHABLENDING) && FALSE == dwAlpha) s_lpD3DDev->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); if ((m_Mtl.nRenderFlags & RF_NOTUSEFOG) && TRUE == dwFog) { - s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Ȱ ʴ´.. + s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Do not use fog.. } if ((m_Mtl.nRenderFlags & RF_DOUBLESIDED) && D3DCULL_NONE != dwCull) { s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, dwCull); @@ -316,7 +316,7 @@ void CN3SPart::RenderSelected(bool bWireFrame) { #ifdef _N3TOOL void CN3SPart::RenderAxis() { - // ׸.. + // Draw axis... float fRadius = 1.0f; if (m_PMInst.GetMesh()) { fRadius = m_PMInst.GetMesh()->Radius(); @@ -336,22 +336,22 @@ bool CN3SPart::Load(HANDLE hFile) { ReadFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName ReadFile(hFile, szFN, nL, &dwRWC, NULL); - szFN[nL] = NULL; // ޽ ̸.. + szFN[nL] = NULL; // Mesh file name.. this->MeshSet(szFN); - ReadFile(hFile, &m_Mtl, sizeof(__Material), &dwRWC, NULL); // + ReadFile(hFile, &m_Mtl, sizeof(__Material), &dwRWC, NULL); // texture int iTC = 0; ReadFile(hFile, &iTC, 4, &dwRWC, NULL); ReadFile(hFile, &m_fTexFPS, 4, &dwRWC, NULL); m_TexRefs.clear(); - this->TexAlloc(iTC); // Texture Pointer Pointer Ҵ.. - for (int j = 0; j < iTC; j++) // Texture Count ŭ ̸ о ؽó θ.. + this->TexAlloc(iTC); // Texture Pointer Pointer allocation.. + for (int j = 0; j < iTC; j++) // Read the file name as much as Texture Count and load the texture. { ReadFile(hFile, &nL, 4, &dwRWC, NULL); if (nL > 0) { ReadFile(hFile, szFN, nL, &dwRWC, NULL); - szFN[nL] = NULL; // ؽó ̸.. + szFN[nL] = NULL; //Texture file name.. m_TexRefs[j] = s_MngTex.Get(szFN, true, s_Options.iTexLOD_Shape); } } @@ -372,14 +372,14 @@ bool CN3SPart::Save(HANDLE hFile) { nL = pPMesh->FileName().size(); } else { MessageBox(GetActiveWindow(), - "Progressive mesh pointer is NULL! : object ֽϴ.(ҽ " - "Load ʾ ɼ ŭ)", + "Progressive mesh pointer is NULL! : The object may not be displayed properly (the resource file may not be displayed properly). " + "It is highly likely that it has not been loaded.)", "warning", MB_OK); } WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName if (nL > 0) { - // if(-1 == pPMesh->FileName().find("object\\")) // ӽ÷ θ ٲٷ ־.. ߿ ʿ .. + // if(-1 == pPMesh->FileName().find("object\\")) // I put it in to change the path temporarily. I will delete it later if I don't need it. // { // char szFNTmp[256]; // wsprintf(szFNTmp, "Object\\%s.N3PMesh", pPMesh->Name()); @@ -390,15 +390,15 @@ bool CN3SPart::Save(HANDLE hFile) { // WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName // } - WriteFile(hFile, pPMesh->FileName().c_str(), nL, &dwRWC, NULL); // ޽ ̸.. + WriteFile(hFile, pPMesh->FileName().c_str(), nL, &dwRWC, NULL); // Mesh file name.. } - WriteFile(hFile, &m_Mtl, sizeof(__Material), &dwRWC, NULL); // + WriteFile(hFile, &m_Mtl, sizeof(__Material), &dwRWC, NULL); // texture int iTC = m_TexRefs.size(); WriteFile(hFile, &iTC, 4, &dwRWC, NULL); WriteFile(hFile, &m_fTexFPS, 4, &dwRWC, NULL); - for (int j = 0; j < iTC; j++) // Texture File ̸ ... + for (int j = 0; j < iTC; j++)// Write Texture File name... { if (m_TexRefs[j]) { nL = m_TexRefs[j]->FileName().size(); @@ -408,9 +408,9 @@ bool CN3SPart::Save(HANDLE hFile) { WriteFile(hFile, &nL, 4, &dwRWC, NULL); if (nL > 0) { - // if(-1 == m_TexRefs[j]->FileName().find("object\\")) // ӽ÷ θ ٲٷ ־.. ߿ ʿ .. + // if(-1 == m_TexRefs[j]->FileName().find("object\\")) // I put it in to change the path temporarily. I will delete it later if I don't need it. // { - // // ̸ иϰ.. + // // Separate the folder name... // char szDrive[_MAX_DRIVE], szDir[_MAX_DIR], szFName[_MAX_FNAME], szExt[_MAX_EXT]; // _splitpath(m_TexRefs[j]->FileName(), szDrive, szDir, szFName, szExt); // @@ -423,7 +423,7 @@ bool CN3SPart::Save(HANDLE hFile) { // WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName // } - WriteFile(hFile, m_TexRefs[j]->FileName().c_str(), nL, &dwRWC, NULL); // ýó ̸.. + WriteFile(hFile, m_TexRefs[j]->FileName().c_str(), nL, &dwRWC, NULL); //Texture file name.. } } @@ -450,7 +450,7 @@ void CN3SPart::PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB) { } } - if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // Alpha + if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // use Alpha { __AlphaPrimitive * pAP = s_AlphaMgr.Add(); if (pAP) { @@ -470,7 +470,7 @@ void CN3SPart::PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB) { pAP->pwIndices = m_PMInst.GetIndices(); } - return; // . + return; // No rendering. } static DWORD dwFog, dwCull; @@ -479,7 +479,7 @@ void CN3SPart::PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB) { CN3Base::s_RenderInfo.nShape_Polygon += m_PMInst.GetNumIndices() / 3; // Rendering Information Update... #endif - if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Fog .. + if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Ignore Fog... { s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwFog); if (TRUE == dwFog) { @@ -492,7 +492,7 @@ void CN3SPart::PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB) { s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); } - s_lpD3DDev->SetMaterial(&m_Mtl); // .. + s_lpD3DDev->SetMaterial(&m_Mtl); // Material settings.. s_lpD3DDev->SetTexture(0, lpTex); if (NULL != lpTex) { s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLOROP, m_Mtl.dwColorOp); @@ -503,13 +503,13 @@ void CN3SPart::PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB) { s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE); } - // εҶ ̸ .. + // Apply the pre-calculated world matrix when loading... s_lpD3DDev->SetTransform(D3DTS_WORLD, &m_Matrix); m_PMInst.PartialRender(iCount, pIB); if ((m_Mtl.nRenderFlags & RF_NOTUSEFOG) && TRUE == dwFog) { - s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Ȱ ʴ´.. + s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Do not use fog.. } if ((m_Mtl.nRenderFlags & RF_DOUBLESIDED) && D3DCULL_NONE != dwCull) { s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, dwCull); @@ -534,7 +534,7 @@ void CN3SPart::PartialRender(int iCount, WORD * pIndices) { } } - if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // Alpha + if (m_Mtl.nRenderFlags & RF_ALPHABLENDING) // use Alpha { __AlphaPrimitive * pAP = s_AlphaMgr.Add(); if (pAP) { @@ -554,7 +554,7 @@ void CN3SPart::PartialRender(int iCount, WORD * pIndices) { pAP->pwIndices = m_PMInst.GetIndices(); } - return; // . + return; // No rendering. } static DWORD dwFog, dwCull; @@ -563,7 +563,7 @@ void CN3SPart::PartialRender(int iCount, WORD * pIndices) { CN3Base::s_RenderInfo.nShape_Polygon += m_PMInst.GetNumIndices() / 3; // Rendering Information Update... #endif - if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Fog .. + if (m_Mtl.nRenderFlags & RF_NOTUSEFOG) // Ignore Fog... { s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwFog); if (TRUE == dwFog) { @@ -576,7 +576,7 @@ void CN3SPart::PartialRender(int iCount, WORD * pIndices) { s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); } - s_lpD3DDev->SetMaterial(&m_Mtl); // .. + s_lpD3DDev->SetMaterial(&m_Mtl); // Material settings.. s_lpD3DDev->SetTexture(0, lpTex); if (NULL != lpTex) { s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLOROP, m_Mtl.dwColorOp); @@ -587,13 +587,13 @@ void CN3SPart::PartialRender(int iCount, WORD * pIndices) { s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE); } - // εҶ ̸ .. + // Apply the pre-calculated world matrix when loading... s_lpD3DDev->SetTransform(D3DTS_WORLD, &m_Matrix); m_PMInst.PartialRender(iCount, pIndices); if ((m_Mtl.nRenderFlags & RF_NOTUSEFOG) && TRUE == dwFog) { - s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Ȱ ʴ´.. + s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, TRUE); // Do not use fog.. } if ((m_Mtl.nRenderFlags & RF_DOUBLESIDED) && D3DCULL_NONE != dwCull) { s_lpD3DDev->SetRenderState(D3DRS_CULLMODE, dwCull); @@ -613,10 +613,10 @@ CN3Shape::CN3Shape() { m_bVisible = true; m_iBelong = 0; - m_iEventID = 0; // Event ID - m_iEventType = 0; // Event Type - m_iNPC_ID = 0; // NPC Ʈ NPC ID - m_iNPC_Status = 0; // NPC Ʈ NPC Status + m_iEventID = 0; //Event ID + m_iEventType = 0; //Event Type + m_iNPC_ID = 0; // NPC ID if the object is used as an NPC + m_iNPC_Status = 0; // NPC Status in case of object used as NPC } CN3Shape::~CN3Shape() { @@ -638,10 +638,10 @@ void CN3Shape::Release() { m_Parts.clear(); m_iBelong = 0; - m_iEventID = 0; // Event ID - m_iEventType = 0; // Event Type - εƮ,, ... - m_iNPC_ID = 0; // NPC Ʈ NPC ID - m_iNPC_Status = 0; // NPC Ʈ NPC Status + m_iEventID = 0; //Event ID + m_iEventType = 0; // Event Type - Bind point, gate, lever, etc... + m_iNPC_ID = 0; // NPC ID if the object is used as an NPC + m_iNPC_Status = 0; // NPC Status if the object is used as an NPC CN3TransformCollision::Release(); } @@ -651,8 +651,8 @@ void CN3Shape::Tick(float fFrm) { return; } - // Ÿ.. ø ϰ Ѵ.. - // ū ãƼ.. + // If the distance is close, loosen the curling more. + // Find the largest scale value... float fScale = m_vScale.x; if (fScale < m_vScale.y) { fScale = m_vScale.y; @@ -661,7 +661,7 @@ void CN3Shape::Tick(float fFrm) { fScale = m_vScale.z; } - // ī޶ ָ .. + // If you are far away from the camera, it will pass by. float fDist = (m_vPos - s_CameraData.vEye).Magnitude(); if (fDist > s_CameraData.fFP + m_fRadius * fScale * 2.0f) { m_bDontRender = true; @@ -692,8 +692,8 @@ void CN3Shape::Tick(float fFrm) { } } -// ī޶ ġ, ī޶ ( ü ) -> 12 迭 Ǿ ִ. -// [0][1]:ī޶ ġ , [2][3]:ī޶ ġ , [4][5] ~ [10][11]:¿麤 +// Camera position, camera plane (observation frustum plane) -> It is an array of 12 vectors. +// [0][1]:Camera position and vector, [2][3]:Camera range position and direction vector, [4][5] ~ [10][11]:Up, down, left and right plane vectors void CN3Shape::Render() { if (false == m_bVisible) { return; @@ -718,7 +718,7 @@ void CN3Shape::Render() { #ifdef _N3TOOL void CN3Shape::RenderSelected(bool bWireFrame) { - // ׸.. + // Draw axis... CN3Transform::Render(NULL, m_fRadius * 3.0f); CN3SPart * pPD = NULL; @@ -730,7 +730,7 @@ void CN3Shape::RenderSelected(bool bWireFrame) { #endif // end of _N3TOOL bool CN3Shape::Load(HANDLE hFile) { - CN3TransformCollision::Load(hFile); // ⺻ б... + CN3TransformCollision::Load(hFile); // Read basic information... DWORD dwRWC = 0; @@ -746,15 +746,15 @@ bool CN3Shape::Load(HANDLE hFile) { for (int i = 0; i < iPC; i++) { m_Parts[i] = new CN3SPart(); m_Parts[i]->Load(hFile); - m_Parts[i]->ReCalcMatrix(m_Matrix); // Part Matrix + m_Parts[i]->ReCalcMatrix(m_Matrix); //Part Matrix Calculation } } - ReadFile(hFile, &m_iBelong, 4, &dwRWC, NULL); // Ҽ - ReadFile(hFile, &m_iEventID, 4, &dwRWC, NULL); // Event ID - ReadFile(hFile, &m_iEventType, 4, &dwRWC, NULL); // Event Type - ε Ʈ, , ... - ReadFile(hFile, &m_iNPC_ID, 4, &dwRWC, NULL); // NPC Ʈ NPC ID - ReadFile(hFile, &m_iNPC_Status, 4, &dwRWC, NULL); // NPC Ʈ NPC Status + ReadFile(hFile, &m_iBelong, 4, &dwRWC, NULL); // belong + ReadFile(hFile, &m_iEventID, 4, &dwRWC, NULL); //Event ID + ReadFile(hFile, &m_iEventType, 4, &dwRWC, NULL); // Event Type - Bind point, gate, lever, etc... + ReadFile(hFile, &m_iNPC_ID, 4, &dwRWC, NULL); // NPC ID if the object is used as an NPC + ReadFile(hFile, &m_iNPC_Status, 4, &dwRWC, NULL); // NPC Status if the object is used as an NPC this->FindMinMax(); @@ -762,12 +762,12 @@ bool CN3Shape::Load(HANDLE hFile) { } bool CN3Shape::LoadTransformOnly(HANDLE hFile) { - return CN3Transform::Load(hFile); // ⺻ б... + return CN3Transform::Load(hFile); // Read basic information... } #ifdef _N3TOOL bool CN3Shape::Save(HANDLE hFile) { - CN3TransformCollision::Save(hFile); // ⺻ б... + CN3TransformCollision::Save(hFile); // Read basic information... DWORD dwRWC = 0; @@ -780,11 +780,11 @@ bool CN3Shape::Save(HANDLE hFile) { m_Parts[i]->Save(hFile); } - WriteFile(hFile, &m_iBelong, 4, &dwRWC, NULL); // Ҽ - WriteFile(hFile, &m_iEventID, 4, &dwRWC, NULL); // Event ID - WriteFile(hFile, &m_iEventType, 4, &dwRWC, NULL); // Event Type - ε Ʈ, , ... - WriteFile(hFile, &m_iNPC_ID, 4, &dwRWC, NULL); // NPC Ʈ NPC ID - WriteFile(hFile, &m_iNPC_Status, 4, &dwRWC, NULL); // NPC Ʈ NPC Status + WriteFile(hFile, &m_iBelong, 4, &dwRWC, NULL); // belong + WriteFile(hFile, &m_iEventID, 4, &dwRWC, NULL); //Event ID + WriteFile(hFile, &m_iEventType, 4, &dwRWC, NULL); // Event Type - Bind point, gate, lever, etc... + WriteFile(hFile, &m_iNPC_ID, 4, &dwRWC, NULL); // NPC ID if the object is used as an NPC + WriteFile(hFile, &m_iNPC_Status, 4, &dwRWC, NULL); // NPC Status if the object is used as an NPC return true; } @@ -835,14 +835,14 @@ bool CN3Shape::IsPMeshProcessed() { #endif // end of _N3TOOL void CN3Shape::ReCalcMatrix() { - CN3Transform::ReCalcMatrix(); // Transfomr Matrix ְ.. + CN3Transform::ReCalcMatrix(); // Calculate the Transform Matrix... - // Ʈ Ʈ ٽ ش.. + // Recalculate the matrix of each part. ReCalcPartMatrix(); } void CN3Shape::ReCalcPartMatrix() { - // Ʈ Ʈ ٽ ش.. + // Recalculate the matrix of each part. int iPC = m_Parts.size(); for (int i = 0; i < iPC; i++) { m_Parts[i]->ReCalcMatrix(m_Matrix); @@ -864,12 +864,12 @@ void CN3Shape::FindMinMax() { __Vector3 vMinTmp(0, 0, 0); __Vector3 vMaxTmp(0, 0, 0); - // ū ã.. + // Find the largest point... static __Matrix44 mtxWI; D3DXMatrixInverse(&mtxWI, NULL, &m_Matrix); // World Matrix Inverse for (int i = 0; i < iPC; i++) { - vMinTmp = m_Parts[i]->Min() * mtxWI; // ּҰ ǥ ٲپش.. - vMaxTmp = m_Parts[i]->Max() * mtxWI; // ִ밪 ǥ ٲپش.. + vMinTmp = m_Parts[i]->Min() * mtxWI; // Converts the minimum value in the world to local coordinates. + vMaxTmp = m_Parts[i]->Max() * mtxWI; // Converts the maximum value in the world to local coordinates. if (vMinTmp.x < m_vMin.x) { m_vMin.x = vMinTmp.x; @@ -891,7 +891,7 @@ void CN3Shape::FindMinMax() { } } - // ִ ּҰ Ѵ.. + // Calculate the radius using the maximum and minimum values. m_fRadius = (m_vMax - m_vMin).Magnitude() * 0.5f; } @@ -918,7 +918,7 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, int ixScreen, int iy int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vPos, const __Vector3 & vDir, __Vector3 * pVCol, __Vector3 * pVNormal) { if (false == bIgnoreBoxCheck && false == ::_CheckCollisionByBox(vPos, vDir, m_vMin * m_Matrix, m_vMax * m_Matrix)) { - return -1; // ڽ üũ Ѵ.. + return -1; //Check the box first.. } __Vector3 vPos2 = vPos, vDir2 = vDir; @@ -935,7 +935,7 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP int nFC = nIndexCount / 3; // Face Count if (nFC > 64 && false == ::_CheckCollisionByBox(vPos, vDir, m_Parts[i]->Min(), m_Parts[i]->Max())) { - continue; // Face 24 ϴ ڽüũ Ѵ.. + continue; //If the number of faces is more than 24, check the box first. } static __Matrix44 mtxWI; @@ -943,11 +943,11 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP vPos2 = vPos * mtxWI; mtxWI.PosSet(0, 0, 0); - vDir2 = vDir * mtxWI; // ķ ȸ.. + vDir2 = vDir * mtxWI; // Rotate by inverse matrix.. int nCI0, nCI1, nCI2; __Vector3 v0, v1, v2; - for (int j = 0; j < nFC; j++) // Face 浹üũ.. + for (int j = 0; j < nFC; j++) // Collision check for each face... { nCI0 = pwIs[j * 3 + 0]; nCI1 = pwIs[j * 3 + 1]; @@ -967,8 +967,8 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP (*pVNormal).Normalize(); D3DXMatrixInverse(&mtxWI, NULL, &(m_Parts[i]->m_Matrix)); // World Matrix Inverse - mtxWI.PosSet(0, 0, 0); // ķ ȸ.. - (*pVNormal) *= mtxWI; // ķ ȸ.. + mtxWI.PosSet(0, 0, 0); // Rotate by inverse matrix.. + (*pVNormal) *= mtxWI; // Rotate by inverse matrix.. } return i; } @@ -977,7 +977,7 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP return -1; } -bool CN3Shape::MakeCollisionMeshByParts() // 浹 ޽ø ڽ ... +bool CN3Shape::MakeCollisionMeshByParts() //Make the collision mesh a box... { int iPC = m_Parts.size(); int iVC = 0, iIC = 0; @@ -1040,10 +1040,10 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP int iCount = CN3Base::s_MngVMesh.Count(); char szBuff[256]; - sprintf(szBuff, "%s_collision_%d.n3vmesh", m_szFileName.c_str(), iCount); // ӽ÷ ̸ .. + sprintf(szBuff, "%s_collision_%d.n3vmesh", m_szFileName.c_str(), iCount); // Create a temporary name... pVMesh->FileNameSet(szBuff); - CN3Base::s_MngVMesh.Delete(&m_pMeshCollision); // .. + CN3Base::s_MngVMesh.Delete(&m_pMeshCollision); // Delete the previous one... CN3Base::s_MngVMesh.Add(pVMesh); m_pMeshCollision = s_MngVMesh.Get(pVMesh->FileName()); @@ -1052,7 +1052,7 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP return true; } -bool CN3Shape::MakeCollisionMeshByPartsDetail() // ״... 浹 ޽ø ... +bool CN3Shape::MakeCollisionMeshByPartsDetail() // As it is... create a collision mesh... { int iPC = m_Parts.size(); int iMaxNumVertices = 0, iMaxNumIndices = 0; @@ -1127,10 +1127,10 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP int iCount = CN3Base::s_MngVMesh.Count(); char szBuff[256]; - sprintf(szBuff, "%s_collision_%d.n3vmesh", m_szFileName.c_str(), iCount); // ӽ÷ ̸ .. + sprintf(szBuff, "%s_collision_%d.n3vmesh", m_szFileName.c_str(), iCount); // Create a temporary name... pVMesh->FileNameSet(szBuff); - CN3Base::s_MngVMesh.Delete(&m_pMeshCollision); // .. + CN3Base::s_MngVMesh.Delete(&m_pMeshCollision); // Delete the previous one... CN3Base::s_MngVMesh.Add(pVMesh); m_pMeshCollision = s_MngVMesh.Get(pVMesh->FileName()); @@ -1141,7 +1141,7 @@ int CN3Shape::CheckCollisionPrecisely(bool bIgnoreBoxCheck, const __Vector3 & vP #ifdef _N3TOOL void CN3Shape::MakeDefaultMaterial() { - // Ʈ ⺻ ش.. + // Set the material of each part to basic white. __Material mtlBasic; mtlBasic.Init(); @@ -1154,11 +1154,11 @@ void CN3Shape::MakeDefaultMaterial() { #ifdef _N3TOOL void CN3Shape::RemoveRenderFlags(int nFlags) { - // Ʈ Ʈ ٽ ش.. + // Recalculate the matrix of each part. int iPC = m_Parts.size(); for (int i = 0; i < iPC; i++) { m_Parts[i]->m_Mtl.nRenderFlags &= (~nFlags); - ; // ⺻ .. + ; //Default white... } } #endif // end of _N3TOOL @@ -1185,7 +1185,7 @@ bool CN3Shape::SaveToSameFolder(const std::string & szFullPath) { std::vector OldTexFNs; for (int i = 0; i < iPC; i++) { szOldFN = m_Parts[i]->Mesh()->FileName(); - OldPartFNs.push_back(szOldFN); // ̸ .. + OldPartFNs.push_back(szOldFN); // Save file name.. _splitpath(szOldFN.c_str(), szDrive, szDir, szFName, szExt); szNameTmp = szPath + szFName + szExt; @@ -1196,7 +1196,7 @@ bool CN3Shape::SaveToSameFolder(const std::string & szFullPath) { CN3Texture * pTex = m_Parts[i]->Tex(j); szOldFN = pTex->FileName(); - OldTexFNs.push_back(szOldFN); // ̸ .. + OldTexFNs.push_back(szOldFN); // Save file name.. _splitpath(szOldFN.c_str(), szDrive, szDir, szFName, szExt); szNameTmp = szPath + szFName + szExt; @@ -1210,7 +1210,7 @@ bool CN3Shape::SaveToSameFolder(const std::string & szFullPath) { this->SaveToFile(szNameTmp); m_szFileName = szOldFN; - // ̸ .. + // Return the file name to the original.. iPC = m_Parts.size(); int iSeq = 0; for (int i = 0; i < iPC; i++) { @@ -1223,7 +1223,7 @@ bool CN3Shape::SaveToSameFolder(const std::string & szFullPath) { } } - // By : Ecli666 ( On 2002-10-16 11:44:19 ) + // By: Ecli666 (On 2002-10-16 11:44:19 AM) // szOldFN = CollisionMesh()->FileName(); _splitpath(CollisionMesh()->FileName().c_str(), szDrive, szDir, szFName, szExt); @@ -1231,7 +1231,7 @@ bool CN3Shape::SaveToSameFolder(const std::string & szFullPath) { CollisionMesh()->SaveToFile(szNameTmp); CollisionMesh()->FileNameSet(szOldFN); - // ~(By Ecli666 On 2002-10-16 11:44:19 ) + // ~(By Ecli666 On 2002-10-16 11:44:19 AM) return true; } @@ -1279,7 +1279,7 @@ bool CN3Shape::SaveToSameFolderAndMore(const std::string & szFullPath, const std this->SaveToFile(szNameTmp); m_szFileName = szRelativePath + szFName + szExt; - // By : Ecli666 ( On 2002-10-16 11:44:19 ) + // By: Ecli666 (On 2002-10-16 11:44:19 AM) // if (CollisionMesh()) { _splitpath(CollisionMesh()->FileName().c_str(), szDrive, szDir, szFName, szExt); @@ -1289,14 +1289,14 @@ bool CN3Shape::SaveToSameFolderAndMore(const std::string & szFullPath, const std szOldFN += szExt; CollisionMesh()->FileNameSet(szRelativePath + szFName + szExt); } - // ~(By Ecli666 On 2002-10-16 11:44:19 ) + // ~(By Ecli666 On 2002-10-16 11:44:19 AM) return true; } #endif // end of _N3TOOL -// By : Ecli666 ( On 2002-08-06 4:33:32 ) +// By: Ecli666 (On 2002-08-06 4:33:32 PM) // void CN3Shape::SetMaxLOD() { m_bDontRender = false; @@ -1374,4 +1374,4 @@ void CN3Shape::PartialGetCollision(int iIndex, __Vector3 & vec) { CollisionMesh()->PartialGetCollision(iIndex, vec); } -// ~(By Ecli666 On 2002-08-06 4:33:32 ) +// ~(By Ecli666 On 2002-08-06 4:33:32 PM) diff --git a/src/engine/N3Base/N3Shape.h b/src/engine/N3Base/N3Shape.h index f2b0f150..9a43109e 100644 --- a/src/engine/N3Base/N3Shape.h +++ b/src/engine/N3Base/N3Shape.h @@ -18,25 +18,25 @@ class CN3SPart : public CN3BaseFileAccess { friend class CN3Shape; public: - __Vector3 m_vPivot; // Local - __Matrix44 m_Matrix; // World Matrix.. Shape Loading ̸ ؾ .. - BOOL m_bOutOfCameraRange; // Camera ٱ ... + __Vector3 m_vPivot; // Local axis + __Matrix44 m_Matrix; // World Matrix.. It is best to calculate it in advance when Shape Loading. + BOOL m_bOutOfCameraRange; // Outside Camera range... __Material m_Mtl; // Material float m_fTexFPS; // Texture Animation Interval; - // __Vector3 m_vWindFactorCur; // ٶ δ .. ̰ ȸ Ų.. - // __Vector3 m_vWindFactorToReach; // ٶ δ .. - float m_fTimeToSetWind; // ٶ δ ٲٱ ð.. - float m_fWindFactorToReach; // ٶ δ .. ̰ ȸ Ų.. - float m_fWindFactorCur; // ٶ δ .. + // __Vector3 m_vWindFactorCur; // Current wind blowing value.. Rotate with this value.. + // __Vector3 m_vWindFactorToReach; // Windy value... + float m_fTimeToSetWind; // Time to change the wind blowing value... + float m_fWindFactorToReach; // Current wind blowing value.. Rotate with this value.. + float m_fWindFactorCur; // Windy value... protected: std::vector m_TexRefs; // Texture Reference Pointers CN3PMeshInstance m_PMInst; // Progressive Mesh Instance float - m_fTexIndex; // Current Texture Index.. Animation ų ʿ ε̴.. float ؼ ؽó ϸ̼ Ѵ. + m_fTexIndex; // Current Texture Index. This is the index required for animation. Texture animation is controlled using float. public: virtual bool Load(HANDLE hFile); @@ -79,7 +79,7 @@ class CN3SPart : public CN3BaseFileAccess { } void Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, - float fScale); // θ Shape , ȸʹϾ ִ´. + float fScale); // Enter the parent matrix, that is, the Shape matrix and the rotation quaternion. void Render(); #ifdef _N3TOOL void RenderSelected(bool bWireFrame); @@ -92,14 +92,14 @@ class CN3SPart : public CN3BaseFileAccess { } else { return __Vector3(0, 0, 0); } - } // ּҰ + } // minimum value in world __Vector3 Max() { if (m_PMInst.GetMesh()) { return m_PMInst.GetMesh()->Max() * m_Matrix; } else { return __Vector3(0, 0, 0); } - } // ִ밪 + } // maximum value in the world float Radius() { if (m_PMInst.GetMesh()) { return m_PMInst.GetMesh()->Radius(); @@ -124,14 +124,14 @@ typedef typename std::vector::iterator it_SPart; class CN3Shape : public CN3TransformCollision { public: - int m_iBelong; // Ҽ - 0:Ҽ 1: 2:ī罺 3:?? .... - int m_iEventID; // Event ID + int m_iBelong; // Affiliation - 0:No affiliation 1:Elmorad 2:Carus 3:?? .... + int m_iEventID; //Event ID int m_iEventType; // Event Type - int m_iNPC_ID; // NPC Ʈ NPC ID - int m_iNPC_Status; // NPC Ʈ Default Status + int m_iNPC_ID; // NPC ID if the object is used as an NPC + int m_iNPC_Status; // Default Status for objects used as NPCs - bool m_bDontRender; // ī޶ Ÿ ÷װ Ǹ ʴ´.. - bool m_bVisible; // .. + bool m_bDontRender; // If this flag is set according to the camera distance, it will not be rendered. + bool m_bVisible; //.. std::vector m_Parts; // Part Data Pointer Linked List @@ -144,12 +144,12 @@ class CN3Shape : public CN3TransformCollision { #endif // end of _N3TOOL int CheckCollisionPrecisely( bool bIgnoreBoxCheck, int ixScreen, int iyScreen, __Vector3 * pVCol = NULL, - __Vector3 * pVNormal = NULL); // ϰ üũ - ڽ üũ ٽ üũ.. + __Vector3 * pVNormal = NULL); // Precisely check by polygon - first check the box and then check again precisely... int CheckCollisionPrecisely( bool bIgnoreBoxCheck, const __Vector3 & vPos, const __Vector3 & vDir, __Vector3 * pVCol = NULL, - __Vector3 * pVNormal = NULL); // ϰ üũ - ڽ üũ ٽ üũ.. - bool MakeCollisionMeshByParts(); // 浹 ޽ø ڽ · ٽ ... - bool MakeCollisionMeshByPartsDetail(); // ״... 浹 ޽ø ... + __Vector3 * pVNormal = NULL); // Precisely check by polygon - first check the box and then check again precisely... + bool MakeCollisionMeshByParts(); // Recreate the collision mesh as a box... + bool MakeCollisionMeshByPartsDetail(); // As it is... create a collision mesh... void FindMinMax(); virtual void ReCalcMatrix(); @@ -183,7 +183,7 @@ class CN3Shape : public CN3TransformCollision { CN3Shape(); virtual ~CN3Shape(); - // By : Ecli666 ( On 2002-08-06 4:33:04 ) + // By: Ecli666 (On 2002-08-06 4:33:04 PM) // void SetMaxLOD(); __Matrix44 GetPartMatrix(int iPartIndex); diff --git a/src/engine/N3Base/N3ShapeExtra.cpp b/src/engine/N3Base/N3ShapeExtra.cpp index 656d7811..49a04585 100644 --- a/src/engine/N3Base/N3ShapeExtra.cpp +++ b/src/engine/N3Base/N3ShapeExtra.cpp @@ -36,7 +36,7 @@ bool CN3ShapeExtra::Load(HANDLE hFile) { void CN3ShapeExtra::Tick(float fFrm) { if (false == m_bVisible) { m_bDontRender = true; - return; // ʴ´. + return;// Do not force rendering. } CN3Shape::Tick(); @@ -63,11 +63,11 @@ void CN3ShapeExtra::Tick(float fFrm) { if (pRot->fRadianPerSec == 0 || pRot->fRadianCur == pRot->fRadianToReach) { continue; } - (pRot->fRadianCur < pRot->fRadianToReach) ? fDir = 1.0f : fDir = -1.0f; // .. + (pRot->fRadianCur < pRot->fRadianToReach) ? fDir = 1.0f : fDir = -1.0f; // Turning direction... fRotDelta = pRot->fRadianPerSec * fDir * CN3Base::s_fSecPerFrm; pRot->fRadianCur += fRotDelta; - if (T_Abs(pRot->fRadianToReach - pRot->fRadianCur) <= fRotDelta) /// ϴ ȴ!! + if (T_Abs(pRot->fRadianToReach - pRot->fRadianCur) <= fRotDelta) /// Everything you want is open!! { bNeedRemakeCollisionMeshes = true; pRot->fRadianPerSec = 0; @@ -81,7 +81,7 @@ void CN3ShapeExtra::Tick(float fFrm) { } if (bNeedRemakeCollisionMeshes) { - this->MakeCollisionMeshByParts(); // 浹޽ø ٽ .. + this->MakeCollisionMeshByParts(); // Recreate the collision mesh. } } @@ -98,6 +98,6 @@ void CN3ShapeExtra::RotateTo(int iPart, const __Vector3 & vAxis, float fRadianTo pRot->vAxis = vAxis; if (bImmediately) { pRot->fRadianCur = pRot->fRadianToReach - - 0.01f; // ̷ .. ణ ִ ѹ ƽ ϱ ؼ̴. + 0.01f; // This will open it directly. The reason for subtracting the value slightly is to make it tick once. } } \ No newline at end of file diff --git a/src/engine/N3Base/N3ShapeExtra.h b/src/engine/N3Base/N3ShapeExtra.h index 579ed6e8..2a9e6516 100644 --- a/src/engine/N3Base/N3ShapeExtra.h +++ b/src/engine/N3Base/N3ShapeExtra.h @@ -14,10 +14,10 @@ class CN3ShapeExtra : public CN3Shape { protected: struct __Rotation { - float fRadianPerSec; // ʴ ȸ.. Radian... - __Vector3 vAxis; // ȸ.. - float fRadianCur; // ȸ.. - float fRadianToReach; // ȸų.. + float fRadianPerSec; // Rotations per second... Radian... + __Vector3 vAxis; // Rotation axis.. + float fRadianCur; // Current rotation value.. + float fRadianToReach; // Value to rotate... __Rotation() { memset(this, 0, sizeof(__Rotation)); @@ -29,7 +29,7 @@ class CN3ShapeExtra : public CN3Shape { public: void RotateTo(int iPart, const __Vector3 & vAxis, float fRadianToReach, float fRadianPerSec, - bool bImmediately = false); // ϴ Ʈ ࿡ ӵ ȸŲ.. + bool bImmediately = false); // Rotate the desired part at a specified speed to a specified angle along the axis. bool Load(HANDLE hFile); void Tick(float fFrm); diff --git a/src/engine/N3Base/N3ShapeMgr.cpp b/src/engine/N3Base/N3ShapeMgr.cpp index fd19144b..4dd03301 100644 --- a/src/engine/N3Base/N3ShapeMgr.cpp +++ b/src/engine/N3Base/N3ShapeMgr.cpp @@ -91,6 +91,15 @@ bool CN3ShapeMgr::Load(HANDLE hFile) { DWORD dwRWC; int nL = 0; + // 1264 .opd object cn fx + int version, istrlen; + ReadFile(hFile, &(version), sizeof(int), &dwRWC, NULL); // Read the map version + ReadFile(hFile, &(istrlen), sizeof(int), &dwRWC, NULL); // Read the map name char length + + CHAR * GTDMapName = new CHAR[istrlen + 1]{}; // Zero-initialized + ReadFile(hFile, GTDMapName, istrlen, &dwRWC, NULL); // Now read it and push it back to the GTDMapName char buffer + // 1264 end + if (false == LoadCollisionData(hFile)) { return false; } diff --git a/src/engine/N3Base/N3SndDef.h b/src/engine/N3Base/N3SndDef.h index 70f75d07..1711d461 100644 --- a/src/engine/N3Base/N3SndDef.h +++ b/src/engine/N3Base/N3SndDef.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////////////// // // N3SndDef.h -// - ̰ Sound õ ڷ, ... +// - Data type definition, constant definition related to this and that Sound... // // By Donghoon.. // @@ -37,15 +37,15 @@ typedef struct __SoundSource { } } SOUNDSOURCE, *LPSOUNDSOURCE; -typedef struct __TABLE_SOUND // Sound ҽ ڵ... +typedef struct __TABLE_SOUND // Sound resource record... { - DWORD dwID; // ID + DWORD dwID; // unique ID std::string szFN; // wave file name - int iType; // Ÿ... - int iNumInst; // ִ ִ νϽ .. + int iType; // sound type... + int iNumInst; // The maximum number of available instances. } TABLE_SOUND; -// Ʈ Ÿ .. +// Sound object type definition.. enum e_SndType { SNDTYPE_2D = 0, SNDTYPE_3D, diff --git a/src/engine/N3Base/N3SndMgr.cpp b/src/engine/N3Base/N3SndMgr.cpp index e0d59924..89944947 100644 --- a/src/engine/N3Base/N3SndMgr.cpp +++ b/src/engine/N3Base/N3SndMgr.cpp @@ -21,7 +21,7 @@ CN3SndMgr::~CN3SndMgr() { } // -// ʱȭ.. +// Engine reset... // void CN3SndMgr::Init(HWND hWnd) { Release(); @@ -45,22 +45,22 @@ CN3SndObj * CN3SndMgr::CreateObj(const std::string & szFN, e_SndType eType) { CN3SndObj * pObjSrc = NULL; itm_Snd it = m_SndObjSrcs.find(szFN); - if (it == m_SndObjSrcs.end()) // ãҴ... .. + if (it == m_SndObjSrcs.end()) // I couldn't find it... let's create a new one... { pObjSrc = new CN3SndObj(); - if (false == pObjSrc->Create(szFN, eType)) // ε.. + if (false == pObjSrc->Create(szFN, eType)) // new loading... { delete pObjSrc; pObjSrc = NULL; return NULL; } - m_SndObjSrcs.insert(val_Snd(szFN, pObjSrc)); // ʿ ߰Ѵ.. + m_SndObjSrcs.insert(val_Snd(szFN, pObjSrc)); //Add to map.. } else { pObjSrc = it->second; } if (!m_bSndDuplicated) { - return pObjSrc; //this_Snd + return pObjSrc; // this_Snd } if (NULL == pObjSrc) { @@ -68,7 +68,7 @@ CN3SndObj * CN3SndMgr::CreateObj(const std::string & szFN, e_SndType eType) { } CN3SndObj * pObjNew = new CN3SndObj(); - if (false == pObjNew->Duplicate(pObjSrc, eType)) // Duplicate ó.. + if (false == pObjNew->Duplicate(pObjSrc, eType)) // Duplicate treatment... { delete pObjNew; pObjNew = NULL; @@ -76,7 +76,7 @@ CN3SndObj * CN3SndMgr::CreateObj(const std::string & szFN, e_SndType eType) { } if (pObjNew) { - m_SndObjs_Duplicated.push_back(pObjNew); // Ʈ ִ´... + m_SndObjs_Duplicated.push_back(pObjNew); // add to the list... } return pObjNew; } @@ -89,7 +89,7 @@ CN3SndObjStream * CN3SndMgr::CreateStreamObj(const std::string & szFN) { return NULL; } - m_SndObjStreams.push_back(pObj); // Ʈ ֱ.. + m_SndObjStreams.push_back(pObj); // Add to list... return pObj; } @@ -201,14 +201,14 @@ void CN3SndMgr::ReleaseObj(CN3SndObj ** ppObj) { if (NULL == ppObj || NULL == *ppObj) { return; } - std::string szFN = (*ppObj)->m_szFileName; // ̸ ϰ.. + std::string szFN = (*ppObj)->m_szFileName; // Remember the file name... itl_Snd it = m_SndObjs_Duplicated.begin(), itEnd = m_SndObjs_Duplicated.end(); for (; it != itEnd; it++) { if (*ppObj == *it) { m_SndObjs_Duplicated.erase(it); delete *ppObj; - *ppObj = NULL; // ü .. + *ppObj = NULL; // Clear object... return; } } @@ -219,12 +219,12 @@ void CN3SndMgr::ReleaseObj(CN3SndObj ** ppObj) { if (*ppObj == *it) { m_SndObjs_PlayOnceAndRelease.erase(it); delete *ppObj; - *ppObj = NULL; // ü .. + *ppObj = NULL; // Clear object... return; } } - *ppObj = NULL; // ͸ η ش.. + *ppObj = NULL; // Makes only the pointer null. /* itm_Snd it = m_SndObjSrcs.find(szFN); if(it != m_SndObjSrcs.end()) // ãҴ.. @@ -300,8 +300,8 @@ void CN3SndMgr::Release() { CN3SndObj::StaticRelease(); } -// Լ ѹ ÷ ϰ ͸ ٽ ְ ReleaseObj ȣѴ. -// ġ ó ѹۿ . +// This function plays once and calls ReleaseObj so that the pointer can be rewritten. +// Instead, the location can be specified only once, the first time. bool CN3SndMgr::PlayOnceAndRelease(int iSndID, const _D3DVECTOR * pPos) { if (!m_bSndEnable) { return false; @@ -314,18 +314,18 @@ bool CN3SndMgr::PlayOnceAndRelease(int iSndID, const _D3DVECTOR * pPos) { CN3SndObj * pObjSrc = NULL; itm_Snd it = m_SndObjSrcs.find(pTbl->szFN); - if (it == m_SndObjSrcs.end()) // ãҴ... .. + if (it == m_SndObjSrcs.end()) // I couldn't find it... let's create a new one... { pObjSrc = new CN3SndObj(); - if (false == pObjSrc->Create(pTbl->szFN, (e_SndType)pTbl->iType)) // ε.. + if (false == pObjSrc->Create(pTbl->szFN, (e_SndType)pTbl->iType)) // new loading... { delete pObjSrc; pObjSrc = NULL; return NULL; } - m_SndObjSrcs.insert(val_Snd(pTbl->szFN, pObjSrc)); // ʿ ߰Ѵ.. + m_SndObjSrcs.insert(val_Snd(pTbl->szFN, pObjSrc)); // Add to map.. if (!m_bSndDuplicated) { - pObjSrc->Play(pPos); //this_Snd + pObjSrc->Play(pPos); // this_Snd } } else { pObjSrc = it->second; @@ -341,14 +341,14 @@ bool CN3SndMgr::PlayOnceAndRelease(int iSndID, const _D3DVECTOR * pPos) { } CN3SndObj * pObj = new CN3SndObj(); - if (false == pObj->Duplicate(pObjSrc, (e_SndType)pTbl->iType)) // Duplicate ó.. + if (false == pObj->Duplicate(pObjSrc, (e_SndType)pTbl->iType)) // Duplicate processing.. { delete pObj; pObj = NULL; return NULL; } - if (pObj) // Ʈ ִ´...noah + if (pObj) // put it on the list... noah { m_SndObjs_PlayOnceAndRelease.push_back(pObj); pObj->Play(pPos); diff --git a/src/engine/N3Base/N3SndMgr.h b/src/engine/N3Base/N3SndMgr.h index 0a57c385..e9fc142c 100644 --- a/src/engine/N3Base/N3SndMgr.h +++ b/src/engine/N3Base/N3SndMgr.h @@ -21,14 +21,14 @@ typedef typename std::map::value_type val_Snd; class CN3SndMgr { protected: - CN3TableBase<__TABLE_SOUND> m_Tbl_Source; // ҽ ̺.. + CN3TableBase<__TABLE_SOUND> m_Tbl_Source; // Sound source information table.. bool m_bSndEnable; bool m_bSndDuplicated; std::map m_SndObjSrcs; - std::list m_SndObjStreams; // Ʈ .. + std::list m_SndObjStreams; // Streaming sound... std::list m_SndObjs_Duplicated; - std::list m_SndObjs_PlayOnceAndRelease; // ѹ ÷ ϰ ؾ ϴ + std::list m_SndObjs_PlayOnceAndRelease; // Sounds that need to be played and released only once public: void ReleaseObj(CN3SndObj ** ppObj); diff --git a/src/engine/N3Base/N3SndObj.cpp b/src/engine/N3Base/N3SndObj.cpp index 8d8b1cf4..6f50003b 100644 --- a/src/engine/N3Base/N3SndObj.cpp +++ b/src/engine/N3Base/N3SndObj.cpp @@ -202,10 +202,10 @@ bool CN3SndObj::Create(const std::string & szFN, e_SndType eType) { dsbd.dwBufferBytes = WaveFile.GetSize(); dsbd.lpwfxFormat = WaveFile.m_pwfx; - if (SNDTYPE_2D == eType) // 2D + if (SNDTYPE_2D == eType) // 2D sound source { dsbd.dwFlags = DSBCAPS_CTRLVOLUME; // | DSBCAPS_STATIC; - } else if (SNDTYPE_3D == eType) //3D .. + } else if (SNDTYPE_3D == eType) // 3D sound source.. { dsbd.dwFlags = DSBCAPS_CTRL3D | DSBCAPS_MUTE3DATMAXDISTANCE; // | DSBCAPS_STATIC; dsbd.guid3DAlgorithm = DS3DALG_HRTF_LIGHT; @@ -227,13 +227,13 @@ bool CN3SndObj::Create(const std::string & szFN, e_SndType eType) { } m_lpDSBuff->SetCurrentPosition(0); - if (SNDTYPE_3D == eType) { //3D .. + if (SNDTYPE_3D == eType) { // 3D sound source.. if (S_OK != m_lpDSBuff->QueryInterface(IID_IDirectSound3DBuffer, (VOID **)(&m_lpDS3DBuff))) { return false; } } - m_szFileName = szFN; // ̸ Ѵ.. + m_szFileName = szFN; // Record the file name. s_bNeedDeferredTick = true; // 3D Listener CommitDeferredSetting return true; @@ -287,7 +287,7 @@ bool CN3SndObj::Duplicate(CN3SndObj * pSrc, e_SndType eType, D3DVECTOR * pPos) { bool CN3SndObj::FillBufferWithSound(CWaveFile * pWaveFile) { if (NULL == m_lpDSBuff || NULL == pWaveFile) { - return false; // ͵ .. + return false; // Check pointers... } HRESULT hr; @@ -299,7 +299,7 @@ bool CN3SndObj::FillBufferWithSound(CWaveFile * pWaveFile) { dsbc.dwSize = sizeof(dsbc); m_lpDSBuff->GetCaps(&dsbc); if (dsbc.dwBufferBytes != pWaveFile->GetSize()) { - return false; // .. + return false; // Check size... } if (FAILED(hr = RestoreBuffer())) { @@ -371,7 +371,7 @@ void CN3SndObj::SetVolume(int Vol) { return; } if (m_lpDS3DBuff) { - return; // 3D Sound ϶ Ҹ ȵȴ..!!! + return; // When it is 3D Sound, the sound cannot be adjusted..!!! } m_iVol = Vol; @@ -381,7 +381,7 @@ void CN3SndObj::SetVolume(int Vol) { } float fVol = (float)(Vol) / 100.0f; - long dwVol = (long)(log10(fVol) * 3000); //ú Ҹ.. + long dwVol = (long)(log10(fVol) * 3000); // Decibel-related sound control.. m_lpDSBuff->SetVolume(dwVol); } @@ -447,7 +447,7 @@ void CN3SndObj::Tick() { this->SetVolume(0); HRESULT hr = m_lpDSBuff->Stop(); } else { - // ۰.... + // The volume gets smaller.... int vol = 0; if (m_fFadeOutTime > 0.0f) { vol = (((m_fFadeOutTime - m_fTmpSecPerFrm) / m_fFadeOutTime) * (float)m_iMaxVolume); @@ -472,7 +472,7 @@ void CN3SndObj::Play(const D3DVECTOR * pvPos, float delay, float fFadeInTime, bo m_fTmpSecPerFrm = 0; m_ePlayState = SNDSTATE_DELAY; - if (m_lpDS3DBuff) // 3D ϶ FadeIn ʿ .. ʱ .. + if (m_lpDS3DBuff) // When it is 3D sound, there is no need for FadeIn etc.. Return because the volume does not eat.. { m_ePlayState = SNDSTATE_PLAY; if (m_lpDSBuff) { diff --git a/src/engine/N3Base/N3SndObj.h b/src/engine/N3Base/N3SndObj.h index 15d61f7f..08f12b3c 100644 --- a/src/engine/N3Base/N3SndObj.h +++ b/src/engine/N3Base/N3SndObj.h @@ -28,7 +28,7 @@ class CN3SndObj { float m_fTmpSecPerFrm; public: - std::string m_szFileName; //̸...(ID ). + std::string m_szFileName; // Filename... (instead of ID). protected: virtual void RealPlay(); @@ -59,7 +59,7 @@ class CN3SndObj { int GetMaxVolume() { return m_iMaxVolume; } void Init(); - void Release(); // īƮ ش.. Ŵ īƮ ʿ .. + void Release(); // It returns the reference count. The sound manager sees this reference count and deletes it from the map. virtual bool Create(const std::string & szFN, e_SndType eType); bool Duplicate(CN3SndObj * pSrc, e_SndType eType, D3DVECTOR * pPos = NULL); diff --git a/src/engine/N3Base/N3SndObjStream.cpp b/src/engine/N3Base/N3SndObjStream.cpp index 66d33d7c..98adc6fb 100644 --- a/src/engine/N3Base/N3SndObjStream.cpp +++ b/src/engine/N3Base/N3SndObjStream.cpp @@ -1,6 +1,6 @@ ////////////////////////////////////////////////// // Commented By : Lynus -// Commented On 2001-04-12 8:42:02 +// Commented On 2001-04-12 Apr 8:42:02 // // CN3SndObjStream class (N3SndObjStream.h) // @@ -199,12 +199,12 @@ void CN3SndObjStream::RealPlay() { m_PastTime--; if (m_PastTime < 0) { if (m_bIsLoop == false) { - //tick ΰ.. + //How do I apply it to the tick? m_PastTime = m_PlayTime; Stop(); return; } else if (m_bIsLoop == true) { - //tick ΰ.. + //How do I apply it to the tick? //Stop(); //m_lpDSBuff->Stop(); Play(); @@ -246,7 +246,7 @@ void CN3SndObjStream::Release() { } // -// ÷̵ǰ streammingŰ.. +// Streamming while music is playing... // void CN3SndObjStream::Tick() { if (m_ePlayState == SNDSTATE_STOP) { @@ -288,7 +288,7 @@ void CN3SndObjStream::Tick() { HRESULT hr = m_lpDSBuff->Stop(); m_ePlayState = SNDSTATE_STOP; } else { - // ۰.... + // The volume goes down.... int vol = 0; if (m_fFadeOutTime > 0.0f) { vol = (((m_fFadeOutTime - m_fTmpSecPerFrm) / m_fFadeOutTime) * (float)m_iMaxVolume); @@ -314,7 +314,7 @@ void CN3SndObjStream::Play(float delay, float fFadeInTime) // -// Ȱ. +// same. // void CN3SndObjStream::Stop(float fFadeOutTime) { diff --git a/src/engine/N3Base/N3SndObjStream.h b/src/engine/N3Base/N3SndObjStream.h index 11ba2855..39d414c9 100644 --- a/src/engine/N3Base/N3SndObjStream.h +++ b/src/engine/N3Base/N3SndObjStream.h @@ -1,6 +1,6 @@ ////////////////////////////////////////////////// // Commented By : Lynus -// Commented On 2001-04-12 5:09:28 +// Commented On 2001-04-12 Apr 5:09:28 // // CN3SndObjStream class (SoundObj.h) // @@ -15,17 +15,17 @@ class CN3SndEng; class CN3SndObjStream : public CN3SndObj { private: - int m_PlayTime; //wave ü ÷ Ÿ. + int m_PlayTime; // The total playing time of the wave file. int m_FinalByte; DSBUFFERDESC m_dsbd; DWORD m_BufferSize; - DWORD m_BlockSize; //buffer ʴ . + DWORD m_BlockSize; // Divide the buffer by seconds. - int m_CurrState; // ִ.. - int m_PrevState; // ٷ ־.. - DWORD m_CurrPos; // ۿ ġ - int m_PastTime; //ü ÷ Ÿӿ ð + int m_CurrState; //Which block are you currently on? + int m_PrevState; //Which block were you on just before now? + DWORD m_CurrPos; //position in the current buffer + int m_PastTime; //Time remaining in total play time //related wave data WAVEFORMATEX m_WaveFormat; diff --git a/src/engine/N3Base/N3TableBase.h b/src/engine/N3Base/N3TableBase.h index 36baf12e..82f647aa 100644 --- a/src/engine/N3Base/N3TableBase.h +++ b/src/engine/N3Base/N3TableBase.h @@ -36,23 +36,23 @@ template class CN3TableBase { typedef typename std::map::value_type val_Table; typedef std::pair pair_Table; - std::vector m_DataTypes; // Ǵ Ÿ Ÿ - std::map m_Datas; // Ǵ + std::vector m_DataTypes; // Data type of information actually used + std::map m_Datas; //Actually used information // Operations public: void Release(); - Type * Find(unsigned int dwID) // ID data ã + Type * Find(unsigned int dwID) // Find data by ID { it_Table it = m_Datas.find(dwID); if (it == m_Datas.end()) { - return NULL; // ã⿡ ߴ!~!! + return NULL; // Failed to find it!~!! } else { return &(it->second); } } int GetSize() { return m_Datas.size(); } - Type * GetIndexedData(int index) //index ã.. + Type * GetIndexedData(int index) //Find by index.. { if (index < 0 || m_Datas.empty()) { return NULL; @@ -67,11 +67,11 @@ template class CN3TableBase { } return &(it->second); } - int IDToIndex(unsigned int dwID) // ش ID Index .. Skill .. + int IDToIndex(unsigned int dwID) // Returns the Index of the ID.. Used in Skill.. { it_Table it = m_Datas.find(dwID); if (it == m_Datas.end()) { - return -1; // ã⿡ ߴ!~!! + return -1;// Failed to find!~!! } it_Table itSkill = m_Datas.begin(); @@ -95,7 +95,7 @@ template class CN3TableBase { BOOL MakeOffsetTable(std::vector & offsets); }; -// cppϿ ϱ link . ׷? +//Because it is in the cpp file, a link error occurs. Why? template CN3TableBase::CN3TableBase() {} @@ -104,11 +104,11 @@ template CN3TableBase::~CN3TableBase() { } template void CN3TableBase::Release() { - m_DataTypes.clear(); // data type Ѱ - m_Datas.clear(); // row Ÿ + m_DataTypes.clear(); // Clear saved data type + m_Datas.clear(); // Clear row data } -// Ͽ Ÿ ŸԺ .. +// Write data type to file.. template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE DataType, const char * lpszData) { DWORD dwNum; switch (DataType) { @@ -117,11 +117,11 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0])) { int iTemp = atoi(lpszData); if (iTemp < -127 || iTemp > 128) { - return FALSE; // ~ + return FALSE; //Out of range~ } cWrite = (char)iTemp; } else { - return FALSE; // ڴ ȵ~! + return FALSE; // No text! } WriteFile(hFile, &cWrite, sizeof(cWrite), &dwNum, NULL); @@ -131,11 +131,11 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0])) { int iTemp = atoi(lpszData); if (iTemp < 0 || iTemp > 255) { - return FALSE; // ~ + return FALSE; //Out of range~ } byteWrite = (BYTE)iTemp; } else { - return FALSE; // ڴ ȵ~! + return FALSE; // No text! } WriteFile(hFile, &byteWrite, sizeof(byteWrite), &dwNum, NULL); @@ -145,11 +145,11 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0]) || '-' == lpszData[0]) { int iTemp = atoi(lpszData); if (iTemp < -32767 || iTemp > 32768) { - return FALSE; // ~ + return FALSE;//Out of range~ } iWrite = (short)iTemp; } else { - return FALSE; // ڴ ȵ~! + return FALSE; // No text! } WriteFile(hFile, &iWrite, sizeof(iWrite), &dwNum, NULL); @@ -159,11 +159,11 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0])) { int iTemp = atoi(lpszData); if (iTemp < 0 || iTemp > 65535) { - return FALSE; // ~ + return FALSE; //Out of range~ } iWrite = (short)iTemp; } else { - return FALSE; // ڴ ȵ~! + return FALSE; // No text! } WriteFile(hFile, &iWrite, sizeof(iWrite), &dwNum, NULL); @@ -173,7 +173,7 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0]) || '-' == lpszData[0]) { iWrite = atoi(lpszData); } else { - return FALSE; // ڴ ȵ~! + return FALSE; // No text! } WriteFile(hFile, &iWrite, sizeof(iWrite), &dwNum, NULL); @@ -183,7 +183,7 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0])) { iWrite = strtoul(lpszData, NULL, 10); } else { - return FALSE; // ڴ ȵ~! + return FALSE; // No text! } WriteFile(hFile, &iWrite, sizeof(iWrite), &dwNum, NULL); @@ -201,7 +201,7 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0]) || '-' == lpszData[0] || '.' == lpszData[0]) { fWrite = (float)atof(lpszData); } else { - return FALSE; // ڴ ȵ~! + return FALSE; // No text! } WriteFile(hFile, &fWrite, sizeof(fWrite), &dwNum, NULL); } break; @@ -282,23 +282,23 @@ template BOOL CN3TableBase::LoadFromFile(const std::string & return FALSE; } - // ȣȭ Ǯ.. .. ӽ Ͽ .. + // Decrypt the file... write it to a temporary file... std::string szFNTmp = szFN + ".tmp"; DWORD dwSizeHigh = 0; DWORD dwSizeLow = ::GetFileSize(hFile, &dwSizeHigh); if (dwSizeLow <= 0) { CloseHandle(hFile); - ::remove(szFNTmp.c_str()); // ӽ .. + ::remove(szFNTmp.c_str()); // Clear temporary files.. return FALSE; } - // а.. +// Read the original file... BYTE * pDatas = new BYTE[dwSizeLow]; DWORD dwRWC = 0; - ::ReadFile(hFile, pDatas, dwSizeLow, &dwRWC, NULL); // ȣȭ а.. - CloseHandle(hFile); // ݰ + ::ReadFile(hFile, pDatas, dwSizeLow, &dwRWC, NULL); // Read encrypted data... + CloseHandle(hFile); // close the original file - // ̺ Ű Ű.. + // Same key as the key used in the table creation tool.. WORD key_r = 0x0816; WORD key_c1 = 0x6081; WORD key_c2 = 0x1608; @@ -319,22 +319,22 @@ template BOOL CN3TableBase::LoadFromFile(const std::string & // return plain; //} - // ȣȭ Ǯ.. + // Decrypt encryption... for (int i = 0; i < dwSizeLow; i++) { BYTE byData = (pDatas[i] ^ (key_r >> 8)); key_r = (pDatas[i] + key_r) * key_c1 + key_c2; pDatas[i] = byData; } - // ӽ Ͽ .. ٽ .. + // Write to a temporary file... then open it again... hFile = ::CreateFile(szFNTmp.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - ::WriteFile(hFile, pDatas, dwSizeLow, &dwRWC, NULL); // ӽϿ ȣȭ Ǯ - CloseHandle(hFile); // ӽ ݱ + ::WriteFile(hFile, pDatas, dwSizeLow, &dwRWC, NULL); // Write decrypted data to temporary file + CloseHandle(hFile); // Close temporary file delete[] pDatas; pDatas = NULL; hFile = ::CreateFile(szFNTmp.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, - NULL); // ӽ б . + NULL); // Open temporary file in read mode. BOOL bResult = Load(hFile); @@ -346,7 +346,7 @@ template BOOL CN3TableBase::LoadFromFile(const std::string & #endif } - // ӽ .. + // Clear temporary files.. ::remove(szFNTmp.c_str()); return bResult; @@ -355,27 +355,27 @@ template BOOL CN3TableBase::LoadFromFile(const std::string & template BOOL CN3TableBase::Load(HANDLE hFile) { Release(); - // data(column)  Ǿ ִ б + // Read how data(column) is structured DWORD dwNum; int iDataTypeCount = 0; - ReadFile(hFile, &iDataTypeCount, 4, &dwNum, NULL); // ( column ) + ReadFile(hFile, &iDataTypeCount, 4, &dwNum, NULL); // (Number of columns in Excel) std::vector offsets; - __ASSERT(iDataTypeCount > 0, "Data Type 0 Դϴ."); + __ASSERT(iDataTypeCount > 0, "Data Type is 0 or less."); if (iDataTypeCount > 0) { m_DataTypes.insert(m_DataTypes.begin(), iDataTypeCount, DT_NONE); ReadFile(hFile, &(m_DataTypes[0]), sizeof(DATA_TYPE) * iDataTypeCount, &dwNum, - NULL); // column شϴ data type + NULL); // data type corresponding to each column if (FALSE == MakeOffsetTable(offsets)) { __ASSERT(0, "can't make offset table"); - return FALSE; // structure offset table ֱ + return FALSE; // Create an offset table for structure variables } int iSize = offsets - [iDataTypeCount]; // MakeOffstTable Լ ϵǴ m_iDataTypeCount° Լ  ִ. - if (sizeof(Type) != iSize || // ü type ũ ü ũ ٸų - DT_DWORD != m_DataTypes[0]) // ó Ÿ DT_DWORD ƴҶ(ó ID̹Ƿ) + [iDataTypeCount]; //Among the values returned from the MakeOffstTable function, m_iDataTypeCount contains the actual size of this function. + if (sizeof(Type) != iSize || // The size of the entire type is different from the size of the actual structure + DT_DWORD != m_DataTypes[0]) // When the first data is not DT_DWORD type (since the first data is a unique ID) { m_DataTypes.clear(); __ASSERT(0, "DataType is mismatch or DataSize is incorrect!!"); @@ -383,7 +383,7 @@ template BOOL CN3TableBase::Load(HANDLE hFile) { } } - // row б + // read how many rows there are int iRC; ReadFile(hFile, &iRC, sizeof(iRC), &dwNum, NULL); Type Data; @@ -395,7 +395,7 @@ template BOOL CN3TableBase::Load(HANDLE hFile) { unsigned int dwKey = *((unsigned int *)(&Data)); pair_Table pt = m_Datas.insert(val_Table(dwKey, Data)); - __ASSERT(pt.second, "CN3TableBase : Key ߺ ."); + __ASSERT(pt.second, "CN3TableBase : Key duplication warning."); } return TRUE; } @@ -425,8 +425,8 @@ template int CN3TableBase::SizeOf(DATA_TYPE DataType) const { return 0; } -// structure 4Ʈ Ͽ ޸𸮸 ´. Ʒ Լ ʿϴ. -// Ʒ Լ OffsetTable Ŀ ϰ delete [] ־ Ѵ. +// The structure captures memory by aligning it by 4 bytes. Therefore, the function below is needed. +// After creating and using OffsetTable with the function below, you must delete [] the return value when creating it. template BOOL CN3TableBase::MakeOffsetTable(std::vector & offsets) { if (m_DataTypes.empty()) { return false; @@ -434,27 +434,27 @@ template BOOL CN3TableBase::MakeOffsetTable(std::vector int iDataTypeCount = m_DataTypes.size(); offsets.clear(); - offsets.resize(iDataTypeCount + 1); // +1 Type  ֱ ؼ + offsets.resize(iDataTypeCount + 1); // The reason for adding +1 is to put the actual size of the Type in the last value. offsets[0] = 0; int iPrevDataSize = SizeOf(m_DataTypes[0]); for (int i = 1; i < iDataTypeCount; ++i) { int iCurDataSize = SizeOf(m_DataTypes[i]); - if (1 == iCurDataSize % 4) // Ͱ 1Ʈ ׳ Ͱ Ʈ . + if (1 == iCurDataSize % 4) //If the current data is 1 byte, it doesn't matter how many bytes the previous data is. { offsets[i] = offsets[i - 1] + iPrevDataSize; - } else if (2 == iCurDataSize % 4) // Ͱ 2Ʈ ¦ ġؾ Ѵ. + } else if (2 == iCurDataSize % 4) //If the current data is 2 bytes, it must be located at an even address. { if (0 == ((offsets[i - 1] + iPrevDataSize) % 2)) { offsets[i] = offsets[i - 1] + iPrevDataSize; } else { offsets[i] = offsets[i - 1] + iPrevDataSize + 1; } - } else if (0 == iCurDataSize % 4) // Ͱ 4Ʈ 4 ġؾ Ѵ. + } else if (0 == iCurDataSize % 4) // If the current data is 4 bytes, it must be located at an address that is a multiple of 4. { if (0 == ((offsets[i - 1] + iPrevDataSize) % 4)) { offsets[i] = offsets[i - 1] + iPrevDataSize; } else { - offsets[i] = ((int)(offsets[i - 1] + iPrevDataSize + 3) / 4) * 4; // 4 + offsets[i] = ((int)(offsets[i - 1] + iPrevDataSize + 3) / 4) * 4; // Make it a multiple of 4 } } else { __ASSERT(0, ""); @@ -462,8 +462,8 @@ template BOOL CN3TableBase::MakeOffsetTable(std::vector iPrevDataSize = iCurDataSize; } - // Type  . - offsets[iDataTypeCount] = ((int)(offsets[iDataTypeCount - 1] + iPrevDataSize + 3) / 4) * 4; // 4 + // Let's put the actual size of the Type in the last value. + offsets[iDataTypeCount] = ((int)(offsets[iDataTypeCount - 1] + iPrevDataSize + 3) / 4) * 4; // Make it a multiple of 4 return true; } diff --git a/src/engine/N3Base/N3Texture.cpp b/src/engine/N3Base/N3Texture.cpp index d4c43805..60fc50b4 100644 --- a/src/engine/N3Base/N3Texture.cpp +++ b/src/engine/N3Base/N3Texture.cpp @@ -65,7 +65,7 @@ bool CN3Texture::Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerat this->Release(); } - if (s_dwTextureCaps & TEX_CAPS_POW2) // 2 ¼ ȴٸ.. + if (s_dwTextureCaps & TEX_CAPS_POW2) // As long as it is a multiplier of 2... { int nW = 1, nH = 1; for (; nW <= nWidth; nW *= 2) { @@ -81,7 +81,7 @@ bool CN3Texture::Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerat nHeight = nH; } - if ((s_dwTextureCaps & TEX_CAPS_SQUAREONLY) && nWidth != nHeight) // 簢 ؽó Ǹ.. + if ((s_dwTextureCaps & TEX_CAPS_SQUAREONLY) && nWidth != nHeight) // As long as it has a square texture... { if (nWidth > nHeight) { nWidth = nHeight; @@ -90,7 +90,7 @@ bool CN3Texture::Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerat } } - // ī尡 256 ̻ ؽó ϸ.. + // If the video card does not support textures higher than 256... if (nWidth > 256 && CN3Base::s_DevCaps.MaxTextureWidth <= 256) { nWidth = CN3Base::s_DevCaps.MaxTextureWidth; } @@ -101,8 +101,8 @@ bool CN3Texture::Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerat // .. memset(&m_Header, 0, sizeof(m_Header)); - // MipMap ܰ .. - // 4 X 4 ȼ MipMap .. + // MipMap step decision.. + // Create MipMap only up to 4 int nMMC = 1; if (bGenerateMipMap) { nMMC = 0; @@ -181,10 +181,10 @@ bool CN3Texture::LoadFromFile(const std::string & szFileName) { this->Release(); } - this->FileNameSet(szFileName); // ̸ ϰ.. + this->FileNameSet(szFileName); // Copy the file name... std::string szFullPath; if (-1 != m_szFileName.find(':') || -1 != m_szFileName.find("\\\\") || - -1 != m_szFileName.find("//")) // ڿ ':', '\\', '//' ü ̴.. + -1 != m_szFileName.find("//")) // If the string contains ':', '\\', or '//', it is a full path. { szFullPath = m_szFileName; } else { @@ -254,8 +254,8 @@ bool CN3Texture::Load(HANDLE hFile) { DWORD dwRWC = 0; - __DXT_HEADER HeaderOrg; // .. - ReadFile(hFile, &HeaderOrg, sizeof(HeaderOrg), &dwRWC, NULL); // д´.. + __DXT_HEADER HeaderOrg; // Save the header... + ReadFile(hFile, &HeaderOrg, sizeof(HeaderOrg), &dwRWC, NULL); // Read the header.. if ('N' != HeaderOrg.szID[0] || 'T' != HeaderOrg.szID[1] || 'F' != HeaderOrg.szID[2] || 3 != HeaderOrg.szID[3]) // "NTF"3 - Noah Texture File Ver. 3.0 { @@ -264,7 +264,7 @@ bool CN3Texture::Load(HANDLE hFile) { #endif } - // DXT Format о ϴµ Ǵ ȵǴ ȵǸ ü Ѵ. + // You need to read the DXT Format, check whether it is supported or not, and if not, decide on an alternative format. bool bDXTSupport = FALSE; D3DFORMAT fmtNew = HeaderOrg.Format; if (D3DFMT_DXT1 == HeaderOrg.Format) { @@ -303,19 +303,19 @@ bool CN3Texture::Load(HANDLE hFile) { if (fmtNew != HeaderOrg.Format) { iWCreate /= 2; iHCreate /= 2; - } // DXT ȵǸ ʺ ̸ δ. - if (m_iLOD > 0 && m_iLOD <= 2 && HeaderOrg.nWidth >= 16 && HeaderOrg.nHeight >= 16) // LOD ŭ ۰ .. + } // If DXT is not supported, reduce the width and height. + if (m_iLOD > 0 && m_iLOD <= 2 && HeaderOrg.nWidth >= 16 && HeaderOrg.nHeight >= 16) // Create as small as LOD... { for (int i = 0; i < m_iLOD; i++) { iWCreate /= 2; iHCreate /= 2; } } else { - m_iLOD = 0; // LOD ƴϸ.. + m_iLOD = 0; // Unless LOD is applied... } int iLODPrev = m_iLOD; - this->Create(iWCreate, iHCreate, fmtNew, HeaderOrg.bMipMap); // ǽ .. + this->Create(iWCreate, iHCreate, fmtNew, HeaderOrg.bMipMap); // Create a surface... m_iLOD = iLODPrev; if (m_lpTexture == NULL) { @@ -327,25 +327,25 @@ bool CN3Texture::Load(HANDLE hFile) { D3DSURFACE_DESC sd; D3DLOCKED_RECT LR; - int iMMC = m_lpTexture->GetLevelCount(); // MipMap + int iMMC = m_lpTexture->GetLevelCount(); // Number of MipMaps created - // ̸.. + // If it is a compressed format... if (D3DFMT_DXT1 == HeaderOrg.Format || D3DFMT_DXT2 == HeaderOrg.Format || D3DFMT_DXT3 == HeaderOrg.Format || D3DFMT_DXT4 == HeaderOrg.Format || D3DFMT_DXT5 == HeaderOrg.Format) { - if (TRUE == bDXTSupport) // ؽó ̸.. + if (TRUE == bDXTSupport) // If compressed texture is supported... { if (iMMC > 1) { - if (m_iLOD > 0) // LOD ŭ dzʶٱ... + if (m_iLOD > 0) // Skip by LOD... { int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; for (int i = 0; i < m_iLOD; i++, iWTmp /= 2, iHTmp /= 2) { if (D3DFMT_DXT1 == HeaderOrg.Format) { - iSkipSize += iWTmp * iHTmp / 2; // DXT1 16Ʈ ˿ 1/4 .. + iSkipSize += iWTmp * iHTmp / 2; // DXT1 format is compressed to 1/4 of the 16-bit format. } else { - iSkipSize += iWTmp * iHTmp; // DXT2 ~ DXT5 16Ʈ ˿ 1/2 .. + iSkipSize += iWTmp * iHTmp; // DXT2 ~ DXT5 formats are compressed to 1/2 of the 16-bit format. } } - ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // dzʶٰ. + ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip it. } for (int i = 0; i < iMMC; i++) { @@ -354,16 +354,16 @@ bool CN3Texture::Load(HANDLE hFile) { int iTexBytesLength = 0; iTexBytesLength = sd.Format == D3DFMT_DXT1 ? (sd.Width * sd.Height / 2) : (sd.Width * sd.Height); - ReadFile(hFile, (BYTE *)LR.pBits, iTexBytesLength, &dwRWC, NULL); // Ϸķ ͸ .. + ReadFile(hFile, (BYTE *)LR.pBits, iTexBytesLength, &dwRWC, NULL); // Write data in a row... m_lpTexture->UnlockRect(i); } - // ؽó ȵǴ ī带 dzʶٱ.. + // Skip extra data for video cards that do not compress textures... int iWTmp = HeaderOrg.nWidth / 2, iHTmp = HeaderOrg.nHeight / 2; for (; iWTmp >= 4 && iHTmp >= 4; iWTmp /= 2, - iHTmp /= 2) { // ȼ ιƮ  A1R5G5B5 Ȥ A4R4G4B4 Ǿ ִ.. - ::SetFilePointer(hFile, iWTmp * iHTmp * 2, 0, FILE_CURRENT); // dzʶٰ. + iHTmp /= 2) { // It is formatted as A1R5G5B5 or A4R4G4B4, which contains two bytes per pixel. + ::SetFilePointer(hFile, iWTmp * iHTmp * 2, 0, FILE_CURRENT); // Skip it. } } else // pair of if(iMMC > 1) { @@ -372,48 +372,48 @@ bool CN3Texture::Load(HANDLE hFile) { int iTexBytesLength = 0; iTexBytesLength = sd.Format == D3DFMT_DXT1 ? (sd.Width * sd.Height / 2) : (sd.Width * sd.Height); - ReadFile(hFile, (BYTE *)LR.pBits, iTexBytesLength, &dwRWC, NULL); // Ϸķ ͸ .. + ReadFile(hFile, (BYTE *)LR.pBits, iTexBytesLength, &dwRWC, NULL); // Write data in a row... m_lpTexture->UnlockRect(0); - // ؽó ȵǴ ī带 dzʶٱ.. - ::SetFilePointer(hFile, HeaderOrg.nWidth * HeaderOrg.nHeight / 4, 0, FILE_CURRENT); // dzʶٰ. + // Skip extra data for video cards that do not compress textures... + ::SetFilePointer(hFile, HeaderOrg.nWidth * HeaderOrg.nHeight / 4, 0, FILE_CURRENT); // Skip. if (HeaderOrg.nWidth >= 1024) { SetFilePointer(hFile, 256 * 256 * 2, 0, - FILE_CURRENT); //  512 Ŭ εο dzʶٱ.. + FILE_CURRENT); // If size is larger than 512, skip data for dock.. } } - } else // DXT ȵǸ.. + } else // If DXT is not supported... { - if (iMMC > 1) // LOD ŭ dzʶٱ... + if (iMMC > 1) // Skip by LOD... { - // dzʶٱ.. + // Skip compressed data.. int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; for (; iWTmp >= 4 && iHTmp >= 4; iWTmp /= 2, iHTmp /= 2) { if (D3DFMT_DXT1 == HeaderOrg.Format) { - iSkipSize += iWTmp * iHTmp / 2; // DXT1 16Ʈ ˿ 1/4 .. + iSkipSize += iWTmp * iHTmp / 2; // DXT1 format is compressed to 1/4 of the 16-bit format. } else { - iSkipSize += iWTmp * iHTmp; // DXT2 ~ DXT5 16Ʈ ˿ 1/2 .. + iSkipSize += iWTmp * iHTmp; // DXT2 ~ DXT5 format is compressed to 1/2 of the 16-bit format. } } - ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // dzʶٰ. + ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip. - // LOD ŭ dzʶٱ.. + // Skip as much as LOD... iWTmp = HeaderOrg.nWidth / 2; iHTmp = HeaderOrg.nHeight / 2; iSkipSize = 0; if (m_iLOD > 0) { for (int i = 0; i < m_iLOD; i++, iWTmp /= 2, iHTmp /= 2) { - iSkipSize += iWTmp * iHTmp * 2; // ġ ʺ ȼ ũ Ѵ... + iSkipSize += iWTmp * iHTmp * 2; // I think the pixel size is the pitch divided by the width... } } - // ī ؽó ũⰡ dzʶٱ.. + // Skip if the video card supports texture size is small.. for (; iWTmp > s_DevCaps.MaxTextureWidth || iHTmp > s_DevCaps.MaxTextureHeight; iWTmp /= 2, iHTmp /= 2) { iSkipSize += iWTmp * iHTmp * 2; } if (iSkipSize) { - ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // dzʶٰ. + ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip it. } for (int i = 0; i < iMMC; i++) { @@ -427,12 +427,12 @@ bool CN3Texture::Load(HANDLE hFile) { } } else // pair of if(iMMC > 1) { - // dzʶٱ.. + // Skip compressed data.. int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; if (D3DFMT_DXT1 == HeaderOrg.Format) { - iSkipSize = iWTmp * iHTmp / 2; // DXT1 16Ʈ ˿ 1/4 .. + iSkipSize = iWTmp * iHTmp / 2; // The DXT1 format is compressed to 1/4 the size of the 16-bit format. } else { - iSkipSize = iWTmp * iHTmp; // DXT2 ~ DXT5 16Ʈ ˿ 1/2 .. + iSkipSize = iWTmp * iHTmp; // DXT2 ~ DXT5 formats are compressed to 1/2 of the 16-bit format. } } } @@ -449,25 +449,25 @@ bool CN3Texture::Load(HANDLE hFile) { } if (iMMC > 1) { - if (m_iLOD > 0) // LOD ŭ dzʶٱ... + if (m_iLOD > 0) // Skip by LOD... { int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; for (int i = 0; i < m_iLOD; i++, iWTmp /= 2, iHTmp /= 2) { - iSkipSize += iWTmp * iHTmp * iPixelSize; // ġ ʺ ȼ ũ Ѵ... + iSkipSize += iWTmp * iHTmp * iPixelSize; // I think the pixel size is the pitch divided by the width... } - ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // dzʶٰ. + ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip. } - // ī ؽó ũⰡ dzʶٱ.. + // Skip if the video card supported texture size is small.. int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; for (; iWTmp > s_DevCaps.MaxTextureWidth || iHTmp > s_DevCaps.MaxTextureHeight; iWTmp /= 2, iHTmp /= 2) { iSkipSize += iWTmp * iHTmp * iPixelSize; } if (iSkipSize) { - ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // dzʶٰ. + ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip } - // б.. + // Reading data... for (int i = 0; i < iMMC; i++) { m_lpTexture->GetLevelDesc(i, &sd); m_lpTexture->LockRect(i, &LR, NULL, NULL); @@ -478,10 +478,10 @@ bool CN3Texture::Load(HANDLE hFile) { } } else // pair of if(iMMC > 1) { - // ī ؽó ũⰡ dzʶٱ.. + // Skip if the video card supports texture size is small.. if (HeaderOrg.nWidth >= 512 && m_Header.nWidth <= 256) { ::SetFilePointer(hFile, HeaderOrg.nWidth * HeaderOrg.nHeight * iPixelSize, 0, - FILE_CURRENT); // dzʶٰ. + FILE_CURRENT); // Skip } m_lpTexture->GetLevelDesc(0, &sd); @@ -493,20 +493,20 @@ bool CN3Texture::Load(HANDLE hFile) { if (m_Header.nWidth >= 512 && m_Header.nHeight >= 512) { SetFilePointer(hFile, 256 * 256 * 2, 0, - FILE_CURRENT); //  512 Ŭ εο dzʶٱ.. + FILE_CURRENT); // If size is larger than 512, skip data for dock.. } } } - // this->GenerateMipMap(); // Mip Map .. + // this->GenerateMipMap(); // Create a Mip Map.. return true; } bool CN3Texture::SkipFileHandle(HANDLE hFile) { CN3BaseFileAccess::Load(hFile); - __DXT_HEADER HeaderOrg; // .. + __DXT_HEADER HeaderOrg; // Save the header... DWORD dwRWC = 0; - ReadFile(hFile, &HeaderOrg, sizeof(HeaderOrg), &dwRWC, NULL); // д´.. + ReadFile(hFile, &HeaderOrg, sizeof(HeaderOrg), &dwRWC, NULL); // Read the header... if ('N' != HeaderOrg.szID[0] || 'T' != HeaderOrg.szID[1] || 'F' != HeaderOrg.szID[2] || 3 != HeaderOrg.szID[3]) // "NTF"3 - Noah Texture File Ver. 3.0 { @@ -515,12 +515,12 @@ bool CN3Texture::SkipFileHandle(HANDLE hFile) { #endif } - // ̸.. + // If it is a compressed format... if (D3DFMT_DXT1 == HeaderOrg.Format || D3DFMT_DXT2 == HeaderOrg.Format || D3DFMT_DXT3 == HeaderOrg.Format || D3DFMT_DXT4 == HeaderOrg.Format || D3DFMT_DXT5 == HeaderOrg.Format) { int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; if (HeaderOrg.bMipMap) { - // dzʶٱ.. + // Skip compressed data.. for (; iWTmp >= 4 && iHTmp >= 4; iWTmp /= 2, iHTmp /= 2) { if (D3DFMT_DXT1 == HeaderOrg.Format) { iSkipSize += iWTmp * iHTmp / 2; @@ -528,30 +528,30 @@ bool CN3Texture::SkipFileHandle(HANDLE hFile) { iSkipSize += iWTmp * iHTmp; } } - // ؽó ȵǴ ī带 dzʶٱ.. + // Skipping extra data for video cards that don't compress textures. iWTmp = HeaderOrg.nWidth / 2; iHTmp = HeaderOrg.nHeight / 2; for (; iWTmp >= 4 && iHTmp >= 4; - iWTmp /= 2, iHTmp /= 2) { // ȼ ιƮ  A1R5G5B5 Ȥ A4R4G4B4 Ǿ ִ.. - iSkipSize += iWTmp * iHTmp * 2; // dzʶٰ. + iWTmp /= 2, iHTmp /= 2) { // It is formatted as A1R5G5B5 or A4R4G4B4, which contains two bytes per pixel. + iSkipSize += iWTmp * iHTmp * 2; // Skip } } else // pair of if(HeaderOrg.bMipMap) { - // dzʶٱ.. + // Skip compressed data.. if (D3DFMT_DXT1 == HeaderOrg.Format) { iSkipSize += HeaderOrg.nWidth * HeaderOrg.nHeight / 2; } else { iSkipSize += iSkipSize += HeaderOrg.nWidth * HeaderOrg.nHeight; } - // ؽó ȵǴ ī带 dzʶٱ.. + // Skipping extra data for video cards that don't compress textures. iSkipSize += HeaderOrg.nWidth * HeaderOrg.nHeight * 2; if (HeaderOrg.nWidth >= 1024) { - iSkipSize += 256 * 256 * 2; //  1024 Ŭ εο dzʶٱ.. + iSkipSize += 256 * 256 * 2; // If the size is larger than 1024, skip the dock data. } } - ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // dzʶٰ. + ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip } else { int iPixelSize = 0; if (HeaderOrg.Format == D3DFMT_A1R5G5B5 || HeaderOrg.Format == D3DFMT_A4R4G4B4) { @@ -572,11 +572,11 @@ bool CN3Texture::SkipFileHandle(HANDLE hFile) { } else { iSkipSize += iWTmp * iHTmp * iPixelSize; if (HeaderOrg.nWidth >= 512) { - iSkipSize += 256 * 256 * 2; //  512 Ŭ εο dzʶٱ.. + iSkipSize += 256 * 256 * 2; // If the size is larger than 512, skip the dock data. } } - ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // dzʶٰ. + ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip } return true; } @@ -615,7 +615,7 @@ bool CN3Texture::Save(HANDLE hFile) { int nMMC = m_lpTexture->GetLevelCount(); (nMMC > 1) ? m_Header.bMipMap = TRUE : m_Header.bMipMap = FALSE; - if (TRUE == m_Header.bMipMap) // MipMap ´ Ȯ.. + if (TRUE == m_Header.bMipMap) // Check if the MipMap number is correct. { int nMMC2 = 0; for (int nW = sd.Width, nH = sd.Height; nW >= 4 && nH >= 4; nW /= 2, nH /= 2) { @@ -640,7 +640,7 @@ bool CN3Texture::Save(HANDLE hFile) { m_Header.nHeight = sd.Height; m_Header.bMipMap = (nMMC > 1) ? TRUE : FALSE; - WriteFile(hFile, &m_Header, sizeof(m_Header), &dwRWC, NULL); // + WriteFile(hFile, &m_Header, sizeof(m_Header), &dwRWC, NULL); // write header if (m_lpTexture == NULL) { return false; @@ -657,12 +657,12 @@ bool CN3Texture::Save(HANDLE hFile) { int iTexBytesLength = 0; iTexBytesLength = sd.Format == D3DFMT_DXT1 ? (sd.Width * sd.Height / 2) : (sd.Width * sd.Height); - WriteFile(hFile, (BYTE *)LR.pBits, iTexBytesLength, &dwRWC, NULL); // Ϸķ ͸ .. + WriteFile(hFile, (BYTE *)LR.pBits, iTexBytesLength, &dwRWC, NULL); // Write data in a row... m_lpTexture->UnlockRect(i); } - // ߰ ش.. ũ̴. - // ػ󵵸 Ѵܰ ߾ . + // Additional uncompressed format is used. It is half the size. + // Save the uncompressed format at one level lower in resolution. LPDIRECT3DSURFACE9 lpSurfSrc = NULL, lpSurfDest = NULL; D3DFORMAT fmtExtra = D3DFMT_UNKNOWN; if (D3DFMT_DXT1 == sd.Format) { @@ -681,7 +681,7 @@ bool CN3Texture::Save(HANDLE hFile) { int nW = sd.Width / 2, nH = sd.Height / 2; s_lpD3DDev->CreateOffscreenPlainSurface(nW, nH, fmtExtra, D3DPOOL_DEFAULT, &lpSurfDest, NULL); D3DXLoadSurfaceFromSurface(lpSurfDest, NULL, NULL, lpSurfSrc, NULL, NULL, D3DX_FILTER_TRIANGLE, - 0); // ǽ . + 0); // Copy surface. int nPixelSize = 2; lpSurfDest->LockRect(&LR, NULL, NULL); for (int y = 0; y < nH; y++) { @@ -694,14 +694,14 @@ bool CN3Texture::Save(HANDLE hFile) { lpSurfSrc = NULL; } - if (nMMC == 1 && m_Header.nWidth >= 1024) // εθ 256 * 256 ¥ ϳ ش.. + if (nMMC == 1 && m_Header.nWidth >= 1024) // Save one more size 256 * 256 for the dock. { m_lpTexture->GetLevelDesc(0, &sd); m_lpTexture->GetSurfaceLevel(0, &lpSurfSrc); int nW = 256, nH = 256; s_lpD3DDev->CreateOffscreenPlainSurface(nW, nH, fmtExtra, D3DPOOL_DEFAULT, &lpSurfDest, NULL); D3DXLoadSurfaceFromSurface(lpSurfDest, NULL, NULL, lpSurfSrc, NULL, NULL, D3DX_FILTER_TRIANGLE, - 0); // ǽ . + 0); // Copy surface. int nPixelSize = 2; lpSurfDest->LockRect(&LR, NULL, NULL); for (int y = 0; y < nH; y++) { @@ -713,7 +713,7 @@ bool CN3Texture::Save(HANDLE hFile) { lpSurfSrc->Release(); lpSurfSrc = NULL; } - } else // Ϲ ̸. + } else // If it is a general format. { int nPixelSize = 0; if (D3DFMT_A1R5G5B5 == sd.Format || D3DFMT_A4R4G4B4 == sd.Format) { @@ -729,15 +729,15 @@ bool CN3Texture::Save(HANDLE hFile) { D3DLOCKED_RECT LR; for (int i = 0; i < nMMC; i++) { m_lpTexture->GetLevelDesc(i, &sd); - m_lpTexture->LockRect(i, &LR, NULL, 0); // Lock + m_lpTexture->LockRect(i, &LR, NULL, 0); // Lock each level int nH = sd.Height; - for (int y = 0; y < nH; y++) { // ׳ ȼ .. + for (int y = 0; y < nH; y++) { // Just save the pixel... WriteFile(hFile, (BYTE *)LR.pBits + y * LR.Pitch, sd.Width * nPixelSize, &dwRWC, NULL); } m_lpTexture->UnlockRect(i); } - if (nMMC == 1 && m_Header.nWidth >= 512) // εθ 256 * 256 ¥ ϳ ش.. + if (nMMC == 1 && m_Header.nWidth >= 512) // Save another 256 * 256 size for the dock. { LPDIRECT3DSURFACE9 lpSurfSrc = NULL, lpSurfDest = NULL; @@ -746,7 +746,7 @@ bool CN3Texture::Save(HANDLE hFile) { int nW = 256, nH = 256; s_lpD3DDev->CreateOffscreenPlainSurface(nW, nH, sd.Format, D3DPOOL_DEFAULT, &lpSurfDest, NULL); HRESULT rval = D3DXLoadSurfaceFromSurface(lpSurfDest, NULL, NULL, lpSurfSrc, NULL, NULL, - D3DX_FILTER_TRIANGLE, 0); // ǽ . + D3DX_FILTER_TRIANGLE, 0); // Copy surface. lpSurfDest->LockRect(&LR, NULL, NULL); for (int y = 0; y < nH; y++) { WriteFile(hFile, (BYTE *)LR.pBits + y * LR.Pitch, nW * 2, &dwRWC, NULL); @@ -785,7 +785,7 @@ bool CN3Texture::Convert(D3DFORMAT Format, int nWidth, int nHeight, BOOL bGenera if (bGenerateMipMap) { LPDIRECT3DSURFACE9 lpTSOld; lpTexOld->GetSurfaceLevel(0, &lpTSOld); - this->GenerateMipMap(lpTSOld); // MipMap + this->GenerateMipMap(lpTSOld); //Create MipMap lpTSOld->Release(); } else { LPDIRECT3DSURFACE9 lpTSNew; @@ -793,7 +793,7 @@ bool CN3Texture::Convert(D3DFORMAT Format, int nWidth, int nHeight, BOOL bGenera m_lpTexture->GetSurfaceLevel(0, &lpTSNew); lpTexOld->GetSurfaceLevel(0, &lpTSOld); D3DXLoadSurfaceFromSurface(lpTSNew, NULL, NULL, lpTSOld, NULL, NULL, D3DX_FILTER_NONE, - 0); // ù ǽ . + 0); // Copy first level surfaces. lpTSOld->Release(); lpTSNew->Release(); } @@ -811,7 +811,7 @@ bool CN3Texture::GenerateMipMap(LPDIRECT3DSURFACE9 lpSurfSrc) { return false; } - // MipMap  ʿ .. + // Calculate how many MipMap are needed. int nMMC = m_lpTexture->GetLevelCount(); int nMMC2 = 0; for (int nW = m_Header.nWidth, nH = m_Header.nHeight; nW >= 4 && nH >= 4; nW /= 2, nH /= 2) { @@ -827,7 +827,7 @@ bool CN3Texture::GenerateMipMap(LPDIRECT3DSURFACE9 lpSurfSrc) { } HRESULT rval = D3D_OK; - if (nMMC < nMMC2) // .. + if (nMMC < nMMC2) //If you write down, create a new one.. { LPDIRECT3DTEXTURE9 lpTexOld = m_lpTexture; m_lpTexture = NULL; @@ -846,15 +846,15 @@ bool CN3Texture::GenerateMipMap(LPDIRECT3DSURFACE9 lpSurfSrc) { m_Header.bMipMap = FALSE; return FALSE; } - } else // MipMap ׳ ǥ鸸 + } else // If you have a MipMap, just copy the surface { - if (false == bNeedReleaseSurf) // ٸ ǽ ؾ Ǵ Ÿ 0 .. + if (false == bNeedReleaseSurf) // If you need to copy from another surface, also copy level 0. { LPDIRECT3DSURFACE9 lpSurfDest; m_lpTexture->GetSurfaceLevel(0, &lpSurfDest); - DWORD dwFilter = D3DX_FILTER_TRIANGLE; // ⺻ ʹ .. + DWORD dwFilter = D3DX_FILTER_TRIANGLE; // There is no default filter. HRESULT rval = D3DXLoadSurfaceFromSurface(lpSurfDest, NULL, NULL, lpSurfSrc, NULL, NULL, dwFilter, - 0); // üο ǽ ̹ + 0); // Copy surface image reduction to small map chain lpSurfDest->Release(); lpSurfDest = NULL; } @@ -863,9 +863,9 @@ bool CN3Texture::GenerateMipMap(LPDIRECT3DSURFACE9 lpSurfSrc) { LPDIRECT3DSURFACE9 lpSurfDest, lpSurfUp; m_lpTexture->GetSurfaceLevel(i - 1, &lpSurfUp); m_lpTexture->GetSurfaceLevel(i, &lpSurfDest); - DWORD dwFilter = D3DX_FILTER_TRIANGLE; // ⺻ ʹ .. + DWORD dwFilter = D3DX_FILTER_TRIANGLE; // There is no default filter. HRESULT rval = D3DXLoadSurfaceFromSurface(lpSurfDest, NULL, NULL, lpSurfUp, NULL, NULL, dwFilter, - 0); // üο ǽ ̹ + 0); // Copy surface image reduction to small map chain lpSurfDest->Release(); lpSurfUp->Release(); } @@ -911,7 +911,7 @@ bool CN3Texture::SaveToBitmapFile(const std::string & szFN) { return false; } if (D3D_OK != D3DXLoadSurfaceFromSurface(lpSurfDest, NULL, NULL, lpSurfSrc, NULL, NULL, D3DX_FILTER_TRIANGLE, - 0)) // ǽ . + 0)) // Copy surface. { lpSurfDest->Release(); lpSurfDest = NULL; diff --git a/src/engine/N3Base/N3Texture.h b/src/engine/N3Base/N3Texture.h index 3845854d..69f85ee3 100644 --- a/src/engine/N3Base/N3Texture.h +++ b/src/engine/N3Base/N3Texture.h @@ -10,11 +10,11 @@ class CN3Texture : public CN3BaseFileAccess { public: typedef struct __DXT_HEADER { - char szID[4]; // "NTF" - Noah Texture File Ver. ?.0 + char szID[4]; // "NTF" Number - Noah Texture File Ver. ?.0 int nWidth; int nHeight; - D3DFORMAT Format; // 0 - 1 ~ 5 : D3DFMT_DXT1 ~ D3DFMT_DXT5 - BOOL bMipMap; // Mip Map ?? + D3DFORMAT Format; // 0 - No compression 1 to 5: D3DFMT_DXT1 to D3DFMT_DXT5 + BOOL bMipMap; // Mip Map } __DxtHeader; protected: @@ -28,13 +28,13 @@ class CN3Texture : public CN3BaseFileAccess { bool SkipFileHandle(HANDLE hFile); #ifdef _N3TOOL - bool GenerateMipMap(LPDIRECT3DSURFACE9 lpSurf = NULL); // NULL ̸ 0 ǽκ .. + bool GenerateMipMap(LPDIRECT3DSURFACE9 lpSurf = NULL); //If NULL, it is created from a level 0 surface. bool Convert(D3DFORMAT Format, int nWidth = 0, int nHeight = 0, BOOL bGenerateMipMap = TRUE); //#ifdef _N3TOOL - bool SaveToFile(); // ̸ . - bool SaveToFile(const std::string & szFileName); // ̸ . + bool SaveToFile(); // Save as current file name. + bool SaveToFile(const std::string & szFileName); // Save with new name. bool Save(HANDLE hFile); - bool SaveToBitmapFile(const std::string & szFN); // 24Ʈ Ʈ Ϸ .. + bool SaveToBitmapFile(const std::string & szFN); // Save as 24-bit bitmap file. bool CreateFromSurface(LPDIRECT3DSURFACE9 lpSurf, D3DFORMAT Format, BOOL bGenerateMipMap); #endif // end of _N3TOOL @@ -49,7 +49,7 @@ class CN3Texture : public CN3BaseFileAccess { } } - bool Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerateMipMap); // ġ ° + bool Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerateMipMap); // Created to fit your device LPDIRECT3DTEXTURE9 Get() { return m_lpTexture; } operator LPDIRECT3DTEXTURE9() { return m_lpTexture; } diff --git a/src/engine/N3Base/N3Transform.cpp b/src/engine/N3Base/N3Transform.cpp index 4e63aa48..f8b080a2 100644 --- a/src/engine/N3Base/N3Transform.cpp +++ b/src/engine/N3Base/N3Transform.cpp @@ -7,12 +7,12 @@ CN3Transform::CN3Transform() { m_dwType |= OBJ_TRANSFORM; - m_vPos.Set(0, 0, 0); // ġ, , ȸ . + m_vPos.Set(0, 0, 0); // Position, scale, rotation vectors. m_vScale.Set(1, 1, 1); m_qRot.Identity(); m_Matrix.Identity(); - // ϸ̼ Ű + // animation key m_fFrmCur = 0; m_fFrmWhole = 0; } @@ -20,13 +20,13 @@ CN3Transform::CN3Transform() { CN3Transform::~CN3Transform() {} void CN3Transform::Release() { - m_vPos.Set(0, 0, 0); // ġ, , ȸ . + m_vPos.Set(0, 0, 0); // Position, scale, rotation vectors. m_vScale.Set(1, 1, 1); m_qRot.Identity(); m_Matrix.Identity(); - // ϸ̼ Ű + // animation key m_fFrmCur = 0; m_fFrmWhole = 0; @@ -41,11 +41,11 @@ bool CN3Transform::Load(HANDLE hFile) { CN3BaseFileAccess::Load(hFile); DWORD dwRWC = 0; - ReadFile(hFile, &m_vPos, sizeof(__Vector3), &dwRWC, NULL); // ġ, , ȸ . + ReadFile(hFile, &m_vPos, sizeof(__Vector3), &dwRWC, NULL); // Position, scale, rotation vectors. ReadFile(hFile, &m_qRot, sizeof(__Quaternion), &dwRWC, NULL); ReadFile(hFile, &m_vScale, sizeof(__Vector3), &dwRWC, NULL); - // ϸ̼ Ű + // animation key m_KeyPos.Load(hFile); m_KeyRot.Load(hFile); m_KeyScale.Load(hFile); @@ -68,7 +68,7 @@ bool CN3Transform::Load(HANDLE hFile) { m_fFrmWhole = fFrmWhole; } - this->ReCalcMatrix(); // ȯ .. + this->ReCalcMatrix(); // Transformation matrix calculation.. return true; } @@ -78,11 +78,11 @@ bool CN3Transform::Save(HANDLE hFile) { CN3BaseFileAccess::Save(hFile); DWORD dwRWC = 0; - WriteFile(hFile, &m_vPos, sizeof(__Vector3), &dwRWC, NULL); // ġ, , ȸ . + WriteFile(hFile, &m_vPos, sizeof(__Vector3), &dwRWC, NULL); // Position, scale, rotation vectors. WriteFile(hFile, &m_qRot, sizeof(__Quaternion), &dwRWC, NULL); WriteFile(hFile, &m_vScale, sizeof(__Vector3), &dwRWC, NULL); - // ϸ̼ Ű + // animation key m_KeyPos.Save(hFile); m_KeyRot.Save(hFile); m_KeyScale.Save(hFile); @@ -108,7 +108,7 @@ void CN3Transform::Tick(float fFrm) { bool bNdeedReCalcMatrix = this->TickAnimationKey(m_fFrmCur); if (m_dwType & OBJ_JOINT) { - return; // Joint ϴ ٸ Ѿ.. + return; // In the case of Joint, the method for calculating the matrix is different, so it will be skipped over. } if (bNdeedReCalcMatrix) { @@ -127,7 +127,7 @@ void CN3Transform::ReCalcMatrix() { } bool CN3Transform::TickAnimationKey(float fFrm) { - // ϸ̼ Ű + // animation key int nKCP = m_KeyPos.Count(); int nKCR = m_KeyRot.Count(); int nKCS = m_KeyScale.Count(); @@ -151,7 +151,7 @@ bool CN3Transform::TickAnimationKey(float fFrm) { #ifdef _N3TOOL void CN3Transform::Render(const __Matrix44 * pMtxParent, float fUnitSize) { - // ׸.. + // Drawing an axis... static __Vector3 vAxis[9]; static bool bAxisCreated = false; if (false == bAxisCreated) { @@ -160,13 +160,13 @@ void CN3Transform::Render(const __Matrix44 * pMtxParent, float fUnitSize) { for (int i = 0; i < 3; i++) { if (i == 0) { mtxRot.Identity(); - } // X + } // X-AXIS else if (i == 1) { mtxRot.RotationZ(D3DXToRadian(90.0f)); - } // Y + } // Y axis else if (i == 2) { mtxRot.RotationY(D3DXToRadian(-90.0f)); - } // Z + } //Z axis vAxis[i * 3 + 0] = v0 * mtxRot; vAxis[i * 3 + 1] = v1 * mtxRot; @@ -177,22 +177,22 @@ void CN3Transform::Render(const __Matrix44 * pMtxParent, float fUnitSize) { } __Matrix44 mtxBox; - mtxBox.Scale(fUnitSize, fUnitSize, fUnitSize); // ڽ + mtxBox.Scale(fUnitSize, fUnitSize, fUnitSize); // Apply scale to joint box mtxBox *= m_Matrix; s_lpD3DDev->SetTransform(D3DTS_WORLD, &mtxBox); - CN3Base::RenderLines(&(vAxis[0]), 2, 0xffff0000); // ׸.. - CN3Base::RenderLines(&(vAxis[3]), 2, 0xff00ff00); // ׸.. - CN3Base::RenderLines(&(vAxis[6]), 2, 0xff0000ff); // ׸.. + CN3Base::RenderLines(&(vAxis[0]), 2, 0xffff0000); // Drawing a line... + CN3Base::RenderLines(&(vAxis[3]), 2, 0xff00ff00); // Drawing a line... + CN3Base::RenderLines(&(vAxis[6]), 2, 0xff0000ff); // Drawing a line... } #endif // end of _N3TOOL /* #if _DEBUG -// . +//Create a selection box. void CN3Transform::GenerateSelectBox(__Vector3 &vMin, __Vector3 &vMax) { - // Bounding Box Vertex Buffer + // Create Bounding Box Vertex Buffer if(m_lpVBBox != NULL) { m_lpVBBox->Release(); m_lpVBBox = NULL; } HRESULT rval = m_lpDevRef->CreateVertexBuffer(54 * sizeof(__VertexColor), 0, FVF_CV, D3DPOOL_MANAGED, &m_lpVBBox, NULL); if(rval != D3D_OK) @@ -201,17 +201,17 @@ void CN3Transform::GenerateSelectBox(__Vector3 &vMin, __Vector3 &vMax) if(rval != D3D_OK) { char szDebug[256]; D3DXGetErrorString(rval, szDebug, 256); - MessageBox(::GetActiveWindow(), szDebug, "VertexBuffer ", MB_OK); + MessageBox(::GetActiveWindow(), szDebug, "VertexBuffer creation failed", MB_OK); return; } } - float fW = (vMax.x - vMin.x)/5, fH = (vMax.y - vMin.y)/5, fL = (vMax.z - vMin.z)/5; // ʺ (x y z) + float fW = (vMax.x - vMin.x)/5, fH = (vMax.y - vMin.y)/5, fL = (vMax.z - vMin.z)/5; // Length Height Width (x y z) __VertexColor* pVC; m_lpVBBox->Lock(0, 0, (VOID**)&pVC, NULL); - pVC[4] = pVC[2] = pVC[0] = __VertexColor(vMin.x, vMax.y, vMin.z, 0xff7f7f7f); // - Ʒ Ʈ . + pVC[4] = pVC[2] = pVC[0] = __VertexColor(vMin.x, vMax.y, vMin.z, 0xff7f7f7f); // Front - Create a list of lines as shown below. pVC[10] = pVC[8] = pVC[6] = __VertexColor(vMax.x, vMax.y, vMin.z, 0xff7f7f7f); // / / pVC[16] = pVC[14] = pVC[12] = __VertexColor(vMax.x, vMin.y, vMin.z, 0xff7f7f7f); // +-- --+ pVC[22] = pVC[20] = pVC[18] = __VertexColor(vMin.x, vMin.y, vMin.z, 0xff7f7f7f); // | | @@ -233,12 +233,12 @@ void CN3Transform::GenerateSelectBox(__Vector3 &vMin, __Vector3 &vMax) __Vector3 vLength = (vMax - vMin); float fLength = vLength.Magnitude(); __Vector3 vCenter = vMin + (vMax - vMin)/2.0f; - pVC[48].Set(0, 0, 0, 0xffff0000); pVC[48].x -= vLength.x/2 + fLength/5 + 0.5f;// x -> - pVC[49].Set(0, 0, 0, 0xffff0000); pVC[49].x += vLength.x/2 + fLength/5 + 0.5f;// x -> - pVC[50].Set(0, 0, 0, 0xff00ff00); pVC[50].y -= vLength.y/2 + fLength/5 + 0.5f;// y -> - pVC[51].Set(0, 0, 0, 0xff00ff00); pVC[51].y += vLength.y/2 + fLength/5 + 0.5f;// y -> - pVC[52].Set(0, 0, 0, 0xff0000ff); pVC[52].z -= vLength.z/2 + fLength/5 + 0.5f;// z Ķ -> Ķ - pVC[53].Set(0, 0, 0, 0xff0000ff); pVC[53].z += vLength.z/2 + fLength/5 + 0.5f;// z Ķ -> Ķ + pVC[48].Set(0, 0, 0, 0xffff0000); pVC[48].x -= vLength.x/2 + fLength/5 + 0.5f;// x-axis red -> red + pVC[49].Set(0, 0, 0, 0xffff0000); pVC[49].x += vLength.x/2 + fLength/5 + 0.5f;// x-axis red -> red + pVC[50].Set(0, 0, 0, 0xff00ff00); pVC[50].y -= vLength.y/2 + fLength/5 + 0.5f;// y axis green -> green + pVC[51].Set(0, 0, 0, 0xff00ff00); pVC[51].y += vLength.y/2 + fLength/5 + 0.5f;// y axis green -> green + pVC[52].Set(0, 0, 0, 0xff0000ff); pVC[52].z -= vLength.z/2 + fLength/5 + 0.5f;// z axis blue -> blue + pVC[53].Set(0, 0, 0, 0xff0000ff); pVC[53].z += vLength.z/2 + fLength/5 + 0.5f;// z axis blue -> blue m_lpVBBox->Unlock(); } #endif diff --git a/src/engine/N3Base/N3Transform.h b/src/engine/N3Base/N3Transform.h index d144cf50..41567ba7 100644 --- a/src/engine/N3Base/N3Transform.h +++ b/src/engine/N3Base/N3Transform.h @@ -14,19 +14,19 @@ class CN3Transform : public CN3BaseFileAccess { public: __Vector3 m_vPos; - __Matrix44 m_Matrix; // ȯ + __Matrix44 m_Matrix; // transformation matrix - CN3AnimKey m_KeyPos; // ϸ̼ Ű + CN3AnimKey m_KeyPos; // animation key CN3AnimKey m_KeyRot; CN3AnimKey m_KeyScale; - float m_fFrmWhole; // ü Ӽ - float m_fFrmCur; // + float m_fFrmWhole; // total number of frames + float m_fFrmCur; // current frame public: virtual void Tick(float fFrm = FRAME_SELFPLAY); virtual bool TickAnimationKey( - float fFrm); // Animation Key Tick... Animation Key ־ ̸ true, ƴϸ false return; + float fFrm); // Animation Key Tick... Returns true if there is an Animation Key and moves, false otherwise; __Vector3 Pos() const { return m_vPos; } __Quaternion Rot() const { return m_qRot; } diff --git a/src/engine/N3Base/N3TransformCollision.cpp b/src/engine/N3Base/N3TransformCollision.cpp index 042522f1..628ea9f5 100644 --- a/src/engine/N3Base/N3TransformCollision.cpp +++ b/src/engine/N3Base/N3TransformCollision.cpp @@ -46,14 +46,14 @@ bool CN3TransformCollision::Load(HANDLE hFile) { ReadFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName if (nL > 0) { ReadFile(hFile, szFN, nL, &dwRWC, NULL); - szFN[nL] = NULL; // ޽ ̸.. + szFN[nL] = NULL; // Mesh file name.. m_pMeshCollision = s_MngVMesh.Get(szFN); } ReadFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName if (nL > 0) { ReadFile(hFile, szFN, nL, &dwRWC, NULL); - szFN[nL] = NULL; // ޽ ̸.. + szFN[nL] = NULL; // Mesh file name.. m_pMeshClimb = s_MngVMesh.Get(szFN); } return true; @@ -72,7 +72,7 @@ bool CN3TransformCollision::Save(HANDLE hFile) { WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName if (nL > 0) { if (m_pMeshCollision->FileName().find("object\\") < - 0) // ӽ÷ θ ٲٷ ־.. ߿ ʿ .. + 0) //I put it in to change the path temporarily. I will delete it later if I don't need it. { char szFNTmp[256]; wsprintf(szFNTmp, "Object\\%s.N3VMesh", m_pMeshCollision->m_szName.c_str()); @@ -92,7 +92,7 @@ bool CN3TransformCollision::Save(HANDLE hFile) { } WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName if (nL > 0) { - if (-1 == m_pMeshClimb->FileName().find("object\\")) // ӽ÷ θ ٲٷ ־.. ߿ ʿ .. + if (-1 == m_pMeshClimb->FileName().find("object\\")) //I put it in to change the path temporarily. I will delete it later if I don't need it. { char szFNTmp[256]; wsprintf(szFNTmp, "Object\\%s.N3VMesh", m_pMeshClimb->m_szName.c_str()); @@ -127,7 +127,7 @@ void CN3TransformCollision::ClimbMeshSet(const std::string & szFN) { int CN3TransformCollision::CheckCollisionPrecisely(bool bIgnoreBoxCheck, int ixScreen, int iyScreen, __Vector3 * pVCol, __Vector3 * pVNormal) { - __Vector3 vPos, vDir; // 2D ǥ 3D ǥ ٲٰ.. + __Vector3 vPos, vDir; // Convert 2D coordinates to 3D coordinates... ::_Convert2D_To_3DCoordinate(ixScreen, iyScreen, s_CameraData.mtxView, s_CameraData.mtxProjection, s_CameraData.vp, vPos, vDir); @@ -144,7 +144,7 @@ void CN3TransformCollision::RenderCollisionMesh() { } s_lpD3DDev->SetTransform(D3DTS_WORLD, &m_Matrix); - m_pMeshCollision->Render(0xffff0000); // . + m_pMeshCollision->Render(0xffff0000); // Red. } void CN3TransformCollision::RenderClimbMesh() { @@ -153,7 +153,7 @@ void CN3TransformCollision::RenderClimbMesh() { } s_lpD3DDev->SetTransform(D3DTS_WORLD, &m_Matrix); - m_pMeshClimb->Render(0xff0000ff); // Ķ.. + m_pMeshClimb->Render(0xff0000ff); // blue.. } /* @@ -288,6 +288,6 @@ void CN3TransformCollision::FindMinMax() { } } - // ִ ּҰ Ѵ.. + // Calculate the radius using the maximum and minimum values. m_fRadius = (m_vMax - m_vMin).Magnitude() * 0.5f; } diff --git a/src/engine/N3Base/N3TransformCollision.h b/src/engine/N3Base/N3TransformCollision.h index 102ef0b1..76151b8f 100644 --- a/src/engine/N3Base/N3TransformCollision.h +++ b/src/engine/N3Base/N3TransformCollision.h @@ -11,17 +11,17 @@ class CN3TransformCollision : public CN3Transform { protected: - float m_fRadius; // .. - __Vector3 m_vMin, m_vMax; // ִ ּ.. - CN3VMesh * m_pMeshCollision; // 浹 üũ ޽.. - CN3VMesh * m_pMeshClimb; // ö󰡴 浹 üũ ޽.. + float m_fRadius; // radius.. + __Vector3 m_vMin, m_vMax; // Maximum and minimum points.. + CN3VMesh * m_pMeshCollision; // Mesh for collision check... + CN3VMesh * m_pMeshClimb; // Climbing collision check mesh... public: virtual void FindMinMax(); - __Vector3 Min() { return m_vMin * m_Matrix; } // ּҰ - __Vector3 Max() { return m_vMax * m_Matrix; } // ִ밪 - __Vector3 RawMin() { return m_vMin; } // ּҰ - __Vector3 RawMax() { return m_vMax; } // ִ밪 + __Vector3 Min() { return m_vMin * m_Matrix; } // minimum value in world + __Vector3 Max() { return m_vMax * m_Matrix; } // maximum value in the world + __Vector3 RawMin() { return m_vMin; } // minimum value in world + __Vector3 RawMax() { return m_vMax; } // maximum value in the world float Radius() { return m_fRadius * m_vScale.y; } void SetRadius(float fRadius) { m_fRadius = fRadius; } @@ -30,15 +30,15 @@ class CN3TransformCollision : public CN3Transform { void SetMeshCollision(const std::string & szFN) { m_pMeshCollision = s_MngVMesh.Get(szFN); } void SetMeshClimb(const std::string & szFN) { m_pMeshClimb = s_MngVMesh.Get(szFN); } - // By : Dino ( On 2001-08-27 9:15:24 ) - // ־ m_fRadius ȿ ִ üũ + // By: Dino (On 2001-08-27 9:15:24 PM) + // Check whether the given point is within the range of m_fRadius bool IsInRadius(__Vector3 & vCheckPos) { return ((vCheckPos - m_vPos).Magnitude() > m_fRadius ? FALSE : TRUE); } bool IsInRadiusXZ(float fX, float fZ) { fX -= m_vPos.x; fZ -= m_vPos.z; return (sqrtf(fX * fX + fZ * fZ) > m_fRadius ? FALSE : TRUE); } - // ~(By Dino On 2001-08-27 9:15:24 ) + // ~(By Dino On 2001-08-27 9:15:24 PM) virtual int CheckCollisionPrecisely(bool bIgnoreBoxCheck, int ixScreen, int iyScreen, __Vector3 * pVCol = NULL, __Vector3 * pVNormal = NULL); diff --git a/src/engine/N3Base/N3VMesh.cpp b/src/engine/N3Base/N3VMesh.cpp index f92af7d9..4badf6a1 100644 --- a/src/engine/N3Base/N3VMesh.cpp +++ b/src/engine/N3Base/N3VMesh.cpp @@ -12,7 +12,7 @@ CN3VMesh::CN3VMesh() { m_dwType |= OBJ_MESH_VECTOR3; - m_pVertices = NULL; // + m_pVertices = NULL; // dot buffer m_pwIndices = NULL; // Index... m_nVC = 0; @@ -20,7 +20,7 @@ CN3VMesh::CN3VMesh() { m_vMin.Zero(); m_vMax.Zero(); - m_fRadius = 0.0f; // + m_fRadius = 0.0f; // Radius } CN3VMesh::~CN3VMesh() { @@ -48,7 +48,7 @@ void CN3VMesh::Release() { m_vMin.Zero(); m_vMax.Zero(); - m_fRadius = 0.0f; // + m_fRadius = 0.0f; //radius } bool CN3VMesh::Load(HANDLE hFile) { @@ -57,20 +57,20 @@ bool CN3VMesh::Load(HANDLE hFile) { DWORD dwRWC = 0; int nVC; - ReadFile(hFile, &nVC, 4, &dwRWC, NULL); // б.. + ReadFile(hFile, &nVC, 4, &dwRWC, NULL); // Reading the dot count... if (nVC > 0) { - this->CreateVertices(nVC); // Vertex Buffer ä + this->CreateVertices(nVC); // Vertex Buffer creation and data filling ReadFile(hFile, m_pVertices, nVC * sizeof(__Vector3), &dwRWC, NULL); } int nIC; ReadFile(hFile, &nIC, 4, &dwRWC, NULL); // Index Count.. if (nIC > 0) { - this->CreateIndex(nIC); // Vertex Buffer ä + this->CreateIndex(nIC); // Vertex Buffer creation and data filling ReadFile(hFile, m_pwIndices, nIC * 2, &dwRWC, NULL); } - this->FindMinMax(); // ִ ּ ߽ ش.. + this->FindMinMax(); // Calculates the maximum and minimum points, center point, and radius. return true; } @@ -81,14 +81,14 @@ bool CN3VMesh::Save(HANDLE hFile) { DWORD dwRWC = 0; - WriteFile(hFile, &m_nVC, 4, &dwRWC, NULL); // б.. + WriteFile(hFile, &m_nVC, 4, &dwRWC, NULL); // Reading the dot count... if (m_nVC > 0) { WriteFile(hFile, m_pVertices, m_nVC * sizeof(__Vector3), &dwRWC, NULL); } WriteFile(hFile, &m_nIC, 4, &dwRWC, NULL); // Index Count.. if (m_nIC > 0) { - WriteFile(hFile, m_pwIndices, m_nIC * 2, &dwRWC, NULL); // Index Buffer .. + WriteFile(hFile, m_pwIndices, m_nIC * 2, &dwRWC, NULL); // Write Index Buffer data.. } return true; @@ -114,7 +114,7 @@ void CN3VMesh::CreateVertices(int nVC) { m_pVertices = new __Vector3[nVC]; } - memset(m_pVertices, 0, nVC * sizeof(__Vector3)); // Vertex Buffer + memset(m_pVertices, 0, nVC * sizeof(__Vector3)); // Create Vertex Buffer m_nVC = nVC; } @@ -129,7 +129,7 @@ void CN3VMesh::CreateIndex(int nIC) { delete[] m_pwIndices; m_pwIndices = new WORD[nIC]; - memset(m_pwIndices, 0, nIC * 2); // Index Buffer + memset(m_pwIndices, 0, nIC * 2); // Create Index Buffer m_nIC = nIC; } @@ -184,7 +184,7 @@ void CN3VMesh::CreateCube(const __Vector3 & vMin, const __Vector3 & vMax) { m_pwIndices[34] = 7; m_pwIndices[35] = 6; - this->FindMinMax(); // ߽ ش.. + this->FindMinMax(); // Calculate the center point and radius. } //#ifdef _DEBUG @@ -270,7 +270,7 @@ void CN3VMesh::FindMinMax() { } } - // ִ ּҰ Ѵ.. + // Calculate the radius using the maximum and minimum values. m_fRadius = (m_vMax - m_vMin).Magnitude() * 0.5f; } @@ -316,12 +316,12 @@ bool CN3VMesh::CheckCollision(const __Matrix44 & MtxWorld, const __Vector3 & v0, if (false == ::_IntersectTriangle(vPos0, vDir, m_pVertices[nCI0], m_pVertices[nCI1], m_pVertices[nCI2], fT, fU, fV, &vColTmp)) { - continue; // ù° Ͱ ġ.. + continue; //If the first vector overlaps... } if (false == ::_IntersectTriangle(vPos1, vDir, m_pVertices[nCI0], m_pVertices[nCI1], - m_pVertices[nCI2])) // ° ġ.. + m_pVertices[nCI2])) // Second, if you don't wear it... { - fDistTmp = (vPos0 - vColTmp).Magnitude(); // Ÿ 纸.. + fDistTmp = (vPos0 - vColTmp).Magnitude(); //Measure the distance... if (fDistTmp < fDistClosest) { fDistClosest = fDistTmp; @@ -329,7 +329,7 @@ bool CN3VMesh::CheckCollision(const __Matrix44 & MtxWorld, const __Vector3 & v0, *pVCol = vColTmp * MtxWorld; } - // ϱ.. + // Find the normal vector... if (pVNormal) { (*pVNormal).Cross(m_pVertices[nCI1] - m_pVertices[nCI0], m_pVertices[nCI2] - m_pVertices[nCI1]); (*pVNormal) *= mtxRot; @@ -342,7 +342,7 @@ bool CN3VMesh::CheckCollision(const __Matrix44 & MtxWorld, const __Vector3 & v0, return true; } - // 浹޽ ȿ ִ ..by lynus.. + //When two points are inside the collision mesh..by lynus.. __Vector3 tmpNormal; for (int i = 0; i < nFC; i++) { if (m_nIC > 0) { @@ -404,7 +404,7 @@ bool CN3VMesh::Pick(const __Matrix44 & MtxWorld, const __Vector3 & vPos, const _ continue; } - // 浹̴.. + // It's a collision... if (pVCol) { float fT, fU, fV; ::_IntersectTriangle(vPos2, vDir2, m_pVertices[nCI0], m_pVertices[nCI1], m_pVertices[nCI2], fT, fU, fV, @@ -412,7 +412,7 @@ bool CN3VMesh::Pick(const __Matrix44 & MtxWorld, const __Vector3 & vPos, const _ (*pVCol) *= MtxWorld; } - // ϱ.. + // Find the normal vector... if (pVNormal) { (*pVNormal).Cross(m_pVertices[nCI1] - m_pVertices[nCI0], m_pVertices[nCI2] - m_pVertices[nCI1]); (*pVNormal) *= mtxRot; @@ -439,14 +439,14 @@ bool CN3VMesh::Import(CN3IMesh * pIMesh) { this->Release(); this->CreateVertices(nFC * 3); - for (int i = 0; i < nFC; i++) // Normal ٽ .. + for (int i = 0; i < nFC; i++) // Reset the normal value.. { m_pVertices[i * 3 + 0] = pvSrc[i * 3 + 0]; m_pVertices[i * 3 + 1] = pvSrc[i * 3 + 1]; m_pVertices[i * 3 + 2] = pvSrc[i * 3 + 2]; } - m_szName = pIMesh->m_szName; // ̸.. + m_szName = pIMesh->m_szName; // name.. return true; } #endif // end of _N3TOOL diff --git a/src/engine/N3Base/N3VMesh.h b/src/engine/N3Base/N3VMesh.h index 37f8a97d..45c141db 100644 --- a/src/engine/N3Base/N3VMesh.h +++ b/src/engine/N3Base/N3VMesh.h @@ -10,15 +10,15 @@ class CN3IMesh; class CN3VMesh : public CN3BaseFileAccess { protected: - __Vector3 * m_pVertices; // - int m_nVC; // + __Vector3 * m_pVertices; // dot buffer + int m_nVC; // number of points WORD * m_pwIndices; // Index... int m_nIC; // Index Count __Vector3 m_vMin; __Vector3 m_vMax; - float m_fRadius; // + float m_fRadius; //radius public: __Vector3 Min() { return m_vMin; } @@ -26,7 +26,7 @@ class CN3VMesh : public CN3BaseFileAccess { bool Pick(const __Matrix44 & MtxWorld, const __Vector3 & vPos, const __Vector3 & vDir, __Vector3 * pVCol = NULL, __Vector3 * pVNormal = NULL); bool CheckCollision(const __Matrix44 & MtxWorld, const __Vector3 & v0, const __Vector3 & v1, - __Vector3 * pVCol = NULL, __Vector3 * pVNormal = NULL); // Local ǥ 浹 üũ .. + __Vector3 * pVCol = NULL, __Vector3 * pVNormal = NULL); // Collision check determination through local coordinates.. float Radius() { return m_fRadius; } void FindMinMax(); void Render(D3DCOLOR crLine); @@ -51,11 +51,11 @@ class CN3VMesh : public CN3BaseFileAccess { CN3VMesh(); virtual ~CN3VMesh(); - // By : Ecli666 ( On 2002-08-09 2:47:59 ) + // By: Ecli666 (On 2002-08-09 2:47:59 PM) // int GetColIndexByiOrder(int iOrder); __Vector3 GetColVertexByIndex(int iIndex); void PartialColRender(int iCount, int * piIndices); void PartialGetCollision(int iIndex, __Vector3 & vec); - // ~(By Ecli666 On 2002-08-09 2:47:59 ) + // ~(By Ecli666 On 2002-08-09 2:47:59 PM) }; diff --git a/src/engine/N3Base/WaveFile.cpp b/src/engine/N3Base/WaveFile.cpp index 489ea039..64a80e6c 100644 --- a/src/engine/N3Base/WaveFile.cpp +++ b/src/engine/N3Base/WaveFile.cpp @@ -1,15 +1,15 @@ ////////////////////////////////////////////////// // Commented By : Lynus -// Commented On 2001-04-12 1:52:29 +// Commented On 2001-04-12 Apr 1:52:29 // // CWave class(wave.cpp) // -// End Of Comment (By Lynus On 2001-04-12 1:52:29 ) +// End Of Comment (By Lynus On 2001-04-12 Apr 1:52:29 ) ////////////////////////////////////////////////// ////////////////////////////////////////////////// // Coded By : Lynus -// Coded On 2001-04-12 1:52:49 +// Coded On 2001-04-12 Apr 1:52:49 // #include "StdAfx.h" #include "WaveFile.h" @@ -67,27 +67,29 @@ HRESULT CWaveFile::Open(LPCSTR strFileName, WAVEFORMATEX * pwfx, DWORD dwFlags) m_hmmio = mmioOpen((LPSTR)strFileName, NULL, MMIO_ALLOCBUF | MMIO_READ); if (NULL == m_hmmio) { - HRSRC hResInfo; - HGLOBAL hResData; + HRSRC hResInfo; // Type to manage resources + HGLOBAL hResData; // Retrieves the handle associated with the specified pointer to a global memory block. DWORD dwSize; VOID * pvRes; - // Loading it as a file failed, so try it as a resource + + // trying to load it as file, if it is failed then try to load it as resource. if (NULL == (hResInfo = FindResource(NULL, strFileName, TEXT("WAVE")))) { if (NULL == (hResInfo = FindResource(NULL, strFileName, TEXT("WAV")))) { return E_FAIL; } } - if (NULL == (hResData = LoadResource(NULL, hResInfo))) { + if (NULL == (hResData = LoadResource(NULL, hResInfo))) { // Retrieves a handle that can be used to obtain a pointer to the first byte of the specified resource in memory. + return E_FAIL; } - if (0 == (dwSize = SizeofResource(NULL, hResInfo))) { + if (0 == (dwSize = SizeofResource(NULL, hResInfo))) { // to obtain the size of the resource return E_FAIL; } - if (NULL == (pvRes = LockResource(hResData))) { + if (NULL == (pvRes = LockResource(hResData))) { // To obtain a pointer to the first byte of the resource data return E_FAIL; } @@ -164,7 +166,9 @@ HRESULT CWaveFile::ReadMMIO() { m_pwfx = NULL; - if ((0 != mmioDescend(m_hmmio, &m_ckRiff, NULL, 0))) { + // The mmioDescend function descends into a chunk of a RIFF file that was opened by using the mmioOpen function. It can also search for a given chunk. + + if ((0 != mmioDescend(m_hmmio, &m_ckRiff, NULL, 0))) { return E_FAIL; } @@ -535,5 +539,5 @@ HRESULT CWaveFile::Write(UINT nSizeToWrite, BYTE * pbSrcData, UINT * pnSizeWrote return S_OK; } -// End Of Code (By Lynus On 2001-04-12 1:52:49 ) +// End Of Code (By Lynus On 2001-04-12 Apr 1:52:49 ) ////////////////////////////////////////////////// diff --git a/src/engine/N3Base/WaveFile.h b/src/engine/N3Base/WaveFile.h index e357e37a..0fb6d279 100644 --- a/src/engine/N3Base/WaveFile.h +++ b/src/engine/N3Base/WaveFile.h @@ -1,14 +1,14 @@ ////////////////////////////////////////////////// // Commented By : Lynus -// Commented On 2001-04-12 1:51:00 +// Commented On 2001-04-12 Apr 1:51:00 // // CWave Class (WaveFile.h) // -// End Of Comment (By Lynus On 2001-04-12 1:51:00 ) +// End Of Comment (By Lynus On 2001-04-12 Apr 1:51:00 ) ////////////////////////////////////////////////// ////////////////////////////////////////////////// // Coded By : Lynus -// Coded On 2001-04-12 1:50:14 +// Coded On 2001-04-12 Apr 1:50:14 // #pragma once @@ -22,12 +22,13 @@ class CWaveFile { public: - WAVEFORMATEX * m_pwfx; // Pointer to WAVEFORMATEX structure - HMMIO m_hmmio; // MM I/O handle for the WAVE - MMCKINFO m_ck; // Multimedia RIFF chunk - MMCKINFO m_ckRiff; // Use in opening a WAVE file - DWORD m_dwSize; // The size of the wave file - MMIOINFO m_mmioinfoOut; + WAVEFORMATEX * m_pwfx; // Pointer to WAVEFORMATEX structure + HMMIO m_hmmio; // MM I/O handle for the WAVE + MMCKINFO m_ck; // Multimedia RIFF chunk + MMCKINFO m_ckRiff; // Use in opening a WAVE file + DWORD m_dwSize; // The size of the wave file + MMIOINFO m_mmioinfoOut; // The MMIOINFO structure contains the current state of a file opened by using the mmioOpen function. + DWORD m_dwFlags; BOOL m_bIsReadingFromMemory; BYTE * m_pbData; @@ -35,7 +36,7 @@ class CWaveFile { ULONG m_ulDataSize; protected: - HRESULT ReadMMIO(); + HRESULT ReadMMIO(); HRESULT WriteMMIO(WAVEFORMATEX * pwfxDest); public: @@ -54,5 +55,5 @@ class CWaveFile { WAVEFORMATEX * GetFormat() { return m_pwfx; }; }; -// End Of Code (By Lynus On 2001-04-12 1:50:14 ) +// End Of Code (By Lynus On 2001-04-12 Apr 1:50:14 ) ////////////////////////////////////////////////// diff --git a/src/game/GameBase.cpp b/src/game/GameBase.cpp index 06a33cd0..9393fe71 100644 --- a/src/game/GameBase.cpp +++ b/src/game/GameBase.cpp @@ -11,28 +11,28 @@ #include "N3Base/N3ShapeMgr.h" -CN3TableBase<__TABLE_ZONE> * CGameBase::s_pTbl_Zones = NULL; // Zone Table +CN3TableBase<__TABLE_ZONE> * CGameBase::s_pTbl_Zones = NULL; // Table for Zone Information CN3TableBase<__TABLE_UI_RESRC> * CGameBase::s_pTbl_UI = NULL; // UI FileName Table CN3TableBase<__TABLE_ITEM_BASIC> * CGameBase::s_pTbl_Items_Basic = - NULL; // ( ڽŰ ٸ ) Ŭ ҽ ̺ + NULL; // Equipped item resource table for each class of each user (myself and others around me) CN3TableBase<__TABLE_ITEM_EXT> * CGameBase::s_pTbl_Items_Exts[MAX_ITEM_EXTENSION] = { NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL}; // ( ڽŰ ٸ ) Ŭ ҽ ̺ + NULL, NULL, NULL, NULL}; // Equipped item resource table for each class of each user (myself and others around me) CN3TableBase<__TABLE_PLAYER_LOOKS> * CGameBase::s_pTbl_UPC_Looks = - NULL; // ( ڽŰ ٸ ) Ŭ ⺻ Ų + NULL; // Default skin for each class of each user (myself and others around me) CN3TableBase<__TABLE_PLAYER_LOOKS> * CGameBase::s_pTbl_NPC_Looks = - NULL; // NPC, Mob ⺻ - 6 ij Ʈ(), 2 ÷ -CN3TableBase<__TABLE_UPC_SKILL> * CGameBase::s_pTbl_Skill = NULL; // Skill Table -CN3TableBase<__TABLE_EXCHANGE_QUEST> * CGameBase::s_pTbl_Exchange_Quest = NULL; // ȯ Ʈ ̺.. -CN3TableBase<__TABLE_FX> * CGameBase::s_pTbl_FXSource; // FXҽ ̺.. -CN3TableBase<__TABLE_QUEST_MENU> * CGameBase::s_pTbl_QuestMenu = NULL; // Ʈ ޴ -CN3TableBase<__TABLE_QUEST_TALK> * CGameBase::s_pTbl_QuestTalk = NULL; // Ʈ + NULL; // Basic appearance of NPC, Mob - 6 character parts(), 2 plugs +CN3TableBase<__TABLE_UPC_SKILL> * CGameBase::s_pTbl_Skill = NULL; // Table for skill information +CN3TableBase<__TABLE_EXCHANGE_QUEST> * CGameBase::s_pTbl_Exchange_Quest = NULL; // Table of exchange quests.. +CN3TableBase<__TABLE_FX> * CGameBase::s_pTbl_FXSource; // FX Source Information Table.. +CN3TableBase<__TABLE_QUEST_MENU> * CGameBase::s_pTbl_QuestMenu = NULL; // Quest Select Menu +CN3TableBase<__TABLE_QUEST_TALK> * CGameBase::s_pTbl_QuestTalk = NULL; // Quest fingerprint CN3TableBase<__TABLE_TEXTS> * CGameBase::s_pTbl_Texts = NULL; CN3TableBase<__TABLE_HELP> * CGameBase::s_pTbl_Help = NULL; -CN3WorldManager * CGameBase::s_pWorldMgr = NULL; // Ŵ.. -CPlayerOtherMgr * CGameBase::s_pOPMgr = NULL; // Other Player Manager - ٸ Ŭ.. -CPlayerMySelf * CGameBase::s_pPlayer = NULL; // Ŭ.. +CN3WorldManager * CGameBase::s_pWorldMgr = NULL; // World Manager.. +CPlayerOtherMgr * CGameBase::s_pOPMgr = NULL; // Other Player Manager - Another user management class.. +CPlayerMySelf * CGameBase::s_pPlayer = NULL; // user class... CGameBase::CGameBase() {} @@ -76,18 +76,18 @@ void _FormatCoins(int64_t nCoins, std::string & szCoins) { void CGameBase::StaticMemberInit() { ////////////////////////////////////////////////////////////////////////////////////////// // Resource Table ε ʱȭ... - s_pTbl_Zones = new CN3TableBase<__TABLE_ZONE>; // Zone Table + s_pTbl_Zones = new CN3TableBase<__TABLE_ZONE>; // Table for Zone Information s_pTbl_UI = new CN3TableBase<__TABLE_UI_RESRC>; // UI Resource File Table loading s_pTbl_UPC_Looks = - new CN3TableBase<__TABLE_PLAYER_LOOKS>; // ÷̾ ⺻ Ǵ NPC Resource Table loading + new CN3TableBase<__TABLE_PLAYER_LOOKS>; // NPC Resource Table loading, which is the basic appearance of players s_pTbl_Items_Basic = new CN3TableBase<__TABLE_ITEM_BASIC>; // Item Resource Table loading for (int i = 0; i < MAX_ITEM_EXTENSION; i++) { s_pTbl_Items_Exts[i] = new CN3TableBase<__TABLE_ITEM_EXT>; } s_pTbl_NPC_Looks = new CN3TableBase<__TABLE_PLAYER_LOOKS>; // NPC Resource Table loading - s_pTbl_Skill = new CN3TableBase<__TABLE_UPC_SKILL>; // Skill Table - s_pTbl_Exchange_Quest = new CN3TableBase<__TABLE_EXCHANGE_QUEST>; // ȯ Ʈ ̺.. - s_pTbl_FXSource = new CN3TableBase<__TABLE_FX>; // FX Source ̺.. + s_pTbl_Skill = new CN3TableBase<__TABLE_UPC_SKILL>; // Table for skill information + s_pTbl_Exchange_Quest = new CN3TableBase<__TABLE_EXCHANGE_QUEST>; // Table of exchange quests.. + s_pTbl_FXSource = new CN3TableBase<__TABLE_FX>; // Table of FX Source.. s_pTbl_QuestMenu = new CN3TableBase<__TABLE_QUEST_MENU>; s_pTbl_QuestTalk = new CN3TableBase<__TABLE_QUEST_TALK>; s_pTbl_Texts = new CN3TableBase<__TABLE_TEXTS>; @@ -101,18 +101,19 @@ void CGameBase::StaticMemberInit() { std::string szFN; szFN = "Data\\Zones.tbl"; - s_pTbl_Zones->LoadFromFile(szFN.c_str()); // Zone Table + s_pTbl_Zones->LoadFromFile(szFN.c_str()); // Table for Zone Information szFN = "Data\\UIs" + szLangTail; s_pTbl_UI->LoadFromFile(szFN.c_str()); // UI Resource File Table loading szFN = "Data\\UPC_DefaultLooks.tbl"; - s_pTbl_UPC_Looks->LoadFromFile(szFN.c_str()); // ÷̾ ⺻ Ǵ NPC Resource Table loading + s_pTbl_UPC_Looks->LoadFromFile( + szFN.c_str()); // NPC Resource Table loading, which is the basic appearance of players szFN = "Data\\Item_Org" + szLangTail; s_pTbl_Items_Basic->LoadFromFile(szFN.c_str()); // Item Resource Table loading szFN = "Data\\Quest_Menu" + szLangTail; - s_pTbl_QuestMenu->LoadFromFile(szFN.c_str()); // Ʈ ø޴ + s_pTbl_QuestMenu->LoadFromFile(szFN.c_str()); // Quest-related selection menu szFN = "Data\\Quest_Talk" + szLangTail; - s_pTbl_QuestTalk->LoadFromFile(szFN.c_str()); // Ʈ + s_pTbl_QuestTalk->LoadFromFile(szFN.c_str()); // Quest-related fingerprints szFN = "Data\\Texts" + szLangTail; s_pTbl_Texts->LoadFromFile(szFN.c_str()); szFN = "Data\\help" + szLangTail; @@ -128,25 +129,25 @@ void CGameBase::StaticMemberInit() { szFN = "Data\\NPC_Looks.tbl"; s_pTbl_NPC_Looks->LoadFromFile(szFN.c_str()); // NPC Resource Table loading szFN = "Data\\skill_magic_main" + szLangTail; - s_pTbl_Skill->LoadFromFile(szFN.c_str()); // Skill Table + s_pTbl_Skill->LoadFromFile(szFN.c_str()); // Table for skill information szFN = "Data\\Exchange_Quest.tbl"; - s_pTbl_Exchange_Quest->LoadFromFile(szFN.c_str()); // ȯ Ʈ ̺.. + s_pTbl_Exchange_Quest->LoadFromFile(szFN.c_str()); // Table of exchange quests.. szFN = "Data\\fx.tbl"; s_pTbl_FXSource->LoadFromFile(szFN.c_str()); s_pWorldMgr = new CN3WorldManager(); s_pOPMgr = new CPlayerOtherMgr(); - s_pPlayer = new CPlayerMySelf(); // ⺻ ÷̾ .. + s_pPlayer = new CPlayerMySelf(); // Creating basic player... } void CGameBase::StaticMemberRelease() { // Tables .... delete s_pTbl_Zones; - s_pTbl_Zones = NULL; // Zone Table + s_pTbl_Zones = NULL; // Table for Zone Information delete s_pTbl_UI; s_pTbl_UI = NULL; // UI Resource File Table loading delete s_pTbl_UPC_Looks; - s_pTbl_UPC_Looks = NULL; // ÷̾ ⺻ Ǵ NPC Resource Table loading + s_pTbl_UPC_Looks = NULL; // NPC Resource Table loading, which is the basic appearance of players delete s_pTbl_Items_Basic; s_pTbl_Items_Basic = NULL; // Item Resource Table loading for (int i = 0; i < MAX_ITEM_EXTENSION; i++) { @@ -156,15 +157,15 @@ void CGameBase::StaticMemberRelease() { delete s_pTbl_NPC_Looks; s_pTbl_NPC_Looks = NULL; // NPC Resource Table loading delete s_pTbl_Skill; - s_pTbl_Skill = NULL; // Skill Table + s_pTbl_Skill = NULL; // Table for skill information delete s_pTbl_Exchange_Quest; - s_pTbl_Exchange_Quest = NULL; // Skill Table + s_pTbl_Exchange_Quest = NULL; // Table for skill information delete s_pTbl_FXSource; - s_pTbl_FXSource = NULL; // FX Source ̺.. + s_pTbl_FXSource = NULL; // Table of FX Source.. delete s_pTbl_QuestMenu; - s_pTbl_QuestMenu = NULL; // Ʈ ø޴ + s_pTbl_QuestMenu = NULL; // Quest-related selection menu delete s_pTbl_QuestTalk; - s_pTbl_QuestTalk = NULL; // Ʈ + s_pTbl_QuestTalk = NULL; // Quest-related fingerprints delete s_pTbl_Texts; s_pTbl_Texts = NULL; delete s_pTbl_Help; @@ -297,25 +298,25 @@ bool CGameBase::GetTextByKnightsDuty(e_KnightsDuty eDuty, std::string & szText) switch (eDuty) { case KNIGHTS_DUTY_UNKNOWN: ::_LoadStringFromResource(IDS_KNIGHTS_DUTY_UNKNOWN, szText); - break; // ????? Ѱܳ?? + break; // ????? getting kicked out?? case KNIGHTS_DUTY_PUNISH: ::_LoadStringFromResource(IDS_KNIGHTS_DUTY_PUNISH, szText); - break; // ¡. + break; // being punished. case KNIGHTS_DUTY_TRAINEE: ::_LoadStringFromResource(IDS_KNIGHTS_DUTY_TRAINEE, szText); - break; // ߽ + break; // apprentice knight case KNIGHTS_DUTY_KNIGHT: ::_LoadStringFromResource(IDS_KNIGHTS_DUTY_KNIGHT, szText); - break; // Ϲݱ + break; // general article case KNIGHTS_DUTY_OFFICER: ::_LoadStringFromResource(IDS_KNIGHTS_DUTY_OFFICER, szText); - break; // 屳 + break; // officer case KNIGHTS_DUTY_VICECHIEF: ::_LoadStringFromResource(IDS_KNIGHTS_DUTY_VICECHIEF, szText); - break; // δ. + break; // Vice-captain. case KNIGHTS_DUTY_CHIEF: ::_LoadStringFromResource(IDS_KNIGHTS_DUTY_CHIEF, szText); - break; // .. + break; // Knight Commander's position. default: __ASSERT(0, "Invalid Knights Duty"); szText = "Unknown Duty"; @@ -329,70 +330,70 @@ bool CGameBase::GetTextByItemClass(e_ItemClass eItemClass, std::string & szText) switch (eItemClass) { case ITEM_CLASS_DAGGER: ::_LoadStringFromResource(IDS_ITEM_CLASS_DAGGER, szText); - break; // ܰ(dagger) + break; // (dagger) case ITEM_CLASS_SWORD: ::_LoadStringFromResource(IDS_ITEM_CLASS_SWORD, szText); - break; // Ѽհ(onehandsword) + break; // (onehandsword) case ITEM_CLASS_SWORD_2H: ::_LoadStringFromResource(IDS_ITEM_CLASS_SWORD_2H, szText); - break; // 3 : հ(twohandsword) + break; // 3 : (twohandsword) case ITEM_CLASS_AXE: ::_LoadStringFromResource(IDS_ITEM_CLASS_AXE, szText); - break; // Ѽյ(onehandaxe) + break; // (onehandaxe) case ITEM_CLASS_AXE_2H: ::_LoadStringFromResource(IDS_ITEM_CLASS_AXE_2H, szText); - break; // μյ(twohandaxe) + break; // (twohandaxe) case ITEM_CLASS_MACE: ::_LoadStringFromResource(IDS_ITEM_CLASS_MACE, szText); - break; // ѼŸݹ(mace) + break; // (mace) case ITEM_CLASS_MACE_2H: ::_LoadStringFromResource(IDS_ITEM_CLASS_MACE_2H, szText); - break; // μŸݹ(twohandmace) + break; // (twohandmace) case ITEM_CLASS_SPEAR: ::_LoadStringFromResource(IDS_ITEM_CLASS_SPEAR, szText); - break; // â(spear) + break; // (spear) case ITEM_CLASS_POLEARM: ::_LoadStringFromResource(IDS_ITEM_CLASS_POLEARM, szText); - break; // (polearm) + break; // (polearm) case ITEM_CLASS_SHIELD: ::_LoadStringFromResource(IDS_ITEM_CLASS_SHIELD, szText); - break; // (shield) + break; // (shield) case ITEM_CLASS_BOW: ::_LoadStringFromResource(IDS_ITEM_CLASS_BOW, szText); - break; // Ʈ(Shortbow) + break; // (Shortbow) case ITEM_CLASS_BOW_CROSS: ::_LoadStringFromResource(IDS_ITEM_CLASS_BOW_CROSS, szText); - break; // ũν(crossbow) + break; // (crossbow) case ITEM_CLASS_BOW_LONG: ::_LoadStringFromResource(IDS_ITEM_CLASS_BOW_LONG, szText); - break; // պ(longbow) + break; // (longbow) case ITEM_CLASS_EARRING: ::_LoadStringFromResource(IDS_ITEM_CLASS_EARRING, szText); - break; // Ͱ + break; // (Earring) case ITEM_CLASS_AMULET: ::_LoadStringFromResource(IDS_ITEM_CLASS_AMULET, szText); - break; // + break; // (Amulet) case ITEM_CLASS_RING: ::_LoadStringFromResource(IDS_ITEM_CLASS_RING, szText); - break; // + break; // (Ring) case ITEM_CLASS_BELT: ::_LoadStringFromResource(IDS_ITEM_CLASS_BELT, szText); - break; // 㸮 + break; // (Belt) case ITEM_CLASS_CHARM: ::_LoadStringFromResource(IDS_ITEM_CLASS_CHARM, szText); - break; //κ丮 ϰ ִ + break; //(Items in Inventory) case ITEM_CLASS_JEWEL: ::_LoadStringFromResource(IDS_ITEM_CLASS_JEWEL, szText); - break; // + break; //(Jewel type) case ITEM_CLASS_POTION: ::_LoadStringFromResource(IDS_ITEM_CLASS_POTION, szText); - break; // + break; // (potion) case ITEM_CLASS_SCROLL: ::_LoadStringFromResource(IDS_ITEM_CLASS_SCROLL, szText); - break; // ũ + break; // (scroll) case ITEM_CLASS_LAUNCHER: ::_LoadStringFromResource(IDS_ITEM_CLASS_LAUNCHER, szText); @@ -400,26 +401,26 @@ bool CGameBase::GetTextByItemClass(e_ItemClass eItemClass, std::string & szText) case ITEM_CLASS_STAFF: ::_LoadStringFromResource(IDS_ITEM_CLASS_STAFF, szText); - break; // (staff) + break; // (staff) case ITEM_CLASS_ARROW: ::_LoadStringFromResource(IDS_ITEM_CLASS_ARROW, szText); - break; // ȭ(Arrow) + break; // (Arrow) case ITEM_CLASS_JAVELIN: ::_LoadStringFromResource(IDS_ITEM_CLASS_JAVELIN, szText); - break; // â + break; // (Javelin) case ITEM_CLASS_ARMOR_WARRIOR: ::_LoadStringFromResource(IDS_ITEM_CLASS_ARMOR_WARRIOR, szText); - break; //  + break; // (Warrior Armor) case ITEM_CLASS_ARMOR_ROGUE: ::_LoadStringFromResource(IDS_ITEM_CLASS_ARMOR_ROGUE, szText); - break; // α  + break; // (Rogue Armor) case ITEM_CLASS_ARMOR_MAGE: ::_LoadStringFromResource(IDS_ITEM_CLASS_ARMOR_MAGE, szText); - break; //  + break; // (Mage Armor) case ITEM_CLASS_ARMOR_PRIEST: ::_LoadStringFromResource(IDS_ITEM_CLASS_ARMOR_PRIEST, szText); - break; //  + break; // (Priest Armor) default: // __ASSERT(0, "Invalid Item Class"); szText = "Unknonw Item Class"; return false; @@ -432,22 +433,22 @@ bool CGameBase::GetTextByAttrib(e_ItemAttrib eAttrib, std::string & szAttrib) { switch (eAttrib) { case ITEM_ATTRIB_GENERAL: ::_LoadStringFromResource(IDS_ITEM_ATTRIB_GENERAL, szAttrib); - break; // ܰ(dagger) + break; // (dagger) case ITEM_ATTRIB_MAGIC: ::_LoadStringFromResource(IDS_ITEM_ATTRIB_MAGIC, szAttrib); - break; // Ѽհ(onehandsword) + break; // (onehandsword) case ITEM_ATTRIB_LAIR: ::_LoadStringFromResource(IDS_ITEM_ATTRIB_LAIR, szAttrib); - break; // 3 : հ(twohandsword) + break; // 3 : (twohandsword) case ITEM_ATTRIB_CRAFT: ::_LoadStringFromResource(IDS_ITEM_ATTRIB_CRAFT, szAttrib); - break; // Ѽյ(onehandaxe) + break; // (onehandaxe) case ITEM_ATTRIB_UNIQUE: ::_LoadStringFromResource(IDS_ITEM_ATTRIB_UNIQUE, szAttrib); - break; // μյ(twohandaxe) + break; // (twohandaxe) case ITEM_ATTRIB_UPGRADE: ::_LoadStringFromResource(IDS_ITEM_ATTRIB_UPGRADE, szAttrib); - break; // ѼŸݹ(mace) + break; // (mace) default: return false; } @@ -544,14 +545,14 @@ bool CGameBase::GetTextByRace(e_Race eRace, std::string & szText) { } D3DCOLOR CGameBase::GetIDColorByLevelDifference(int iLevelDiff) { - // ̿ ... - // : ÷̾ +8, - // : ÷̾ +5, +6, +7 - // : ÷̾ +2, +3, +4 - // : -1 ? ÷̾ ? 1 - // Ķ : ÷̾ 2 -2, -3, -4 - // ʷϻ : ÷̾ -5, -6, -7 - // ϴû : ÷̾ -8, (ġ ) + // Color, based on level difference... + // Purple: +8 over player, + // Red: +5, +6, +7 over player + // Yellow: +2, +3, +4 over player + // White: -1 ? player ? 1 + // Blue: 2 levels lower than the player -2, -3, -4 + // Green: -5, -6, -7 than the player + // Light blue: -8 over player, (no experience gained) D3DCOLOR crID = 0xffffffff; if (iLevelDiff >= 8) { @@ -573,12 +574,12 @@ D3DCOLOR CGameBase::GetIDColorByLevelDifference(int iLevelDiff) { return crID; } -// Item Data ̸ .. -e_ItemType CGameBase::MakeResrcFileNameForUPC(__TABLE_ITEM_BASIC * pItem, // ... +// Create a file name with Item Data. +e_ItemType CGameBase::MakeResrcFileNameForUPC(__TABLE_ITEM_BASIC * pItem, // item data... std::string * pszResrcFN, // Resource FileName std::string * pszIconFN, // Icon FileName - e_PartPosition & ePartPosition, // Part ϰ Index - e_PlugPosition & ePlugPosition) // Plug ϰ Index + e_PartPosition & ePartPosition, // Index in case of Part + e_PlugPosition & ePlugPosition) // Index in case of Plug { ePartPosition = PART_POS_UNKNOWN; ePlugPosition = PLUG_POS_UNKNOWN; @@ -593,12 +594,12 @@ D3DCOLOR CGameBase::GetIDColorByLevelDifference(int iLevelDiff) { return ITEM_TYPE_UNKNOWN; } - // 8 ڸ̴. + // There are 8 digits in total. e_ItemType eType = ITEM_TYPE_UNKNOWN; - e_ItemPosition ePos = (e_ItemPosition)pItem->byAttachPoint; // ġ... + e_ItemPosition ePos = (e_ItemPosition)pItem->byAttachPoint; // mounting location... int iPos = 0; - std::string szExt; // Ȯ.. + std::string szExt; // extension.. if (ePos >= ITEM_POS_DUAL && ePos <= ITEM_POS_TWOHANDLEFT) { if (ITEM_POS_DUAL == ePos || ITEM_POS_RIGHTHAND == ePos || ITEM_POS_TWOHANDRIGHT == ePos) { @@ -611,15 +612,15 @@ D3DCOLOR CGameBase::GetIDColorByLevelDifference(int iLevelDiff) { szExt = ".n3cplug"; } else if (ePos >= ITEM_POS_UPPER && ePos <= ITEM_POS_SHOES) { if (ITEM_POS_UPPER == ePos) { - ePartPosition = PART_POS_UPPER; // ü + ePartPosition = PART_POS_UPPER; // upper body } else if (ITEM_POS_LOWER == ePos) { - ePartPosition = PART_POS_LOWER; // ü + ePartPosition = PART_POS_LOWER; // lower body } else if (ITEM_POS_HEAD == ePos) { - ePartPosition = PART_POS_HAIR_HELMET; // + ePartPosition = PART_POS_HAIR_HELMET; // casque } else if (ITEM_POS_GLOVES == ePos) { - ePartPosition = PART_POS_HANDS; // + ePartPosition = PART_POS_HANDS; // arm } else if (ITEM_POS_SHOES == ePos) { - ePartPosition = PART_POS_FEET; // + ePartPosition = PART_POS_FEET; // foot } else { __ASSERT(0, "lll"); } @@ -646,7 +647,7 @@ D3DCOLOR CGameBase::GetIDColorByLevelDifference(int iLevelDiff) { (pItem->dwIDResrc / 1000) % 10000, (pItem->dwIDResrc / 10) % 100, pItem->dwIDResrc % 10, szExt); } else { - // ܸ ִ ÷׳ Ʈ ϼ ִ... + // It could be a plug or part with just an icon... *pszResrcFN = ""; } } @@ -664,9 +665,9 @@ bool CGameBase::IsValidCharacter(CPlayerBase * pCharacter) { return false; } if (pCharacter == s_pPlayer) { - return true; // ÷̴̾. + return true; // is a player } - return s_pOPMgr->IsValidCharacter(pCharacter); // ϴ ִ ѵ߿ ͺ.. + return s_pOPMgr->IsValidCharacter(pCharacter); // First of all, take it from among the living ones.. } CPlayerBase * CGameBase::CharacterGetByID(int iID, bool bFromAlive) { diff --git a/src/game/GameBase.h b/src/game/GameBase.h index 9beae60a..dcc49a1a 100644 --- a/src/game/GameBase.h +++ b/src/game/GameBase.h @@ -12,31 +12,31 @@ class CGameBase : public CN3Base { #define ACT_WORLD s_pWorldMgr->GetActiveWorld() public: - static CN3TableBase * s_pTbl_Zones; // Zone ̺.. + static CN3TableBase * s_pTbl_Zones; // Table for Zone information.. static CN3TableBase * s_pTbl_UI; // UI FileName Table static CN3TableBase * - s_pTbl_Items_Basic; // ( ڽŰ ٸ ) Ŭ ҽ ̺ + s_pTbl_Items_Basic; // Equipped item resource table for each class of each user (myself and others around me) static CN3TableBase * - s_pTbl_Items_Exts[MAX_ITEM_EXTENSION]; // ( ڽŰ ٸ ) Ŭ ҽ ̺ + s_pTbl_Items_Exts[MAX_ITEM_EXTENSION]; // Equipped item resource table for each class of each user (myself and others around me) static CN3TableBase * - s_pTbl_UPC_Looks; // ( ڽŰ ٸ ) Ŭ ⺻ Ų + s_pTbl_UPC_Looks; // Default skin for each class of each user (myself and others around me) static CN3TableBase * - s_pTbl_NPC_Looks; // NPC, Mob ⺻ - 6 ij Ʈ(), 2 ÷ - static CN3TableBase * s_pTbl_Skill; // Skill Table - static CN3TableBase * s_pTbl_Exchange_Quest; // ȯ Ʈ ̺.. - static CN3TableBase * s_pTbl_FXSource; // FXҽ ̺.. - static CN3TableBase * s_pTbl_QuestMenu; // Ʈ ޴ - static CN3TableBase * s_pTbl_QuestTalk; // Ʈ + s_pTbl_NPC_Looks; // Basic appearance of NPC, Mob - 6 character parts(), 2 plugs + static CN3TableBase * s_pTbl_Skill; // Table for skill information + static CN3TableBase * s_pTbl_Exchange_Quest; // Table of exchange quests.. + static CN3TableBase * s_pTbl_FXSource; // FX Source Information Table.. + static CN3TableBase * s_pTbl_QuestMenu; // Quest Select Menu + static CN3TableBase * s_pTbl_QuestTalk; // Quest fingerprint static CN3TableBase * s_pTbl_Texts; // Localized strings static CN3TableBase * s_pTbl_Help; // Leveling Guide - static class CN3WorldManager * s_pWorldMgr; // Ŵ Ŭ.. - static class CPlayerOtherMgr * s_pOPMgr; // Other Player Manager - ٸ Ŭ.. - static class CPlayerMySelf * s_pPlayer; // Ŭ.. + static class CN3WorldManager * s_pWorldMgr; // World manager class.. + static class CPlayerOtherMgr * s_pOPMgr; // Other Player Manager - Another user management class.. + static class CPlayerMySelf * s_pPlayer; // user class... protected: - static void StaticMemberInit(); // ̺ ⺻ , Ʈ, ij͵ ʱȭ.. - static void StaticMemberRelease(); // ̺ ⺻ , Ʈ, ij͵ ʱȭ.. + static void StaticMemberInit(); // Initialization of tables, basic terrain, objects, characters, etc. + static void StaticMemberRelease(); // Initialization of tables, basic terrain, objects, characters, etc. public: static bool GetTextByAttrib(e_ItemAttrib eAttrib, std::string & szAttrib); @@ -45,13 +45,13 @@ class CGameBase : public CN3Base { static bool GetTextByKnightsDuty(e_KnightsDuty eDuty, std::string & szText); static bool GetTextByNation(e_Nation eNation, std::string & szText); static bool GetTextByRace(e_Race eRace, std::string & szText); - static D3DCOLOR GetIDColorByLevelDifference(int iLevelDiff); // ̿ ID ش. - static e_Class_Represent GetRepresentClass(e_Class eClass); // ־ָ ǥǴ ش. - static e_ItemType MakeResrcFileNameForUPC(__TABLE_ITEM_BASIC * pItem, // ... + static D3DCOLOR GetIDColorByLevelDifference(int iLevelDiff); // ID color according to level difference is returned. + static e_Class_Represent GetRepresentClass(e_Class eClass); // If you enter a detailed job, it returns the job represented. + static e_ItemType MakeResrcFileNameForUPC(__TABLE_ITEM_BASIC * pItem, // item data... std::string * szResrcFN, // Resource FileName std::string * szIconFN, // Icon FileName - e_PartPosition & ePartPosition, // Part ϰ Index - e_PlugPosition & ePlugPosition); // Plug ϰ Index + e_PartPosition & ePartPosition, // Index in case of Part + e_PlugPosition & ePlugPosition); // Index in case of Plug class CPlayerBase * CharacterGetByID(int iID, bool bFromAlive); bool IsValidCharacter(CPlayerBase * pCharacter); diff --git a/src/game/GameProcMain.cpp b/src/game/GameProcMain.cpp index 2e6bb4b0..fc8c7fda 100644 --- a/src/game/GameProcMain.cpp +++ b/src/game/GameProcMain.cpp @@ -107,13 +107,13 @@ enum e_ChatCmd { CMD_COUNT, CMD_UNKNOWN = 0xffffffff }; -static std::string s_szCmdMsg[CMD_COUNT]; // ӻ ɾ +static std::string s_szCmdMsg[CMD_COUNT]; // In-game commands ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// -CGameProcMain::CGameProcMain() // r⺻ .. Ȱ .. +CGameProcMain::CGameProcMain() // rDefault constructor. Refer to the header for the role of each variable. { m_fLBClickTime = 0.0f; m_bLoadComplete = FALSE; @@ -153,8 +153,8 @@ enum e_ChatCmd { m_pUISkillTreeDlg = new CUISkillTreeDlg(); m_pUIHotKeyDlg = new CUIHotKeyDlg(); m_pUINpcTalk = new CUINpcTalk(); - m_pUIKnightsOp = new CUIKnightsOperation(); // Ʈ , , ... - m_pUIPartyBBS = new CUIPartyBBS(); // Ƽ ý Խ??.. + m_pUIKnightsOp = new CUIKnightsOperation(); // View the list of knights, join, etc... + m_pUIPartyBBS = new CUIPartyBBS(); // Party support system bulletin board??.. m_pUIWareHouseDlg = new CUIWareHouseDlg(); m_pUINpcChange = new CUINPCChangeEvent(); m_pUIWarp = new CUIWarp(); @@ -172,7 +172,7 @@ enum e_ChatCmd { m_pSubProcPerTrade = new CSubProcPerTrade(); m_pMagicSkillMng = new CMagicSkillMng(this); - m_pTargetSymbol = new CN3Shape(); // ÷̾ Ÿ ij ġ ׸ ȴ.. + m_pTargetSymbol = new CN3Shape(); // Just draw it on the location of the character targeted by the player. m_pWarMessage = new CWarMessage; m_pLightMgr = new CLightMgr; @@ -221,7 +221,7 @@ CGameProcMain::~CGameProcMain() { delete m_pSubProcPerTrade; delete m_pMagicSkillMng; delete m_pWarMessage; - delete m_pTargetSymbol; // ÷̾ Ÿ ij ġ ׸ ȴ.. + delete m_pTargetSymbol; // Just draw it on the location of the character targeted by the player. delete m_pLightMgr; } @@ -259,7 +259,7 @@ void CGameProcMain::ReleaseUIs() { m_pUIHotKeyDlg->Release(); m_pUINpcTalk->Release(); // m_pUITradeList->Release(); - m_pUIKnightsOp->Release(); // Ʈ , , ... + m_pUIKnightsOp->Release(); // View the list of knights, join, etc... m_pUIPartyBBS->Release(); m_pUIWareHouseDlg->Release(); m_pUINpcChange->Release(); @@ -277,7 +277,7 @@ void CGameProcMain::Init() { m_pLightMgr->Release(); s_pEng->SetDefaultLight(m_pLightMgr->Light(0), m_pLightMgr->Light(1), m_pLightMgr->Light(2)); - for (int i = IDS_CMD_WHISPER; i <= IDS_CMD_GAME_SAVE; i++) //ɾ ε... + for (int i = IDS_CMD_WHISPER; i <= IDS_CMD_GAME_SAVE; i++) //Command loading... { ::_LoadStringFromResource(i, s_szCmdMsg[i - IDS_CMD_WHISPER]); } @@ -287,21 +287,21 @@ void CGameProcMain::Init() { if (m_pWarMessage) { m_pWarMessage->InitFont(); } - this->InitUI(); // ٸ UI ε... - this->InitZone(s_pPlayer->m_InfoExt.iZoneCur, s_pPlayer->Position()); // ε.. + this->InitUI(); // Different UI loading depending on the country... + this->InitZone(s_pPlayer->m_InfoExt.iZoneCur, s_pPlayer->Position()); // John loading... //sound obj... if (m_pSnd_Battle == NULL) { int iIDSndBattle = ((NATION_KARUS == s_pPlayer->m_InfoBase.eNation) ? ID_SOUND_BGM_KA_BATTLE : ID_SOUND_BGM_EL_BATTLE); - m_pSnd_Battle = s_pEng->s_SndMgr.CreateStreamObj(iIDSndBattle); // ID + m_pSnd_Battle = s_pEng->s_SndMgr.CreateStreamObj(iIDSndBattle); // Battle music ID if (m_pSnd_Battle) { m_pSnd_Battle->Looping(true); m_pSnd_Battle->Stop(); } } if (m_pSnd_Town == NULL) { - m_pSnd_Town = s_pEng->s_SndMgr.CreateStreamObj(ID_SOUND_BGM_TOWN); // ID + m_pSnd_Town = s_pEng->s_SndMgr.CreateStreamObj(ID_SOUND_BGM_TOWN); // Village music ID if (m_pSnd_Town) { m_pSnd_Town->Looping(true); m_pSnd_Town->Play(NULL, 3.0f); @@ -312,15 +312,15 @@ void CGameProcMain::Init() { s_pUILoading->Render("Loading Character Data...", 0); } - // .. + // Remember the path... char szPathOld[_MAX_PATH], szPathFind[_MAX_PATH]; ::GetCurrentDirectory(_MAX_PATH, szPathOld); _finddata_t fi; long hFind = -1; - // ҽ б.. - // ϸ̼ б.. + // Read all resources... + // Read all the animations... lstrcpy(szPathFind, szPathOld); lstrcat(szPathFind, "\\Chr"); ::SetCurrentDirectory(szPathFind); @@ -341,8 +341,8 @@ void CGameProcMain::Init() { s_pUILoading->Render("Loading Character Data... 10 %", 10); } - // ҽ б.. - // ؽó б.. + // Read all resources... + // Read all the textures... lstrcpy(szPathFind, szPathOld); lstrcat(szPathFind, "\\Item"); ::SetCurrentDirectory(szPathFind); @@ -363,8 +363,8 @@ void CGameProcMain::Init() { s_pUILoading->Render("Loading Character Data... 25 %", 25); } - // ҽ б.. - // Ʈ б.. + //Read all resources... + //Read all the joints... lstrcpy(szPathFind, szPathOld); lstrcat(szPathFind, "\\Chr"); ::SetCurrentDirectory(szPathFind); @@ -385,8 +385,8 @@ void CGameProcMain::Init() { s_pUILoading->Render("Loading Character Data... 50 %", 50); } - // ҽ б.. - // Ų б.. + // Read all resources... + // Read the skin... lstrcpy(szPathFind, szPathOld); lstrcat(szPathFind, "\\Item"); ::SetCurrentDirectory(szPathFind); @@ -407,8 +407,8 @@ void CGameProcMain::Init() { s_pUILoading->Render("Loading Character Data... 75 %", 75); } - // ҽ б.. - // PMesh б.. + // Read all resources... + // Read PMesh.. lstrcpy(szPathFind, szPathOld); lstrcat(szPathFind, "\\Item"); ::SetCurrentDirectory(szPathFind); @@ -430,19 +430,19 @@ void CGameProcMain::Init() { } this->MsgSend_GameStart(); - // .. + // Change route... ::SetCurrentDirectory(szPathOld); } void CGameProcMain::InitPlayerPosition( - const __Vector3 & vPos) // ÷̾ ġ ʱȭ.. , ⺻ ϰ Ѵ. + const __Vector3 & vPos) // Initialize the player's position.. Stand him up and have him take basic actions. { __Vector3 vPosFinal = vPos; - float fYTerrain = ACT_WORLD->GetHeightWithTerrain(vPos.x, vPos.z); // ̰ .. - float fYObject = ACT_WORLD->GetHeightNearstPosWithShape(vPos, 1.0f); // Ʈ ̰ .. + float fYTerrain = ACT_WORLD->GetHeightWithTerrain(vPos.x, vPos.z); // Obtaining the height of the terrain... + float fYObject = ACT_WORLD->GetHeightNearstPosWithShape(vPos, 1.0f); // Obtaining the closest height value from an object. if (!s_pWorldMgr->IsIndoor()) { if (T_Abs(vPos.y - fYObject) < T_Abs(vPos.y - fYTerrain)) { - vPosFinal.y = fYObject; // ´.. + vPosFinal.y = fYObject; // Put it closer. } else { vPosFinal.y = fYTerrain; } @@ -454,23 +454,23 @@ void CGameProcMain::InitPlayerPosition( } } - s_pPlayer->PositionSet(vPosFinal, true); // ij ġ .. + s_pPlayer->PositionSet(vPosFinal, true); // Character position setting... s_pPlayer->m_vPosFromServer = vPos; - m_vPlayerPosSended = vPos; // ֱٿ ġ .. - m_fMsgSendTimeMove = 0; // ð Ѵ.. + m_vPlayerPosSended = vPos; // Recently sent location settings... + m_fMsgSendTimeMove = 0; // Record the time.. - this->CommandSitDown(false, false, true); // .. ɾִ ¿ ϸ.. װ ִ.. - this->TargetSelect(-1, false); // Ÿ .. - this->UpdateCameraAndLight(); // ī޶ Ʈ ٽ .. + this->CommandSitDown(false, false, true); // Stand up... If you warp while sitting... there is a bug... + this->TargetSelect(-1, false); // Target release... + this->UpdateCameraAndLight(); // Camera and light recalculation. - s_pPlayer->Action(PSA_BASIC, true, NULL, true); // ⺻ ڼ.. + s_pPlayer->Action(PSA_BASIC, true, NULL, true); // Forced basic posture... } void CGameProcMain::Tick() { - CGameProcedure::Tick(); // Ű, 콺 Է .. + CGameProcedure::Tick(); // Keys, mouse input, etc. if (FALSE == m_bLoadComplete) { - return; // ε ȵǾ.. ư. + return; // If it doesn't load... go back. } if (!s_pSocket->IsConnected()) { return; @@ -845,7 +845,7 @@ bool CGameProcMain::ProcessPacket(DataPack * pDataPack, int & iOffset) { case N3_POINT_CHANGE: this->MsgRecv_MyInfo_PointChange(pDataPack, iOffset); return true; - case N3_CHAT: // ä ޽.. + case N3_CHAT: this->MsgRecv_Chat(pDataPack, iOffset); return true; case N3_WARP: { @@ -4173,7 +4173,7 @@ bool CGameProcMain::MsgSend_NPCEvent(short siIDTarget) { int iOffset = 0; CAPISocket::MP_AddByte(byBuff, iOffset, N3_WARP_LIST); - CAPISocket::MP_AddByte(byBuff, iOffset, WI.iID); // ̵ ... + CAPISocket::MP_AddShort(byBuff, iOffset, WI.iID); // ̵ ... s_pSocket->Send(byBuff, iOffset); } diff --git a/src/game/GameProcedure.cpp b/src/game/GameProcedure.cpp index b9601c88..88a59d89 100644 --- a/src/game/GameProcedure.cpp +++ b/src/game/GameProcedure.cpp @@ -56,16 +56,16 @@ CN3UIDebug CGameProcedure::s_UIDebug; ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// -CKnightChrMgr * CGameProcedure::s_pKnightChr = NULL; // Ʈ ij.. -CN3SndObjStream * CGameProcedure::s_pSnd_BGM = NULL; // .. -CLocalInput * CGameProcedure::s_pLocalInput = NULL; // 콺 Ű Է ü .. Direct Input . -CAPISocket * CGameProcedure::s_pSocket = NULL; // ü -CAPISocket * CGameProcedure::s_pSocketSub = NULL; // ü +CKnightChrMgr * CGameProcedure::s_pKnightChr = NULL; // Knight character... +CN3SndObjStream * CGameProcedure::s_pSnd_BGM = NULL; // Main background music pointer.. +CLocalInput * CGameProcedure::s_pLocalInput = NULL; // Mouse and keyboard input objects.. Direct Input was used. +CAPISocket * CGameProcedure::s_pSocket = NULL; // main socket object +CAPISocket * CGameProcedure::s_pSocketSub = NULL; // sub socket object CGameEng * CGameProcedure::s_pEng = NULL; // 3D Wrapper Engine CN3FXMgr * CGameProcedure::s_pFX = NULL; CUIManager * CGameProcedure::s_pUIMgr = NULL; // UI Manager -CUILoading * CGameProcedure::s_pUILoading = NULL; // ε.. +CUILoading * CGameProcedure::s_pUILoading = NULL; // Loading bar... CUIMessageBoxManager * CGameProcedure::s_pMsgBoxMgr = NULL; // MessageBox Manager //bool CGameProcedure::s_bUseSpeedHack = false; @@ -88,19 +88,19 @@ HCURSOR CGameProcedure::s_hCursorAttack = NULL; HCURSOR CGameProcedure::s_hCursorPreRepair = NULL; HCURSOR CGameProcedure::s_hCursorNowRepair = NULL; -e_LogInClassification CGameProcedure::s_eLogInClassification; // .. MGame, Daum, KnightOnLine .... -std::string CGameProcedure::s_szAccount = ""; // ڿ.. -std::string CGameProcedure::s_szPassWord = ""; // .. -std::string CGameProcedure::s_szServer = ""; // ڿ.. +e_LogInClassification CGameProcedure::s_eLogInClassification; // Accessed services... MGame, Daum, KnightOnLine.... +std::string CGameProcedure::s_szAccount = ""; // Account string.. +std::string CGameProcedure::s_szPassWord = ""; // Account password.. +std::string CGameProcedure::s_szServer = ""; // Server string.. bool CGameProcedure::m_bCursorLocked = false; HCURSOR CGameProcedure::m_hPrevGameCursor = NULL; -HWND CGameProcedure::s_hWndSubSocket = NULL; // Ͽ ڵ.. +HWND CGameProcedure::s_hWndSubSocket = NULL; // Window handle for sub socket.. int CGameProcedure::s_iChrSelectIndex = 0; bool CGameProcedure::s_bNeedReportVersionCheck = false; -bool CGameProcedure::s_bNeedReportConnectionClosed = false; // ؾ ϴ.. -bool CGameProcedure::s_bWindowed = false; // â ?? -bool CGameProcedure::s_bKeyPress = false; //Ű ui شϴ ۵ ִٸ -bool CGameProcedure::s_bKeyPressed = false; //Ű ö ui شϴ ۵ ִٸ +bool CGameProcedure::s_bNeedReportConnectionClosed = false; // Should I report that the server connection was lost? +bool CGameProcedure::s_bWindowed = false; // Run windowed mode?? +bool CGameProcedure::s_bKeyPress = false; // When a key is pressed, if there is a corresponding operation in the UI +bool CGameProcedure::s_bKeyPressed = false; // If there is a corresponding manipulation in the UI when the key is raised CGameProcedure::CGameProcedure() { m_bCursorLocked = false; @@ -155,7 +155,7 @@ void CGameProcedure::StaticMemberInit(HINSTANCE hInstance, HWND hWndMain, HWND h CN3Base::s_Options.iViewColorDepth, TRUE)) { exit(-1); } - // ⺻ 3D .. + // Creating a basic 3D engine for the game.. ::SetFocus(hWndMain); // Set focus this window.. RECT rcTmp = rc; @@ -164,12 +164,12 @@ void CGameProcedure::StaticMemberInit(HINSTANCE hInstance, HWND hWndMain, HWND h CN3UIEdit::CreateEditWindow(hWndMain, rcTmp); ////////////////////////////////////////////////////////////////////////////////////////// - s_hWndSubSocket = hWndSub; // Ͽ ڵ.. + s_hWndSubSocket = hWndSub; // Window handle for sub socket.. - CGameBase::StaticMemberInit(); // Table , Ʈ, ij ʱȭ... + CGameBase::StaticMemberInit(); // Initializing tables, terrain, objects, and characters... ////////////////////////////////////////////////////////////////////////////////////////// - // Game Procedure ϰ Dz, 3D, Resource Table ε ʱȭ... + // Game Procedure socket, local input, 3D engine, Resource Table loading and initialization... s_pSocket = new CAPISocket(); s_pSocketSub = new CAPISocket(); @@ -189,10 +189,10 @@ void CGameProcedure::StaticMemberInit(HINSTANCE hInstance, HWND hWndMain, HWND h SetGameCursor(s_hCursorNormal); s_pLocalInput = new CLocalInput(); - s_pLocalInput->Init(hInstance, hWndMain, FALSE); // Input ʱȭ. + s_pLocalInput->Init(hInstance, hWndMain, FALSE); // Initialize only input. ////////////////////////////////////////////////////////////////////////////////////////// - // Sound ʱȭ.. + // Sound initialization.. if (CN3Base::s_Options.bSndEnable) { CN3Base::s_SndMgr.Init(hWndMain); CN3Base::s_SndMgr.SetDuplicated(CN3Base::s_Options.bSndDuplicated); @@ -201,23 +201,23 @@ void CGameProcedure::StaticMemberInit(HINSTANCE hInstance, HWND hWndMain, HWND h s_pFX = new CN3FXMgr(); - __TABLE_UI_RESRC * pTblUI = s_pTbl_UI->Find(NATION_ELMORAD); // ⺻ UI Ѵ.. - __ASSERT(pTblUI, "⺻ UI ϴ."); + __TABLE_UI_RESRC * pTblUI = s_pTbl_UI->Find(NATION_ELMORAD); // The default is Elmorad UI. + __ASSERT(pTblUI, "There is no default UI.."); - s_pUIMgr = new CUIManager(); // ⺻ UIManager - s_pMsgBoxMgr = new CUIMessageBoxManager(); //MessageBox Manager + s_pUIMgr = new CUIManager(); // Default UIManager + s_pMsgBoxMgr = new CUIMessageBoxManager(); // MessageBox Manager - // .. + // Tooltip... CN3UIBase::EnableTooltip(pTblUI->szToolTip); ////////////////////////////////////////////////////////////////////////////////////////// // ν - s_pProcLogIn = new CGameProcLogIn(); // α ν - s_pProcNationSelect = new CGameProcNationSelect(); // - s_pProcCharacterSelect = new CGameProcCharacterSelect(); // ij - s_pProcCharacterCreate = new CGameProcCharacterCreate(); // ij - s_pProcMain = new CGameProcMain(); // ν - s_pProcOption = new CGameProcOption(); // ɼ ν + s_pProcLogIn = new CGameProcLogIn(); // Login procedure + s_pProcNationSelect = new CGameProcNationSelect(); // Select country + s_pProcCharacterSelect = new CGameProcCharacterSelect(); // Character selection + s_pProcCharacterCreate = new CGameProcCharacterCreate(); // Create a character + s_pProcMain = new CGameProcMain(); // Main game procedure + s_pProcOption = new CGameProcOption(); // Game Options Procedure } void CGameProcedure::StaticMemberRelease() { @@ -230,38 +230,38 @@ void CGameProcedure::StaticMemberRelease() { } delete s_pSocket; - s_pSocket = NULL; // .. + s_pSocket = NULL; // Cut off communication... delete s_pSocketSub; - s_pSocketSub = NULL; // ֱ.. + s_pSocketSub = NULL; // Deleting sub sockets... delete s_pFX; s_pFX = NULL; //////////////////////////////////////////////////////////// - // ⺻ .. + // Write default value... if (s_pPlayer) { - int iRun = s_pPlayer->IsRunning(); // ̵ 尡 ٴ ¿ - CGameProcedure::RegPutSetting("UserRun", &iRun, 4); // ȱ, ٱ .. + int iRun = s_pPlayer->IsRunning(); // If the movement mode is running + CGameProcedure::RegPutSetting("UserRun", &iRun, 4); // Record walking and running conditions... } if (s_pEng) { e_ViewPoint eVP = s_pEng->ViewPoint(); - CGameProcedure::RegPutSetting("CameraMode", &eVP, 4); // ī޶ + CGameProcedure::RegPutSetting("CameraMode", &eVP, 4); // Camera status record } - // ⺻ .. + // Write default value... //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// - // ȭ ̱.. + // Show ending screen... if (s_pPlayer) { e_Nation eNation = s_pPlayer->m_InfoBase.eNation; __TABLE_UI_RESRC * pTbl = s_pTbl_UI->Find(eNation); if (pTbl) { - CUIEndingDisplay Credit; // ǥϱ.. + CUIEndingDisplay Credit; // Show ending... Credit.LoadFromFile(pTbl->szEndingDisplay); Credit.Render(); } } - // ȭ ̱.. + // Show ending screen... //////////////////////////////////////////////////////////////////////// delete s_pKnightChr; @@ -269,7 +269,7 @@ void CGameProcedure::StaticMemberRelease() { // if ( (s_pProcMain) && (s_pProcMain->m_pUIHotKeyDlg) ) // s_pProcMain->m_pUIHotKeyDlg->CloseIconRegistry(); - // UI ġ ̱ .. + // Saving information such as UI location and visibility. if (s_pProcMain) { UIPostData_Write(UI_POST_WND_CHAT, s_pProcMain->m_pUIChatDlg); UIPostData_Write(UI_POST_WND_HOTKEY, s_pProcMain->m_pUIHotKeyDlg); @@ -277,21 +277,21 @@ void CGameProcedure::StaticMemberRelease() { // UIPostData_Write(UI_POST_WND_PARTY, s_pProcMain->m_pUIPartyOrForce); } - // ν + // Each procedure delete s_pProcLogIn; - s_pProcLogIn = NULL; // α ν + s_pProcLogIn = NULL; // Login procedure delete s_pProcNationSelect; - s_pProcNationSelect = NULL; // + s_pProcNationSelect = NULL; // Select country delete s_pProcCharacterSelect; - s_pProcCharacterSelect = NULL; // ij + s_pProcCharacterSelect = NULL; // Character selection delete s_pProcCharacterCreate; - s_pProcCharacterCreate = NULL; // ij + s_pProcCharacterCreate = NULL; // Create a character delete s_pProcMain; - s_pProcMain = NULL; // ν + s_pProcMain = NULL; // Main game procedure delete s_pProcOption; - s_pProcOption = NULL; // ɼ ν + s_pProcOption = NULL; // Game Options Procedure - // UI .. + // Throwing away UI.. if (s_pUILoading) { delete s_pUILoading; } @@ -304,7 +304,7 @@ void CGameProcedure::StaticMemberRelease() { delete s_pLocalInput; s_pLocalInput = NULL; delete s_pEng; - s_pEng = NULL; // .!!!!! + s_pEng = NULL; // The engine blows at the very end!!!!! if (s_pGameCursor) { delete s_pGameCursor; @@ -315,7 +315,7 @@ void CGameProcedure::StaticMemberRelease() { } void CGameProcedure::Tick() { - s_pLocalInput->Tick(); // Ű 콺κ Է ޴´. + s_pLocalInput->Tick(); // Receives input from keyboard and mouse. if (s_pGameCursor) { s_pGameCursor->Tick(); } @@ -333,7 +333,7 @@ void CGameProcedure::Tick() { SetGameCursor(((NATION_ELMORAD == eNation) ? s_hCursorNormal1 : s_hCursorNormal)); } if (dwMouseFlags & MOUSE_RBCLICKED) { - if (s_pPlayer->m_bAttackContinous && s_pProcActive == s_pProcMain) { // ν ̸.. + if (s_pPlayer->m_bAttackContinous && s_pProcActive == s_pProcMain) { // If it's the main procedure... SetGameCursor(s_hCursorAttack); } else { SetGameCursor(((NATION_ELMORAD == eNation) ? s_hCursorNormal1 : s_hCursorNormal)); @@ -348,18 +348,18 @@ void CGameProcedure::Tick() { s_pUIMgr->Tick(); } - // ϸ... + // Speaking of mon... // if((dwRet & UI_MOUSEPROC_CHILDDONESOMETHING) || (dwRet & UI_MOUSEPROC_DONESOMETHING)) // s_pLocalInput->MouseRemoveFlag(0xffMOUSE_LBCLICK | MOUSE_LBCLICKED | MOUSE_LBDBLCLK); - s_pUIMgr->m_bDoneSomething = false; // UI ߴ... + s_pUIMgr->m_bDoneSomething = false; // I manipulated it in the UI... if (dwRet != UI_MOUSEPROC_NONE) { - s_pUIMgr->m_bDoneSomething = true; // UI ߴ... + s_pUIMgr->m_bDoneSomething = true; // I manipulated it in the UI... } CN3Base::s_SndMgr.Tick(); // Sound Engine... - // ũ ĸ Ű.. - if (s_pLocalInput->IsKeyPress(DIK_NUMPADMINUS)) // Űе ̳ʽ Ű .. + // Screen capture key.. + if (s_pLocalInput->IsKeyPress(DIK_NUMPADMINUS)) // When you press the minus key on the keypad... { SYSTEMTIME st; ::GetLocalTime(&st); @@ -370,39 +370,39 @@ void CGameProcedure::Tick() { } ////////////////////////////////// - // Network Msg óϱ + //Handling Network Msg DataPack * pDataPack = NULL; - while (s_pSocket->PktQueueSize() > 0) // Ŷ Ʈ Ŷ ֳ???? + while (s_pSocket->PktQueueSize() > 0) // Are there any packets in the packet list???? { int iOffset = 0; - pDataPack = s_pSocket->PktQueueFront(); // ť ù° .. + pDataPack = s_pSocket->PktQueueFront(); // Copy the first one in the queue. if (false == ProcessPacket(pDataPack, iOffset)) { - // Ŷ ó Ȳ ƴϴ. + // It is not a situation to process packets. int iTempOffst = 0; int iCmd = CAPISocket::Parse_GetByte(pDataPack->m_pData, iTempOffst); CLogWriter::Write("Invalid Packet... (%d)", iCmd); } delete pDataPack; - s_pSocket->PktQueuePop(); // Ŷ ť .. + s_pSocket->PktQueuePop(); // Take packets out of queue. } - while (s_pSocketSub->PktQueueSize() > 0) // Ŷ Ʈ Ŷ ֳ???? + while (s_pSocketSub->PktQueueSize() > 0) // Are there any packets in the packet list???? { int iOffset = 0; - pDataPack = s_pSocketSub->PktQueueFront(); // ť ù° .. + pDataPack = s_pSocketSub->PktQueueFront(); // Copy the first one in the queue. if (false == ProcessPacket(pDataPack, iOffset)) { - break; // Ŷ ó Ȳ ƴϴ. + break; // It is not a situation to process packets. } delete pDataPack; - s_pSocketSub->PktQueuePop(); // Ŷ ť .. + s_pSocketSub->PktQueuePop(); // Take packets out of queue. } - // Network Msg óϱ + // Handling Network Msg ////////////////////////////////// } void CGameProcedure::Render() { if (s_pUIMgr) { - s_pUIMgr->Render(); // UI .. + s_pUIMgr->Render(); // UI rendering... } s_pMsgBoxMgr->Render(); @@ -412,7 +412,7 @@ void CGameProcedure::Render() { } void CGameProcedure::TickActive() { - if (s_pProcActive != s_pProcPrev) // ν ٲ.. + if (s_pProcActive != s_pProcPrev) // If the procedure changes... { if (s_pProcPrev) { s_pProcPrev->Release(); @@ -425,12 +425,12 @@ void CGameProcedure::TickActive() { } if (s_pProcActive) { - s_pProcActive->Tick(); // ν Tick ................................ + s_pProcActive->Tick(); //Current procedure Tick ................................. } } void CGameProcedure::RenderActive() { - // if(s_pProcActive != s_pProcPrev) // ν ٲ.. + // if(s_pProcActive != s_pProcPrev) // If the procedure changes... // { // if(s_pProcPrev) s_pProcPrev->Release(); // if(s_pProcActive) s_pProcActive->Init(); @@ -458,7 +458,7 @@ bool CGameProcedure::CaptureScreenAndSaveToFile(const std::string & szFN) { if (hDIB) { int nQuality = 90; - //ڴ ũ ĸĸ Ҽ ְ... + // Operators can take high-quality screen captures... if (s_pPlayer->m_InfoBase.iAuthority == AUTHORITY_MANAGER) { nQuality = 100; } @@ -537,18 +537,18 @@ void CGameProcedure::ProcActiveSet(CGameProcedure * pProc) { } if (s_pUIMgr) { - s_pUIMgr->EnableOperationSet(true); // UI Ҽ ְ Ѵ.. + s_pUIMgr->EnableOperationSet(true); //Allows you to manipulate the UI. } - CGameProcedure::MessageBoxClose(-1); // MessageBox . + CGameProcedure::MessageBoxClose(-1); // If the MessageBox is floating, it is hidden. - s_pProcPrev = s_pProcActive; // .. + s_pProcPrev = s_pProcActive; // Remember the previous pointer... s_pProcActive = pProc; } void CGameProcedure::ReConnect() { - s_bNeedReportConnectionClosed = false; // ؾ ϴ.. + s_bNeedReportConnectionClosed = false; // Should I report that the server connection was lost? CGameProcedure::s_pSocket->ReConnect(); - s_bNeedReportConnectionClosed = true; // ؾ ϴ.. + s_bNeedReportConnectionClosed = true; // Should I report that the server connection was lost? } std::string CGameProcedure::MessageBoxPost(const std::string & szMsg, const std::string & szTitle, int iStyle, @@ -640,15 +640,15 @@ void CGameProcedure::UIPostData_Read(const std::string & szKey, CN3UIBase * pUI, return; } - // 1. Ʈ ͸ .. - // 2. ͸ о´.. - // 3. ȿ ǴѴ.. + // 1.Create default data. + // 2. Read data.. + // 3. Determine whether the area is valid. __WndInfo WI; WI.ptPosition.x = iDefaultX; WI.ptPosition.y = iDefaultY; if (false == RegGetSetting(szKey.c_str(), &WI, sizeof(__WndInfo))) { - WI.bVisible = true; // ⺻ Ͱ ̰ Ѵ.. + WI.bVisible = true; // If there is no basic data, it will always be visible. } RECT rc = pUI->GetRegion(); @@ -748,10 +748,10 @@ std::string CGameProcedure::GetStrRegKeySetting() { } bool CGameProcedure::ProcessPacket(DataPack * pDataPack, int & iOffset) { - int iCmd = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); // Ŀ Ľ.. - switch (iCmd) // Ŀ忡 ٶ б.. + int iCmd = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); // Command parsing... + switch (iCmd) // Branches depending on the command. { - case N3_VERSION_CHECK: // ȣȭ ޴´.. + case N3_VERSION_CHECK: // Encryption is also provided. this->MsgRecv_VersionCheck(pDataPack, iOffset); // virtual return true; @@ -759,14 +759,14 @@ bool CGameProcedure::ProcessPacket(DataPack * pDataPack, int & iOffset) { this->MsgRecv_GameServerLogIn(pDataPack, iOffset); return true; - case N3_SERVER_CHANGE: // ٲٱ ޽.. + case N3_SERVER_CHANGE: // Server change message.. { - // ٸ ٽ Ѵ. + // Reconnect to another zone server. int iLen = 0; std::string szName, szIP; - // iLen = CAPISocket::Parse_GetShort(pDataPack->m_pData, iOffset); // ̸ + // iLen = CAPISocket::Parse_GetShort(pDataPack->m_pData, iOffset); // server name // CAPISocket::Parse_GetString(pDataPack->m_pData, iOffset, szName, iLen); - iLen = CAPISocket::Parse_GetShort(pDataPack->m_pData, iOffset); // IP + iLen = CAPISocket::Parse_GetShort(pDataPack->m_pData, iOffset); // server IP CAPISocket::Parse_GetString(pDataPack->m_pData, iOffset, szIP, iLen); DWORD dwPort = CAPISocket::Parse_GetShort(pDataPack->m_pData, iOffset); s_pPlayer->m_InfoExt.iZoneInit = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); @@ -774,17 +774,17 @@ bool CGameProcedure::ProcessPacket(DataPack * pDataPack, int & iOffset) { int iVictoryNation = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); CGameProcedure::LoadingUIChange(iVictoryNation); - s_bNeedReportConnectionClosed = false; // ؾ ϴ.. - s_pSocket->Disconnect(); // ... - Sleep(2000); // 2 .. ó ð ش. + s_bNeedReportConnectionClosed = false; // Should I report that the server connection was lost? + s_pSocket->Disconnect(); // Hang up... + Sleep(2000); // 2 second delay... gives the server time to process. int iErr = s_pSocket->Connect(s_hWndBase, szIP.c_str(), dwPort); - s_bNeedReportConnectionClosed = true; // ؾ ϴ.. + s_bNeedReportConnectionClosed = true; // Should I report that the server connection was lost? if (iErr) { - this->ReportServerConnectionFailed("Current Zone", iErr, true); // .. Exit. + this->ReportServerConnectionFailed("Current Zone", iErr, true); // Server connection error.. Exit. } else { - // üũ .. ȣȭ Ű ´. - // ν Character_Select αϰ GameServer_LogIn . + // When you send a version check, you will receive the version and encryption key in response. + // For the main procedure, Character_Select is sent, and for login, GameServer_LogIn is sent. this->MsgSend_VersionCheck(); } } @@ -847,26 +847,26 @@ void CGameProcedure::ReportDebugStringAndSendToServer(const std::string & szDebu if (s_pSocket && s_pSocket->IsConnected()) { int iLen = szDebug.size(); - std::vector buffer(iLen + 4, 0); // .. - int iOffset = 0; // ɼ.. + std::vector buffer(iLen + 4, 0); // buffer.. + int iOffset = 0; // Offset... s_pSocket->MP_AddByte(&buffer[0], iOffset, N3_REPORT_DEBUG_STRING); s_pSocket->MP_AddShort(&buffer[0], iOffset, iLen); s_pSocket->MP_AddString(&buffer[0], iOffset, szDebug); - s_pSocket->Send(&buffer[0], iOffset); // .. + s_pSocket->Send(&buffer[0], iOffset); // Sent... } } void CGameProcedure::MsgSend_GameServerLogIn() { - BYTE byBuff[128]; // Ŷ .. - int iOffset = 0; // .. + BYTE byBuff[128]; // packet buffer... + int iOffset = 0; // Buffer offset... - CAPISocket::MP_AddByte(byBuff, iOffset, N3_GAME_SERVER_LOGIN); // Ŀ. - CAPISocket::MP_AddShort(byBuff, iOffset, s_szAccount.size()); // ̵ .. - CAPISocket::MP_AddString(byBuff, iOffset, s_szAccount); // ̵.. - CAPISocket::MP_AddShort(byBuff, iOffset, s_szPassWord.size()); // н - CAPISocket::MP_AddString(byBuff, iOffset, s_szPassWord); // н + CAPISocket::MP_AddByte(byBuff, iOffset, N3_GAME_SERVER_LOGIN); // Command. + CAPISocket::MP_AddShort(byBuff, iOffset, s_szAccount.size()); // ID length... + CAPISocket::MP_AddString(byBuff, iOffset, s_szAccount); // Real ID... + CAPISocket::MP_AddShort(byBuff, iOffset, s_szPassWord.size()); // password length + CAPISocket::MP_AddString(byBuff, iOffset, s_szPassWord); // real password - s_pSocket->Send(byBuff, iOffset); // + s_pSocket->Send(byBuff, iOffset); // send } void CGameProcedure::MsgSend_VersionCheck() // virtual @@ -874,11 +874,11 @@ void CGameProcedure::MsgSend_VersionCheck() // virtual // Version Check int iOffset = 0; BYTE byBuffs[4]; - CAPISocket::MP_AddByte(byBuffs, iOffset, N3_VERSION_CHECK); // Ŀ. - s_pSocket->Send(byBuffs, iOffset); // + CAPISocket::MP_AddByte(byBuffs, iOffset, N3_VERSION_CHECK); // Command. + s_pSocket->Send(byBuffs, iOffset); // send #ifdef _CRYPTION - s_pSocket->m_bEnableSend = FALSE; // ..? + s_pSocket->m_bEnableSend = FALSE; // Can I send it..? #endif // #ifdef _CRYPTION } @@ -886,33 +886,33 @@ void CGameProcedure::MsgSend_CharacterSelect() // virtual { BYTE byBuff[64]; int iOffset = 0; - CAPISocket::MP_AddByte(byBuff, iOffset, N3_CHARACTER_SELECT); // Ŀ. - CAPISocket::MP_AddShort(byBuff, iOffset, s_szAccount.size()); // .. - CAPISocket::MP_AddString(byBuff, iOffset, s_szAccount); // ڿ.. - CAPISocket::MP_AddShort(byBuff, iOffset, s_pPlayer->IDString().size()); // ij ̵ .. - CAPISocket::MP_AddString(byBuff, iOffset, s_pPlayer->IDString()); // ij ̵ ڿ.. - CAPISocket::MP_AddByte(byBuff, iOffset, s_pPlayer->m_InfoExt.iZoneInit); // ó ƴ 0x01:ó - CAPISocket::MP_AddByte(byBuff, iOffset, s_pPlayer->m_InfoExt.iZoneCur); // ij â ij ȣ - s_pSocket->Send(byBuff, iOffset); // + CAPISocket::MP_AddByte(byBuff, iOffset, N3_CHARACTER_SELECT); // Command. + CAPISocket::MP_AddShort(byBuff, iOffset, s_szAccount.size()); // Account length... + CAPISocket::MP_AddString(byBuff, iOffset, s_szAccount); // Account string.. + CAPISocket::MP_AddShort(byBuff, iOffset, s_pPlayer->IDString().size()); // Character ID length... + CAPISocket::MP_AddString(byBuff, iOffset, s_pPlayer->IDString()); // Character ID string.. + CAPISocket::MP_AddByte(byBuff, iOffset, s_pPlayer->m_InfoExt.iZoneInit); // Whether it is the first time connection or not 0x01: First time connection + CAPISocket::MP_AddByte(byBuff, iOffset, s_pPlayer->m_InfoExt.iZoneCur); // Character zone number in the character selection window + s_pSocket->Send(byBuff, iOffset); // send CLogWriter::Write("MsgSend_CharacterSelect - name(%s) zone(%d)", s_pPlayer->IDString().c_str(), - s_pPlayer->m_InfoExt.iZoneCur); // α.. + s_pPlayer->m_InfoExt.iZoneCur); // Debugging log... } void CGameProcedure::MsgSend_AliveCheck() { BYTE byBuff[4]; int iOffset = 0; - CAPISocket::MP_AddByte(byBuff, iOffset, N3_ALIVE_CHECK); // Ŀ. - s_pSocket->Send(byBuff, iOffset); // + CAPISocket::MP_AddByte(byBuff, iOffset, N3_ALIVE_CHECK); // Command. + s_pSocket->Send(byBuff, iOffset); //send } int CGameProcedure::MsgRecv_VersionCheck(DataPack * pDataPack, int & iOffset) // virtual { - int iVersion = CAPISocket::Parse_GetShort(pDataPack->m_pData, iOffset); // + int iVersion = CAPISocket::Parse_GetShort(pDataPack->m_pData, iOffset); // version #ifdef _CRYPTION - __int64 iPublicKey = CAPISocket::Parse_GetInt64(pDataPack->m_pData, iOffset); // ȣȭ Ű + __int64 iPublicKey = CAPISocket::Parse_GetInt64(pDataPack->m_pData, iOffset); // encryption public key DataPack::InitCrypt(iPublicKey); - s_pSocket->m_bEnableSend = TRUE; // ..? + s_pSocket->m_bEnableSend = TRUE; // Can I send it..? #endif // #ifdef _CRYPTION if (iVersion != CURRENT_VERSION) { @@ -937,14 +937,14 @@ int CGameProcedure::MsgRecv_VersionCheck(DataPack * pDataPack, int & iOffset) // int CGameProcedure::MsgRecv_GameServerLogIn(DataPack * pDataPack, int & iOffset) // virtual { - int iNation = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); // - 0 0xff - .. + int iNation = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); // Country - 0 None 0xff - Failed.. return iNation; } bool CGameProcedure::MsgRecv_CharacterSelect(DataPack * pDataPack, int & iOffset) // virtual { - int iResult = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); // 0x00 - if (1 == iResult) // .. + int iResult = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); // 0x00 failed + if (1 == iResult) // success.. { int iZoneCur = CAPISocket::Parse_GetByte(pDataPack->m_pData, iOffset); float fX = (CAPISocket::Parse_GetWord(pDataPack->m_pData, iOffset)) / 10.0f; @@ -960,7 +960,7 @@ bool CGameProcedure::MsgRecv_CharacterSelect(DataPack * pDataPack, int & iOffset CLogWriter::Write("MsgRecv_CharacterSelect - name(%s) zone(%d -> %d)", s_pPlayer->m_InfoBase.szID.c_str(), iZonePrev, iZoneCur); return true; - } else // + } else //failure { CLogWriter::Write("MsgRecv_CharacterSelect - failed(%d)", iResult); return false; @@ -974,7 +974,7 @@ bool CGameProcedure::MsgRecv_CharacterSelect(DataPack * pDataPack, int & iOffset } void CGameProcedure::ProcessUIKeyInput(bool bEnable) { - s_bKeyPressed = false; //Ű ö ui شϴ ۵ ִٸ + s_bKeyPressed = false; //If there is a corresponding manipulation in the UI when the key is raised if (!bEnable) { if (s_bKeyPress) { @@ -1003,7 +1003,7 @@ void CGameProcedure::ProcessUIKeyInput(bool bEnable) { s_bKeyPressed |= pMsgBox->OnKeyPressed(i); } } - } else if (pUIFocus && pUIFocus->IsVisible()) // Ŀ UI ... + } else if (pUIFocus && pUIFocus->IsVisible()) // If there is a focused UI... { for (int i = 0; i < NUMDIKEYS; i++) { if (s_pLocalInput->IsKeyPress(i)) { @@ -1057,13 +1057,13 @@ void CGameProcedure::LoadingUIChange(int iVictoryNation) { s_pUILoading = NULL; // Loading Bar s_pUILoading = new CUILoading(); - __ASSERT(s_pUILoading, "εȭ "); + __ASSERT(s_pUILoading, "Failed to create loading screen"); if (s_pUILoading == NULL) { return; } - __TABLE_UI_RESRC * pTblUI = s_pTbl_UI->Find(NATION_ELMORAD); // ⺻ UI Ѵ.. - __ASSERT(pTblUI, "⺻ UI ϴ."); + __TABLE_UI_RESRC * pTblUI = s_pTbl_UI->Find(NATION_ELMORAD); // The default is Elmorad UI. + __ASSERT(pTblUI, "There is no default UI."); if (pTblUI == NULL) { return; } @@ -1084,5 +1084,5 @@ void CGameProcedure::LoadingUIChange(int iVictoryNation) { } TRACE("Loading UIF : %s\n", szLoading.c_str()); - s_pUILoading->LoadFromFile(szLoading); // ⺻ ε .. + s_pUILoading->LoadFromFile(szLoading); // Creating a basic loading bar... } diff --git a/src/game/KnightOnLine.vcxproj b/src/game/KnightOnLine.vcxproj index f5bf610e..392e2106 100644 --- a/src/game/KnightOnLine.vcxproj +++ b/src/game/KnightOnLine.vcxproj @@ -66,8 +66,10 @@ $(ProjectDir);$(ProjectDir)res;$(SrcDir)\common;$(SrcDir)\engine;$(VendorDir)\imgui\include;$(VendorDir)\spdlog\include;$(VendorDir)\jpeglib\include;$(WindowsSDK_IncludePath);$(VendorDir)\DXSDK9\Include /wd4018 /wd4091 /wd4244 /wd4267 /wd4477 /wd4838 /wd6031 /wd26495 /wd4102 %(AdditionalOptions) EnableFastChecks - EditAndContinue + ProgramDatabase true + 4996 + $(IntDir)$(ProjectName)xd.pdb Windows @@ -102,6 +104,8 @@ true true true + 4996 + $(IntDir)$(ProjectName)xd.pdb Windows diff --git a/src/game/LocalInput.cpp b/src/game/LocalInput.cpp index b71df0fc..97c2a264 100644 --- a/src/game/LocalInput.cpp +++ b/src/game/LocalInput.cpp @@ -23,24 +23,24 @@ CLocalInput::CLocalInput(void) { // m_bKeyboard = FALSE; m_nMouseFlag = 0; - m_nMouseFlagOld = 0; // 콺 ư ÷ - m_dwTickLBDown = 0; // 콺 ư Ŭ - m_dwTickRBDown = 0; // 콺 ư Ŭ + m_nMouseFlagOld = 0; // mouse button pressed flag + m_dwTickLBDown = 0; // For detecting left mouse button double click + m_dwTickRBDown = 0; // For detecting right mouse double click - m_ptCurMouse.x = m_ptCurMouse.y = 0; // 콺 - m_ptOldMouse.x = m_ptOldMouse.y = 0; // 콺 + m_ptCurMouse.x = m_ptCurMouse.y = 0; // current mouse pointer + m_ptOldMouse.x = m_ptOldMouse.y = 0; // previous mouse pointer - SetRect(&m_rcLBDrag, 0, 0, 0, 0); // 巡 - SetRect(&m_rcMBDrag, 0, 0, 0, 0); // 巡 - SetRect(&m_rcRBDrag, 0, 0, 0, 0); // 巡 + SetRect(&m_rcLBDrag, 0, 0, 0, 0); // drag area + SetRect(&m_rcMBDrag, 0, 0, 0, 0); // drag area + SetRect(&m_rcRBDrag, 0, 0, 0, 0); // drag area - SetRect(&m_rcMLimit, 0, 0, 0, 0); // 콺 + SetRect(&m_rcMLimit, 0, 0, 0, 0); // Mouse movement restriction area - memset(m_byCurKeys, 0, sizeof(m_byCurKeys)); // Ű - memset(m_byOldKeys, 0, sizeof(m_byOldKeys)); // Ű - memset(m_bKeyPresses, 0, sizeof(m_bKeyPresses)); // Ű - memset(m_bKeyPresseds, 0, sizeof(m_bKeyPresseds)); // Ű - m_bNoKeyDown = FALSE; // ƹ ŰԷµ + memset(m_byCurKeys, 0, sizeof(m_byCurKeys)); // Current key status + memset(m_byOldKeys, 0, sizeof(m_byOldKeys)); // Previous key state + memset(m_bKeyPresses, 0, sizeof(m_bKeyPresses)); // Is it the moment you press the key? + memset(m_bKeyPresseds, 0, sizeof(m_bKeyPresseds)); // Is it the moment you press and release the key? + m_bNoKeyDown = FALSE; // Are there any keystrokes? memset(m_dwTickKeyPress, 0, sizeof(m_dwTickKeyPress)); } @@ -79,7 +79,7 @@ BOOL CLocalInput::Init(HINSTANCE hInst, HWND hWnd, BOOL bActivateKeyboard, BOOL BOOL ExclusiveMouseAccess) { HRESULT rval; - m_hWnd = hWnd; // ڵ .. + m_hWnd = hWnd; // Remember the window handle... rval = DirectInput8Create(hInst, DIRECTINPUT_VERSION, IID_IDirectInput8, (void **)(&m_lpDI), NULL); if (rval != DI_OK) { @@ -236,7 +236,7 @@ void CLocalInput::UnacquireMouse() { ///////////////////////////////////////////////////////////////////////////////////////////// // Updates all devices. Call this before you check for input. ///////////////////////////////////////////////////////////////////////////////////////////// -// ǵ̸ ü ν ѹ ° .. ϸ ȥ ü ִ. +// If possible, it is best to run it only once during the entire procedure. If you do it multiple times, it may cause confusion. void CLocalInput::Tick(void) { #if _DEBUG if (ImGui::GetIO().WantCaptureMouse || ImGui::GetIO().WantCaptureKeyboard) { @@ -250,7 +250,7 @@ void CLocalInput::Tick(void) { // WORD i; // DWORD key; - HWND hWndActive = ::GetActiveWindow(); // Ŀ̵Ǿ... + HWND hWndActive = ::GetActiveWindow(); // Only when focused... if (hWndActive != m_hWnd) { return; } @@ -260,21 +260,21 @@ void CLocalInput::Tick(void) { /////////////////////// // if(m_bKeyboard) // { - memcpy(m_byOldKeys, m_byCurKeys, NUMDIKEYS); // Ű - err = m_lpDIDKeyboard->GetDeviceState(NUMDIKEYS, m_byCurKeys); // Ű + memcpy(m_byOldKeys, m_byCurKeys, NUMDIKEYS); // Previous key state history + err = m_lpDIDKeyboard->GetDeviceState(NUMDIKEYS, m_byCurKeys); // Record current key state if (err != DI_OK) { AcquireKeyboard(); } else { - m_bNoKeyDown = TRUE; // ÷ ƹ͵ ȴ + m_bNoKeyDown = TRUE; // At first, I couldnt press anything. for (int i = 0; i < NUMDIKEYS; i++) { if (!m_byOldKeys[i] && m_byCurKeys[i]) { - m_bKeyPresses[i] = TRUE; // + m_bKeyPresses[i] = TRUE; // The moment you press } else { m_bKeyPresses[i] = FALSE; } if (m_byOldKeys[i] && !m_byCurKeys[i]) { - m_bKeyPresseds[i] = TRUE; // .. + m_bKeyPresseds[i] = TRUE; // The moment you press and release... } else { m_bKeyPresseds[i] = FALSE; } @@ -292,7 +292,7 @@ void CLocalInput::Tick(void) { // if(m_bMouse) // { // DIMOUSESTATE DIMState; - // err = m_lpDIDMouse->GetDeviceState(sizeof(DIMState), &DIMState); // 콺 - ̻Ÿ.. ڲ.. .. + // err = m_lpDIDMouse->GetDeviceState(sizeof(DIMState), &DIMState); // Getting the mouse status - I keep getting errors... // if(err != DI_OK) // { // AcquireMouse(); @@ -321,22 +321,22 @@ void CLocalInput::Tick(void) { // if (m_ptCurMouse.y < m_rcMLimit.top) // m_ptCurMouse.y = m_rcMLimit.top; - m_ptOldMouse = m_ptCurMouse; // ϴ ... + m_ptOldMouse = m_ptCurMouse; // First, copy the previous one... RECT rcClient; ::GetClientRect(m_hWnd, &rcClient); - ::GetCursorPos(&m_ptCurMouse); // ̻ؼ... ׳ ý 콺 Ŀ ġ - ::ScreenToClient(m_hWnd, &m_ptCurMouse); // Ŭ̾Ʈ ȯ + ::GetCursorPos(&m_ptCurMouse); // It's a bit strange... Just get the system mouse cursor position. + ::ScreenToClient(m_hWnd, &m_ptCurMouse); // Convert to client area if (PtInRect(&rcClient, m_ptCurMouse) == - FALSE) // || GetFocus() != m_hWnd) // ũ ۿ ְų Ŀ .. + FALSE) // || GetFocus() != m_hWnd) // If it is outside the screen area or is not in focus... { } else { - // 콺 ư . + // Maintain mouse button state. m_nMouseFlagOld = m_nMouseFlag; m_nMouseFlag = 0; - // 콺 + // Get mouse state if (_IsKeyDown(VK_LBUTTON)) { m_nMouseFlag |= MOUSE_LBDOWN; } @@ -347,7 +347,7 @@ void CLocalInput::Tick(void) { m_nMouseFlag |= MOUSE_RBDOWN; } - // ư Ŭ .. + // Immediately after clicking the button... if ((m_nMouseFlagOld & MOUSE_LBDOWN) == FALSE && (m_nMouseFlag & MOUSE_LBDOWN)) { m_nMouseFlag |= MOUSE_LBCLICK; } @@ -358,7 +358,7 @@ void CLocalInput::Tick(void) { m_nMouseFlag |= MOUSE_RBCLICK; } - // ư + //When you release the button if ((m_nMouseFlagOld & MOUSE_LBDOWN) && (m_nMouseFlag & MOUSE_LBDOWN) == FALSE) { m_nMouseFlag |= MOUSE_LBCLICKED; } @@ -369,8 +369,8 @@ void CLocalInput::Tick(void) { m_nMouseFlag |= MOUSE_RBCLICKED; } - static DWORD dwDblClk = GetDoubleClickTime(); // Ŭð .. - if (m_nMouseFlag & MOUSE_LBCLICKED) // Ŭ + static DWORD dwDblClk = GetDoubleClickTime(); // Get the double-click time of Windows. + if (m_nMouseFlag & MOUSE_LBCLICKED) // Left double click detection { static DWORD dwCLicked = 0; if (timeGetTime() < dwCLicked + dwDblClk) { @@ -378,7 +378,7 @@ void CLocalInput::Tick(void) { } dwCLicked = timeGetTime(); } - if (m_nMouseFlag & MOUSE_MBCLICKED) // Ŭ + if (m_nMouseFlag & MOUSE_MBCLICKED) // Left double click detection { static DWORD dwCLicked = 0; if (timeGetTime() < dwCLicked + dwDblClk) { @@ -386,7 +386,7 @@ void CLocalInput::Tick(void) { } dwCLicked = timeGetTime(); } - if (m_nMouseFlag & MOUSE_RBCLICKED) // Ŭ + if (m_nMouseFlag & MOUSE_RBCLICKED) // Left double click detection { static DWORD dwCLicked = 0; if (timeGetTime() < dwCLicked + dwDblClk) { @@ -395,7 +395,7 @@ void CLocalInput::Tick(void) { dwCLicked = timeGetTime(); } - // 巡 ó + // Drag area handling if (m_nMouseFlag & MOUSE_LBDOWN) { m_rcLBDrag.right = m_ptCurMouse.x; m_rcLBDrag.bottom = m_ptCurMouse.y; diff --git a/src/game/LocalInput.h b/src/game/LocalInput.h index 4ccbc1c9..644de3e3 100644 --- a/src/game/LocalInput.h +++ b/src/game/LocalInput.h @@ -8,7 +8,7 @@ const int DK_PRESS = 2; const int DK_REPEAT = 4; const int NUMDIKEYS = 256; -// 콺 ÷ - Ѱ ̻ ÷װ OR յǾ ִ.. +// Mouse flag - One or more flags are combined using OR operation. const int MOUSE_LBCLICK = 0x1; const int MOUSE_LBCLICKED = 0x2; const int MOUSE_LBDOWN = 0x4; @@ -43,35 +43,35 @@ class CLocalInput { // BOOL m_bMouse; // BOOL m_bKeyboard; - int m_nMouseFlag, m_nMouseFlagOld; // 콺 ư ÷ - DWORD m_dwTickLBDown; // 콺 ư Ŭ - DWORD m_dwTickRBDown; // 콺 ư Ŭ + int m_nMouseFlag, m_nMouseFlagOld; // mouse button pressed flag + DWORD m_dwTickLBDown; // For detecting double click of left mouse button + DWORD m_dwTickRBDown; // For detecting right mouse double click - POINT m_ptCurMouse; // 콺 - POINT m_ptOldMouse; // 콺 + POINT m_ptCurMouse; // current mouse pointer + POINT m_ptOldMouse; // previous mouse pointer - RECT m_rcLBDrag; // 巡 - RECT m_rcMBDrag; // 巡 - RECT m_rcRBDrag; // 巡 + RECT m_rcLBDrag; // drag area + RECT m_rcMBDrag; // drag area + RECT m_rcRBDrag; // drag area - RECT m_rcMLimit; // 콺 - BYTE m_byCurKeys[NUMDIKEYS]; // Ű - BYTE m_byOldKeys[NUMDIKEYS]; // Ű - BOOL m_bKeyPresses[NUMDIKEYS]; // Ű - BOOL m_bKeyPresseds[NUMDIKEYS]; // Ű - BOOL m_bNoKeyDown; // ƹ ŰԷµ + RECT m_rcMLimit; // Mouse movement restriction area + BYTE m_byCurKeys[NUMDIKEYS]; // Current key status + BYTE m_byOldKeys[NUMDIKEYS]; // Previous key state + BOOL m_bKeyPresses[NUMDIKEYS]; // Is it the moment you press the key? + BOOL m_bKeyPresseds[NUMDIKEYS]; // Is it the moment you press and release the key? + BOOL m_bNoKeyDown; // Are there any keystrokes? DWORD m_dwTickKeyPress[NUMDIKEYS]; public: - void KeyboardClearInput(int iIndex = -1) // Ű Է ȿȭ Ų.. ⺻ ȿȭ̴.. + void KeyboardClearInput(int iIndex = -1) // Disables keyboard input. The default is to disable all input. { if (-1 == iIndex) { memset(m_byOldKeys, 0, sizeof(m_byOldKeys)); memset(m_byCurKeys, 0, sizeof(m_byCurKeys)); memset(m_bKeyPresses, 0, sizeof(m_bKeyPresses)); memset(m_bKeyPresseds, 0, sizeof(m_bKeyPresseds)); - } else if (iIndex >= 0 && iIndex < NUMDIKEYS) // Ư Ű ȿȭ.. + } else if (iIndex >= 0 && iIndex < NUMDIKEYS) // Invalidate only certain keys. { m_byCurKeys[iIndex] = m_byOldKeys[iIndex] = m_bKeyPresses[iIndex] = m_bKeyPresseds[iIndex] = 0; } @@ -82,19 +82,19 @@ class CLocalInput { return FALSE; } return m_byCurKeys[iIndex]; - } // Ű尡 ִ... Ǿ ִ DIK_???? ĵڵ带 .. + } // Is the keyboard pressed... DIK_???? defined in See scan code.. BOOL IsKeyPress(int iIndex) { if (iIndex < 0 || iIndex >= NUMDIKEYS) { return FALSE; } return m_bKeyPresses[iIndex]; - } // Ű带 ... Ǿ ִ DIK_???? ĵڵ带 .. + } // The moment you press the keyboard... DIK_???? defined in . See scan code.. BOOL IsKeyPressed(int iIndex) { if (iIndex < 0 || iIndex >= NUMDIKEYS) { return FALSE; } return m_bKeyPresseds[iIndex]; - } // Ű带 ... Ǿ ִ DIK_???? ĵڵ带 .. + } // The moment you press and then release the keyboard... DIK_???? defined in . See scan code.. BOOL Init(HINSTANCE hInst, HWND hWnd, BOOL bActivateKeyboard = TRUE, BOOL bActivateMouse = TRUE, BOOL ExclusiveMouseAccess = TRUE); @@ -106,7 +106,7 @@ class CLocalInput { void SetActiveDevices(BOOL bKeyboard, BOOL bMouse); void MouseSetPos(int x, int y); - BOOL KeyboardGetKeyState(int nDIKey); // ֱ Ű ˻.. + BOOL KeyboardGetKeyState(int nDIKey); // Check recently pressed keys... const POINT MouseGetPos() { return m_ptCurMouse; } const POINT MouseGetPosOld() { return m_ptOldMouse; } @@ -115,7 +115,7 @@ class CLocalInput { RECT MouseGetMBDragRect() { return m_rcMBDrag; } RECT MouseGetRBDragRect() { return m_rcRBDrag; } - int MouseGetFlag() { return m_nMouseFlag; } // Mouse Flag or յǾ ִ. + int MouseGetFlag() { return m_nMouseFlag; } // It is combined with the or operation of Mouse Flag. int MouseGetFlagOld() { return m_nMouseFlagOld; } void MouseRemoveFlag(int nFlag = -1) { if (-1 == nFlag) { @@ -123,7 +123,7 @@ class CLocalInput { } else { m_nMouseFlag &= (~nFlag); } - } // Ư Mouse Flag + } // Remove specific Mouse Flag CLocalInput(void); ~CLocalInput(void); diff --git a/src/game/Main.cpp b/src/game/Main.cpp index 6e6e8e6c..875f667c 100644 --- a/src/game/Main.cpp +++ b/src/game/Main.cpp @@ -131,7 +131,7 @@ LRESULT CALLBACK WndProcMain(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPar if (CGameProcedure::s_pProcMain->m_fExitCurCountDownToReach == -1.0f) { g_bActive = FALSE; CLogWriter::Write("WA_INACTIVE."); - ::PostQuitMessage(0); // â ƴϸ ñ?? + ::PostQuitMessage(0); // Wow, this book is so awesome! It's so amazing! It's so amazing! } else if (CGameProcedure::s_pProcMain->m_pUIChatDlg) { std::string szMsg; ::_LoadStringFromResource(IDS_EXIT_GAME_DURING_BATTLE_WARNING, szMsg); @@ -307,18 +307,18 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi N3_INFO("Game started"); ////////////////////////////// - // ǵ üŷ... + // tsk tsk tsk... // DWORD dwCSHID; // HANDLE hThreadCheckSpeedHack = ::CreateThread(NULL, 0, CheckSpeedHackProc, NULL, CREATE_SUSPENDED, &dwCSHID); // ::SetThreadPriority(hThreadCheckSpeedHack, THREAD_PRIORITY_NORMAL); - // ǵ üŷ... + // tsk tsk tsk... ////////////////////////////// char szPath[_MAX_PATH] = ""; GetCurrentDirectory(_MAX_PATH, szPath); CN3Base::PathSet(szPath); - // б.. + // Tsk tsk tsk tsk tsk.. char szIniPath[_MAX_PATH] = ""; lstrcpy(szIniPath, CN3Base::PathGet().c_str()); lstrcat(szIniPath, "Option.Ini"); @@ -383,10 +383,10 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi } int iSndEnable = GetPrivateProfileInt("Sound", "Enable", 1, szIniPath); - CN3Base::s_Options.bSndEnable = (iSndEnable) ? true : false; // ... + CN3Base::s_Options.bSndEnable = (iSndEnable) ? true : false; // Clap clap clap clap... int iSndDuplicate = GetPrivateProfileInt("Sound", "Duplicate", 0, szIniPath); - CN3Base::s_Options.bSndDuplicated = (iSndDuplicate) ? true : false; // ... + CN3Base::s_Options.bSndDuplicated = (iSndDuplicate) ? true : false; // Clap clap clap clap... int iWindowCursor = GetPrivateProfileInt("Cursor", "WindowCursor", 1, szIniPath); CN3Base::s_Options.bWindowCursor = (iWindowCursor) ? true : false; // cursor... @@ -397,46 +397,46 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi CGameProcedure::s_bWindowed = true; #endif // #if _DEBUG - // ι° .. + HWND hWndSub = CreateSubWindow(hInstance); - ::ShowWindow(hWndSub, SW_HIDE); // ߱.. + ::ShowWindow(hWndSub, SW_HIDE); - // 츦 .. + // Clap clap clap clap... HWND hWndMain = CreateMainWindow(hInstance); if (NULL == hWndMain || NULL == hWndSub) { CLogWriter::Write("Cannot create window."); exit(-1); } - ::ShowWindow(hWndMain, nCmdShow); // ش.. + ::ShowWindow(hWndMain, nCmdShow); ::SetActiveWindow(hWndMain); - // Launcher ׷̵.. - FILE * pFile = fopen("Launcher2.exe", "r"); // ׷̵ Ұ ش.. + // Launcher + FILE * pFile = fopen("Launcher2.exe", "r"); if (pFile) { fclose(pFile); - if (::DeleteFile("Launcher.exe")) // .. + if (::DeleteFile("Launcher.exe")) { - ::rename("Launcher2.exe", "Launcher.exe"); // ̸ ٲپ ش.. + ::rename("Launcher2.exe", "Launcher.exe"); } } - // α׷ μ ó.. - if (lpCmdLine && lstrlen(lpCmdLine) > 0 && lstrlen(lpCmdLine) < 64) // μ .. + // Huh huh tsk tsk tsk tsk? + if (lpCmdLine && lstrlen(lpCmdLine) > 0 && lstrlen(lpCmdLine) < 64) { char szService[64], szAccountTmp[64], szPWTmp[64]; sscanf(lpCmdLine, "%s %s %s", szService, szAccountTmp, szPWTmp); - if (0 == lstrcmpi(szService, "MGame")) { // α... + if (0 == lstrcmpi(szService, "MGame")) { CGameProcedure::s_eLogInClassification = LIC_MGAME; - } else if (0 == lstrcmpi(szService, "Daum")) { // α... + } else if (0 == lstrcmpi(szService, "Daum")) { CGameProcedure::s_eLogInClassification = LIC_DAUM; } else { CGameProcedure::s_eLogInClassification = LIC_KNIGHTONLINE; } - CGameProcedure::s_szAccount = szAccountTmp; // - CGameProcedure::s_szPassWord = szPWTmp; // . + CGameProcedure::s_szAccount = szAccountTmp; // Thick straw + CGameProcedure::s_szPassWord = szPWTmp; - if (0 == lstrcmpi(szService, "$#$%&^@!#$%#@^%&#%$&^")) { //  ... + if (0 == lstrcmpi(szService, "$#$%&^@!#$%#@^%&#%$&^¿î¿µÆ??ü¿ë°Ô?Ó")) { // I was shocked CGameProcedure::s_bWindowed = true; } else { CGameProcedure::s_bWindowed = false; @@ -444,9 +444,9 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi } ////////////////////////////////////////////////////////////////////////////////////////// - // Static Member ... - CGameProcedure::StaticMemberInit(hInstance, hWndMain, hWndSub); // ı WM_DESTROY Ѵ.. - CGameProcedure::ProcActiveSet((CGameProcedure *)CGameProcedure::s_pProcLogIn); // α ν .. + // Static Member + CGameProcedure::StaticMemberInit(hInstance, hWndMain, hWndSub); + CGameProcedure::ProcActiveSet((CGameProcedure *)CGameProcedure::s_pProcLogIn); BOOL bGotMsg = FALSE; @@ -492,14 +492,14 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi #endif // #if _DEBUG ////////////////////////////// - // ǵ üŷ... + // // ::TerminateThread(hThreadCheckSpeedHack, 0); // hThreadCheckSpeedHack = 0; // dwCSHID = 0; - // ǵ üŷ... + // ////////////////////////////// - CGameProcedure::StaticMemberRelease(); // ...... + CGameProcedure::StaticMemberRelease(); CN3Log::Destroy(); return msg.wParam; diff --git a/src/game/Main.h b/src/game/Main.h index 51b8b76b..6c82930a 100644 --- a/src/game/Main.h +++ b/src/game/Main.h @@ -1,5 +1,6 @@ #pragma once + LRESULT CALLBACK WndProcMain(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK WndProcSub(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK OYBLowLevelKeyboardProc(INT nCode, WPARAM wParam, LPARAM lParam); diff --git a/src/game/N3Terrain.cpp b/src/game/N3Terrain.cpp index 61395299..e730fae2 100644 --- a/src/game/N3Terrain.cpp +++ b/src/game/N3Terrain.cpp @@ -382,13 +382,21 @@ bool CN3Terrain::Load(HANDLE hFile) { Init(); m_szFileName = szFNBackup; + DWORD dwRWC; + // 1264 .gtd terran cn fx + int version, istrlen; + ReadFile(hFile, &(version), sizeof(int), &dwRWC, NULL); // Read the map version + ReadFile(hFile, &(istrlen), sizeof(int), &dwRWC, NULL); // Read the map name char length + CHAR * GTDMapName = new CHAR[istrlen + 1]{}; // Zero-initialized + ReadFile(hFile, GTDMapName, istrlen, &dwRWC, NULL); // Now read it and push it back to the GTDMapName char buffer + // 1264 end CUILoading * pUILoading = CGameProcedure::s_pUILoading; // ε.. if (pUILoading) { pUILoading->Render("Allocating Terrain...", 0); } - DWORD dwRWC; + ReadFile(hFile, &(m_ti_MapSize), sizeof(int), &dwRWC, NULL); m_pat_MapSize = (m_ti_MapSize - 1) / PATCH_TILE_SIZE; diff --git a/src/game/SharedMem.cpp b/src/game/SharedMem.cpp index 4511a090..3c448516 100644 --- a/src/game/SharedMem.cpp +++ b/src/game/SharedMem.cpp @@ -60,16 +60,16 @@ void CSharedMemQueue::SetReadData() { char * InData = Rxd->Data + Rxd->Tail; if (*InData != 0x7f) { (Rxd->Tail)++; - TRACE("Start "); - // AfxMessageBox("Start ", NULL, MB_OK); + TRACE("No Start"); + // AfxMessageBox("No Start", NULL, MB_OK); return; } memcpy((char *)&size, InData + 1, 2); memcpy(abIn, InData + 3, size); if (*(InData + size + 3) != 0x7e) { - TRACE("Stop "); + TRACE("No Stop"); } - // AfxMessageBox("Stop ",NULL, MB_OK); + // AfxMessageBox("No Stop",NULL, MB_OK); Rxd->Tail += size + 4; SendMessage(m_hwnd, WM_RECEIVEDATA, size, 0); } @@ -96,7 +96,7 @@ BOOL CSharedMemQueue::PutData(char * pBuf, WORD size) { return TRUE; } -//޼ hwnd +// hwnd settings to deliver messages void CSharedMemQueue::SetHwnd(HWND hwnd) { m_hwnd = hwnd; } diff --git a/src/game/SharedMem.h b/src/game/SharedMem.h index 162ced68..ab758eed 100644 --- a/src/game/SharedMem.h +++ b/src/game/SharedMem.h @@ -26,11 +26,11 @@ class CSharedMemQueue //:public CObject BOOL IsPartner(); BOOL CreateSmq(BOOL Server); - // Ÿ ۿ Ѵ. + // hwnd settings to deliver messages void SetReadData(); - // Ÿ ۿ ´. + // The read data is brought into the buffer. void GetReadData(LPSTR data, int nLength); - //޼縦 ÷ Ѵ. + // Set the Windows platform to send messages. void SetHwnd(HWND hwnd); void CloseSmq(); BOOL IsData(); @@ -39,8 +39,8 @@ class CSharedMemQueue //:public CObject HANDLE m_hrMMFile; HANDLE m_hsMMFile; char * m_lpMMFile; - HWND m_hwnd; //޼ ÷ - BYTE abIn[1024 + 1]; //Ʈ Ÿ + HWND m_hwnd; // Windows plug to transmit messages + BYTE abIn[1024 + 1]; // Data coming from Comfort BOOL fConnected; _SMQ_HEADER *Txd, *Rxd; }; diff --git a/src/game/WarMessage.cpp b/src/game/WarMessage.cpp index e80da181..a456ae07 100644 --- a/src/game/WarMessage.cpp +++ b/src/game/WarMessage.cpp @@ -28,7 +28,7 @@ void CWarMessage::InitFont() { std::string szFont; ::_LoadStringFromResource(IDS_FONT_ID, szFont); m_pMessageFont = new CDFont(szFont, MESSAGE_FONT_SIZE); - __ASSERT(m_pMessageFont, "Font Create Fail!!"); + __ASSERT(m_pMessageFont, "Font Create Fail!"); if (m_pMessageFont) { m_pMessageFont->InitDeviceObjects(CN3Base::s_lpD3DDev); @@ -48,7 +48,7 @@ void CWarMessage::Release() { void CWarMessage::SetMessage(const std::string & szText, DWORD dwFlags, DWORD dwColor) { if (m_pMessageFont) { - m_pMessageFont->SetText(szText, dwFlags); // Ʈ ؽƮ . + m_pMessageFont->SetText(szText, dwFlags); // Specify text in font. m_pMessageFont->SetFontColor(dwColor); m_fTime = WAR_MESSAGE_SHOW_TIME; } diff --git a/src/server/AIServer/AIServer.vcxproj.filters b/src/server/AIServer/AIServer.vcxproj.filters index 299f9adf..5c77fd7d 100644 --- a/src/server/AIServer/AIServer.vcxproj.filters +++ b/src/server/AIServer/AIServer.vcxproj.filters @@ -291,11 +291,11 @@ - - Source Files - + - + + Resource Files + \ No newline at end of file diff --git a/src/server/AIServer/AIServerDlg.cpp b/src/server/AIServer/AIServerDlg.cpp index c30172c8..28bc0c3b 100644 --- a/src/server/AIServer/AIServerDlg.cpp +++ b/src/server/AIServer/AIServerDlg.cpp @@ -172,9 +172,9 @@ BOOL CServerDlg::OnInitDialog() { myrand(1, 10000); // don't delete } // Compress Init - memset(m_CompBuf, NULL, 10240); // ͸ - m_iCompIndex = 0; // - m_CompCount = 0; // + memset(m_CompBuf, NULL, 10240); // A buffer that holds data to be compressed. + m_iCompIndex = 0; // length of data to be compressed + m_CompCount = 0; // Number of data to be compressed InitializeCriticalSection(&g_User_critical); InitializeCriticalSection(&g_LogFileWrite); m_sSocketCount = 0; @@ -221,13 +221,13 @@ BOOL CServerDlg::OnInitDialog() { GetServerInfoIni(); if (m_byZone == UNIFY_ZONE) { - m_strStatus.Format("UNIFY_ZONE "); + m_strStatus.Format("UNIFY_ZONE - server current state"); } else if (m_byZone == KARUS_ZONE) { - m_strStatus.Format("KARUS "); + m_strStatus.Format("KARUS - server current state"); } else if (m_byZone == ELMORAD_ZONE) { - m_strStatus.Format("ELMORAD "); + m_strStatus.Format("ELMORAD - server current state"); } else if (m_byZone == BATTLE_ZONE) { - m_strStatus.Format("BATTLE "); + m_strStatus.Format("BATTLE - server current state"); } //---------------------------------------------------------------------- @@ -302,12 +302,12 @@ BOOL CServerDlg::OnInitDialog() { //---------------------------------------------------------------------- // Load NPC Data & Activate NPC //---------------------------------------------------------------------- - if (!GetMonsterTableData()) { // Monster Ưġ ̺ Load + if (!GetMonsterTableData()) { // Monster attribute table Load EndDialog(IDCANCEL); return FALSE; } - if (!GetNpcTableData()) { // NPC Ưġ ̺ Load + if (!GetNpcTableData()) { // NPC attribute table Load EndDialog(IDCANCEL); return FALSE; } @@ -616,7 +616,7 @@ BOOL CServerDlg::GetMakeLareItemTableData() { } ///////////////////////////////////////////////////////////////////////// -// NPC Item Table д´. +// NPC Item Table - read // BOOL CServerDlg::GetNpcItemTable() { CNpcItemSet NpcItemSet; @@ -691,7 +691,7 @@ BOOL CServerDlg::GetNpcItemTable() { return TRUE; } -// Monster Table Data д´. +// Monster Table Data -read BOOL CServerDlg::GetMonsterTableData() { CMonTableSet NpcTableSet; @@ -719,54 +719,54 @@ BOOL CServerDlg::GetMonsterTableData() { Npc->m_sSid = NpcTableSet.m_sSid; // MONSTER(NPC) Serial ID _tcscpy(Npc->m_strName, NpcTableSet.m_strName); // MONSTER(NPC) Name Npc->m_sPid = NpcTableSet.m_sPid; // MONSTER(NPC) Picture ID - Npc->m_sSize = NpcTableSet.m_sSize; // MONSTER(NPC) ij ũ - Npc->m_iWeapon_1 = NpcTableSet.m_iWeapon1; // 빫 - Npc->m_iWeapon_2 = NpcTableSet.m_iWeapon2; // 빫 - Npc->m_byGroup = NpcTableSet.m_byGroup; // Ҽ - Npc->m_byActType = NpcTableSet.m_byActType; // ൿ - Npc->m_byRank = NpcTableSet.m_byRank; // - Npc->m_byTitle = NpcTableSet.m_byTitle; // + Npc->m_sSize = NpcTableSet.m_sSize; // MONSTER(NPC) character size ratio + Npc->m_iWeapon_1 = NpcTableSet.m_iWeapon1; // Equipped weapon + Npc->m_iWeapon_2 = NpcTableSet.m_iWeapon2; // Equipped weapon + Npc->m_byGroup = NpcTableSet.m_byGroup; // belonging group + Npc->m_byActType = NpcTableSet.m_byActType; // behavior pattern + Npc->m_byRank = NpcTableSet.m_byRank; // title + Npc->m_byTitle = NpcTableSet.m_byTitle; // status Npc->m_iSellingGroup = NpcTableSet.m_iSellingGroup; // item group Npc->m_sLevel = NpcTableSet.m_sLevel; // level - Npc->m_iExp = NpcTableSet.m_iExp; // ġ + Npc->m_iExp = NpcTableSet.m_iExp; // Experience Npc->m_iLoyalty = NpcTableSet.m_iLoyalty; // loyalty - Npc->m_iMaxHP = NpcTableSet.m_iHpPoint; // ִ HP - Npc->m_sMaxMP = NpcTableSet.m_sMpPoint; // ִ MP - Npc->m_sAttack = NpcTableSet.m_sAtk; // ݰ - Npc->m_sDefense = NpcTableSet.m_sAc; //  - Npc->m_sHitRate = NpcTableSet.m_sHitRate; // Ÿݼ - Npc->m_sEvadeRate = NpcTableSet.m_sEvadeRate; // ȸǼ - Npc->m_sDamage = NpcTableSet.m_sDamage; // ⺻ - Npc->m_sAttackDelay = NpcTableSet.m_sAttackDelay; // ݵ - Npc->m_bySpeed_1 = NpcTableSet.m_bySpeed1; // ̵ӵ (ȱ) - Npc->m_bySpeed_2 = NpcTableSet.m_bySpeed2; // ̵ӵ (ٱ) - Npc->m_sSpeed = MONSTER_SPEED; // ̵ӵ - Npc->m_sStandTime = NpcTableSet.m_sStandtime; // ִ ð - Npc->m_iMagic1 = NpcTableSet.m_iMagic1; // 븶 1 - Npc->m_iMagic2 = NpcTableSet.m_iMagic2; // 븶 2 - Npc->m_iMagic3 = NpcTableSet.m_iMagic3; // 븶 3 - Npc->m_sFireR = NpcTableSet.m_sFireR; // ȭ ׷ - Npc->m_sColdR = NpcTableSet.m_sColdR; // ñ ׷ - Npc->m_sLightningR = NpcTableSet.m_sLightningR; // ׷ - Npc->m_sMagicR = NpcTableSet.m_sMagicR; // ׷ - Npc->m_sDiseaseR = NpcTableSet.m_sDiseaseR; // ׷ - Npc->m_sPoisonR = NpcTableSet.m_sPoisonR; // ׷ - Npc->m_sLightR = NpcTableSet.m_sLightR; // ׷ + Npc->m_iMaxHP = NpcTableSet.m_iHpPoint; // maximum HP + Npc->m_sMaxMP = NpcTableSet.m_sMpPoint; // maximum MP + Npc->m_sAttack = NpcTableSet.m_sAtk; // attack value + Npc->m_sDefense = NpcTableSet.m_sAc; // defense value + Npc->m_sHitRate = NpcTableSet.m_sHitRate; // hitting success rate + Npc->m_sEvadeRate = NpcTableSet.m_sEvadeRate; // evasion success rate + Npc->m_sDamage = NpcTableSet.m_sDamage; // base damage + Npc->m_sAttackDelay = NpcTableSet.m_sAttackDelay; // attack delay + Npc->m_bySpeed_1 = NpcTableSet.m_bySpeed1; // Movement speed (walking) + Npc->m_bySpeed_2 = NpcTableSet.m_bySpeed2; // movement speed (running) + Npc->m_sSpeed = MONSTER_SPEED; // speed + Npc->m_sStandTime = NpcTableSet.m_sStandtime; // standing time + Npc->m_iMagic1 = NpcTableSet.m_iMagic1; // Spell 1 + Npc->m_iMagic2 = NpcTableSet.m_iMagic2; // Spell 2 + Npc->m_iMagic3 = NpcTableSet.m_iMagic3; // Spell 3 + Npc->m_sFireR = NpcTableSet.m_sFireR; // fire resistance + Npc->m_sColdR = NpcTableSet.m_sColdR; // cold resistance + Npc->m_sLightningR = NpcTableSet.m_sLightningR; // lightining resistivity + Npc->m_sMagicR = NpcTableSet.m_sMagicR; // magic resistance + Npc->m_sDiseaseR = NpcTableSet.m_sDiseaseR; // curse resistance + Npc->m_sPoisonR = NpcTableSet.m_sPoisonR; // poison resistance + Npc->m_sLightR = NpcTableSet.m_sLightR; // light resistance Npc->m_sBulk = NpcTableSet.m_sBulk; - Npc->m_bySearchRange = NpcTableSet.m_bySearchRange; // Ž - Npc->m_byAttackRange = NpcTableSet.m_byAttackRange; // Ÿ - Npc->m_byTracingRange = NpcTableSet.m_byTracingRange; // ߰ݰŸ - //Npc->m_sAI = NpcTableSet.m_sAI; // ΰ ε + Npc->m_bySearchRange = NpcTableSet.m_bySearchRange; // Enemy Spotting Range + Npc->m_byAttackRange = NpcTableSet.m_byAttackRange; // Attack Range + Npc->m_byTracingRange = NpcTableSet.m_byTracingRange; // chase distance + //Npc->m_sAI = NpcTableSet.m_sAI; // AI Index Npc->m_tNpcType = NpcTableSet.m_byType; // NPC Type // 0 : Monster // 1 : Normal NPC - Npc->m_byFamilyType = NpcTableSet.m_byFamily; // ̿ 踦 Ѵ. - //Npc->m_tItemPer; // Ȯ - //Npc->m_tDnPer; // Ȯ + Npc->m_byFamilyType = NpcTableSet.m_byFamily; // Determines the family relationship between mobs. + //Npc->m_tItemPer; // Chance of item drop + //Npc->m_tDnPer; // chance of running out of money - Npc->m_iMoney = NpcTableSet.m_iMoney; // - Npc->m_iItem = NpcTableSet.m_sItem; // + Npc->m_iMoney = NpcTableSet.m_iMoney; // drop money + Npc->m_iItem = NpcTableSet.m_sItem; // drop items Npc->m_byDirectAttack = NpcTableSet.m_byDirectAttack; Npc->m_byMagicAttack = NpcTableSet.m_byMagicAttack; @@ -796,7 +796,7 @@ BOOL CServerDlg::GetMonsterTableData() { return TRUE; } -// NPC Table Data д´. ( & NPC) +// NPC Table Data - read (Guards & NPCs) BOOL CServerDlg::GetNpcTableData() { CNpcTableSet NpcTableSet; @@ -1493,7 +1493,7 @@ BOOL CServerDlg::MapFileLoad() { szFullPath.Format(".\\AIServer_MAP\\%s", sZoneName); if (!file.Open(szFullPath, CFile::modeRead)) { - errormsg.Format(" Open - %s\n", szFullPath); + errormsg.Format("File Open Failed - %s\n", szFullPath); AfxMessageBox(errormsg); return FALSE; } @@ -1504,7 +1504,7 @@ BOOL CServerDlg::MapFileLoad() { strcpy(pMap->m_MapName, (char *)(LPCTSTR)sZoneName); if (!pMap->LoadMap((HANDLE)file.m_hFile)) { - errormsg.Format("Map Load - %s\n", szFullPath); + errormsg.Format("Map Load Failed - %s\n", szFullPath); AfxMessageBox(errormsg); delete pMap; return FALSE; @@ -1513,7 +1513,7 @@ BOOL CServerDlg::MapFileLoad() { // dungeon work if (ZoneInfoSet.m_RoomEvent > 0) { if (!pMap->LoadRoomEvent(ZoneInfoSet.m_RoomEvent)) { - errormsg.Format("Map Room Event Load - %s\n", szFullPath); + errormsg.Format("Map Room Event Load Failed - %s\n", szFullPath); AfxMessageBox(errormsg); delete pMap; return FALSE; @@ -2036,13 +2036,13 @@ CNpc * CServerDlg::GetEventNpcPtr() { int CServerDlg::MonsterSummon(TCHAR * pNpcName, int zone, float fx, float fz) { if (zone < 0 || zone > (g_arZone.size() + 1)) { - TRACE("#### ȯ : %s, zoneindex=%d #####\n", pNpcName, zone); + TRACE("#### Summon failed : %s, zoneindex=%d #####\n", pNpcName, zone); return -1; } CNpc * pNpc = GetNpcPtr(pNpcName); if (pNpc == NULL) { - TRACE("ȯ ̸(%s) ߸Ǿϴ.\n", pNpcName); + TRACE("The monster name (%s) to summon is incorrect.\n", pNpcName); return -1; } @@ -2052,13 +2052,13 @@ int CServerDlg::MonsterSummon(TCHAR * pNpcName, int zone, float fx, float fz) { return 1; } -// ȯ Ÿ Ѵ. +// Set the data value of the mob to be summoned. BOOL CServerDlg::SetSummonNpcData(CNpc * pNpc, int zone, float fx, float fz) { int iCount = 0; CNpc * pEventNpc = GetEventNpcPtr(); if (pEventNpc == NULL) { - TRACE("ȯҼ ִ ִ 20Դϴ.\n"); + TRACE("You can summon up to 20 monsters..\n"); return FALSE; } @@ -2169,11 +2169,11 @@ BOOL CServerDlg::SetSummonNpcData(CNpc * pNpc, int zone, float fx, float fz) { if (!bSuccess) { pEventNpc->m_lEventNpc = 0; - TRACE("### ȯ ߽ϴ. ###\n"); + TRACE("### Summon failed. ###\n"); return FALSE; } - TRACE("*** %d, %s ȯϿϴ. state = %d ***\n", pEventNpc->m_sNid + NPC_BAND, pEventNpc->m_strName, + TRACE("*** %d, %s have been summoned. state = %d ***\n", pEventNpc->m_sNid + NPC_BAND, pEventNpc->m_strName, pEventNpc->m_NpcState); return TRUE; diff --git a/src/server/AIServer/User.cpp b/src/server/AIServer/User.cpp index 8d97f6d5..994267c1 100644 --- a/src/server/AIServer/User.cpp +++ b/src/server/AIServer/User.cpp @@ -22,17 +22,17 @@ static char THIS_FILE[] = __FILE__; ////////////////////////////////////////////////////////////////////// /* - ** Repent AI Server ۾ ** - 1. Initialize() - 2. SendAttackSuccess() - 3. GetDamage() + ** Repent AI Server - Notes on working with ** + 1. Initialize() - Modification + 2. SendAttackSuccess() - Modification + 3. GetDamage() - fix */ #define MORAL_GOOD 0x01 #define MORAL_BAD 0x02 #define MORAL_NEUTRAL 0x03 -//  ̵ ֱ.. +// Enter the Operator ID.. /*const char* g_pszOPID[] = { //"2", diff --git a/src/server/AIServer/res/AIServer.rc b/src/server/AIServer/res/AIServer.rc index 0e52cddc..7eb387c1 100644 --- a/src/server/AIServer/res/AIServer.rc +++ b/src/server/AIServer/res/AIServer.rc @@ -1,6 +1,6 @@ //Microsoft Developer Studio generated resource script. // -#include "resource.h" +#include "Resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// @@ -29,7 +29,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT 1 TEXTINCLUDE DISCARDABLE BEGIN - "resource.h\0" + "Resource.h\0" END 2 TEXTINCLUDE DISCARDABLE @@ -50,7 +50,7 @@ BEGIN "LANGUAGE 18, 1\r\n" "#pragma code_page(949)\r\n" "#endif //_WIN32\r\n" - "#include ""res\\AIServer.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""res\\AIServer2.rc"" // non-Microsoft Visual C++ edited resources\r\n" "#include ""l.kor\\afxres.rc"" // Standard components\r\n" "#endif\r\n" "\0" @@ -168,12 +168,12 @@ END STRINGTABLE DISCARDABLE BEGIN IDS_ABOUTBOX "AIServer (&A)..." - IDS_KARUS_CATCH_1 "ī罺 1 ɵǾϴ" - IDS_KARUS_CATCH_2 "ī罺 2 ɵǾϴ" - IDS_ELMORAD_CATCH_1 " 1 ɵǾϴ" - IDS_ELMORAD_CATCH_2 " 2 ɵǾϴ" - IDS_KARUS_PATHWAY "*** ī罺 ΰ Ƚϴ ***" - IDS_ELMORAD_PATHWAY "*** ΰ Ƚϴ ***" + IDS_KARUS_CATCH_1 "Karus 1st Fortress has been captured." + IDS_KARUS_CATCH_2 "Karus 2nd Fortress has been captured." + IDS_ELMORAD_CATCH_1 "Elmorad 1st Fortress has been captured." + IDS_ELMORAD_CATCH_2 "Elmorad 2nd Fortress has been captured." + IDS_KARUS_PATHWAY "*** The passage to Karus has been opened. ***" + IDS_ELMORAD_PATHWAY "*** The passage to Elmorad has been opened. ***" END #endif // Korean resources diff --git a/src/server/AIServer/res/RCa06316 b/src/server/AIServer/res/RCa06316 new file mode 100644 index 0000000000000000000000000000000000000000..223dd158bb3771d6c2ea37a3b3fdaade81b6df33 GIT binary patch literal 10860 zcmdU#J8vA<6~}MkDnI}?0aCb_EP+5u6o$)(M7dk-k`y75yXKOV91vJAl1K@mmclM& zJAg~)8~7unumQUfY?uyIBnD)&2m+)?kRoM@d;k|I^Z(s5mvd)!hP$!_gTi3vaUbWN z_v7B3a)<7r>%03dadlU7P4}kT)wS)0Y8&VtfAQXONA9kB;vT8L?~cB5 zewRLnf^pZk7`%5pR7N!1s_Xi%tZkrgTd~+X?cvnikKK>lR1RlaeywX=bllabBSAQF z`@$>{uJ;|#57h#G1GRP4^TgfL=p%g{s1@o5Zcpv^)t=}bERHk^+~Lg7Lw+b2$8Or= zz>0vN@47bGpmiW_lJwaO%uUdNFaBJ>u zwRCk~cQ@3sruRTU7+t(8U>BZ=TM@lQj_-@pN7AT7{C(iLxFxFZh!3lxx+yy0$CCPI z^()F}yhQfI;rG&c< z&fF4=O=)yb*tPX`Ia<-|I#J(kuf=nzhOKGNhURSRx#D#?v;-*F`-Z!sb-NmMLzvhM z@LCei4YjVxHcTTPiz|EbV~=!Cuz4ZfE(6__k$;JwuoP>AG4Zi zt1v!LG^%%4>5e#XOZc_?jEk>P!P*mXvdq_nexpCrt2sC0DXfcs`u*06}NB+eQ~W4X*Zvs=93%fMmE$De!@t4V)~UbCjSJhG{-t_QYMY;tlB^v9TlDSQS^`%cfe0pRsj!M`)PJ**6xOhe@2p zD|~-QTY}M$USKCL2e*#kv_&)UwtRLl9?PN(k^T?oATTD_L~jQp;`pP}q>GGj_LN@iCTQ8efJrxisG%o$Ing3Syy!up5$2D)iXlFmlo(fFbJecJm-Ps{ef7!SHG ze@gbTtgnW?h_YqZs_cdeD)d!F=+J+j1y84Rjn;J6(rAa2F6I>^5uW5K4-tzI0>T_EWhvyw}6@E4pC)>(xs`H;j*#dd3-Di~*Ecow*G@qgJecMM{ zV068F+j;|XEMao;+rGb}6+6PDqn50d%&Q|!Eh;dOg|DEa)tbt!Zw4XCiSw zIsNvTNqgBt+!D;|9`l+z{`A?G)|b!hiW(O*D?F<;_=?tV2`{o4Dh%joYPGs9?$>mm z^*rPb4O9b`!v^U2XBkZ&JbUewJ)dd8s0m{En)800dU~&Ws)@N>&wX+(G7zegRq4TG zxHP3}k7d&XY2JbAeZ0ygQAoW7MKi)`97eNVbKnSauu9LWBebFGZb~!J&#hDg;784E z|MR_X0%WQc<0kaL(}k4EdA*xvORkf2U$A+C{Ju;cJ!x5YHhy|_iJYsC%yc>YFM1Pje1-+=t6Pgvy%X?WXm^8;)Uf4&J;c3Gb(A}F_b5$$fRI6!8rVBfo)$}&Q z{zeK3dnAJOycE!O;Ke5HgGnu`=J3gQ;*}hR862BmKby^7Jtqb5X>?T^Jrj)%ds*@LwlK4i z^XbR{iR^+}IlpS?wcWP-n6Oqpw&Nq);vMwYwA!(cWqn1nWyQ2Z;lHZEHlW@ zp7FLv+?yAt!fr}_y&Z3P+a7byXxJ-ff3L47x}hg$G58m-$ttM)tbkcdW8?D-)5|b> zH1}B-O-(_5>zj|iPTXt%*gg5*ryqSWZk4>&2k2-bywC1b?t$h!zHpF=V4x@YX_3w% zrd4p(1mnO%7|lBZUZXvu8OeC~Tf%iu^^#RM1J%{Tu~KP!%{h?P7?nXve8o~NQadeO zxT9YcRvp1*C-{jftmCn~n^d}asNY4#Sq_!GnZlnN}sF(vFxVUZ}Y*%>XG%473S0VnGR-e)q3}$J6+_ib6)FTC2fqOE2kZM z?zcX|BENEtyqa>8Y!j(*+GhEuRW?<7KcgCfE|HBDb*Y$Nhwrkwg}sAI?&pGWS+zEo zz=$-fND?eH2m$qCx84Zac}s#J#im?efnqjN#b5Vy?*l3 z&rY9z{?+Nz|2&-xIwwc*m4{C6B+#+kb?G&g0sBH#_}AROo`3YG_rLh}XD^2RdGKQj zits1JKjwYM^Zuslt%kD1m^Wlqzwj5WCWYOT#JNvCe44n=|Gs;I6uy1Fcw!Q;xi%v& zjUqi&YsTvZ&W&3!UN80@*{(4A3&B@c?Ve9^%6_rEM?N|&D(+*~#cFaA-+8g=48D)& z_x)E5r?cb!Rbw?Bc`7^p#WT`L&RtCo=fkN!Yn^2F`193CpiFY6YH(uP;$Ifl`a_UcL&OY-|z`hJevXb#9pGAJzccwMeA+JJ4R-J<)EB5av@u&X>tX9^^ literal 0 HcmV?d00001 diff --git a/src/server/AIServer/res/RCa10000 b/src/server/AIServer/res/RCa10000 new file mode 100644 index 0000000000000000000000000000000000000000..7e789b4c8d22768c72975da2103aedcd46e67ad3 GIT binary patch literal 10860 zcmdU#J8xXa700J=6(E3{04ZGDEP+5u6o$)(M7g7ONs183U2{oF4hSq5Nu-2Oq_9ib z4&c)H2L1>sY`|^=8>Ryli2>Oxf&eKJq)3?}AHYS*{C{)q@Xmd4SGHhKxY+xc$C>kf z%SfgL z(&tbx?)nyk_l}3khy}Oedj2bG8|d3sEcQ-%I1Tq>_airv!sk{XcQxur5RTlQ zFiV8%eFyXdwSeD1Z9VloarZR(NMHMEh5CWpRr`IlCwd2qBaH%gI5YH+9}32?oAfxa zqTvGf?rH^KGPY5gKj|K*wTSs#+QO{8GZ`$nt}xsb|J&kE$MxNYTNJO_dS7>|?rpX7 zbYF8f)UvAgKtC8=yenWAo{3u)y+w}iiDyUBs6_mI;JLUds_%#oE26q3I^oBn`lt0P z%4f7hcE#cM(s|X=XbN(`@#1k2jKFR}T6XC5Y)^dnZn~1U9@D~$NpYZ>XX5ZINPbrw zDC@v5JDA@bDyP|b_8g)aM*bMMm z6wV83U6pN^Mm!c*cIC$&>7K|F9eHf~@>R6n7oFGLtbPGEtPk%8PvC43zgRz}HPcpM ze4wbTcUbARIB-k&wf&5XuTjC;6LGT2*MxqfKhvujH{~g8ihtEJi95u$mL#>I_XRIQ zyce);Xtiap5qwogiyf_D5o1xDHIBw|nQ>;fc*B>0!-S7N`6$+q{uI4tLveec-(iX! z-{)gGtE>V#XI>hn`FPnEcg>2|rGLc6u54pPT!AkeY9W5c*4-=7Fp;xwEH)35IEz>K z{*X2WV?la>oxB{}x`NXY&A{9A*}-Tmi!wy|Kb(iGUOo7h*c%l`20xg2&Ze99ezI91 z)A9Xcah(aDq15@v^5}8~7_7P~&$Uc;S{BrhO_&c(WKl=@{i-sH-IjcYiu}9EG81Xf zFLfot5e(~cRVcf$~{$b;j-#ES~H)Uf{$x&(%sg@iBj9B?jT4<>UwZYG$o!xUx{byaALkFxT8txEjJoQso%JR1 zhGYd~P49Y*d7w8cqIV^sp(MzNw(jqE4SS;2L=rsE7u63^r9Pn+WbCnKqJ4*6C&|bX zjeP89P=QfLQCqPd-@Ij*GoDNZn;B|^^$+z8bkmq5osGVu@k96fwD*yomhFQv9&}Cq zl&{r3sL;v{}Y;=`tx@&2)LrNF(3X%voxd_)^7_hvKcB2=xAxRrY`Q+bf5M- zga?UX&ANx^6cV)dG{ew}7|Z+fbUxjoN)axO9us*)Ay!Faf| zq-&35(*tSVzUqCv$|X@qy#+;6!fF&o(_VAn2y(DW&#EJ|q33Q&Gttk@R0H5g!)^WZ zy>9|!suklV^uW`(l*(DXn|3XWHuSvfDXY%K=Tl!BY@_FMv2A~+Vk_E3uoC1IEWzvn z$%eQ2G|s)aMXYJXb^Un$Mpy(3&1|6BX0|oHryunuUNjqDv=DlbwDG8HQBW4+ZR2Pq zv+nA$ikLmE+a6MJg(`jBR&-$hE@&(mjBkzgT49#baBuwOgJ+5R!|7j7f`)(SX z)*<{DFtNw;tO-wJ6{A%p*>0D``j)5nV#Zdmf*0{K(Y}c7qgzfC_s3Z%bX(2_5Br)$ zMTb2S!TMebXgl!Y9?N|?eqDSpwwoV;#h50cO~zZR8r$-0=WnhPRgZ&7Evx46$#~-B9EKSjo8LT}&0akx1@Ni7s*RqCMu)wuczj2g*~r;+ zWPn6=L9Lu$HT2qUTYgMfD<9kOksa|4`Wss9*vGO%MYAQvv;*P4qWpGGajq&e$j_eg zwnyBX6{o^(N`Ad@=NYD#VRkw9 zSrbhyL4NC-kH1dbYya3e`QN7>eKBg4yw(TkXd=AN?o{r9<~+V|kcwcSC;4fS&LXCD za8?Cl-$N+p9RaU$PdOtQ4S!R(?y6q03TL3YdN@)l9j`h2(i)>ONQtjlszquir3-iT ztHY`*xaV>2Say`x7vnxvC6#NaK~2K=C?edn z*F2tNnfQzhi|j4$m%|QbepkpMES{c|g*Y}9XWI_?s}!;D*+iaY=}jD8LR>3S7b~;o^%W&D%=^lahm&u_H7Y(Q&c@3#iJeP|hr~8cb-;;P7MC~l zZCOvTe_Hxv6^Law#eSO)Hdc?Ul~$Nd=Vv;Yz18d8i|%xhyUuv6f0eW`j;@?`?7H9j z2#frxHS%i8O|ng-#%Y`7pH|t_?fsNB0$m~-E9z1)zYgD3bqjk3m)y?<|0*js08|ovsC*n<<@<9s{qxW+G+UPe^37SRpQ?8b$jAI{QC6I?vup5etP}nr=OiZ z|NN`dr~i369&}EQ;wulG-f^H~xogsEDg*X~>hN#4e?9-`Pw#*6@6TQg`}5$(6cpi) zi+{}fuIK$t)msb75@X(wRsF(Ww3-xlP7>!n`S5AtKL7j92~zm>`TU7Vz~7dSU+#dy8gdt|%9>@NggUAKEa&MEuF_8$4@G_SaiT^Fm#aeU{+rZf0Hp5OOh zHJr|l`d5wBbmXb*_!rMe$2oU3Ih+rt{;YMJ*`v=_$AL1=nX18wZHs?dSnCgYnwqU> zd>!ZiCfTW}%^v@x)W*lY1MQ2?Yy&>k|A{OA>n}SE#cP@_zx=b%I;`T;&-}j~?Cdii j1?%4UeP>!j9r7w%03dadlU7P4}kT)wS)0Y8&VtfAQXONA9kB;vT8L?~cB5 zewRLnf^pZk7`%5pR7N!1s_Xi%tZkrgTd~+X?cvnikKK>lR1RlaeywX=bllabBSAQF z`@$>{uJ;|#57h#G1GRP4^TgfL=p%g{s1@o5Zcpv^)t=}bERHk^+~Lg7Lw+b2$8Or= zz>0vN@47bGpmiW_lJwaO%uUdNFaBJ>u zwRCk~cQ@3sruRTU7+t(8U>BZ=TM@lQj_-@pN7AT7{C(iLxFxFZh!3lxx+yy0$CCPI z^()F}yhQfI;rG&c< z&fF4=O=)yb*tPX`Ia<-|I#J(kuf=nzhOKGNhURSRx#D#?v;-*F`-Z!sb-NmMLzvhM z@LCei4YjVxHcTTPiz|EbV~=!Cuz4ZfE(6__k$;JwuoP>AG4Zi zt1v!LG^%%4>5e#XOZc_?jEk>P!P*mXvdq_nexpCrt2sC0DXfcs`u*06}NB+eQ~W4X*Zvs=93%fMmE$De!@t4V)~UbCjSJhG{-t_QYMY;tlB^v9TlDSQS^`%cfe0pRsj!M`)PJ**6xOhe@2p zD|~-QTY}M$USKCL2e*#kv_&)UwtRLl9?PN(k^T?oATTD_L~jQp;`pP}q>GGj_LN@iCTQ8efJrxisG%o$Ing3Syy!up5$2D)iXlFmlo(fFbJecJm-Ps{ef7!SHG ze@gbTtgnW?h_YqZs_cdeD)d!F=+J+j1y84Rjn;J6(rAa2F6I>^5uW5K4-tzI0>T_EWhvyw}6@E4pC)>(xs`H;j*#dd3-Di~*Ecow*G@qgJecMM{ zV068F+j;|XEMao;+rGb}6+6PDqn50d%&Q|!Eh;dOg|DEa)tbt!Zw4XCiSw zIsNvTNqgBt+!D;|9`l+z{`A?G)|b!hiW(O*D?F<;_=?tV2`{o4Dh%joYPGs9?$>mm z^*rPb4O9b`!v^U2XBkZ&JbUewJ)dd8s0m{En)800dU~&Ws)@N>&wX+(G7zegRq4TG zxHP3}k7d&XY2JbAeZ0ygQAoW7MKi)`97eNVbKnSauu9LWBebFGZb~!J&#hDg;784E z|MR_X0%WQc<0kaL(}k4EdA*xvORkf2U$A+C{Ju;cJ!x5YHhy|_iJYsC%yc>YFM1Pje1-+=t6Pgvy%X?WXm^8;)Uf4&J;c3Gb(A}F_b5$$fRI6!8rVBfo)$}&Q z{zeK3dnAJOycE!O;Ke5HgGnu`=J3gQ;*}hR862BmKby^7Jtqb5X>?T^Jrj)%ds*@LwlK4i z^XbR{iR^+}IlpS?wcWP-n6Oqpw&Nq);vMwYwA!(cWqn1nWyQ2Z;lHZEHlW@ zp7FLv+?yAt!fr}_y&Z3P+a7byXxJ-ff3L47x}hg$G58m-$ttM)tbkcdW8?D-)5|b> zH1}B-O-(_5>zj|iPTXt%*gg5*ryqSWZk4>&2k2-bywC1b?t$h!zHpF=V4x@YX_3w% zrd4p(1mnO%7|lBZUZXvu8OeC~Tf%iu^^#RM1J%{Tu~KP!%{h?P7?nXve8o~NQadeO zxT9YcRvp1*C-{jftmCn~n^d}asNY4#Sq_!GnZlnN}sF(vFxVUZ}Y*%>XG%473S0VnGR-e)q3}$J6+_ib6)FTC2fqOE2kZM z?zcX|BENEtyqa>8Y!j(*+GhEuRW?<7KcgCfE|HBDb*Y$Nhwrkwg}sAI?&pGWS+zEo zz=$-fND?eH2m$qCx84Zac}s#J#im?efnqjN#b5Vy?*l3 z&rY9z{?+Nz|2&-xIwwc*m4{C6B+#+kb?G&g0sBH#_}AROo`3YG_rLh}XD^2RdGKQj zits1JKjwYM^Zuslt%kD1m^Wlqzwj5WCWYOT#JNvCe44n=|Gs;I6uy1Fcw!Q;xi%v& zjUqi&YsTvZ&W&3!UN80@*{(4A3&B@c?Ve9^%6_rEM?N|&D(+*~#cFaA-+8g=48D)& z_x)E5r?cb!Rbw?Bc`7^p#WT`L&RtCo=fkN!Yn^2F`193CpiFY6YH(uP;$Ifl`a_UcL&OY-|z`hJevXb#9pGAJzccwMeA+JJ4R-J<)EB5av@u&X>tX9^^ literal 0 HcmV?d00001 diff --git a/src/server/AIServer/res/RCb10000 b/src/server/AIServer/res/RCb10000 new file mode 100644 index 0000000000000000000000000000000000000000..e60fe6c92af88291e06308c2dc02753aaec63e3f GIT binary patch literal 10860 zcmdU#J8vA<6~}MkDnI}?0aCb_EP+5u6o$)(M7dinA0k9@*Ibg40|E<15-A}RDeO|V z1Gsd)fj>eD8?YO}hUq{>Vn8;FAV7))DN?4$2XK)x|KB}xId^7fxFcIIC=7NU_i^rd zKknTLcig72 zze}G(!MN*N4Bk5)DkEBM#r6DG);7?$tyt`x^l%#P$L>dNB8M|Azt*)TI__%Jksuto zJzy)e7|kx2yL1YESeI7DpNd?r>)4AwLw1V>jt> zU`4|P?%mZ2z+`O0Z4~BDx(8}4Vm_C)Fl+Bj1})bWhMVI5g80*MeL-6kuNL&a?pEE~ zYU$~|=5DBERqug*FuHhGz%D!!w=8;#9N!bCkEBtF`1`sOS|c!}(a!|$c@%B9g1qLFGy%x`;8n&uA>zcEr=d#!7&=R0v@9XZ0*6nH34Pjz4 zz-v)Bx74~S+c1rIEUxUzk3G^oktaIx*!JbCXuU5wue(|O0&Z9z-VdI@*&=?ieoSko zt-|;~(Wu^GrQ71bE#bG|XIy-Z3f7*8lV!dp^c($|Ud^~EPhnI1E1yZ+A-1(8sSUli zybSSPz`CK;mc2&s)hO|14-_4z(ulDr&KgH!xy(4TTfE`Rz+uA2pL`T+NPmi6vmwj| z`W>d&@qIp~v&t%zc*vZSmtt&Vk(G0vzpB;?HvM58O|HFC6^3{WHiM>&AWblKT=WM!p z?b`K7KzID%nS&Po=Yx72bQKTtkPuFlwm(UjqLGjN3@R|{C~7O#PUGfo>X;q_fd?G=AuQpY}e|)3SXq z#)GcOpOSqn>8qtLqHNi!HGgQ8B z`)CV{o|kV&Z$OSEOiq5=_jk2oSD19wlC_d~bp?wG8kuK3)XqJxC+nI8oyD;Y&CTyj zB|XSD`j(fSL*i)@Ap13KDTt*MLq zHQlE@54l4F)qv%&0eb#fM$-q+UOQ#aXHqa4f>^%htY4>@-kY9kVs6iKpPY*fgsNmk zdQcCSwsh^WY^ZxUL`1-w2Cfp_vVo+swAc_w=LQ#EWL*ixxr;k~SWVS`?JU zc-uHy$*jA&tRiMl>$ZnfT%k-~w-p`OzY7`*2KBA6S}V*_8t#q1eDExBe>nZ?Nzf3m zV)toL96?jii>5rGS>dd_m$iaPd#nX!P&2zmQ!~f`u07ENelhoAe?XrJ7#CK;kD&R`W^MT7D;jr0Sl{;aUd-4ER`4QzCfXOVeRRu-;{G@bg>K8) z;9+00sOYdqB3R!`0c{6f++(><$FGYI#&+`~uo%-Mw8?mDRpWv@8+to_e1N3rd}K$wgZ_qAJNB{cP|<8jG3`M3uPDFWQ=BWy z4Dz$5yzLS9X2q$no04B|+gsk2$DA`7_R87cJ5&^1*ORjt{0rD*6;ys!z-&Qd1s9MOZvNCkt_GD$ceY^j9fj;j@W6%hH=TzJ$0| zq%iEryyzJLXCP$Fd>t5;W)$T06KLmp1P5!a~roH!dFok{FmQamKKajFAO z%(A$=p>NB2iv82lC#yg#yD9eDe6X>4WNl=H*>rxUgV|fP-o5Bf7rE<<*ZNmU8{_E8 zX~(Ynt&gzCuUsRqrradkL~5M2S^jC2P1WAds79bmWMf5LD(2VWyR2?u@8FXAxnNvY zt<7aQL4bYBYa5k7UvZXdzpdQ5FK-o~+EY6XfBWyrAHPc68@_H&+=pME{@Hz!xYtjw zpZxT*)90Umb^7!_PwPSF8V;XUN3NN+=}sfvG>S!h1p*SzPf7nyv`~6#r7Wg=rpgmk6jn5$vVFCV$&IX zAJ6amuNqEg$Nj6uYC7^%cKnNHq;<|+O%CV7sXlA1Gkg5`Y8@zb&QuLfY+L-x!didG z)6{H5<7=J&n`Eb^HoN{wsf~|)2ig~(*#>-y|A{m08vWN_b{dM;G+loAXQ5SC#iyV7 pe>>ROXFdwpm*GfOGXCVV$S?cOw1zt5RmjMyb5LZ({(T*P`hN<$*69EM literal 0 HcmV?d00001 diff --git a/src/server/AIServer/res/RCb13276 b/src/server/AIServer/res/RCb13276 new file mode 100644 index 0000000000000000000000000000000000000000..223dd158bb3771d6c2ea37a3b3fdaade81b6df33 GIT binary patch literal 10860 zcmdU#J8vA<6~}MkDnI}?0aCb_EP+5u6o$)(M7dk-k`y75yXKOV91vJAl1K@mmclM& zJAg~)8~7unumQUfY?uyIBnD)&2m+)?kRoM@d;k|I^Z(s5mvd)!hP$!_gTi3vaUbWN z_v7B3a)<7r>%03dadlU7P4}kT)wS)0Y8&VtfAQXONA9kB;vT8L?~cB5 zewRLnf^pZk7`%5pR7N!1s_Xi%tZkrgTd~+X?cvnikKK>lR1RlaeywX=bllabBSAQF z`@$>{uJ;|#57h#G1GRP4^TgfL=p%g{s1@o5Zcpv^)t=}bERHk^+~Lg7Lw+b2$8Or= zz>0vN@47bGpmiW_lJwaO%uUdNFaBJ>u zwRCk~cQ@3sruRTU7+t(8U>BZ=TM@lQj_-@pN7AT7{C(iLxFxFZh!3lxx+yy0$CCPI z^()F}yhQfI;rG&c< z&fF4=O=)yb*tPX`Ia<-|I#J(kuf=nzhOKGNhURSRx#D#?v;-*F`-Z!sb-NmMLzvhM z@LCei4YjVxHcTTPiz|EbV~=!Cuz4ZfE(6__k$;JwuoP>AG4Zi zt1v!LG^%%4>5e#XOZc_?jEk>P!P*mXvdq_nexpCrt2sC0DXfcs`u*06}NB+eQ~W4X*Zvs=93%fMmE$De!@t4V)~UbCjSJhG{-t_QYMY;tlB^v9TlDSQS^`%cfe0pRsj!M`)PJ**6xOhe@2p zD|~-QTY}M$USKCL2e*#kv_&)UwtRLl9?PN(k^T?oATTD_L~jQp;`pP}q>GGj_LN@iCTQ8efJrxisG%o$Ing3Syy!up5$2D)iXlFmlo(fFbJecJm-Ps{ef7!SHG ze@gbTtgnW?h_YqZs_cdeD)d!F=+J+j1y84Rjn;J6(rAa2F6I>^5uW5K4-tzI0>T_EWhvyw}6@E4pC)>(xs`H;j*#dd3-Di~*Ecow*G@qgJecMM{ zV068F+j;|XEMao;+rGb}6+6PDqn50d%&Q|!Eh;dOg|DEa)tbt!Zw4XCiSw zIsNvTNqgBt+!D;|9`l+z{`A?G)|b!hiW(O*D?F<;_=?tV2`{o4Dh%joYPGs9?$>mm z^*rPb4O9b`!v^U2XBkZ&JbUewJ)dd8s0m{En)800dU~&Ws)@N>&wX+(G7zegRq4TG zxHP3}k7d&XY2JbAeZ0ygQAoW7MKi)`97eNVbKnSauu9LWBebFGZb~!J&#hDg;784E z|MR_X0%WQc<0kaL(}k4EdA*xvORkf2U$A+C{Ju;cJ!x5YHhy|_iJYsC%yc>YFM1Pje1-+=t6Pgvy%X?WXm^8;)Uf4&J;c3Gb(A}F_b5$$fRI6!8rVBfo)$}&Q z{zeK3dnAJOycE!O;Ke5HgGnu`=J3gQ;*}hR862BmKby^7Jtqb5X>?T^Jrj)%ds*@LwlK4i z^XbR{iR^+}IlpS?wcWP-n6Oqpw&Nq);vMwYwA!(cWqn1nWyQ2Z;lHZEHlW@ zp7FLv+?yAt!fr}_y&Z3P+a7byXxJ-ff3L47x}hg$G58m-$ttM)tbkcdW8?D-)5|b> zH1}B-O-(_5>zj|iPTXt%*gg5*ryqSWZk4>&2k2-bywC1b?t$h!zHpF=V4x@YX_3w% zrd4p(1mnO%7|lBZUZXvu8OeC~Tf%iu^^#RM1J%{Tu~KP!%{h?P7?nXve8o~NQadeO zxT9YcRvp1*C-{jftmCn~n^d}asNY4#Sq_!GnZlnN}sF(vFxVUZ}Y*%>XG%473S0VnGR-e)q3}$J6+_ib6)FTC2fqOE2kZM z?zcX|BENEtyqa>8Y!j(*+GhEuRW?<7KcgCfE|HBDb*Y$Nhwrkwg}sAI?&pGWS+zEo zz=$-fND?eH2m$qCx84Zac}s#J#im?efnqjN#b5Vy?*l3 z&rY9z{?+Nz|2&-xIwwc*m4{C6B+#+kb?G&g0sBH#_}AROo`3YG_rLh}XD^2RdGKQj zits1JKjwYM^Zuslt%kD1m^Wlqzwj5WCWYOT#JNvCe44n=|Gs;I6uy1Fcw!Q;xi%v& zjUqi&YsTvZ&W&3!UN80@*{(4A3&B@c?Ve9^%6_rEM?N|&D(+*~#cFaA-+8g=48D)& z_x)E5r?cb!Rbw?Bc`7^p#WT`L&RtCo=fkN!Yn^2F`193CpiFY6YH(uP;$Ifl`a_UcL&OY-|z`hJevXb#9pGAJzccwMeA+JJ4R-J<)EB5av@u&X>tX9^^ literal 0 HcmV?d00001 diff --git a/src/server/AIServer/res/RCc10000 b/src/server/AIServer/res/RCc10000 new file mode 100644 index 0000000000000000000000000000000000000000..b6cf8aa22008dd2566f8dc21dc449500bc49a9e1 GIT binary patch literal 10858 zcmdU#J8vA<6~}MkDnI}?0aCb_EP+5u6o$)(M7g7ONs183U2{oF4hSq5Nu-2Oq_9ib z4&c)H2L1>sY`|^=8>Ryli2>Oxf&eKJq)3?}AHYS*{D1e%<=mN_;f`#B5 zewRLnf^pZk7`%5pR7Nbg71#4$S=&J0wqmh&(!*)EAG;s9i5$+f{94zV=(wvSR82-xWk#Dhx|}5j@_ik zffWrGxOZ180F$u|w^5is=^m)Hi1}RF!mPbB87#Q2Fx(XX+u~2h^#yHFylU%x-L1N} z)zZ^_&D~JTs@?Xzt)AB*ar z)~_g^@e3$N|TT$3-v#y9sI8q1UrL@!`AaO5S=*3oje6Zf-}Z|3dpxl7{Tl61^0tS4*QlC8C*Wqs+|s;M$yzXZ83%Fr@ct3aoXN&m7`Z2AU zwhH3|MWcF$m2Qgzw}fBY&$##+6|6lGC(C?I=r{T^y_#`Tp2DX1S3Z-tLu_kFQX6_- z@G``E0qcfVTlN~kS9!G9(Ha&p7R6cPXe^f*XLgG>d>J@Q`1q5LVh!m}(Q7sow+H$i zrr7a)KBlwEDxh=brD2+nmwj>9tax4eM{MlMHde$H__CoE;%98#y%8EFa`uhI=3x?N z@e1D`(xzZ6NH4IHmxEhZa5|zHc$+>u7>{L9hDiU1^N{7M2j3EVqvFWm2Q$yvbo1U% zHcMn$-!B%|neZ7(m5&@9J(>YF(p;k~&kdPuLl$8kIFUUa>G!MB9ClmM87l7YD#uKu zJHOPG2t)9z%2>&v^LAQp;RniQ$?^Q4hT<2@NGdMznQ*$7|RVwI-6_fxf7HkSf&)l^|n}H52VS^g2mC zmT2T-KZE*1Eg^t4eDrM)%U^mwvUd~o?D7HJnx9B@N+>?vZKtVI{QhKE0ERNeOfueod2Fnvl;5%w|%Sy zM$gN)qckozPoI5hefhkusBuBF!n0a~uW0?Y@FJI?zJQLFR%`0weogmj z&qMCeKrLVyY=EABmeKUVv)4}9@tG8ih9H)&IqTPHruU|&nuy!;+$ZBA|DYyWksj2; zr6pZ^ESnxk^Y&Hk<5ez+LaHq&ni5vyFq-z714od9)p=GMp$$EEQ<{l>Zl)RlKN@c9 zpYMGWAXBRtH=zff&ZSh&>fN+!S+t?&T~AqgCO)6~+F%6 z6i3h$^r9(GXjV8Y?`5rE(i&@l8Pv?K(bNobfNM`QfnUtM*dI`5vwL7RhwL(MoVR|9 z@AwnyBF2T4@FQqGv{@TI`HIHf(73*+?`X!lrwv;`cW-LV6|H_El$;A+CBHOlnyzhfl^6FXu4K;Mn};*=%;|IVXTmqpRBJsc3ZA$%@B!gqe+; zO-BYuWEWJ*`Bg)&?X~5{gthXq9Us{d@1Vb-)sB5EJ5)4VQcOD#{wvCF_Y~*KGK2i= zDQ|nky;*T8?4{(_+xC{Xnp8Py1MiEON>OU3*;e3#WN>>XTkKNpP4s1| zcKZDDuTG!-=V?9YoEybg9y+~spkujf(rYRM_JykOZ@7Ow|L9NefAR0nUJU#5;Kvjc z;n&4K=6%=m{-)}!1!ajbZ^){C;V)WE3Ogr>bDw+yx4RG-^cU& z{-=hs*>V4=v6_xNl^y@$32B{ESChl}aH>yQ>&za1x>^THofB1q6WbR5v9Q)3@+>u5 z(fC^D-zM3asm-o`PHN+0-+}hUC$<5f;y>a{yGH->XJ?_)^00VK)8&_c7FvZ>eEOOH puY;X^=A(dp8IEKn<4-<|{Ic&%Yp6qBg^a8^2Srxw-`DY{{|AmG)|UVP literal 0 HcmV?d00001 diff --git a/src/server/AIServer/res/RCd10000 b/src/server/AIServer/res/RCd10000 new file mode 100644 index 0000000000000000000000000000000000000000..b6cf8aa22008dd2566f8dc21dc449500bc49a9e1 GIT binary patch literal 10858 zcmdU#J8vA<6~}MkDnI}?0aCb_EP+5u6o$)(M7g7ONs183U2{oF4hSq5Nu-2Oq_9ib z4&c)H2L1>sY`|^=8>Ryli2>Oxf&eKJq)3?}AHYS*{D1e%<=mN_;f`#B5 zewRLnf^pZk7`%5pR7Nbg71#4$S=&J0wqmh&(!*)EAG;s9i5$+f{94zV=(wvSR82-xWk#Dhx|}5j@_ik zffWrGxOZ180F$u|w^5is=^m)Hi1}RF!mPbB87#Q2Fx(XX+u~2h^#yHFylU%x-L1N} z)zZ^_&D~JTs@?Xzt)AB*ar z)~_g^@e3$N|TT$3-v#y9sI8q1UrL@!`AaO5S=*3oje6Zf-}Z|3dpxl7{Tl61^0tS4*QlC8C*Wqs+|s;M$yzXZ83%Fr@ct3aoXN&m7`Z2AU zwhH3|MWcF$m2Qgzw}fBY&$##+6|6lGC(C?I=r{T^y_#`Tp2DX1S3Z-tLu_kFQX6_- z@G``E0qcfVTlN~kS9!G9(Ha&p7R6cPXe^f*XLgG>d>J@Q`1q5LVh!m}(Q7sow+H$i zrr7a)KBlwEDxh=brD2+nmwj>9tax4eM{MlMHde$H__CoE;%98#y%8EFa`uhI=3x?N z@e1D`(xzZ6NH4IHmxEhZa5|zHc$+>u7>{L9hDiU1^N{7M2j3EVqvFWm2Q$yvbo1U% zHcMn$-!B%|neZ7(m5&@9J(>YF(p;k~&kdPuLl$8kIFUUa>G!MB9ClmM87l7YD#uKu zJHOPG2t)9z%2>&v^LAQp;RniQ$?^Q4hT<2@NGdMznQ*$7|RVwI-6_fxf7HkSf&)l^|n}H52VS^g2mC zmT2T-KZE*1Eg^t4eDrM)%U^mwvUd~o?D7HJnx9B@N+>?vZKtVI{QhKE0ERNeOfueod2Fnvl;5%w|%Sy zM$gN)qckozPoI5hefhkusBuBF!n0a~uW0?Y@FJI?zJQLFR%`0weogmj z&qMCeKrLVyY=EABmeKUVv)4}9@tG8ih9H)&IqTPHruU|&nuy!;+$ZBA|DYyWksj2; zr6pZ^ESnxk^Y&Hk<5ez+LaHq&ni5vyFq-z714od9)p=GMp$$EEQ<{l>Zl)RlKN@c9 zpYMGWAXBRtH=zff&ZSh&>fN+!S+t?&T~AqgCO)6~+F%6 z6i3h$^r9(GXjV8Y?`5rE(i&@l8Pv?K(bNobfNM`QfnUtM*dI`5vwL7RhwL(MoVR|9 z@AwnyBF2T4@FQqGv{@TI`HIHf(73*+?`X!lrwv;`cW-LV6|H_El$;A+CBHOlnyzhfl^6FXu4K;Mn};*=%;|IVXTmqpRBJsc3ZA$%@B!gqe+; zO-BYuWEWJ*`Bg)&?X~5{gthXq9Us{d@1Vb-)sB5EJ5)4VQcOD#{wvCF_Y~*KGK2i= zDQ|nky;*T8?4{(_+xC{Xnp8Py1MiEON>OU3*;e3#WN>>XTkKNpP4s1| zcKZDDuTG!-=V?9YoEybg9y+~spkujf(rYRM_JykOZ@7Ow|L9NefAR0nUJU#5;Kvjc z;n&4K=6%=m{-)}!1!ajbZ^){C;V)WE3Ogr>bDw+yx4RG-^cU& z{-=hs*>V4=v6_xNl^y@$32B{ESChl}aH>yQ>&za1x>^THofB1q6WbR5v9Q)3@+>u5 z(fC^D-zM3asm-o`PHN+0-+}hUC$<5f;y>a{yGH->XJ?_)^00VK)8&_c7FvZ>eEOOH puY;X^=A(dp8IEKn<4-<|{Ic&%Yp6qBg^a8^2Srxw-`DY{{|AmG)|UVP literal 0 HcmV?d00001 diff --git a/src/server/AIServer/res/RCe10000 b/src/server/AIServer/res/RCe10000 new file mode 100644 index 0000000000000000000000000000000000000000..b6cf8aa22008dd2566f8dc21dc449500bc49a9e1 GIT binary patch literal 10858 zcmdU#J8vA<6~}MkDnI}?0aCb_EP+5u6o$)(M7g7ONs183U2{oF4hSq5Nu-2Oq_9ib z4&c)H2L1>sY`|^=8>Ryli2>Oxf&eKJq)3?}AHYS*{D1e%<=mN_;f`#B5 zewRLnf^pZk7`%5pR7Nbg71#4$S=&J0wqmh&(!*)EAG;s9i5$+f{94zV=(wvSR82-xWk#Dhx|}5j@_ik zffWrGxOZ180F$u|w^5is=^m)Hi1}RF!mPbB87#Q2Fx(XX+u~2h^#yHFylU%x-L1N} z)zZ^_&D~JTs@?Xzt)AB*ar z)~_g^@e3$N|TT$3-v#y9sI8q1UrL@!`AaO5S=*3oje6Zf-}Z|3dpxl7{Tl61^0tS4*QlC8C*Wqs+|s;M$yzXZ83%Fr@ct3aoXN&m7`Z2AU zwhH3|MWcF$m2Qgzw}fBY&$##+6|6lGC(C?I=r{T^y_#`Tp2DX1S3Z-tLu_kFQX6_- z@G``E0qcfVTlN~kS9!G9(Ha&p7R6cPXe^f*XLgG>d>J@Q`1q5LVh!m}(Q7sow+H$i zrr7a)KBlwEDxh=brD2+nmwj>9tax4eM{MlMHde$H__CoE;%98#y%8EFa`uhI=3x?N z@e1D`(xzZ6NH4IHmxEhZa5|zHc$+>u7>{L9hDiU1^N{7M2j3EVqvFWm2Q$yvbo1U% zHcMn$-!B%|neZ7(m5&@9J(>YF(p;k~&kdPuLl$8kIFUUa>G!MB9ClmM87l7YD#uKu zJHOPG2t)9z%2>&v^LAQp;RniQ$?^Q4hT<2@NGdMznQ*$7|RVwI-6_fxf7HkSf&)l^|n}H52VS^g2mC zmT2T-KZE*1Eg^t4eDrM)%U^mwvUd~o?D7HJnx9B@N+>?vZKtVI{QhKE0ERNeOfueod2Fnvl;5%w|%Sy zM$gN)qckozPoI5hefhkusBuBF!n0a~uW0?Y@FJI?zJQLFR%`0weogmj z&qMCeKrLVyY=EABmeKUVv)4}9@tG8ih9H)&IqTPHruU|&nuy!;+$ZBA|DYyWksj2; zr6pZ^ESnxk^Y&Hk<5ez+LaHq&ni5vyFq-z714od9)p=GMp$$EEQ<{l>Zl)RlKN@c9 zpYMGWAXBRtH=zff&ZSh&>fN+!S+t?&T~AqgCO)6~+F%6 z6i3h$^r9(GXjV8Y?`5rE(i&@l8Pv?K(bNobfNM`QfnUtM*dI`5vwL7RhwL(MoVR|9 z@AwnyBF2T4@FQqGv{@TI`HIHf(73*+?`X!lrwv;`cW-LV6|H_El$;A+CBHOlnyzhfl^6FXu4K;Mn};*=%;|IVXTmqpRBJsc3ZA$%@B!gqe+; zO-BYuWEWJ*`Bg)&?X~5{gthXq9Us{d@1Vb-)sB5EJ5)4VQcOD#{wvCF_Y~*KGK2i= zDQ|nky;*T8?4{(_+xC{Xnp8Py1MiEON>OU3*;e3#WN>>XTkKNpP4s1| zcKZDDuTG!-=V?9YoEybg9y+~spkujf(rYRM_JykOZ@7Ow|L9NefAR0nUJU#5;Kvjc z;n&4K=6%=m{-)}!1!ajbZ^){C;V)WE3Ogr>bDw+yx4RG-^cU& z{-=hs*>V4=v6_xNl^y@$32B{ESChl}aH>yQ>&za1x>^THofB1q6WbR5v9Q)3@+>u5 z(fC^D-zM3asm-o`PHN+0-+}hUC$<5f;y>a{yGH->XJ?_)^00VK)8&_c7FvZ>eEOOH puY;X^=A(dp8IEKn<4-<|{Ic&%Yp6qBg^a8^2Srxw-`DY{{|AmG)|UVP literal 0 HcmV?d00001 diff --git a/src/server/Ebenezer/Ebenezer.rc b/src/server/Ebenezer/Ebenezer.rc index 3acdfdbf..cf6a361c 100644 --- a/src/server/Ebenezer/Ebenezer.rc +++ b/src/server/Ebenezer/Ebenezer.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,13 +13,11 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// Korean resources +// Korean (Korea) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR) -#ifdef _WIN32 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT #pragma code_page(949) -#endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -27,18 +25,18 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" @@ -59,35 +57,6 @@ END #endif // APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\Ebenezer.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_EBENEZER_DIALOG DIALOGEX 0, 0, 183, 183 -STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU -EXSTYLE WS_EX_APPWINDOW -CAPTION "Ebenezer" -FONT 9, "", 0, 0, 0x1 -BEGIN - LISTBOX IDC_LIST1,8,4,166,136,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_TABSTOP - EDITTEXT IDC_GONGJI_EDIT,12,156,158,14,ES_AUTOHSCROLL - GROUPBOX "",IDC_STATIC,8,145,167,32 -END - - -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -108,17 +77,15 @@ VS_VERSION_INFO VERSIONINFO BEGIN BLOCK "StringFileInfo" BEGIN - BLOCK "041204B0" + BLOCK "041204b0" BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "Ebenezer MFC α׷\0" - VALUE "FileVersion", "1, 0, 0, 1\0" - VALUE "InternalName", "Ebenezer\0" - VALUE "LegalCopyright", "Copyright (C) 2001\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "Ebenezer.EXE\0" - VALUE "ProductName", "Ebenezer α׷\0" - VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "FileDescription", "Ebenezer MFC α׷" + VALUE "FileVersion", "1, 0, 0, 1" + VALUE "InternalName", "Ebenezer" + VALUE "LegalCopyright", "Copyright (C) 2001" + VALUE "OriginalFilename", "Ebenezer.EXE" + VALUE "ProductName", "Ebenezer α׷" + VALUE "ProductVersion", "1, 0, 0, 1" END END BLOCK "VarFileInfo" @@ -127,95 +94,23 @@ BEGIN END END -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ABOUTBOX "Ebenezer (&A)..." - IDP_SOCKETS_INIT_FAILED "Windows ʱȭ Ͽϴ." - IDP_BATTLEZONE_OPEN "糪Ʈ Ƚϴ. Ǿϴ." - IDP_KARUS_VICTORY "ī罺 ¸߽ϴ. : %d, Ʊ : %d" - IDP_ELMORAD_VICTORY "尡 ¸߽ϴ. : %d, Ʊ : %d" - IDP_KARUS_BANISH " ִ ߹Ͽϴ!" - IDP_ELMORAD_BANISH " ִ ī罺 ߹Ͽϴ!" - IDP_KNIGHT_NAME_REPEAT "̸ ߺǾϴ." - IDP_KNIGHT_ALREADY_REGISTERED "̹ ܿ ԵǾ ֽϴ." -END - -STRINGTABLE DISCARDABLE -BEGIN - IDP_KNIGHT_INSUFFICIENT_LEVEL - " â Ϸ 20 Level ̻ ʿմϴ." - IDP_KNIGHT_INSUFFICIENT_LOYALTY - " â Ϸ ⿩ 800 ̻ ʿմϴ." - IDP_KNIGHT_INSUFFICIENT_SKILL - " â Ϸ ֽų 10, ų 5 ̻ ʿմϴ." - IDP_KNIGHT_INSUFFICIENT_CHARISMA - " â Ϸ ŷ 120 ̻ ʿմϴ." - IDP_KNIGHT_INSUFFICIENT_GOLD - " â Ϸ 1000000 ̻ ʿմϴ." - IDP_KNIGHT_CREATE_FAIL " â Ͽϴ." - IDP_KNIGHT_NOT_AVAILABLE " ʴ Դϴ." - IDP_KNIGHT_LEADER_ONLY " ֽϴ." - IDP_KNIGHT_MINIMUM_SUBLEADER "α ̻ ֽϴ." - IDP_KNIGHT_NOT_REGISTERED "ܿ ԵǾ ʽϴ." - IDP_KNIGHT_DB_FAIL " DBó Ͽϴ." - IDP_WRONG_ID "߸ ̵ Դϴ." - IDP_SOURCE_UNABLE "ڽ ϴ." - IDP_MINIMUM_OFFICER "屳 ̻ ֽϴ." - IDP_ANNOUNCEMENT "#### : %s ####" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ELMORAD_LOSER "尡 йϿϴ. : %d, Ʊ : %d" - IDS_KARUS_LOSER "ī罺 йϿϴ. : %d, Ʊ : %d" - IDS_BANISH_USER "糪븮 ִ ִ ȯմϴ" - IDS_BATTLE_CLOSE "糪Ʈ ϴ" - IDS_KILL_GATEKEEPER " ̸ [%s][%s] Դϴ. մϴ." - IDS_KILL_CAPTAIN " ̸ [%s][%s] Դϴ, մϴ." - IDS_KILL_KARUS_GUARD1 "ī罺 1 ߽ϴ. [%s][%s] Դϴ" - IDS_KILL_KARUS_GUARD2 "ī罺 2 ߽ϴ. [%s][%s] Դϴ" - IDS_KILL_ELMO_GUARD1 " 1 ߽ϴ. [%s][%s] Դϴ" - IDS_KILL_ELMO_GUARD2 " 2 ߽ϴ. [%s][%s] Դϴ" - IDS_KARUS_CAPTAIN "ī罺 ְ %s, %s, %s, %s, %s Դϴ" - IDS_ELMO_CAPTAIN " ְ %s, %s, %s, %s, %s Դϴ" - IDS_KARUS_CAPTAIN_DEPRIVE "ī罺 ְ [%s][%s] Ͽϴ. " - IDS_ELMO_CAPTAIN_DEPRIVE - " ְ [%s][%s] Ͽϴ. " -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_COUPON_NOTEPAD_ID "3572-8471-3720-2495" - IDS_COUPON_POSTIT_ID "7352-6539-3720-2495" -END - -#endif // Korean resources +#endif // Korean (Korea) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -// Chinese (Taiwan) resources +// Chinese (Traditional, Taiwan) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHT) -#ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL #pragma code_page(950) -#endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // String Table // -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN IDS_ABOUTBOX "Ebenezer ??(&A)..." IDP_SOCKETS_INIT_FAILED "Windows ?? ???? ???????." @@ -228,7 +123,7 @@ BEGIN IDP_KNIGHT_ALREADY_REGISTERED "?? ???? ???? ????." END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN IDP_KNIGHT_INSUFFICIENT_LEVEL "???? ?? ??? 20 Level ??? ?????." IDP_KNIGHT_INSUFFICIENT_LOYALTY "???? ?? ??? ????? 800 ??? ?????." @@ -247,7 +142,7 @@ BEGIN IDP_ANNOUNCEMENT "#### GMi : %s ####" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN IDS_ELMORAD_LOSER "?AѼĤH : %dW, Qѧڭx : %dW" IDS_KARUS_LOSER "d??AѼĤH : %dW, Qѧڭx : %dW" @@ -265,13 +160,146 @@ BEGIN IDS_ELMO_CAPTAIN_DEPRIVE "?x [%s][%s] Ԧ. " END -STRINGTABLE DISCARDABLE +STRINGTABLE +BEGIN + IDS_COUPON_NOTEPAD_ID "3572-8471-3720-2495" + IDS_COUPON_POSTIT_ID "7352-6539-3720-2495" +END + +#endif // Chinese (Traditional, Taiwan) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDR_MAINFRAME ICON "res\\Ebenezer.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_EBENEZER_DIALOG DIALOGEX 0, 0, 183, 183 +STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_APPWINDOW +CAPTION "Ebenezer" +FONT 9, "??", 0, 0, 0x1 +BEGIN + LISTBOX IDC_LIST1,8,4,166,136,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_GONGJI_EDIT,12,156,158,14,ES_AUTOHSCROLL + GROUPBOX "Notice",IDC_STATIC,8,145,167,32 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_EBENEZER_DIALOG, DIALOG + BEGIN + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_EBENEZER_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_ABOUTBOX "About Ebenezer &A..." + IDP_SOCKETS_INIT_FAILED "Windows socket initialization failed." + IDP_BATTLEZONE_OPEN "The door to Lunagate has opened. The war has begun." + IDP_KARUS_VICTORY "Karus won. Number of enemies killed: %d, Number of allies killed: %d" + IDP_ELMORAD_VICTORY "Elmorad has won. Number of enemies killed: %d, Number of allies killed: %d" + IDP_KARUS_BANISH "Elmorad warriors in the war zone have been exiled!" + IDP_ELMORAD_BANISH "Karus warriors in the war zone have been exiled!" + IDP_KNIGHT_NAME_REPEAT "The Knights name is duplicated." + IDP_KNIGHT_ALREADY_REGISTERED + "You are already a member of the Knights Templar." +END + +STRINGTABLE +BEGIN + IDP_KNIGHT_INSUFFICIENT_LEVEL + "Level 20 or higher is required to create a knights order." + IDP_KNIGHT_INSUFFICIENT_LOYALTY + "A national contribution of 800 or more is required to create a knighthood." + IDP_KNIGHT_INSUFFICIENT_SKILL + "Command Skill 10 and Etiquette Skill 5 or higher are required to create a Knights." + IDP_KNIGHT_INSUFFICIENT_CHARISMA + "You need at least 120 Charisma to create a Templar Order." + IDP_KNIGHT_INSUFFICIENT_GOLD + "You need at least 1000000 Noah to create a Knights Templar." + IDP_KNIGHT_CREATE_FAIL "The creation of the Knights Templar has failed." + IDP_KNIGHT_NOT_AVAILABLE "It is a knighthood that does not exist." + IDP_KNIGHT_LEADER_ONLY "Only the commander of the knights can do it." + IDP_KNIGHT_MINIMUM_SUBLEADER + "Deputy Knight Commander or higher can do this." + IDP_KNIGHT_NOT_REGISTERED + "You are not affiliated with the Knights Templar." + IDP_KNIGHT_DB_FAIL "Knight DB processing failed." + IDP_WRONG_ID "Invalid ID." + IDP_SOURCE_UNABLE "You can't do it yourself." + IDP_MINIMUM_OFFICER "More than an officer can do it." + IDP_ANNOUNCEMENT "#### Notice: %s ####" +END + +STRINGTABLE +BEGIN + IDS_ELMORAD_LOSER "Elmorad has been defeated. Number of enemies killed: %d, Number of allies killed: %d" + IDS_KARUS_LOSER "Karus is defeated. Number of enemies killed: %d, Number of allies killed: %d" + IDS_BANISH_USER "Users in Luna Valley and those in enemy countries will be forcibly summoned to their home countries." + IDS_BATTLE_CLOSE "Lunagate will close." + IDS_KILL_GATEKEEPER "The username that killed the enemy gatekeeper is [%s][%s]. congratulations." + IDS_KILL_CAPTAIN "The username that killed the enemy captain is [%s][%s], congratulations." + IDS_KILL_KARUS_GUARD1 "The chief of the guards of the 1st Fort Karus has died. The enemy user who killed the gatekeeper is [%s][%s]" + IDS_KILL_KARUS_GUARD2 "The captain of the guards of the 2nd Fort Karus has died. The enemy user who killed the gatekeeper is [%s][%s]" + IDS_KILL_ELMO_GUARD1 "The chief of the gates of El Morad's 1st Fortress has died. The enemy user who killed the gatekeeper is [%s][%s]" + IDS_KILL_ELMO_GUARD2 "The captain of the gates of the 2nd Elmorad Fortress has died. The enemy user who killed the gatekeeper is [%s][%s]" + IDS_KARUS_CAPTAIN "Karus commanders are %s, %s, %s, %s and %s" + IDS_ELMO_CAPTAIN "Elmorad commanders are %s, %s, %s, %s and %s" + IDS_KARUS_CAPTAIN_DEPRIVE "Karus's commander, [%s][%s], has been killed." + IDS_ELMO_CAPTAIN_DEPRIVE "Elmorad's commander, [%s][%s], has been killed." +END + +STRINGTABLE BEGIN IDS_COUPON_NOTEPAD_ID "3572-8471-3720-2495" IDS_COUPON_POSTIT_ID "7352-6539-3720-2495" END -#endif // Chinese (Taiwan) resources +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/server/Ebenezer/Ebenezer.vcxproj.user b/src/server/Ebenezer/Ebenezer.vcxproj.user index 1cbaf778..2df05528 100644 --- a/src/server/Ebenezer/Ebenezer.vcxproj.user +++ b/src/server/Ebenezer/Ebenezer.vcxproj.user @@ -8,4 +8,7 @@ $(ProjectDir)..\..\assets\server WindowsLocalDebugger + + Ebenezer.rc + \ No newline at end of file diff --git a/src/server/Ebenezer/GameDefine.h b/src/server/Ebenezer/GameDefine.h index e3880499..43bf37a8 100644 --- a/src/server/Ebenezer/GameDefine.h +++ b/src/server/Ebenezer/GameDefine.h @@ -543,6 +543,7 @@ struct _WARP_INFO { float fY; float fZ; float fR; + short sNation; _WARP_INFO() { sWarpID = 0; diff --git a/src/server/Ebenezer/Ini.cpp b/src/server/Ebenezer/Ini.cpp index 01924091..3597327a 100644 --- a/src/server/Ebenezer/Ini.cpp +++ b/src/server/Ebenezer/Ini.cpp @@ -16,7 +16,7 @@ CIni::~CIni() {} int CIni::GetProfileInt(const char * lpAppName, const char * lpKeyName, int nDefault) { if (m_szFileName[0] == '\0') { m_nError = 0X01; - strcpy(m_strError, "File Set ʾҽϴ."); + strcpy(m_strError, "File has not been set."); return -1; } @@ -35,7 +35,7 @@ const char * CIni::GetProfileString(const char * lpAppName, const char * lpKeyNa static char retString[200] = ""; if (m_szFileName[0] == '\0') { m_nError = 0X01; - strcpy(m_strError, "File Set ʾҽϴ."); + strcpy(m_strError, "File has not been set."); strcpy(retString, ""); return retString; } @@ -70,7 +70,7 @@ int CIni::SetProfileInt(const char * lpAppName, const char * lpKeyName, int nDef int nRet = -1; if (m_szFileName[0] == '\0') { m_nError = 0X01; - strcpy(m_strError, "File Set ʾҽϴ."); + strcpy(m_strError, "File has not been set."); return nRet; } @@ -86,7 +86,7 @@ int CIni::SetProfileString(const char * lpAppName, const char * lpKeyName, const int nRet = -1; if (m_szFileName[0] == '\0') { m_nError = 0X01; - strcpy(m_strError, "File Set ʾҽϴ."); + strcpy(m_strError, "File has not been set."); return nRet; } diff --git a/src/server/Ebenezer/User.cpp b/src/server/Ebenezer/User.cpp index 472ac14b..8a26952a 100644 --- a/src/server/Ebenezer/User.cpp +++ b/src/server/Ebenezer/User.cpp @@ -2315,7 +2315,7 @@ void CUser::ZoneChange(int zone, float x, float z) { } } else { // Battle zone close if (pMap->m_bType == 1 && m_pUserData->m_bNation != zone && - (zone < 10 || zone > 20)) { // Ѿ .. + (zone < 10 || zone > 21)) { // Ѿ .. return; } } diff --git a/src/server/ItemManager/DBAgent.cpp b/src/server/ItemManager/DBAgent.cpp index 85472348..bd83fda4 100644 --- a/src/server/ItemManager/DBAgent.cpp +++ b/src/server/ItemManager/DBAgent.cpp @@ -43,11 +43,12 @@ void CDBAgent::ReConnectODBC(CDatabase * m_db, char * strdb, char * strname, cha char strlog[256]; memset(strlog, 0x00, 256); CTime t = CTime::GetCurrentTime(); - sprintf(strlog, "Try ReConnectODBC... %d %d %d %d\r\n", t.GetMonth(), t.GetDay(), t.GetHour(), + sprintf(strlog, "Try ReConnectODBC... Month: %d, Day: %d, Hour: %d, Minute(s): %d\r\n", t.GetMonth(), t.GetDay(), t.GetHour(), t.GetMinute()); m_pMain->m_ItemLogFile.Write(strlog, strlen(strlog)); - // DATABASE ... + /// DATABASE connection... + CString strConnect; strConnect.Format(_T("DSN=%s;UID=%s;PWD=%s"), strdb, strname, strpwd); int iCount = 0; diff --git a/src/server/ItemManager/Define.h b/src/server/ItemManager/Define.h index bde639d8..ca958a6a 100644 --- a/src/server/ItemManager/Define.h +++ b/src/server/ItemManager/Define.h @@ -88,10 +88,10 @@ typedef union { #define WIZ_ITEM_LOG 0x19 // Send To Agent for Writing Log #define WIZ_DATASAVE 0x37 // User GameData DB Save Request -#define SLOT_MAX 14 // MAX -#define HAVE_MAX 28 // MAX (κ丮â) -#define ITEMCOUNT_MAX 9999 // Ҹ Ѱ谪 -#define WAREHOUSE_MAX 196 // â MAX +#define SLOT_MAX 14 // Equipped item MAX +#define HAVE_MAX 28 // Owned item MAX (Inventory window) +#define ITEMCOUNT_MAX 9999 // Consumable item possession limit +#define WAREHOUSE_MAX 196 // Warehouse item MAX ///////////////////////////////////////////////////////////////////////////////// // Structure Define ///////////////////////////////////////////////////////////////////////////////// diff --git a/src/server/ItemManager/SharedMem.cpp b/src/server/ItemManager/SharedMem.cpp index d52f326b..1b7d0e19 100644 --- a/src/server/ItemManager/SharedMem.cpp +++ b/src/server/ItemManager/SharedMem.cpp @@ -54,7 +54,7 @@ BOOL CSharedMemQueue::InitailizeMMF(DWORD dwOffsetsize, int maxcount, LPCTSTR lp } if (m_hMMFile == NULL) { - strcpy(logstr, "Shared Memory Open Fail!!\r\n"); + strcpy(logstr, "Shared Memory Open Fail!\r\n"); LogFileWrite(logstr); return FALSE; } @@ -67,7 +67,7 @@ BOOL CSharedMemQueue::InitailizeMMF(DWORD dwOffsetsize, int maxcount, LPCTSTR lp m_bMMFCreate = bCreate; m_pHeader = (_SMQ_HEADER *)m_lpMMFile; - m_lReference = (LONG)(m_lpMMFile + sizeof(_SMQ_HEADER)); // ʱ ġ + m_lReference = (LONG)(m_lpMMFile + sizeof(_SMQ_HEADER)); // set initial position if (bCreate) { memset(m_lpMMFile, 0x00, dwfullsize); diff --git a/src/server/LoginServer/LoginServer.rc b/src/server/LoginServer/LoginServer.rc index 7aee6062..51f88932 100644 --- a/src/server/LoginServer/LoginServer.rc +++ b/src/server/LoginServer/LoginServer.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,13 +13,11 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// Korean resources +// Korean (Korea) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR) -#ifdef _WIN32 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT #pragma code_page(949) -#endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -27,18 +25,18 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" @@ -59,6 +57,54 @@ END #endif // APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "041204b0" + BEGIN + VALUE "FileDescription", "LoginServer MFC α׷" + VALUE "FileVersion", "1, 0, 0, 1" + VALUE "InternalName", "LoginServer" + VALUE "LegalCopyright", "Copyright (C) 2002" + VALUE "OriginalFilename", "LoginServer.EXE" + VALUE "ProductName", "LoginServer α׷" + VALUE "ProductVersion", "1, 0, 0, 1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x412, 1200 + END +END + +#endif // Korean (Korea) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + ///////////////////////////////////////////////////////////////////////////// // // Icon @@ -66,7 +112,8 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\LoginServer.ico" +IDR_MAINFRAME ICON "res\\LoginServer.ico" + ///////////////////////////////////////////////////////////////////////////// // @@ -74,115 +121,62 @@ IDR_MAINFRAME ICON DISCARDABLE "res\\LoginServer.ico" // IDD_LOGINSERVER_DIALOG DIALOGEX 0, 0, 211, 163 -STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "LoginServer" -FONT 9, "" +FONT 9, "??", 0, 0, 0x1 BEGIN - LISTBOX IDC_LIST1,7,7,197,127,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_TABSTOP + LISTBOX IDC_LIST1,7,7,197,127,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Version Setting...(&S)",IDC_SETTING,7,142,197,14 END -IDD_SETTING DIALOG DISCARDABLE 0, 0, 341, 265 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_SETTING DIALOG 0, 0, 341, 265 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Version Setting" -FONT 9, "" +FONT 9, "??" BEGIN - EDITTEXT IDC_VERSION_EDIT,53,202,31,14,ES_RIGHT | ES_AUTOHSCROLL | - ES_NUMBER + EDITTEXT IDC_VERSION_EDIT,53,202,31,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER CTEXT "",IDC_STATUS,7,244,214,8 DEFPUSHBUTTON "OK",IDOK,227,244,50,14 PUSHBUTTON "Cancel",IDCANCEL,284,244,50,14 LTEXT "Version :",IDC_STATIC,13,206,30,8 GROUPBOX "File Compress",IDC_STATIC,7,7,327,176 - LISTBOX IDC_FILE_LIST,13,19,258,135,LBS_MULTIPLESEL | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_FILE_LIST,13,19,258,135,LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Add(&A)...",IDC_ADDFILE,277,20,50,14 PUSHBUTTON "Delete(&D)",IDC_DELETEFILE,277,40,50,14 PUSHBUTTON "Compress(&C)",IDC_COMPRESS,277,61,50,14 - CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER, - 13,166,316,7 + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,13,166,316,7 GROUPBOX "Configuration",IDC_STATIC,7,191,327,47 LTEXT "Base Path :",IDC_STATIC,13,223,39,8 EDITTEXT IDC_PATH_EDIT,53,220,277,14,ES_AUTOHSCROLL PUSHBUTTON "Browse(&B)...",IDC_PATH_BROWSE,280,201,50,14 PUSHBUTTON "Refresh(&R)",IDC_REFRESH,277,81,50,14 - CONTROL "CurrentVer.",IDC_CHECK,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,278,128,47,10 - CONTROL "All File Add",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,278,146,50,10 + CONTROL "CurrentVer.",IDC_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,278,128,47,10 + CONTROL "All File Add",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,278,146,50,10 PUSHBUTTON "DBCS Test",IDC_DBCSTEST,277,104,50,14 END -IDD_BROWSE_PATH DIALOGEX 0, 0, 167, 272 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +IDD_BROWSE_PATH DIALOGEX 0, 0, 167, 290 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Browse Path" -FONT 9, "", 0, 0, 0x1 +FONT 9, "??", 0, 0, 0x1 BEGIN - DEFPUSHBUTTON "OK",IDOK,6,249,72,14 - PUSHBUTTON "Cancel",IDCANCEL,90,249,68,14 - CONTROL "Tree1",IDC_BROWSE_TREE,"SysTreeView32",TVS_HASBUTTONS | - TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP, - 6,24,153,219 - COMBOBOX IDC_FILELIST,5,5,133,80,CBS_DROPDOWN | CBS_AUTOHSCROLL | - CBS_SORT | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,6,249,72,15 + PUSHBUTTON "Cancel",IDCANCEL,86,249,68,16 + CONTROL "Tree1",IDC_BROWSE_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6,24,153,219 + COMBOBOX IDC_FILELIST,5,5,133,80,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "->",IDC_SYNCH_FOLDERS,144,6,15,14 END -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "041204B0" - BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "LoginServer MFC α׷\0" - VALUE "FileVersion", "1, 0, 0, 1\0" - VALUE "InternalName", "LoginServer\0" - VALUE "LegalCopyright", "Copyright (C) 2002\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "LoginServer.EXE\0" - VALUE "ProductName", "LoginServer α׷\0" - VALUE "ProductVersion", "1, 0, 0, 1\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x412, 1200 - END -END - -#endif // !_MAC - - ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_LOGINSERVER_DIALOG, DIALOG BEGIN @@ -199,21 +193,42 @@ BEGIN TOPMARGIN, 7 BOTTOMMARGIN, 258 END + + IDD_BROWSE_PATH, DIALOG + BEGIN + BOTTOMMARGIN, 272 + END END #endif // APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_BROWSE_PATH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_LOGINSERVER_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + ///////////////////////////////////////////////////////////////////////////// // // String Table // -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN - IDP_SOCKETS_INIT_FAILED "Windows ʱȭ Ͽϴ." + IDP_SOCKETS_INIT_FAILED "Windows socket initialization failed." END -#endif // Korean resources +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/tool/Launcher/Launcher/LauncherDlg.cpp b/src/tool/Launcher/Launcher/LauncherDlg.cpp index 6e64268f..e5ead714 100644 --- a/src/tool/Launcher/Launcher/LauncherDlg.cpp +++ b/src/tool/Launcher/Launcher/LauncherDlg.cpp @@ -56,9 +56,9 @@ BOOL CLauncherDlg::OnInitDialog() { CString szInfo; szInfo.LoadString(IDS_INFO_VERSION_CHECK); - m_Status.SetWindowText(szInfo); // ȭ鿡 ǥ.. + m_Status.SetWindowText(szInfo); // Displayed on screen.. - m_progress.SetColor(RGB(64, 255, 64)); // α׷ Ѵ. + m_progress.SetColor(RGB(64, 255, 64)); // Set the progress color. m_pSocket = new CAPISocket(); @@ -95,7 +95,7 @@ BOOL CLauncherDlg::OnInitDialog() { dwType = REG_SZ; dwBytes = 256; - lStatus = RegQueryValueEx(m_hRegistryKey, "PATH", NULL, &dwType, (BYTE *)szBuff, &dwBytes); // ν + lStatus = RegQueryValueEx(m_hRegistryKey, "PATH", NULL, &dwType, (BYTE *)szBuff, &dwBytes); // Installation path if (ERROR_SUCCESS != lStatus) { CString szErr; szErr.LoadString(IDS_ERR_REGISTRY_READ_PATH); @@ -106,7 +106,7 @@ BOOL CLauncherDlg::OnInitDialog() { dwType = REG_SZ; dwBytes = 256; - lStatus = RegQueryValueEx(m_hRegistryKey, "EXE", NULL, &dwType, (BYTE *)szBuff, &dwBytes); // ̸ + lStatus = RegQueryValueEx(m_hRegistryKey, "EXE", NULL, &dwType, (BYTE *)szBuff, &dwBytes); // Executable file name if (ERROR_SUCCESS != lStatus) { CString szErr; szErr.LoadString(IDS_ERR_REGISTRY_READ_EXE); @@ -118,7 +118,7 @@ BOOL CLauncherDlg::OnInitDialog() { dwType = REG_SZ; dwBytes = 256; lStatus = - RegQueryValueEx(m_hRegistryKey, "SERVICE", NULL, &dwType, (BYTE *)m_strServiceName, &dwBytes); // ̸.. + RegQueryValueEx(m_hRegistryKey, "SERVICE", NULL, &dwType, (BYTE *)m_strServiceName, &dwBytes); // Service name.. if (ERROR_SUCCESS != lStatus) { CString szErr; szErr.LoadString(IDS_ERR_REGISTRY_READ_SERVICE); @@ -126,7 +126,7 @@ BOOL CLauncherDlg::OnInitDialog() { exit(-1); } - // .. + // Socket connection... char szIniPath[_MAX_PATH] = ""; ::GetCurrentDirectory(_MAX_PATH, szIniPath); lstrcat(szIniPath, "\\Server.Ini"); @@ -158,7 +158,7 @@ BOOL CLauncherDlg::OnInitDialog() { } else { CString szErr; szErr.LoadString(IDS_ERR_INVALID_SERVER_COUNT); - this->MessageBox(szInfo); // . + this->MessageBox(szInfo); // Finish. PostQuitMessage(0); } @@ -273,12 +273,12 @@ void CLauncherDlg::PacketReceive_DownloadInfo(const BYTE * pBuf, int & iIndex) { void CLauncherDlg::PacketReceive_Version(const BYTE * pBuf, int & iIndex) { m_nServerVersion = m_pSocket->Parse_GetShort(pBuf, iIndex); - if (m_nCurVersion == m_nServerVersion) // ġϸ.. + if (m_nCurVersion == m_nServerVersion) // If the versions match... { - this->StartGame(); // .. - } else if (m_nCurVersion < m_nServerVersion) // .. + this->StartGame(); // Running the game... + } else if (m_nCurVersion < m_nServerVersion) // If the version is lower... { - PacketSend_DownloadInfo(); // ٿε û.. + PacketSend_DownloadInfo(); // Download request... } else { CString szErr; szErr.LoadString(IDS_ERR_INVALID_VERSION); @@ -288,7 +288,7 @@ void CLauncherDlg::PacketReceive_Version(const BYTE * pBuf, int & iIndex) { } void CLauncherDlg::StartGame() { - CString szCmd = GetCommandLine(); // Ŀǵ .. + CString szCmd = GetCommandLine(); // Bring up the command line... char szApp[_MAX_PATH] = ""; GetModuleFileName(NULL, szApp, _MAX_PATH); int iML = lstrlen(szApp); @@ -301,8 +301,8 @@ void CLauncherDlg::StartGame() { } } - std::string szExeFN = m_szInstalledPath + "\\" + m_szExeName; // ̸ .. - ::ShellExecute(NULL, "open", szExeFN.c_str(), szParam, m_szInstalledPath.c_str(), SW_SHOWNORMAL); // .. + std::string szExeFN = m_szInstalledPath + "\\" + m_szExeName; // Create an executable file name... + ::ShellExecute(NULL, "open", szExeFN.c_str(), szParam, m_szInstalledPath.c_str(), SW_SHOWNORMAL); // Running the game... PostQuitMessage(0); } @@ -326,7 +326,7 @@ void CLauncherDlg::DownloadProcess() { BOOL bDownloadSuccess = GetDownloadFile(szFullPath, m_szGetFileNames[i]); while (!bDownloadSuccess) { CString szErr; - szErr.LoadString(IDS_ERR_DOWNLOAD_PATCH_FILE_AND_RETRY); // ٽ õұ?? + szErr.LoadString(IDS_ERR_DOWNLOAD_PATCH_FILE_AND_RETRY); // Should I try again?? int iID = MessageBox(szErr, "Patch error", MB_YESNO); if (IDYES == iID) { bDownloadSuccess = GetDownloadFile(szFullPath, m_szGetFileNames[i]); @@ -364,7 +364,7 @@ void CLauncherDlg::DownloadProcess() { if (file.Open(szLocalFName.c_str(), CFile::modeRead | CFile::shareDenyNone, NULL)) { file.Close(); file.Remove(szLocalFName.c_str()); - if (m_hRegistryKey) // Ǯ , ϸ .. + if (m_hRegistryKey) // If you succeed in decompressing, writing, and deleting the compressed file, write the version. { RegSetValueEx(m_hRegistryKey, "VERSION", NULL, REG_DWORD, ((BYTE *)(&m_nVersionNum[i])), 4); } @@ -390,10 +390,10 @@ void CLauncherDlg::DownloadProcess() { // itoa( m_nServerVersion, (char*)(LPCTSTR)version, 10 ); // WritePrivateProfileString("VERSION","CURRENT",version, inipath); - if (true == bExtractSuccess && m_hRegistryKey) // Ǯ , ϸ .. + if (true == bExtractSuccess && m_hRegistryKey) // If you succeed in decompressing, writing, and deleting the compressed file, write the version. { long lStatus = RegSetValueEx(m_hRegistryKey, "VERSION", NULL, REG_DWORD, ((BYTE *)(&m_nServerVersion)), 4); - this->StartGame(); // .. + this->StartGame(); // Running the game... } else { CString szErr; szErr.LoadString(IDS_ERR_PATCH); @@ -705,13 +705,13 @@ LRESULT CLauncherDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { case FD_READ: { m_pSocket->Receive(); - while (m_pSocket->PktQueueSize() > 0) // Ŷ Ʈ Ŷ ֳ???? + while (m_pSocket->PktQueueSize() > 0) // Are there any packets in the packet list???? { int iOffset = 0; - DataPack * pDataPack = m_pSocket->PktQueueFront(); // ť ù° .. - this->PacketProcess(pDataPack->m_pData, iOffset); // Ŷ ó Ȳ ƴϴ. + DataPack * pDataPack = m_pSocket->PktQueueFront(); // Copy the first one in the queue. + this->PacketProcess(pDataPack->m_pData, iOffset); // It is not a situation to process packets. delete pDataPack; - m_pSocket->PktQueuePop(); // Ŷ ť .. + m_pSocket->PktQueuePop(); // Take packets out of queue. } } break; default: diff --git a/src/tool/Launcher/Launcher/LauncherDlg.h b/src/tool/Launcher/Launcher/LauncherDlg.h index 0d13533a..6cb79bdc 100644 --- a/src/tool/Launcher/Launcher/LauncherDlg.h +++ b/src/tool/Launcher/Launcher/LauncherDlg.h @@ -46,7 +46,7 @@ class CLauncherDlg : public CDialog { std::string m_szGetFileNames[MAX_DOWNLOAD_FILE]; int m_nVersionNum[MAX_DOWNLOAD_FILE]; - HKEY m_hRegistryKey; // Ʈ Ű ڵ.. + HKEY m_hRegistryKey; // Registry key handle.. // Construction public: diff --git a/src/tool/Launcher/Launcher/PacketDef.h b/src/tool/Launcher/Launcher/PacketDef.h index 73470986..72a8d037 100644 --- a/src/tool/Launcher/Launcher/PacketDef.h +++ b/src/tool/Launcher/Launcher/PacketDef.h @@ -4,10 +4,10 @@ // Packet Define /////////////////////////////////////////////////////////////// #define VERSION_REQ 0x01 // Send -#define DOWNLOAD_INFO_REQ 0x02 // Send - s1() | Recv FTP +#define DOWNLOAD_INFO_REQ 0x02 // Send - s1 (current version) | Recv FTP #define LOGIN_REQ \ - 0x03 // Send - s1(ID) str1(IDڿ:20Ʈ) s1(PW) str1(PWڿ:12Ʈ) | Recv - b1(0: 1: 2:ID 3:PWƲ 4:) -#define MGAME_LOGIN_REQ 0x04 // !!! LOGIN_REQ !!! + 0x03 // Send - s1 (ID length) str1 (ID string: 20 bytes or less) s1 (PW length) str1 (PW string: 12 bytes or less) | Recv - b1 (0: Failure 1: Success 2: No ID 3: Wrong PW 4: Checking server) +#define MGAME_LOGIN_REQ 0x04 // !!! LOGIN_REQ!!! Same as #define SERVER_LIST \ - 0x05 // Recv - b1(ServerCount) loop( s1(IP), str1(IPڿ), s1(̸), str1(̸ڿ), s1(ο) ) + 0x05 // Recv - b1(ServerCount) loop( s1(IP length), str1(IP string), s1(server name length), str1(server name string), s1(server connection number) ) /////////////////////////////////////////////////////////////// diff --git a/src/tool/N3Indoor/N3Indoor.rc b/src/tool/N3Indoor/N3Indoor.rc index 4ad46df9..addad8c8 100644 --- a/src/tool/N3Indoor/N3Indoor.rc +++ b/src/tool/N3Indoor/N3Indoor.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,13 +13,11 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// Korean resources +// Korean (Korea) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR) -#ifdef _WIN32 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT #pragma code_page(949) -#endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -27,18 +25,18 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" @@ -66,30 +64,41 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\N3Indoor.ico" -IDR_N3INDOTYPE ICON DISCARDABLE "res\\N3IndoorDoc.ico" -IDI_PVOLUMN ICON DISCARDABLE "res\\POINT06.ICO" -IDI_SHAPE ICON DISCARDABLE "res\\HEART.ICO" -IDI_VOL_YT ICON DISCARDABLE "res\\POINT05.ICO" -IDI_VOL_ZB ICON DISCARDABLE "res\\ARW09UP.ICO" -IDI_VOL_XL ICON DISCARDABLE "res\\POINT02.ICO" -IDI_VOL_YB ICON DISCARDABLE "res\\POINT03.ICO" -IDI_VOL_XR ICON DISCARDABLE "res\\POINT04.ICO" -IDI_VOL_ZF ICON DISCARDABLE "res\\ARW09DN.ICO" +IDR_MAINFRAME ICON "res\\N3Indoor.ico" + +IDR_N3INDOTYPE ICON "res\\N3IndoorDoc.ico" + +IDI_PVOLUMN ICON "res\\POINT06.ICO" + +IDI_SHAPE ICON "res\\HEART.ICO" + +IDI_VOL_YT ICON "res\\POINT05.ICO" + +IDI_VOL_ZB ICON "res\\ARW09UP.ICO" + +IDI_VOL_XL ICON "res\\POINT02.ICO" + +IDI_VOL_YB ICON "res\\POINT03.ICO" + +IDI_VOL_XR ICON "res\\POINT04.ICO" + +IDI_VOL_ZF ICON "res\\ARW09DN.ICO" + ///////////////////////////////////////////////////////////////////////////// // // Bitmap // -IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDR_MAINFRAME BITMAP "res\\Toolbar.bmp" + ///////////////////////////////////////////////////////////////////////////// // // Toolbar // -IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15 +IDR_MAINFRAME TOOLBAR 16, 15 BEGIN BUTTON ID_FILE_NEW BUTTON ID_FILE_OPEN @@ -110,58 +119,58 @@ END // Menu // -IDR_MAINFRAME MENU PRELOAD DISCARDABLE +IDR_MAINFRAME MENU BEGIN POPUP "(&F)" BEGIN - MENUITEM " ۾ (&N)\tCtrl+N", ID_FILE_NEW - MENUITEM "۾ȯ濭(&O)...\tCtrl+O", ID_FILE_WORKSHOP_OPEN - MENUITEM "ȭϿ(&G)...\tCtrl+G", ID_FILE_OPEN_GAMEDATA - MENUITEM "۾ȯ(&S)\tCtrl+S", ID_FILE_SAVE_WORKSHOP - MENUITEM "ȭ(&A))\tCtrl+A", ID_FILE_SAVE_GAMEDATA + MENUITEM " ۾ (&N)\tCtrl+N", ID_FILE_NEW + MENUITEM "۾ȯ濭(&O)...\tCtrl+O", ID_FILE_WORKSHOP_OPEN + MENUITEM "ȭϿ(&G)...\tCtrl+G", ID_FILE_OPEN_GAMEDATA + MENUITEM "۾ȯ(&S)\tCtrl+S", ID_FILE_SAVE_WORKSHOP + MENUITEM "ȭ(&A))\tCtrl+A", ID_FILE_SAVE_GAMEDATA MENUITEM SEPARATOR - MENUITEM " Ÿ ϱ(&V)...", ID_FILE_SERVER_DATA + MENUITEM " Ÿ ϱ(&V)...", ID_FILE_SERVER_DATA MENUITEM SEPARATOR - MENUITEM "ֱ ", ID_FILE_MRU_FILE1, GRAYED - MENUITEM "ֱ ", ID_FILE_MRU_FILE2, GRAYED - MENUITEM "ֱ ", ID_FILE_MRU_FILE3, GRAYED - MENUITEM "ֱ ", ID_FILE_MRU_FILE4, GRAYED + MENUITEM "ֱ ", ID_FILE_MRU_FILE1, GRAYED + MENUITEM "ֱ ", ID_FILE_MRU_FILE2, GRAYED + MENUITEM "ֱ ", ID_FILE_MRU_FILE3, GRAYED + MENUITEM "ֱ ", ID_FILE_MRU_FILE4, GRAYED MENUITEM SEPARATOR - MENUITEM "(&X)", ID_APP_EXIT + MENUITEM "(&X)", ID_APP_EXIT END POPUP "(&V)" BEGIN - MENUITEM " (&T)", ID_VIEW_TOOLBAR - MENUITEM " ǥ(&S)", ID_VIEW_STATUS_BAR + MENUITEM " (&T)", ID_VIEW_TOOLBAR + MENUITEM " ǥ(&S)", ID_VIEW_STATUS_BAR MENUITEM "Source Object List(&C)", ID_VIEW_SOURCEOBJECT MENUITEM "Output Object List(&J)", ID_VIEW_OUTPUTOBJECT - MENUITEM " (R)", ID_EDIT_PROPERTY - MENUITEM " (G)\tH", ID_TOTAL_PROPERTY_TOOL + MENUITEM " (R)", ID_EDIT_PROPERTY + MENUITEM " (G)\tH", ID_TOTAL_PROPERTY_TOOL END POPUP "Ŀ(&C)" BEGIN - MENUITEM "\tQ", ID_CURSOR_SELECT + MENUITEM "\tQ", ID_CURSOR_SELECT MENUITEM SEPARATOR - MENUITEM "ü ġ\tE", ID_CURSOR_POS - MENUITEM "ü ȸ\tR", ID_CURSOR_ROTATE - MENUITEM "ü /Ȯ\tT", ID_CURSOR_SCALE + MENUITEM "ü ġ\tE", ID_CURSOR_POS + MENUITEM "ü ȸ\tR", ID_CURSOR_ROTATE + MENUITEM "ü /Ȯ\tT", ID_CURSOR_SCALE MENUITEM SEPARATOR - MENUITEM "ðü Ŀ\tF", ID_TIP_FOCUS_SELOBJ - MENUITEM "ü Ŀ\tZ", ID_TIP_FOCUS_ALL + MENUITEM "ðü Ŀ\tF", ID_TIP_FOCUS_SELOBJ + MENUITEM "ü Ŀ\tZ", ID_TIP_FOCUS_ALL MENUITEM SEPARATOR - MENUITEM "Ѱü \tDel", ID_TIP_DELETE_OBJ - MENUITEM "Ⱦ Ʈ ", ID_TIP_DELETE_UNUSED_FILES + MENUITEM "Ѱü \tDel", ID_TIP_DELETE_OBJ + MENUITEM "Ⱦ Ʈ ", ID_TIP_DELETE_UNUSED_FILES MENUITEM SEPARATOR - MENUITEM " Shape\tN", ID_TIP_NEXT_SHAPE + MENUITEM " Shape\tN", ID_TIP_NEXT_SHAPE MENUITEM SEPARATOR - MENUITEM "NPC Path ", ID_CURSOR_MAKE_NPCPATH - MENUITEM "̺Ʈ ", ID_CURSOR_EDIT_EVENT - MENUITEM "", ID_CURSOR_REGEN_USER - MENUITEM "ȯҸȿֱ", ID_CURSOR_SOUND + MENUITEM "NPC Path ", ID_CURSOR_MAKE_NPCPATH + MENUITEM "̺Ʈ ", ID_CURSOR_EDIT_EVENT + MENUITEM "", ID_CURSOR_REGEN_USER + MENUITEM "ȯҸȿֱ", ID_CURSOR_SOUND END POPUP "(&H)" BEGIN - MENUITEM "N3Indoor (&A)...", ID_APP_ABOUT + MENUITEM "N3Indoor (&A)...", ID_APP_ABOUT END END @@ -171,7 +180,7 @@ END // Accelerator // -IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +IDR_MAINFRAME ACCELERATORS BEGIN "A", ID_FILE_SAVE_GAMEDATA, VIRTKEY, CONTROL, NOINVERT "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT @@ -206,8 +215,8 @@ END // Dialog // -IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_ABOUTBOX DIALOG 0, 0, 235, 55 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "N3Indoor " FONT 9, "" BEGIN @@ -217,41 +226,28 @@ BEGIN DEFPUSHBUTTON "Ȯ",IDOK,178,7,50,14,WS_GROUP END -IDD_PROPERTY DIALOGEX 0, 0, 151, 629 -STYLE WS_CHILD -FONT 9, "" +IDD_PROPERTY DIALOGEX 0, 0, 179, 629 +STYLE DS_SETFONT | WS_CHILD +FONT 9, "", 0, 0, 0x1 BEGIN LTEXT "FPS :",IDC_FPS,93,4,49,8 PUSHBUTTON "Resource ",IDC_BUTTON_RESOURCE_PATH,5,3,55,12 - EDITTEXT IDC_EDIT_RESOURCE_PATH,6,18,140,12,ES_AUTOHSCROLL | - ES_READONLY - CONTROL "",IDC_EDIT,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,5,58,46,11 - CONTROL "&&Ȯ",IDC_COMPILE,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,51,58,46,11 - CONTROL "",IDC_ACTIVE,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,97,58,46,11 + EDITTEXT IDC_EDIT_RESOURCE_PATH,6,18,140,12,ES_AUTOHSCROLL | ES_READONLY + CONTROL "",IDC_EDIT,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,5,58,46,11 + CONTROL "&&Ȯ",IDC_COMPILE,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,51,58,46,11 + CONTROL "",IDC_ACTIVE,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,97,58,46,11 GROUPBOX "1. State",IDC_STATIC,3,48,144,24 - CONTROL "Select PVolume",IDC_STATE_PVOLUMN,"Button", - BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP, - 6,82,69,12 - CONTROL "Select Shape",IDC_STATE_SHAPE,"Button", - BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP, - 75,82,69,12 + CONTROL "Select PVolume",IDC_STATE_PVOLUMN,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,6,82,69,12 + CONTROL "Select Shape",IDC_STATE_SHAPE,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,103,82,69,12 GROUPBOX "2. Select State for Edit",IDC_STATIC,3,73,144,23 - CONTROL "Shape",IDC_ADD_SHAPE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,6,106,35,11 - CONTROL "Collision",IDC_ADD_COLLISION,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,76,106,39,11 + CONTROL "Shape",IDC_ADD_SHAPE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,106,35,11 + CONTROL "Collision",IDC_ADD_COLLISION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,76,106,39,11 GROUPBOX "5. Add Render Mode",IDC_STATIC,2,98,145,20 - EDITTEXT IDC_EDIT_RESOURCE_NAME,36,34,110,11,ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_EDIT_RESOURCE_NAME,36,34,110,12,ES_AUTOHSCROLL | ES_READONLY PUSHBUTTON "Create Volume",IDC_BTN_CREATE_VOL,6,155,69,11 - PUSHBUTTON "Destroy Volume",IDC_BTN_DELETE,75,155,69,11 + PUSHBUTTON "Destroy Volume",IDC_BTN_DELETE,103,155,69,11 GROUPBOX "Create && Destroy",IDC_STATIC,1,146,146,23 - CONTROL "List1",IDC_LIST_SELECT,"SysListView32", - LVS_SHAREIMAGELISTS | WS_TABSTOP,5,186,139,65, - WS_EX_STATICEDGE + CONTROL "List1",IDC_LIST_SELECT,"SysListView32",LVS_SHAREIMAGELISTS | WS_TABSTOP,33,186,139,65,WS_EX_STATICEDGE GROUPBOX "Select Portal Volume",IDC_STATIC,1,170,146,85 GROUPBOX "Link To Object",IDC_STATIC,1,257,147,104 PUSHBUTTON "1.",IDC_BTN_CREATE_GATE1,5,335,46,11 @@ -260,198 +256,151 @@ BEGIN PUSHBUTTON "4.",IDC_BTN_CREATE_GATE4,5,347,46,11 PUSHBUTTON "5.Ʒ",IDC_BTN_CREATE_GATE5,51,347,46,11 PUSHBUTTON "6.",IDC_BTN_CREATE_GATE6,97,347,46,11 - CONTROL "List1",IDC_LIST_LINKTO,"SysListView32",LVS_SINGLESEL | - LVS_SHAREIMAGELISTS | WS_TABSTOP,5,267,139,65, - WS_EX_STATICEDGE - CONTROL "List1",IDC_LIST_LINKED,"SysListView32",LVS_SINGLESEL | - LVS_SHAREIMAGELISTS | WS_TABSTOP,5,370,139,64, - WS_EX_STATICEDGE + CONTROL "List1",IDC_LIST_LINKTO,"SysListView32",LVS_SINGLESEL | LVS_SHAREIMAGELISTS | WS_TABSTOP,33,267,139,65,WS_EX_STATICEDGE + CONTROL "List1",IDC_LIST_LINKED,"SysListView32",LVS_SINGLESEL | LVS_SHAREIMAGELISTS | WS_TABSTOP,33,370,139,64,WS_EX_STATICEDGE PUSHBUTTON "Delete",IDC_BTN_LINKED_DELETE,5,437,140,11 GROUPBOX "Linked Object",IDC_STATIC,2,362,146,89 PUSHBUTTON "File :",IDC_BUTTON_FILE_NAME,7,34,27,12 GROUPBOX "Total Shape",IDC_STATIC,3,452,145,89 - CONTROL "List1",IDC_LIST_SHAPES,"SysListView32",LVS_SINGLESEL | - LVS_SHAREIMAGELISTS | WS_GROUP | WS_TABSTOP,7,460,139,65, - WS_EX_STATICEDGE + CONTROL "List1",IDC_LIST_SHAPES,"SysListView32",LVS_SINGLESEL | LVS_SHAREIMAGELISTS | WS_GROUP | WS_TABSTOP,7,460,139,65,WS_EX_STATICEDGE PUSHBUTTON "Delete..",IDC_BTN_SHAPE_DELETE,7,527,68,11 GROUPBOX "Total Move Offset",IDC_STATIC,2,543,145,22 LTEXT "X :",IDC_STATIC,8,552,9,10 EDITTEXT IDC_TOTAL_MOVE_X,18,551,31,12,ES_AUTOHSCROLL | ES_NUMBER LTEXT "Z :",IDC_STATIC,103,553,9,10 - EDITTEXT IDC_TOTAL_MOVE_Z,114,551,31,12,ES_AUTOHSCROLL | - ES_NUMBER + EDITTEXT IDC_TOTAL_MOVE_Z,114,551,31,12,ES_AUTOHSCROLL | ES_NUMBER LTEXT "Not Selected..",IDC_SELECT_VOL_TEXT,83,176,59,8 GROUPBOX "6. The Indicator",IDC_STATIC,2,120,145,24 - CONTROL "Pick",IDC_INDI_PICK,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,8,130,34,11 - CONTROL "Move",IDC_INDI_MOVE,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,42,130,34,11 - CONTROL "Rotate",IDC_INDI_ROTATE,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,76,130,34,11 - CONTROL "Scale",IDC_INDI_SCALE,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,110,130,34,11 + CONTROL "Pick",IDC_INDI_PICK,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,8,130,34,11 + CONTROL "Move",IDC_INDI_MOVE,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,42,130,34,11 + CONTROL "Rotate",IDC_INDI_ROTATE,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,76,130,34,11 + CONTROL "Scale",IDC_INDI_SCALE,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP | WS_TABSTOP,138,130,34,11 LTEXT "Y:",IDC_STATIC,52,553,8,10 EDITTEXT IDC_TOTAL_MOVE_Y,67,551,31,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL " Shape ",IDC_VIEW_SELECTED_TOTAL_SHAPE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,77,528,69,10 + CONTROL " Shape ",IDC_VIEW_SELECTED_TOTAL_SHAPE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,77,528,69,10 GROUPBOX "Floor Info",IDC_STATIC,3,566,145,44 - COMBOBOX IDC_COMBO_FLOOR,6,574,69,51,CBS_DROPDOWNLIST | CBS_SORT | - CBS_LOWERCASE | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_FLOOR,6,574,69,51,CBS_DROPDOWNLIST | CBS_SORT | CBS_LOWERCASE | WS_VSCROLL | WS_TABSTOP PUSHBUTTON " ϱ",IDC_SET_FLOOR,7,591,68,13 - CONTROL " ",IDC_CHECK_FLOOR,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,78,576,47,10 + CONTROL " ",IDC_CHECK_FLOOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,78,576,47,10 PUSHBUTTON " ϱ",IDC_DELETE_FLOOR,77,591,68,13 END -IDD_BROWSE_PATH DIALOG DISCARDABLE 0, 0, 187, 312 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_BROWSE_PATH DIALOG 0, 0, 187, 312 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Browse Path" FONT 9, "" BEGIN DEFPUSHBUTTON "OK",IDOK,16,291,50,14 PUSHBUTTON "Cancel",IDCANCEL,119,291,50,14 - COMBOBOX IDC_FILELIST,4,9,158,15,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_FILELIST,4,9,158,15,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "->",IDC_SYNCH_FOLDERS,164,6,17,17 - CONTROL "Tree1",IDC_BROWSE_TREE,"SysTreeView32",TVS_HASBUTTONS | - TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP, - 5,30,175,255 + CONTROL "Tree1",IDC_BROWSE_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP,5,30,175,255 END -IDD_COMPUTING DIALOG DISCARDABLE 0, 0, 112, 54 -STYLE DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_VISIBLE +IDD_COMPUTING DIALOG 0, 0, 112, 54 +STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_VISIBLE FONT 12, "System" BEGIN - LTEXT " Դϴ.. \nణ ð ҿ˴ϴ..", - IDC_STATIC,8,8,97,21,NOT WS_GROUP + LTEXT " Դϴ.. \nణ ð ҿ˴ϴ..",IDC_STATIC,8,8,97,21,NOT WS_GROUP LTEXT "0% In Progress..",IDC_PROGRESS,21,34,70,12,NOT WS_GROUP END -IDD_SHAPE_TYPE DIALOG DISCARDABLE 0, 0, 197, 46 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_SHAPE_TYPE DIALOG 0, 0, 197, 46 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Shape Ÿ Ͻʽÿ.. ^^" FONT 10, "System" BEGIN DEFPUSHBUTTON "OK",IDOK,145,5,41,14 PUSHBUTTON "Cancel",IDCANCEL,145,22,41,14 - CONTROL "ü Shape List Ѵ.",IDC_RADIO_PARTIAL,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,11,5,127,13 - CONTROL " Volume LinkѴ.",IDC_RADIO_NONEPARTIAL,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,11,24,127,13 + CONTROL "ü Shape List Ѵ.",IDC_RADIO_PARTIAL,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,11,5,127,13 + CONTROL " Volume LinkѴ.",IDC_RADIO_NONEPARTIAL,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,11,24,127,13 END IDD_SHAPE_LIST DIALOGEX 0, 0, 147, 341 -STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_TOOLWINDOW CAPTION "Shape List" -FONT 9, "" +FONT 9, "", 0, 0, 0x1 BEGIN PUSHBUTTON " ",IDC_BTN_SORT,0,0,40,15 - LISTBOX IDC_LIST_OBJ,1,20,145,220,LBS_SORT | - LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | - WS_TABSTOP + LISTBOX IDC_LIST_OBJ,1,20,145,220,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP CONTROL "",IDC_PREVIEW,"Static",SS_GRAYFRAME,1,245,84,91 PUSHBUTTON "Link To Shape",IDC_OK,89,315,55,20 END -IDD_UNUSED_FILES DIALOG DISCARDABLE 0, 0, 383, 363 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_UNUSED_FILES DIALOG 0, 0, 383, 363 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ⱦ " FONT 9, "" BEGIN - LISTBOX IDC_LIST_FILES,4,14,375,179,LBS_SORT | - LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | - WS_TABSTOP + LISTBOX IDC_LIST_FILES,4,14,375,179,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "õ ",IDC_DELETE,3,197,315,31 PUSHBUTTON "ݱ",ID_CANCEL,318,197,61,31 LTEXT " ִ Ʈ",IDC_STATIC,5,237,61,10 - LISTBOX IDC_LIST_INVALID_OBJECTS,1,248,380,111,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_INVALID_OBJECTS,1,248,380,111,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END IDD_BASE DIALOGEX 0, 0, 239, 395 -STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_TOOLWINDOW -FONT 9, "" +FONT 9, "", 0, 0, 0x1 BEGIN LTEXT "",IDC_STATIC,1,0,31,9 EDITTEXT IDC_E_NAME,0,9,238,12,ES_AUTOHSCROLL - LISTBOX IDC_LP_TRANSFORM,0,22,238,40,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - LISTBOX IDC_LP_CAMERA,0,64,238,40,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - LISTBOX IDC_LP_LIGHT,0,106,238,40,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - COMBOBOX IDC_CB_PART_SHAPE,0,147,238,15,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LISTBOX IDC_LP_SHAPE,0,161,238,41,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - COMBOBOX IDC_CB_PART_CHARACTE,0,205,100,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_CB_LOD,103,205,135,12,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - LISTBOX IDC_LP_CHR,0,219,238,36,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - LISTBOX IDC_LP_CHR_PART,0,255,238,35,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - COMBOBOX IDC_CB_PLUG_CHARACTER,0,293,238,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LISTBOX IDC_LP_CHR_PLUG,0,307,238,40,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - LISTBOX IDC_LP_MATERIAL,0,348,238,45,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP -END - -IDD_MAKE_NPCPATH DIALOG DISCARDABLE 0, 0, 314, 492 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU + LISTBOX IDC_LP_TRANSFORM,0,22,238,40,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CAMERA,0,64,238,40,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_LIGHT,0,106,238,40,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_PART_SHAPE,0,147,238,15,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LP_SHAPE,0,161,238,41,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_PART_CHARACTE,0,205,100,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_LOD,103,205,135,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CHR,0,219,238,36,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CHR_PART,0,255,238,35,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_PLUG_CHARACTER,0,293,238,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CHR_PLUG,0,307,238,40,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_MATERIAL,0,348,238,45,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP +END + +IDD_MAKE_NPCPATH DIALOG 0, 0, 314, 492 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "NPC Path " FONT 9, "" BEGIN END -IDD_EDIT_EVENT DIALOG DISCARDABLE 0, 0, 314, 492 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_EDIT_EVENT DIALOG 0, 0, 314, 492 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "̺Ʈ " FONT 9, "" BEGIN END -IDD_REGEN_USER DIALOG DISCARDABLE 0, 0, 314, 492 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_REGEN_USER DIALOG 0, 0, 314, 492 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "" FONT 9, "" BEGIN END -IDD_ENVIRON_SOUND DIALOG DISCARDABLE 0, 0, 314, 492 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_ENVIRON_SOUND DIALOG 0, 0, 314, 492 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ȯҸȿֱ" FONT 9, "" BEGIN END IDD_FLOORSET DIALOGEX 0, 0, 145, 27 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION EXSTYLE WS_EX_TOOLWINDOW CAPTION " ϼ" -FONT 9, "" +FONT 9, "", 0, 0, 0x1 BEGIN DEFPUSHBUTTON "OK",IDOK,67,6,36,14 PUSHBUTTON "Cancel",IDCANCEL,103,6,36,14 - EDITTEXT IDC_FLOOR_NUMBER,5,5,55,15,ES_RIGHT | ES_LOWERCASE | - ES_AUTOHSCROLL | ES_NUMBER + EDITTEXT IDC_FLOOR_NUMBER,5,5,55,15,ES_RIGHT | ES_LOWERCASE | ES_AUTOHSCROLL | ES_NUMBER END -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -474,15 +423,13 @@ BEGIN BEGIN BLOCK "041204B0" BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "N3Indoor MFC α׷\0" - VALUE "FileVersion", "1, 0, 0, 1\0" - VALUE "InternalName", "N3Indoor\0" - VALUE "LegalCopyright", "Copyright (C) 2002\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "N3Indoor.EXE\0" - VALUE "ProductName", "N3Indoor α׷\0" - VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "FileDescription", "N3Indoor MFC α׷" + VALUE "FileVersion", "1, 0, 0, 1" + VALUE "InternalName", "N3Indoor" + VALUE "LegalCopyright", "Copyright (C) 2002" + VALUE "OriginalFilename", "N3Indoor.EXE" + VALUE "ProductName", "N3Indoor α׷" + VALUE "ProductVersion", "1, 0, 0, 1" END END BLOCK "VarFileInfo" @@ -491,8 +438,6 @@ BEGIN END END -#endif // !_MAC - ///////////////////////////////////////////////////////////////////////////// // @@ -500,7 +445,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_ABOUTBOX, DIALOG BEGIN @@ -513,7 +458,7 @@ BEGIN IDD_PROPERTY, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 144 + RIGHTMARGIN, 172 TOPMARGIN, 7 BOTTOMMARGIN, 622 END @@ -614,8 +559,10 @@ END // Cursor // -IDC_TRANSFORM CURSOR DISCARDABLE "res\\transform.cur" -IDC_SELECT CURSOR DISCARDABLE "res\\MOVE4WAY.CUR" +IDC_TRANSFORM CURSOR "res\\transform.cur" + +IDC_SELECT CURSOR "res\\MOVE4WAY.CUR" + ///////////////////////////////////////////////////////////////////////////// // @@ -634,23 +581,34 @@ BEGIN END +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_PROPERTY AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + ///////////////////////////////////////////////////////////////////////////// // // String Table // -STRINGTABLE PRELOAD DISCARDABLE +STRINGTABLE BEGIN IDR_MAINFRAME "N3Indoor\n\nN3Indoor\nN3Indo (*.n3ie)\n.n3ie\nN3Indoor.Document\nN3Indoor Document" END -STRINGTABLE PRELOAD DISCARDABLE +STRINGTABLE BEGIN AFX_IDS_APP_TITLE "N3Indoor" AFX_IDS_IDLEMESSAGE "غ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_INDICATOR_EXT "EXT" ID_INDICATOR_CAPS "CAP" @@ -660,7 +618,7 @@ BEGIN ID_INDICATOR_REC "REC" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_FILE_NEW " ۼմϴ\n " ID_FILE_OPEN " ϴ\n" @@ -669,13 +627,13 @@ BEGIN ID_FILE_SAVE_AS " ٸ ̸ մϴ\nٸ ̸ " END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_APP_ABOUT "α׷ , ۱ ǥմϴ\n" ID_APP_EXIT " α׷ ϱ ϴ\n" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_FILE_MRU_FILE1 " ϴ" ID_FILE_MRU_FILE2 " ϴ" @@ -695,18 +653,18 @@ BEGIN ID_FILE_MRU_FILE16 " ϴ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_NEXT_PANE " â ȯմϴ\n â" ID_PREV_PANE " â ȯմϴ\n â" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_WINDOW_SPLIT " â ϴ\n" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_EDIT_CLEAR " κ ϴ\n" ID_EDIT_CLEAR_ALL " ϴ\n " @@ -721,13 +679,13 @@ BEGIN ID_EDIT_REDO " ٽ մϴ\nٽ " END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_VIEW_TOOLBAR " ̰ų ϴ\n ȯ" ID_VIEW_STATUS_BAR " ǥ ǥϰų ϴ\n ǥ ȯ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN AFX_IDS_SCSIZE "â ũ⸦ մϴ" AFX_IDS_SCMOVE "â ġ մϴ" @@ -738,14 +696,14 @@ BEGIN AFX_IDS_SCCLOSE " â ݰ ϴ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN AFX_IDS_SCRESTORE "â ũ մϴ" AFX_IDS_SCTASKLIST "۾ Ȱȭմϴ" IDS_TOTAL_SHEET " " END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_FILE_OPEN_GAMEDATA "ȭ ϴ\n" ID_CURSOR_SELECT "ü մϴ.\n" @@ -754,7 +712,7 @@ BEGIN ID_CURSOR_SCALE " ü Ȯ/մϴ.\nȮ/" END -#endif // Korean resources +#endif // Korean (Korea) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/tool/N3ME/DlgMapView.cpp b/src/tool/N3ME/DlgMapView.cpp index ea20f10e..57554947 100644 --- a/src/tool/N3ME/DlgMapView.cpp +++ b/src/tool/N3ME/DlgMapView.cpp @@ -341,4 +341,4 @@ void CDlgMapView::Render(void) { pQTNode->Render(); } } -} +} \ No newline at end of file diff --git a/src/tool/N3ME/DlgRiverProperty.cpp b/src/tool/N3ME/DlgRiverProperty.cpp index 79ebf60f..bc00d196 100644 --- a/src/tool/N3ME/DlgRiverProperty.cpp +++ b/src/tool/N3ME/DlgRiverProperty.cpp @@ -43,6 +43,7 @@ ON_BN_CLICKED(IDC_BUTTON_DELETE_VERTEX, OnButtonDeleteVertex) ON_BN_CLICKED(IDC_BUTTON_RECALCVERTEX, OnButtonRecalcvertex) ON_CBN_SELCHANGE(IDC_COMBO_RIBER, OnCobGORiver) //}}AFX_MSG_MAP +ON_STN_CLICKED(IDC_NOTSELECTED, &CDlgRiverProperty::OnStnClickedNotselected) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// @@ -359,3 +360,7 @@ void CDlgRiverProperty::OnButtonRecalcvertex() { } m_pRiverMng->ReCalcSelectedVertex(); } + +void CDlgRiverProperty::OnStnClickedNotselected() { + // TODO: Add your control notification handler code here +} diff --git a/src/tool/N3ME/DlgRiverProperty.h b/src/tool/N3ME/DlgRiverProperty.h index 3f7e1b23..ca571a22 100644 --- a/src/tool/N3ME/DlgRiverProperty.h +++ b/src/tool/N3ME/DlgRiverProperty.h @@ -59,6 +59,8 @@ class CDlgRiverProperty : public CDialog { afx_msg void OnCobGORiver(); //}}AFX_MSG DECLARE_MESSAGE_MAP() + public: + afx_msg void OnStnClickedNotselected(); }; //{{AFX_INSERT_LOCATION}} diff --git a/src/tool/N3ME/N3ME.rc b/src/tool/N3ME/N3ME.rc index 55941474..d2f0c479 100644 --- a/src/tool/N3ME/N3ME.rc +++ b/src/tool/N3ME/N3ME.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,13 +13,11 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// Korean resources +// Korean (Korea) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR) -#ifdef _WIN32 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT #pragma code_page(949) -#endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -27,18 +25,18 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" @@ -66,23 +64,257 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\N3ME.ico" -IDR_N3METYPE ICON DISCARDABLE "res\\N3MEDoc.ico" +IDR_MAINFRAME ICON "res\\N3ME.ico" + +IDR_N3METYPE ICON "res\\N3MEDoc.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MAINFRAME MENU +BEGIN + POPUP "(&F)" + BEGIN + MENUITEM "Resource (&R)...\tCtrl+R", ID_RESOURCE_PATH_SET + MENUITEM " (&N)\tCtrl+N", ID_FILE_NEW + MENUITEM "(&O)...\tCtrl+O", ID_FILE_OPEN + MENUITEM "(&S)\tCtrl+S", ID_FILE_SAVE + MENUITEM "ٸ ̸ (&A)...", ID_FILE_SAVE_AS + MENUITEM "߶ ", ID_FILE_SAVE_DIVIDE + MENUITEM SEPARATOR + MENUITEM "VMesh ̰θ", ID_FILE_IMPORT_HEIGHT + MENUITEM " VMesh Import(&I)", ID_FILE_IMPORT + MENUITEM "Export HeightBMP", ID_FILE_EXPORT_HEIGHT_BMP + MENUITEM "Import HegihtBMP", ID_FILE_IMPORT_HEIGHT_BMP + MENUITEM SEPARATOR + MENUITEM "Shape ҷ", ID_FILE_IMPORT_SHAPES + MENUITEM " Ϸ ϱ(&E)...", ID_FILE_EXPORT + MENUITEM " Ÿ ϱ(&V)...", ID_FILE_SERVER_DATA + MENUITEM "÷ ҷ(&C)", ID_FILE_COLORMAP_LOAD + MENUITEM "÷ ϱ", ID_FILE_COLORMAP_SAVE + MENUITEM "ӿ Ÿ ؽ Ÿ ", ID_FILE_GAMETILETEX_SAVE + MENUITEM SEPARATOR + MENUITEM "*.N3Scene Ʈ ġ θ", ID_FILE_IMPORT_POST_DATA_FROM_SCENE + MENUITEM SEPARATOR + MENUITEM "ֱ ", ID_FILE_MRU_FILE1, GRAYED + MENUITEM SEPARATOR + MENUITEM "(&X)", ID_APP_EXIT + END + POPUP "(&E)" + BEGIN + MENUITEM "(&U)\tCtrl+Z", ID_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "߶󳻱(&T)\tCtrl+X", ID_EDIT_CUT + MENUITEM "(&C)\tCtrl+C", ID_EDIT_COPY + MENUITEM "ٿֱ(&P)\tCtrl+V", ID_EDIT_PASTE + MENUITEM SEPARATOR + MENUITEM " (R)", ID_EDIT_PROPERTY + MENUITEM "Detail Texture", ID_EDIT_DTEX + END + POPUP "(&V)" + BEGIN + MENUITEM " (&T)", ID_VIEW_TOOLBAR + MENUITEM " ǥ(&S)", ID_VIEW_STATUS_BAR + MENUITEM "Source Object List(&C)", ID_VIEW_SOURCEOBJECT + MENUITEM "Output Object List(&O)", ID_VIEW_OUTPUTOBJECT + MENUITEM "Detail Texture List(&D)", ID_VIEW_DTEX + MENUITEM SEPARATOR + MENUITEM "WIREFRAME MODE(&W)", ID_VIEW_WIREFRAME + MENUITEM "SOLID MODE(&L)", ID_VIEW_SOLID + MENUITEM "õ Object Wire Frame ", ID_VIEW_SELECTED_OBJECT_WIREFRAME, CHECKED + MENUITEM " Grid ", ID_VIEW_AXIS_AND_GRID + MENUITEM "Ʈ \tH", ID_VIEW_HIDE_OBJ + MENUITEM "ٰ ", ID_VIEW_ORTH + MENUITEM "Ȱ ѱ / ", ID_VIEW_TOGGLE_FOG + END + POPUP "Ŀ(&C)" + BEGIN + MENUITEM "\tQ", ID_CURSOR_SELECT + MENUITEM "ü ġ\tW", ID_CURSOR_POS + MENUITEM "ü ȸ\tE", ID_CURSOR_ROTATE + MENUITEM "ü /Ȯ\tR", ID_CURSOR_SCALE + MENUITEM "Object Brush\tT", ID_CURSOR_OBJ_BRUSH + MENUITEM "", ID_CURSOR_EDIT_TERRAIN + MENUITEM "Smooth", ID_CURSOR_SMOOTH_TERRAIN + MENUITEM "ؽ\tD", ID_CURSOR_DTEX + MENUITEM " ", ID_CURSOR_EDIT_RIVER + MENUITEM " ", ID_CURSOR_EDIT_POND + MENUITEM "Ʈ ׸", ID_CURSOR_EDIT_LIGHTMAP + MENUITEM "NPC Path ", ID_CURSOR_MAKE_NPCPATH + MENUITEM " ", ID_CURSOR_MAKE_WALL + MENUITEM "̺Ʈ ", ID_CURSOR_EDIT_EVENT + MENUITEM "鸸", ID_CURSOR_FLAT_TERRAIN + MENUITEM "", ID_CURSOR_REGEN_USER + MENUITEM "ȯҸȿֱ", ID_CURSOR_SOUND + MENUITEM "Ʈġ", ID_CURSOR_LIGHTOBJ + END + POPUP "Ÿ(&T)" + BEGIN + MENUITEM "ðü Ŀ\tF", ID_TIP_FOCUS_SELOBJ + MENUITEM "ü Ŀ\tA", ID_TIP_FOCUS_ALL + MENUITEM SEPARATOR + MENUITEM " ü̱", ID_TIP_DROP + MENUITEM "Ѱü \tDel", ID_TIP_DELETE_OBJ + MENUITEM SEPARATOR + MENUITEM "÷ \tC", ID_TIP_GENERATE_COLORMAP + MENUITEM "ü ÷ \tX", ID_TIP_GENERATE_COLORMAP_ALL + MENUITEM "ŸϷ ü ĥϱ \tV", ID_TIP_TILING_ALL + MENUITEM SEPARATOR + MENUITEM "⺻ \t(&D)", ID_TIP_DEFAULT_MATERIAL + MENUITEM "Alpha Blending Flag \t(&R)", ID_TIP_REMOVE_ALPHAFLAG + MENUITEM SEPARATOR + MENUITEM " Ѹ", ID_TIP_SOW_SEED + MENUITEM "Ⱦ Ʈ ", ID_TIP_DELETE_UNUSED_FILES + MENUITEM "ġ ģ Ʈ ϱ", ID_TIP_DELETE_OVERLAPPED_OBJECTS + MENUITEM " ҽ Ʈ ", ID_TIP_DELETE_SELECTED_SOURCE_OBJECTS + MENUITEM SEPARATOR + MENUITEM "Warp Info Է", ID_TIP_SET_WARP_INFO + MENUITEM "ü ߱", ID_TIP_SET_HEIGHT_SCALE + MENUITEM SEPARATOR + MENUITEM "üʺ && κ ʼ", ID_SELECT_MAP_EDIT + END + POPUP "(&H)" + BEGIN + MENUITEM "N3ME (&A)...", ID_APP_ABOUT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_MAKE_NPCPATH DIALOGEX 0, 0, 153, 573 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Make NPC Path " +FONT 9, "", 0, 0, 0x0 +BEGIN + CONTROL "ۿ",IDC_RDO_START_RGN,"Button",BS_AUTORADIOBUTTON | WS_GROUP,11,252,60,10 + CONTROL "游",IDC_RDO_MAKE_PATH,"Button",BS_AUTORADIOBUTTON,11,264,43,10 + CONTROL "Ȱ",IDC_RDO_MAKE_ACT_RGN,"Button",BS_AUTORADIOBUTTON,11,277,64,10 + COMBOBOX IDC_COMBO_NPC,4,112,145,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "NPC :",IDC_STATIC,5,99,36,8 + EDITTEXT IDC_EDIT_NUM_NPC,35,131,31,14,ES_AUTOHSCROLL + LTEXT "",IDC_STATIC,70,135,15,8 + PUSHBUTTON "",IDC_BTN_RECORD,2,337,72,14 + LTEXT "* ġ NPC",IDC_STATIC,6,357,51,8 + LISTBOX IDC_LIST_NPCPATH,3,369,147,180,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "ҷ",IDC_BTN_LOAD_PATHSET,4,39,31,14 + PUSHBUTTON "ϱ",IDC_BTN_SAVE_PATHSET,37,39,32,14 + LTEXT "* current file name""",IDC_STATIC,3,12,63,8 + LTEXT "/npclist/pathset.txt",IDC_PATHSETNAME,4,24,117,8 + GROUPBOX "* ϰ *",IDC_STATIC,0,1,153,58 + LTEXT "regen time :",IDC_STATIC,5,149,39,8 + EDITTEXT IDC_EDIT_REGENTIME,46,147,31,14,ES_AUTOHSCROLL + LTEXT "sec.",IDC_STATIC,79,149,15,8 + LTEXT "ൿŸ :",IDC_STATIC,5,167,33,8 + COMBOBOX IDC_COMBO_ACTIONTYPE,40,162,73,95,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT " ?",IDC_STATIC,6,133,27,8 + PUSHBUTTON "",IDC_BTN_SAVE_SERVER_PATHSET,71,39,50,14 + PUSHBUTTON "",IDC_BTN_PATH_MODIFY,78,337,72,14 + PUSHBUTTON "",IDC_BTN_PATH_DELETE,59,354,27,13 + GROUPBOX "",IDC_STATIC,3,243,147,48 + EDITTEXT IDC_EDT_NPCPATHNAME,4,319,146,14,ES_AUTOHSCROLL + LTEXT "* NPC ̸",IDC_STATIC,6,307,44,8 + LTEXT "* ִ :",IDC_STATIC,6,294,75,8 + LTEXT "32",IDC_NUM_POINT,83,294,8,8 + GROUPBOX " ?",IDC_STATIC,0,63,153,31 + CONTROL ". .^^",IDC_RDO_VIEW_NONMOVE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,7,77,50,10 + CONTROL "Ⱦ Ⱥ.-.-",IDC_RDO_VIEW_NONE,"Button",BS_AUTORADIOBUTTON,56,77,64,10 + PUSHBUTTON "ֱ",IDC_BTN_SETCOLOR,119,302,33,14 + PUSHBUTTON "NPC о",IDC_BTN_LOAD_NPCLIST,89,97,61,14 + EDITTEXT IDC_EDT_TRANS_X,12,554,27,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_TRANS_Z,54,554,27,14,ES_AUTOHSCROLL + PUSHBUTTON "° ġ ű",IDC_BTN_TRANS,85,554,65,15 + LTEXT "x",IDC_STATIC,4,554,8,8 + LTEXT "z",IDC_STATIC,46,554,8,8 + LTEXT "ܼӼ:",IDC_STATIC,2,183,31,8 + COMBOBOX IDC_COMBO_NPC_ATTR_GROUP,33,181,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "Ӽ:",IDC_STATIC,2,198,31,8 + COMBOBOX IDC_COMBO_NPC_ATTR_REGEN,33,196,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "Ӽ:",IDC_STATIC,2,213,31,8 + COMBOBOX IDC_COMBO_NPC_ATTR_CREATE,33,211,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "load",IDC_BTN_LOAD_GROUP,132,179,20,14 + PUSHBUTTON "load",IDC_BTN_LOAD_REGEN,132,195,20,14 + PUSHBUTTON "load",IDC_BTN_LOAD_CREATE,132,211,20,14 + LTEXT "Ÿɼ:",IDC_STATIC,2,228,31,8 + COMBOBOX IDC_COMBO_NPC_OPTION,33,225,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "load",IDC_BTN_LOAD_OPTION,132,225,20,14 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_MAKE_NPCPATH, DIALOG + BEGIN + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Cursor +// + +IDC_MOVE CURSOR "res\\move.cur" + +IDC_ROTATE CURSOR "res\\rotate.cur" + +IDC_ZOOM CURSOR "res\\zoom.cur" + +IDC_TRANSFORM CURSOR "res\\transform.cur" + +IDC_LOAD CURSOR "res\\load.cur" + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_MAKE_NPCPATH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +#endif // Korean (Korea) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Bitmap // -IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" -IDB_SCENE_NODES BITMAP DISCARDABLE "res\\SceneNodes.bmp" +IDR_MAINFRAME BITMAP "res\\Toolbar.bmp" + +IDB_SCENE_NODES BITMAP "res\\SceneNodes.bmp" + ///////////////////////////////////////////////////////////////////////////// // // Toolbar // -IDR_MAINFRAME TOOLBAR DISCARDABLE 32, 32 +IDR_MAINFRAME TOOLBAR 32, 32 BEGIN BUTTON ID_FILE_NEW BUTTON ID_FILE_OPEN @@ -107,120 +339,110 @@ END // Menu // -IDR_MAINFRAME MENU PRELOAD DISCARDABLE +IDR_MAINFRAME MENU BEGIN - POPUP "(&F)" + POPUP "File(&F)" BEGIN - MENUITEM "Resource (&R)...\tCtrl+R", ID_RESOURCE_PATH_SET - MENUITEM " (&N)\tCtrl+N", ID_FILE_NEW - MENUITEM "(&O)...\tCtrl+O", ID_FILE_OPEN - MENUITEM "(&S)\tCtrl+S", ID_FILE_SAVE - MENUITEM "ٸ ̸ (&A)...", ID_FILE_SAVE_AS - MENUITEM "߶ ", ID_FILE_SAVE_DIVIDE + MENUITEM "Set resource path(&R)...\tCtrl+R", ID_RESOURCE_PATH_SET + MENUITEM "New(&N)\tCtrl+N", ID_FILE_NEW + MENUITEM "Open(&O)...\tCtrl+O", ID_FILE_OPEN + MENUITEM "Save(&S)\tCtrl+S", ID_FILE_SAVE + MENUITEM "Save as(&A)...", ID_FILE_SAVE_AS + MENUITEM "Save with cutted", ID_FILE_SAVE_DIVIDE MENUITEM SEPARATOR - MENUITEM "VMesh ̰θ", ID_FILE_IMPORT_HEIGHT - MENUITEM " VMesh Import(&I)", ID_FILE_IMPORT + MENUITEM "generate height data from VMesh", ID_FILE_IMPORT_HEIGHT + MENUITEM "Import height data from VMesh(&I)", ID_FILE_IMPORT MENUITEM "Export HeightBMP", ID_FILE_EXPORT_HEIGHT_BMP MENUITEM "Import HegihtBMP", ID_FILE_IMPORT_HEIGHT_BMP MENUITEM SEPARATOR - MENUITEM "Shape ҷ", ID_FILE_IMPORT_SHAPES - MENUITEM " Ϸ ϱ(&E)...", ID_FILE_EXPORT - MENUITEM " Ÿ ϱ(&V)...", ID_FILE_SERVER_DATA - MENUITEM "÷ ҷ(&C)", ID_FILE_COLORMAP_LOAD - MENUITEM "÷ ϱ", ID_FILE_COLORMAP_SAVE - MENUITEM "ӿ Ÿ ؽ Ÿ ", - ID_FILE_GAMETILETEX_SAVE + MENUITEM "Open Shape", ID_FILE_IMPORT_SHAPES + MENUITEM "Save as game format(&E)...", ID_FILE_EXPORT + MENUITEM "Save as server format(&V)", ID_FILE_SERVER_DATA + MENUITEM "Import colormap(&C)", ID_FILE_COLORMAP_LOAD + MENUITEM "Export colormap", ID_FILE_COLORMAP_SAVE + MENUITEM "Save tile game formatted texture data", ID_FILE_GAMETILETEX_SAVE MENUITEM SEPARATOR - MENUITEM "*.N3Scene Ʈ ġ θ", - ID_FILE_IMPORT_POST_DATA_FROM_SCENE - + MENUITEM "Import *.N3Scene object position data", ID_FILE_IMPORT_POST_DATA_FROM_SCENE MENUITEM SEPARATOR - MENUITEM "ֱ ", ID_FILE_MRU_FILE1, GRAYED + MENUITEM "Recent files", ID_FILE_MRU_FILE1, GRAYED MENUITEM SEPARATOR - MENUITEM "(&X)", ID_APP_EXIT + MENUITEM "Exit(&X)", ID_APP_EXIT END - POPUP "(&E)" + POPUP "Edit(&E)" BEGIN - MENUITEM "(&U)\tCtrl+Z", ID_EDIT_UNDO + MENUITEM "Undo(&U)\tCtrl+Z", ID_EDIT_UNDO MENUITEM SEPARATOR - MENUITEM "߶󳻱(&T)\tCtrl+X", ID_EDIT_CUT - MENUITEM "(&C)\tCtrl+C", ID_EDIT_COPY - MENUITEM "ٿֱ(&P)\tCtrl+V", ID_EDIT_PASTE + MENUITEM "Cur(&T)\tCtrl+X", ID_EDIT_CUT + MENUITEM "Copy(&C)\tCtrl+C", ID_EDIT_COPY + MENUITEM "Paste(&P)\tCtrl+V", ID_EDIT_PASTE MENUITEM SEPARATOR - MENUITEM " (R)", ID_EDIT_PROPERTY - MENUITEM "Detail Texture", ID_EDIT_DTEX + MENUITEM "Property(R)", ID_EDIT_PROPERTY + MENUITEM "Edit Detail Texture", ID_EDIT_DTEX END - POPUP "(&V)" + POPUP "View(&V)" BEGIN - MENUITEM " (&T)", ID_VIEW_TOOLBAR - MENUITEM " ǥ(&S)", ID_VIEW_STATUS_BAR + MENUITEM "Tool bar(&T)", ID_VIEW_TOOLBAR + MENUITEM "status bar(&S)", ID_VIEW_STATUS_BAR MENUITEM "Source Object List(&C)", ID_VIEW_SOURCEOBJECT MENUITEM "Output Object List(&O)", ID_VIEW_OUTPUTOBJECT MENUITEM "Detail Texture List(&D)", ID_VIEW_DTEX MENUITEM SEPARATOR + MENUITEM "Focus selected object\tF", ID_TIP_FOCUS_SELOBJ + MENUITEM "Focus whole map\tA", ID_TIP_FOCUS_ALL + MENUITEM SEPARATOR MENUITEM "WIREFRAME MODE(&W)", ID_VIEW_WIREFRAME MENUITEM "SOLID MODE(&L)", ID_VIEW_SOLID - MENUITEM "õ Object Wire Frame ", - ID_VIEW_SELECTED_OBJECT_WIREFRAME - , CHECKED - MENUITEM " Grid ", ID_VIEW_AXIS_AND_GRID - MENUITEM "Ʈ \tH", ID_VIEW_HIDE_OBJ - MENUITEM "ٰ ", ID_VIEW_ORTH - MENUITEM "Ȱ ѱ / ", ID_VIEW_TOGGLE_FOG + MENUITEM "View selected object by wire Frame", ID_VIEW_SELECTED_OBJECT_WIREFRAME, CHECKED + MENUITEM "View axis and grid", ID_VIEW_AXIS_AND_GRID + MENUITEM "Hide objects\tH", ID_VIEW_HIDE_OBJ + MENUITEM "View perspective", ID_VIEW_ORTH + MENUITEM "Toggle fog", ID_VIEW_TOGGLE_FOG END - POPUP "Ŀ(&C)" + POPUP "Edit mode(&C)" BEGIN - MENUITEM "\tQ", ID_CURSOR_SELECT - MENUITEM "ü ġ\tW", ID_CURSOR_POS - MENUITEM "ü ȸ\tE", ID_CURSOR_ROTATE - MENUITEM "ü /Ȯ\tR", ID_CURSOR_SCALE + MENUITEM "Select\tQ", ID_CURSOR_SELECT + MENUITEM "Move\tW", ID_CURSOR_POS + MENUITEM "Rotate\tE", ID_CURSOR_ROTATE + MENUITEM "Scale\tR", ID_CURSOR_SCALE MENUITEM "Object Brush\tT", ID_CURSOR_OBJ_BRUSH - MENUITEM "", ID_CURSOR_EDIT_TERRAIN + MENUITEM "Edit terrain", ID_CURSOR_EDIT_TERRAIN MENUITEM "Smooth", ID_CURSOR_SMOOTH_TERRAIN - MENUITEM "ؽ\tD", ID_CURSOR_DTEX - MENUITEM " ", ID_CURSOR_EDIT_RIVER - MENUITEM " ", ID_CURSOR_EDIT_POND - MENUITEM "Ʈ ׸", ID_CURSOR_EDIT_LIGHTMAP - MENUITEM "NPC Path ", ID_CURSOR_MAKE_NPCPATH - MENUITEM " ", ID_CURSOR_MAKE_WALL - MENUITEM "̺Ʈ ", ID_CURSOR_EDIT_EVENT - MENUITEM "鸸", ID_CURSOR_FLAT_TERRAIN - MENUITEM "", ID_CURSOR_REGEN_USER - MENUITEM "ȯҸȿֱ", ID_CURSOR_SOUND - MENUITEM "Ʈġ", ID_CURSOR_LIGHTOBJ + MENUITEM "Detail texture\tD", ID_CURSOR_DTEX + MENUITEM "River", ID_CURSOR_EDIT_RIVER + MENUITEM "Pond", ID_CURSOR_EDIT_POND + MENUITEM "Light map", ID_CURSOR_EDIT_LIGHTMAP + MENUITEM "NPC Path", ID_CURSOR_MAKE_NPCPATH + MENUITEM "Wall", ID_CURSOR_MAKE_WALL + MENUITEM "Event", ID_CURSOR_EDIT_EVENT + MENUITEM "Plane", ID_CURSOR_FLAT_TERRAIN + MENUITEM "User regeneration region", ID_CURSOR_REGEN_USER + MENUITEM "Environment sound effect", ID_CURSOR_SOUND END - POPUP "Ÿ(&T)" + POPUP "Tool(&T)" BEGIN - MENUITEM "ðü Ŀ\tF", ID_TIP_FOCUS_SELOBJ - MENUITEM "ü Ŀ\tA", ID_TIP_FOCUS_ALL - MENUITEM SEPARATOR - MENUITEM " ü̱", ID_TIP_DROP - MENUITEM "Ѱü \tDel", ID_TIP_DELETE_OBJ + MENUITEM "Attach object to terrain", ID_TIP_DROP + MENUITEM "Delete selected object\tDel", ID_TIP_DELETE_OBJ MENUITEM SEPARATOR - MENUITEM "÷ \tC", ID_TIP_GENERATE_COLORMAP - MENUITEM "ü ÷ \tX", ID_TIP_GENERATE_COLORMAP_ALL - MENUITEM "ŸϷ ü ĥϱ \tV", ID_TIP_TILING_ALL + MENUITEM "Make colormap\tC", ID_TIP_GENERATE_COLORMAP + MENUITEM "make whole colormap\tX", ID_TIP_GENERATE_COLORMAP_ALL + MENUITEM "fill whole map with current tile\tV", ID_TIP_TILING_ALL MENUITEM SEPARATOR - MENUITEM "⺻ \t(&D)", ID_TIP_DEFAULT_MATERIAL - MENUITEM "Alpha Blending Flag \t(&R)", ID_TIP_REMOVE_ALPHAFLAG + MENUITEM "Set to basic material\t(&D)", ID_TIP_DEFAULT_MATERIAL + MENUITEM "Remove Alpha Blending Flag\t(&R)", ID_TIP_REMOVE_ALPHAFLAG MENUITEM SEPARATOR - MENUITEM " Ѹ", ID_TIP_SOW_SEED - MENUITEM "Ⱦ Ʈ ", ID_TIP_DELETE_UNUSED_FILES - MENUITEM "ġ ģ Ʈ ϱ", - ID_TIP_DELETE_OVERLAPPED_OBJECTS - - MENUITEM " ҽ Ʈ ", - ID_TIP_DELETE_SELECTED_SOURCE_OBJECTS - + MENUITEM "Spread seed", ID_TIP_SOW_SEED + MENUITEM "Make unused file list", ID_TIP_DELETE_UNUSED_FILES + MENUITEM "Remove overlapped objects", ID_TIP_DELETE_OVERLAPPED_OBJECTS + MENUITEM "Remove selected source objects", ID_TIP_DELETE_SELECTED_SOURCE_OBJECTS MENUITEM SEPARATOR - MENUITEM "Warp Info Է", ID_TIP_SET_WARP_INFO - MENUITEM "ü ߱", ID_TIP_SET_HEIGHT_SCALE + MENUITEM "Make warp info", ID_TIP_SET_WARP_INFO + MENUITEM "Adjust height scale", ID_TIP_SET_HEIGHT_SCALE MENUITEM SEPARATOR - MENUITEM "üʺ && κ ʼ", ID_SELECT_MAP_EDIT + MENUITEM "View whole map && edit partial", ID_SELECT_MAP_EDIT END - POPUP "(&H)" + POPUP "Help(&H)" BEGIN - MENUITEM "N3ME (&A)...", ID_APP_ABOUT + MENUITEM "About N3MapEditor\t(&A)", ID_APP_ABOUT END END @@ -230,7 +452,7 @@ END // Accelerator // -IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE +IDR_MAINFRAME ACCELERATORS BEGIN "A", ID_TIP_FOCUS_ALL, VIRTKEY, NOINVERT "C", ID_TIP_GENERATE_COLORMAP, VIRTKEY, NOINVERT @@ -267,86 +489,72 @@ END // Dialog // -IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 339, 55 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "N3ME " -FONT 9, "" +IDD_ABOUTBOX DIALOGEX 0, 0, 339, 55 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About N3ME" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 - LTEXT "Noah System Map Editor 3",IDC_STATIC,40,10,146,8, - SS_NOPREFIX + ICON IDR_MAINFRAME,IDC_STATIC,11,17,18,17 + LTEXT "Noah System Map Editor Version 3",IDC_STATIC,40,10,146,8,SS_NOPREFIX LTEXT "Copyleft (C) 2002",IDC_STATIC,40,25,119,8 - DEFPUSHBUTTON "Ȯ",IDOK,282,7,50,14,WS_GROUP + DEFPUSHBUTTON "OK",IDOK,282,7,50,14,WS_GROUP END -IDR_MAINFRAME DIALOG DISCARDABLE 0, 0, 459, 49 -STYLE WS_CHILD -FONT 9, "" +IDR_MAINFRAME DIALOGEX 0, 0, 477, 49 +STYLE DS_SETFONT | WS_CHILD +FONT 9, "Arial", 400, 0, 0x0 BEGIN - EDITTEXT IDC_E_PATH,69,0,177,12,ES_AUTOHSCROLL | ES_READONLY - PUSHBUTTON "Resource ",IDC_B_SET_RESOURCE_PATH,0,0,69,12 + EDITTEXT IDC_E_PATH,69,0,169,12,ES_AUTOHSCROLL | ES_READONLY + PUSHBUTTON "Set Resource Path",IDC_B_SET_RESOURCE_PATH,0,0,69,12 EDITTEXT IDC_E_TRANSFORM_X,279,0,42,12,ES_AUTOHSCROLL - RTEXT "Transform",IDC_STATIC_TRANSFORM,243,0,36,11, - SS_CENTERIMAGE + RTEXT "Transform",IDC_STATIC_TRANSFORM,243,0,36,11,SS_CENTERIMAGE EDITTEXT IDC_E_TRANSFORM_Y,321,0,42,12,ES_AUTOHSCROLL EDITTEXT IDC_E_TRANSFORM_Z,363,0,42,12,ES_AUTOHSCROLL - CONTROL "Slider1",IDC_SLIDER_FARPLANE,"msctls_trackbar32", - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,36,15,162,15 - CONTROL "Slider1",IDC_SLIDER_TILEREGION,"msctls_trackbar32", - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,243,15,162,15 + CONTROL "Slider1",IDC_SLIDER_FARPLANE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,36,15,162,15 + CONTROL "Slider1",IDC_SLIDER_TILEREGION,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,243,15,162,15 LTEXT "Far Plane",IDC_STATIC,3,18,32,8 - LTEXT "ŸϿ",IDC_STATIC,210,18,28,8 + LTEXT "Tile Area",IDC_STATIC,210,18,30,8 EDITTEXT IDC_E_ZONEID,417,15,40,14,ES_AUTOHSCROLL LTEXT "Zone ID",IDC_STATIC,423,3,26,8 - CONTROL "Slider1",IDC_SLIDER_LIGHT,"msctls_trackbar32",TBS_BOTH | - TBS_NOTICKS | WS_TABSTOP,23,32,428,15 + CONTROL "Slider1",IDC_SLIDER_LIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,23,32,428,15 LTEXT "Light",IDC_STATIC,3,34,16,8 END -IDD_SCENE_GRAPH DIALOGEX 0, 0, 206, 336 -STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +IDD_SCENE_GRAPH DIALOGEX 0, 0, 206, 382 +STYLE DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_TOOLWINDOW CAPTION "Scene Graph" -FONT 9, "", 0, 0, 0x1 +FONT 9, "Arial", 400, 0, 0x0 BEGIN - CONTROL "Tree1",IDC_TREE_OBJ,"SysTreeView32",TVS_HASBUTTONS | - TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS | - TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,0,0,207,231 + CONTROL "Tree1",IDC_TREE_OBJ,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS | TVS_SHOWSELALWAYS | WS_BORDER | WS_HSCROLL | WS_TABSTOP,0,0,207,231 CONTROL "",IDC_PREVIEW,"Static",SS_GRAYFRAME,45,233,115,102 END -IDD_BRUSH DIALOGEX 0, 0, 126, 172 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_BRUSH DIALOGEX 0, 0, 187, 172 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_TOOLWINDOW -FONT 9, "", 0, 0, 0x1 -BEGIN - COMBOBOX IDC_SHAPE,5,5,65,55,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - CONTROL "Slider1",IDC_SLIDER_SIZE,"msctls_trackbar32",TBS_BOTH | - TBS_NOTICKS | WS_TABSTOP,5,35,65,15 - CONTROL "Slider1",IDC_SLIDER_FALLOFF,"msctls_trackbar32", - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,5,70,65,15 - LTEXT "Size",IDC_STATIC,5,25,65,10 - LTEXT "Fall off",IDC_STATIC,5,60,65,10 - EDITTEXT IDC_EDIT_SIZE,80,35,25,15,ES_CENTER | ES_AUTOHSCROLL | - ES_READONLY - EDITTEXT IDC_EDIT_FALLOFF,80,70,25,15,ES_CENTER | ES_AUTOHSCROLL | - ES_READONLY - CONTROL "ϰ",IDC_CHECK_FLAT,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,76,92,43,10 - CONTROL "̰ϱ",IDC_RDO_GET_HEIGHT,"Button", - BS_AUTORADIOBUTTON | WS_GROUP,12,128,57,10 - CONTROL "鸸",IDC_RDO_FLATEN,"Button",BS_AUTORADIOBUTTON, - 12,142,50,10 - LTEXT "̰",IDC_STATIC,83,130,22,8 +CAPTION "BRUSH" +FONT 9, "Arial", 400, 0, 0x0 +BEGIN + COMBOBOX IDC_SHAPE,7,7,65,55,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Slider1",IDC_SLIDER_SIZE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,14,35,56,15 + CONTROL "Slider1",IDC_SLIDER_FALLOFF,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,15,70,55,15 + LTEXT "Size",IDC_STATIC,15,25,55,10 + LTEXT "Fall off",IDC_STATIC,15,60,55,10 + EDITTEXT IDC_EDIT_SIZE,80,35,47,15,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY + EDITTEXT IDC_EDIT_FALLOFF,80,70,45,15,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY + CONTROL "flatten",IDC_CHECK_FLAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,137,92,34,10 + CONTROL "Set height",IDC_RDO_GET_HEIGHT,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,128,57,10 + CONTROL "Create plane",IDC_RDO_FLATEN,"Button",BS_AUTORADIOBUTTON,12,142,50,10 + LTEXT "height value",IDC_STATIC,83,130,59,8 LTEXT "0",IDC_FLAT_HEIGHT,82,142,28,8 - GROUPBOX "鸸",IDC_STATIC,7,114,113,47 + GROUPBOX "Create plane",IDC_STATIC,7,114,140,47 END -IDD_TERRAINSIZE DIALOG DISCARDABLE 0, 0, 168, 26 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_TERRAINSIZE DIALOGEX 0, 0, 168, 26 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Set Terrain Size" -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,126,6,39,15 LTEXT "Terrain Size :",IDC_STATIC,7,8,45,8 @@ -355,173 +563,132 @@ BEGIN LTEXT "2",IDC_STATIC,116,7,8,8 END -IDD_SETDETAILTEXTURE DIALOG DISCARDABLE 0, 0, 410, 445 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "ؽļӼ & " -FONT 9, "" +IDD_SETDETAILTEXTURE DIALOGEX 0, 0, 410, 445 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Definition & Editing of Texture Properties" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON " ",IDOK,323,419,75,16 - COMBOBOX IDC_COMBO_FILELIST,54,3,243,97,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,323,419,75,16 + COMBOBOX IDC_COMBO_FILELIST,88,3,209,97,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "",IDC_TEXTUREVIEW,"Static",SS_BLACKFRAME,105,41,37,35 - LTEXT "* ؽ : ",IDC_STATIC,3,6,48,8 - LTEXT "* ׷ ",IDC_STATIC,8,28,40,8 - LTEXT "* Ӽ : ",IDC_STATIC,107,29,28,8 - LTEXT " - NORMAL",IDC_ATTR,136,29,212,8 - LISTBOX IDC_LIST_GROUP,7,41,95,362,LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "߰",IDC_BTN_ADDGROUP,50,27,24,11 - PUSHBUTTON "",IDC_BTN_DELGROUP,77,27,24,11 - PUSHBUTTON "ؽ߰",IDC_BTN_ADDDTEX,304,3,42,13 - PUSHBUTTON "ؽĻ",IDC_BTN_DELDTEX,351,3,42,13 - LTEXT "* ŸϼƮ :",IDC_STATIC,114,392,84,8 - LTEXT "ƹ͵ µ...^^",IDC_STATIC_TILESETNAME,202,392, - 191,8 - PUSHBUTTON "ŸϼƮ ҷ",IDC_BTN_LOAD_TILESET,14,419,74,16 - PUSHBUTTON "ŸϼƮ ϱ",IDC_BTN_SAVE_TILESET,102,419,84,16 - PUSHBUTTON "ŸϼƮ ̸ ϱ", - IDC_BTN_SAVE_NEWNAME_TILESET,200,419,109,16 + LTEXT "* Texture files:",IDC_STATIC,11,6,69,8 + LTEXT "* Group list",IDC_STATIC,8,28,40,8 + LTEXT "* Properties:",IDC_STATIC,107,29,66,8 + LTEXT "Road - NORMAL",IDC_ATTR,204,29,179,8 + LISTBOX IDC_LIST_GROUP,7,41,95,362,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Add",IDC_BTN_ADDGROUP,50,27,24,11 + PUSHBUTTON "Del",IDC_BTN_DELGROUP,77,27,24,11 + PUSHBUTTON "Add texture",IDC_BTN_ADDDTEX,304,3,42,13 + PUSHBUTTON "Delete texture",IDC_BTN_DELDTEX,351,3,53,13 + LTEXT "* Current tilesets in use:",IDC_STATIC,114,392,80,8 + LTEXT "there's nothing...^^",IDC_STATIC_TILESETNAME,212,392,175,8 + PUSHBUTTON "Load tileset",IDC_BTN_LOAD_TILESET,14,419,74,16 + PUSHBUTTON "Save Tileset",IDC_BTN_SAVE_TILESET,102,419,84,16 + PUSHBUTTON "Save tileset under a new name",IDC_BTN_SAVE_NEWNAME_TILESET,200,419,109,16 END IDD_INPUT_ATTR DIALOGEX 0, 0, 111, 198 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_TOOLWINDOW -CAPTION "Ӽֱ" -FONT 9, "", 0, 0, 0x1 +CAPTION "Add property" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "ֱ",IDOK,3,174,51,21 - PUSHBUTTON "",IDCANCEL,60,174,48,21 - LISTBOX IDC_LB_GROUP,3,3,105,168,LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,3,174,51,21 + PUSHBUTTON "CANCEL",IDCANCEL,60,174,48,21 + LISTBOX IDC_LB_GROUP,3,3,105,168,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END -IDD_INPUT_GROUP DIALOGEX 0, 0, 151, 35 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_INPUT_GROUP DIALOGEX 0, 0, 238, 35 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_TOOLWINDOW -CAPTION "׷߰" -FONT 9, "", 0, 0, 0x1 +CAPTION "Add group" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - EDITTEXT IDC_EDIT_INPUTGROUP,42,2,108,14,ES_AUTOHSCROLL | - WS_GROUP - DEFPUSHBUTTON "߰",IDOK,77,19,73,14 - PUSHBUTTON "",IDCANCEL,2,19,72,14 - LTEXT "׷̸ : ",IDC_STATIC,3,4,39,8 + EDITTEXT IDC_EDIT_INPUTGROUP,75,2,108,14,ES_AUTOHSCROLL | WS_GROUP + DEFPUSHBUTTON "OK",IDOK,110,19,73,14 + PUSHBUTTON "CANCEL",IDCANCEL,35,19,72,14 + LTEXT "Group name:",IDC_STATIC,3,4,63,8 END IDD_DEL_GROUP DIALOGEX 0, 0, 129, 186 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_TOOLWINDOW -CAPTION "׷ " -FONT 9, "", 0, 0, 0x1 +CAPTION "Clear group" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - LISTBOX IDC_LIST_DELGROUP,3,3,120,153,LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "",IDOK,3,162,57,21 - PUSHBUTTON "",IDCANCEL,66,162,57,21 + LISTBOX IDC_LIST_DELGROUP,3,3,120,153,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Clear",IDOK,3,162,57,21 + PUSHBUTTON "Cancel",IDCANCEL,66,162,57,21 END -IDD_DTEX_GROUP DIALOGEX 0, 0, 103, 483 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_DTEX_GROUP DIALOGEX 0, 0, 171, 483 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_TOOLWINDOW -CAPTION " ؽ ׷ " -FONT 9, "", 0, 0, 0x1 -BEGIN - CONTROL "ڵ",IDC_TILEAUTO,"Button",BS_AUTORADIOBUTTON | - WS_GROUP,0,3,23,10 - CONTROL "Tree1",IDC_TREE_DTEX_GROUP,"SysTreeView32", - TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | - TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | - WS_TABSTOP,2,71,97,294 - CONTROL "",IDC_TILEMANUEL,"Button",BS_AUTORADIOBUTTON,25,3, - 25,10 - CONTROL "",IDC_PREVIEW_DTEX_GROUP,"Static",SS_BLACKFRAME,2,371, - 97,106 - CONTROL "Slider1",IDC_SLIDER_DTEX,"msctls_trackbar32", - TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,3,30,97,29 - GROUPBOX "汽",IDC_STATIC,0,17,102,48 - CONTROL "full",IDC_TILEMANUELNOMIX,"Button", - BS_AUTORADIOBUTTON,54,4,37,10 -END - -IDD_RIVER_PROPERTY DIALOG DISCARDABLE 0, 0, 183, 205 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Detail Texture Group List" +FONT 9, "Arial", 400, 0, 0x0 +BEGIN + CONTROL "Auto",IDC_TILEAUTO,"Button",BS_AUTORADIOBUTTON | WS_GROUP,0,3,23,10 + CONTROL "Tree1",IDC_TREE_DTEX_GROUP,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | WS_HSCROLL | WS_TABSTOP,2,71,97,294 + CONTROL "Manual",IDC_TILEMANUEL,"Button",BS_AUTORADIOBUTTON,25,3,45,10 + CONTROL "",IDC_PREVIEW_DTEX_GROUP,"Static",SS_BLACKFRAME,2,371,97,106 + CONTROL "Slider1",IDC_SLIDER_DTEX,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,3,30,97,29 + GROUPBOX "Pen thickness",IDC_STATIC,0,17,100,48 + CONTROL "Full manual",IDC_TILEMANUELNOMIX,"Button",BS_AUTORADIOBUTTON,56,4,44,10 +END + +IDD_RIVER_PROPERTY DIALOGEX 0, 0, 183, 326 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "River Properties" -FONT 9, "" -BEGIN - DEFPUSHBUTTON "OK",IDOK,1,153,126,50 - PUSHBUTTON "Cancel",IDCANCEL,125,153,57,50 - LISTBOX IDC_LP_RIVER,0,0,182,153,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - CTEXT "Not Selected..",IDC_NOTSELECTED,6,19,164,30, - SS_CENTERIMAGE | NOT WS_VISIBLE - PUSHBUTTON "Extrude Edge",IDC_BUTTON_EXTRUDE,0,172,90,14 - PUSHBUTTON "Delete Vertex",IDC_BUTTON_DELETE_VERTEX,90,172,90,14 - PUSHBUTTON "Recalc UV",IDC_BUTTON_RECALC_UV,0,186,90,14 - PUSHBUTTON "Delete River",IDC_BUTTON_DELETE_RIVER,90,186,90,14 - PUSHBUTTON "Recalc Selected Vertex",IDC_BUTTON_RECALCVERTEX,0,156, - 90,15 - COMBOBOX IDC_COMBO_RIBER,90,155,92,115,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP +FONT 9, "Arial", 400, 0, 0x0 +BEGIN + DEFPUSHBUTTON "OK",IDOK,1,284,85,40 + PUSHBUTTON "Cancel",IDCANCEL,95,285,87,39 + LISTBOX IDC_LP_RIVER,0,1,182,133,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + CTEXT "Not Selected..",IDC_NOTSELECTED,3,139,164,30,SS_CENTERIMAGE | NOT WS_VISIBLE + PUSHBUTTON "Extrude Edge",IDC_BUTTON_EXTRUDE,0,231,90,14 + PUSHBUTTON "Delete Vertex",IDC_BUTTON_DELETE_VERTEX,90,231,90,14 + PUSHBUTTON "Recalc UV",IDC_BUTTON_RECALC_UV,0,245,90,14 + PUSHBUTTON "Delete River",IDC_BUTTON_DELETE_RIVER,90,245,90,14 + PUSHBUTTON "Recalc Selected Vertex",IDC_BUTTON_RECALCVERTEX,0,215,90,15 + COMBOBOX IDC_COMBO_RIBER,98,214,75,115,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP END IDD_BASE DIALOGEX 0, 0, 234, 387 -STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_TOOLWINDOW -FONT 9, "", 0, 0, 0x1 +FONT 9, "Arial", 400, 0, 0x0 BEGIN EDITTEXT IDC_E_NAME,0,9,234,12,ES_AUTOHSCROLL - LTEXT "",IDC_STATIC_NAME,0,0,234,8 - LISTBOX IDC_LP_TRANSFORM,0,21,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_LP_SHAPE,0,159,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_LP_CHR,0,214,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - COMBOBOX IDC_CB_PART_SHAPE,0,147,234,165,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_CB_LOD,114,201,120,165,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - COMBOBOX IDC_CB_PART_CHARACTER,0,201,111,165,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LISTBOX IDC_LP_CAMERA,0,63,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_LP_LIGHT,0,105,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_LP_MATERIAL,0,348,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - COMBOBOX IDC_CB_PLUG_CHARACTER,0,295,234,165,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LISTBOX IDC_LP_CHR_PART,0,253,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_LP_CHR_PLUG,0,309,234,39,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP -END - -IDD_ADDDTEX DIALOG DISCARDABLE 0, 0, 222, 145 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "ؽ ߰ϱ" -FONT 9, "" + LTEXT "Properties",IDC_STATIC_NAME,0,0,234,8 + LISTBOX IDC_LP_TRANSFORM,0,21,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_SHAPE,0,159,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CHR,0,214,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_PART_SHAPE,0,147,234,165,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_LOD,114,201,120,165,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_PART_CHARACTER,0,201,111,165,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CAMERA,0,63,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_LIGHT,0,105,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_MATERIAL,0,348,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_PLUG_CHARACTER,0,295,234,165,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CHR_PART,0,253,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_LP_CHR_PLUG,0,309,234,39,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP +END + +IDD_ADDDTEX DIALOGEX 0, 0, 222, 145 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Add texture" +FONT 9, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,168,2,50,66 PUSHBUTTON "Cancel",IDCANCEL,168,74,50,66 - LISTBOX IDC_ADDDTEXLIST,1,1,165,141,LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_ADDDTEXLIST,1,1,165,141,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END IDD_MODIFY_DTEX DIALOGEX 0, 0, 42, 75 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION EXSTYLE WS_EX_TOOLWINDOW CAPTION "Tile Control" -FONT 9, "", 0, 0, 0x1 +FONT 9, "Arial", 400, 0, 0x0 BEGIN PUSHBUTTON "CANCEL",IDCANCEL,0,60,42,15 DEFPUSHBUTTON "MIRROR",ID_MODIFY_DTEX_MIRROR,0,0,42,15 @@ -531,247 +698,155 @@ BEGIN END IDD_BROWSE_PATH DIALOGEX 0, 0, 167, 272 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Browse Path" -FONT 9, "", 0, 0, 0x1 +FONT 9, "??", 0, 0, 0x1 BEGIN DEFPUSHBUTTON "OK",IDOK,6,249,72,14 PUSHBUTTON "Cancel",IDCANCEL,90,249,68,14 - CONTROL "Tree1",IDC_BROWSE_TREE,"SysTreeView32",TVS_HASBUTTONS | - TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP, - 6,24,153,219 - COMBOBOX IDC_FILELIST,5,5,133,80,CBS_DROPDOWN | CBS_AUTOHSCROLL | - CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "Tree1",IDC_BROWSE_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP,6,24,153,219 + COMBOBOX IDC_FILELIST,5,5,133,80,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "->",IDC_SYNCH_FOLDERS,144,6,15,14 END -IDD_SET_LIGHTMAP DIALOG DISCARDABLE 0, 0, 123, 263 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Ʈ ׸" -FONT 9, "" +IDD_SET_LIGHTMAP DIALOGEX 0, 0, 123, 263 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Lightmap drawing" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - CONTROL "Slider1",IDC_LM_SLD_PEN_SIZE,"msctls_trackbar32", - TBS_AUTOTICKS | WS_TABSTOP,8,14,108,20 - CONTROL "Slider4",IDC_LM_SLD_HARD,"msctls_trackbar32",WS_TABSTOP, - 8,67,108,20 + CONTROL "Slider1",IDC_LM_SLD_PEN_SIZE,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,8,14,108,20 + CONTROL "Slider4",IDC_LM_SLD_HARD,"msctls_trackbar32",WS_TABSTOP,8,67,108,20 LTEXT "small",IDC_STATIC,14,39,22,8 LTEXT "large",IDC_STATIC,99,39,17,8 LTEXT "1%",IDC_STATIC,12,90,11,8 LTEXT "100%",IDC_STATIC,101,89,19,8 - CONTROL "ĥϱ",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | - WS_GROUP,8,177,46,10 - CONTROL "",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,65,177, - 46,10 - GROUPBOX "汽",IDC_STATIC,4,5,117,46 - GROUPBOX "",IDC_STATIC,4,58,117,46 - GROUPBOX "ĥϴ ",IDC_STATIC,4,160,117,37 - CONTROL "",IDC_STATIC_SELECTEDCOLOR,"Static",SS_BLACKFRAME,11, - 216,41,20 - GROUPBOX " ",IDC_STATIC,4,203,117,40 - PUSHBUTTON " ",IDC_BTN_SELECT_COLOR,61,218,50,14 - LTEXT " 콺 ư ׸ ֽϴ.", - IDC_STATIC,2,244,121,19 - CONTROL "Slider4",IDC_LM_SLD_OPACITY,"msctls_trackbar32", - WS_TABSTOP,8,117,108,20 + CONTROL "Paint",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,8,177,46,10 + CONTROL "Erase",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,65,177,46,10 + GROUPBOX "pen thickness",IDC_STATIC,4,5,117,46 + GROUPBOX "density",IDC_STATIC,4,58,117,46 + GROUPBOX "how to paint",IDC_STATIC,4,160,117,37 + CONTROL "",IDC_STATIC_SELECTEDCOLOR,"Static",SS_BLACKFRAME,11,216,41,20 + GROUPBOX "current color",IDC_STATIC,4,203,117,40 + PUSHBUTTON "pick a color",IDC_BTN_SELECT_COLOR,61,218,50,14 + LTEXT "You can draw a line with the right mouse button.",IDC_STATIC,2,244,121,19 + CONTROL "Slider4",IDC_LM_SLD_OPACITY,"msctls_trackbar32",WS_TABSTOP,8,117,108,20 LTEXT "1%",IDC_STATIC,12,139,11,8 LTEXT "100%",IDC_STATIC,101,139,19,8 GROUPBOX "Opacity",IDC_STATIC,4,107,117,46 END -IDD_LOAD_TILESET DIALOG DISCARDABLE 0, 0, 226, 253 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "ŸϼƮ ҷ" -FONT 9, "" +IDD_LOAD_TILESET DIALOGEX 0, 0, 226, 253 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Load tileset" +FONT 9, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,169,8,50,111 PUSHBUTTON "Cancel",IDCANCEL,169,134,50,111 - LISTBOX IDC_LIST_LOAD_TILESET,7,7,158,239,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_LOAD_TILESET,7,7,158,239,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END -IDD_SAVE_NEW_TILESET DIALOG DISCARDABLE 0, 0, 327, 261 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "̸ ŸϼƮ ϱ" -FONT 9, "" +IDD_SAVE_NEW_TILESET DIALOGEX 0, 0, 327, 261 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Save tileset with a new name" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "",IDOK,270,15,50,102 - PUSHBUTTON "",IDCANCEL,270,143,50,102 - LISTBOX IDC_LIST_TILESET,7,19,255,188,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,270,15,50,102 + PUSHBUTTON "CANCEL",IDCANCEL,270,143,50,102 + LISTBOX IDC_LIST_TILESET,7,21,255,186,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_EDIT_NEWTILESETNAME,7,227,254,14,ES_AUTOHSCROLL - LTEXT "* ϴ ŸϼƮ",IDC_STATIC,7,7,80,8 - LTEXT "* ŸϼƮ ̸",IDC_STATIC,7,216,73,8 + LTEXT "* Current tilesets""",IDC_STATIC,7,10,80,8 + LTEXT "* Tileset name to save""",IDC_STATIC,7,216,73,8 END -IDD_MAKE_NPCPATH DIALOG DISCARDABLE 0, 0, 153, 573 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Make NPC Path " -FONT 9, "" -BEGIN - CONTROL "ۿ",IDC_RDO_START_RGN,"Button", - BS_AUTORADIOBUTTON | WS_GROUP,11,252,60,10 - CONTROL "游",IDC_RDO_MAKE_PATH,"Button",BS_AUTORADIOBUTTON, - 11,264,43,10 - CONTROL "Ȱ",IDC_RDO_MAKE_ACT_RGN,"Button", - BS_AUTORADIOBUTTON,11,277,64,10 - COMBOBOX IDC_COMBO_NPC,4,112,145,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "NPC :",IDC_STATIC,5,99,36,8 - EDITTEXT IDC_EDIT_NUM_NPC,35,131,31,14,ES_AUTOHSCROLL - LTEXT "",IDC_STATIC,70,135,15,8 - PUSHBUTTON "",IDC_BTN_RECORD,2,337,72,14 - LTEXT "* ġ NPC",IDC_STATIC,6,357,51,8 - LISTBOX IDC_LIST_NPCPATH,3,369,147,180,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "ҷ",IDC_BTN_LOAD_PATHSET,4,39,31,14 - PUSHBUTTON "ϱ",IDC_BTN_SAVE_PATHSET,37,39,32,14 - LTEXT "* ̸",IDC_STATIC,3,12,50,8 - LTEXT "/npclist/pathset.txt",IDC_PATHSETNAME,4,24,117,8 - GROUPBOX "* ϰ *",IDC_STATIC,0,1,153,58 - LTEXT "regen time :",IDC_STATIC,5,149,39,8 - EDITTEXT IDC_EDIT_REGENTIME,46,147,31,14,ES_AUTOHSCROLL - LTEXT "sec.",IDC_STATIC,79,149,15,8 - LTEXT "ൿŸ :",IDC_STATIC,5,167,33,8 - COMBOBOX IDC_COMBO_ACTIONTYPE,40,162,73,95,CBS_DROPDOWN | - CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT " ?",IDC_STATIC,6,133,27,8 - PUSHBUTTON "",IDC_BTN_SAVE_SERVER_PATHSET,71,39,50,14 - PUSHBUTTON "",IDC_BTN_PATH_MODIFY,78,337,72,14 - PUSHBUTTON "",IDC_BTN_PATH_DELETE,59,354,27,13 - GROUPBOX "",IDC_STATIC,3,243,147,48 - EDITTEXT IDC_EDT_NPCPATHNAME,4,319,146,14,ES_AUTOHSCROLL - LTEXT "* NPC ̸",IDC_STATIC,6,307,44,8 - LTEXT "* ִ :",IDC_STATIC,6,294,75,8 - LTEXT "32",IDC_NUM_POINT,83,294,8,8 - GROUPBOX " ?",IDC_STATIC,0,63,153,31 - CONTROL ". .^^",IDC_RDO_VIEW_NONMOVE,"Button", - BS_AUTORADIOBUTTON | WS_GROUP,7,77,50,10 - CONTROL "Ⱦ Ⱥ.-.-",IDC_RDO_VIEW_NONE,"Button", - BS_AUTORADIOBUTTON,56,77,64,10 - PUSHBUTTON "ֱ",IDC_BTN_SETCOLOR,119,302,33,14 - PUSHBUTTON "NPC о",IDC_BTN_LOAD_NPCLIST,89,97,61,14 - EDITTEXT IDC_EDT_TRANS_X,12,554,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_TRANS_Z,54,554,27,14,ES_AUTOHSCROLL - PUSHBUTTON "° ġ ű",IDC_BTN_TRANS,85,554,65,15 - LTEXT "x",IDC_STATIC,4,554,8,8 - LTEXT "z",IDC_STATIC,46,554,8,8 - LTEXT "ܼӼ:",IDC_STATIC,2,183,31,8 - COMBOBOX IDC_COMBO_NPC_ATTR_GROUP,33,181,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - LTEXT "Ӽ:",IDC_STATIC,2,198,31,8 - COMBOBOX IDC_COMBO_NPC_ATTR_REGEN,33,196,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - LTEXT "Ӽ:",IDC_STATIC,2,213,31,8 - COMBOBOX IDC_COMBO_NPC_ATTR_CREATE,33,211,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "load",IDC_BTN_LOAD_GROUP,132,179,20,14 - PUSHBUTTON "load",IDC_BTN_LOAD_REGEN,132,195,20,14 - PUSHBUTTON "load",IDC_BTN_LOAD_CREATE,132,211,20,14 - LTEXT "Ÿɼ:",IDC_STATIC,2,228,31,8 - COMBOBOX IDC_COMBO_NPC_OPTION,33,225,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "load",IDC_BTN_LOAD_OPTION,132,225,20,14 -END - -IDD_LOAD_NPCPATH DIALOG DISCARDABLE 0, 0, 231, 209 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Load NPC Path" -FONT 9, "" +IDD_LOAD_NPCPATH DIALOGEX 0, 0, 231, 209 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Load NPC Path" +FONT 9, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "Load",IDOK,180,6,50,95 PUSHBUTTON "Cancel",IDCANCEL,180,108,50,95 - LISTBOX IDC_LIST_NPCPATH,1,1,177,207,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_NPCPATH,1,1,177,207,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END -IDD_SAVE_NPCPATH DIALOG DISCARDABLE 0, 0, 247, 265 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_SAVE_NPCPATH DIALOGEX 0, 0, 247, 265 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Save NPC Path" -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "Save",IDOK,190,43,50,74 - PUSHBUTTON "Cancel",IDCANCEL,190,148,50,74 - LISTBOX IDC_LIST_NPCPATHFILENAME,7,7,171,226,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Save",IDOK,185,43,50,74 + PUSHBUTTON "Cancel",IDCANCEL,185,148,50,74 + LISTBOX IDC_LIST_NPCPATHFILENAME,7,7,171,226,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_EDIT_NPCPATHFILENAME,7,244,171,14,ES_AUTOHSCROLL END -IDD_SOW_SEED DIALOG DISCARDABLE 0, 0, 301, 229 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "Ǯɱ" -FONT 9, "" +IDD_SOW_SEED DIALOGEX 0, 0, 301, 229 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION +CAPTION "planting Grass & Sow" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - COMBOBOX IDC_CB_SEED,141,177,149,170,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_CB_TILEGROUP,1,177,137,171,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - LTEXT "* ɰ Ǯ",IDC_STATIC,7,137,43,8 - PUSHBUTTON "",IDC_BTN_DEL_SEED,17,151,33,13 - PUSHBUTTON "Ǯ б",IDC_BTN_GRASSINFOLOAD,157,106,64,23 - PUSHBUTTON "׵Ÿ",IDC_BTN_SAVEGAME,0,201,214,28 + COMBOBOX IDC_CB_SEED,141,177,149,170,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_CB_TILEGROUP,1,177,137,171,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "* Planted grasses",IDC_STATIC,7,137,43,8 + PUSHBUTTON "Clear",IDC_BTN_DEL_SEED,17,151,33,13 + PUSHBUTTON "Grass Info Load",IDC_BTN_GRASSINFOLOAD,157,106,64,23 + PUSHBUTTON "Save Data",IDC_BTN_SAVEGAME,0,201,214,28 CONTROL "",IDC_STATIC_GRASS,"Static",SS_BLACKFRAME,5,5,130,121 - PUSHBUTTON "Ǯ ",IDC_BTN_GRASSINFOSAVE,224,106,64,23 - GROUPBOX "Ÿϴ ",IDC_STATIC,153,11,142,32 + PUSHBUTTON "Grass Info Save",IDC_BTN_GRASSINFOSAVE,224,106,64,23 + GROUPBOX "Detail per tile",IDC_STATIC,153,11,142,32 GROUPBOX "Brush Size",IDC_STATIC,153,57,142,32 - GROUPBOX "",IDC_STATIC,153,135,142,32,WS_GROUP - CONTROL "Ǯɱ",IDC_RADIO_SOW,"Button",BS_AUTORADIOBUTTON,166, - 147,49,9 - CONTROL "׷켱",IDC_RADIO_SELECT,"Button",BS_AUTORADIOBUTTON, - 224,147,49,9 - PUSHBUTTON "",IDC_SEED_EXIT,223,200,66,28 - PUSHBUTTON "",IDC_BUTTON_RANDOM,89,141,53,24 - CONTROL "Slider1",IDC_S_TILE_DETAIL,"msctls_trackbar32",TBS_BOTH | - TBS_NOTICKS | WS_TABSTOP,161,27,128,12 - CONTROL "Slider2",IDC_SOW_BRUSH_SIZE,"msctls_trackbar32", - TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,161,69,128,12 -END - -IDD_MAKE_WALL DIALOG DISCARDABLE 0, 0, 93, 249 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION " " -FONT 9, "" + GROUPBOX "Select",IDC_STATIC,153,135,142,32,WS_GROUP + CONTROL "Plant Grass",IDC_RADIO_SOW,"Button",BS_AUTORADIOBUTTON,166,147,49,9 + CONTROL "Select Group",IDC_RADIO_SELECT,"Button",BS_AUTORADIOBUTTON,224,147,49,9 + PUSHBUTTON "Exit",IDC_SEED_EXIT,223,200,66,28 + PUSHBUTTON "Random",IDC_BUTTON_RANDOM,89,141,53,24 + CONTROL "Slider1",IDC_S_TILE_DETAIL,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,161,27,128,12 + CONTROL "Slider2",IDC_SOW_BRUSH_SIZE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,161,69,128,12 +END + +IDD_MAKE_WALL DIALOGEX 0, 0, 93, 249 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Make wall" +FONT 9, "Arial", 400, 0, 0x0 BEGIN EDITTEXT IDC_EDIT_WALL,0,16,92,14,ES_AUTOHSCROLL - LISTBOX IDC_LIST_WALL,0,69,92,180,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "",IDC_BTN_WALL_RECORD,8,33,36,14 - PUSHBUTTON "",IDC_BTN_WALL_EDIT,48,33,36,14 - PUSHBUTTON "",IDC_BTN_DELETE,41,53,27,14 - LTEXT "* ",IDC_STATIC,2,5,59,8 - LTEXT "* ",IDC_STATIC,2,57,36,8 -END - -IDD_EDIT_EVENT DIALOG DISCARDABLE 0, 0, 106, 373 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "̺Ʈ " -FONT 9, "" -BEGIN - LTEXT "* ̺Ʈ",IDC_STATIC,3,67,73,8 - LTEXT "* ̺Ʈ",IDC_STATIC,2,127,57,8 - LISTBOX IDC_EVENT_LIST,3,142,100,228,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "",IDC_BTN_EVENT_RECORD,3,100,48,14 - PUSHBUTTON "",IDC_BTN_EVENT_EDIT,55,100,48,14 - PUSHBUTTON "",IDC_BTN_EVENT_DEL,64,124,35,13 + LISTBOX IDC_LIST_WALL,0,69,92,180,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "?",IDC_BTN_WALL_RECORD,8,33,36,14 + PUSHBUTTON "?",IDC_BTN_WALL_EDIT,48,33,36,14 + PUSHBUTTON "del",IDC_BTN_DELETE,55,53,27,14 + LTEXT "Wall to be edited",IDC_STATIC,2,5,59,8 + LTEXT "* edited wall",IDC_STATIC,2,57,46,8 +END + +IDD_EDIT_EVENT DIALOGEX 0, 0, 106, 371 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Edit event" +FONT 9, "Arial", 400, 0, 0x0 +BEGIN + LTEXT "* Event currently being edited""",IDC_STATIC,3,67,95,8 + LTEXT "*Created event""",IDC_STATIC,2,127,57,8 + LISTBOX IDC_EVENT_LIST,3,142,100,228,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "?",IDC_BTN_EVENT_RECORD,3,100,48,14 + PUSHBUTTON "?",IDC_BTN_EVENT_EDIT,55,100,48,14 + PUSHBUTTON "Del",IDC_BTN_EVENT_DEL,64,124,35,13 LTEXT "NONE",IDC_STATIC_CURR_EVENT,7,81,89,8 - GROUPBOX "* *",IDC_STATIC,4,4,99,53 + GROUPBOX "*File being edited*",IDC_STATIC,4,4,99,53 LTEXT "^^",IDC_STATIC_CURR_FILENAME,8,17,91,10 - PUSHBUTTON "ҷͺ",IDC_BTN_LOAD_EVTFILE,8,38,41,14 - PUSHBUTTON "Ҳ",IDC_BTN_SAVE_EVTFILE,56,38,41,14 + PUSHBUTTON "Load",IDC_BTN_LOAD_EVTFILE,8,38,41,14 + PUSHBUTTON "Save",IDC_BTN_SAVE_EVTFILE,56,38,41,14 END -IDD_EDIT_EVENT_ATTR DIALOG DISCARDABLE 0, 0, 245, 262 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "̺Ʈ " -FONT 10, "System" +IDD_EDIT_EVENT_ATTR DIALOGEX 0, 0, 245, 281 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Edit event" +FONT 10, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,191,6,50,192 PUSHBUTTON "Cancel",IDCANCEL,191,212,50,46 LTEXT "* Event ID :",IDC_STATIC,3,41,38,8 - EDITTEXT IDC_EDIT_EVENT_ATTR_ID,42,38,42,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_EVENT_ATTR_ID,53,38,84,14,ES_AUTOHSCROLL LTEXT "* Event Type :",IDC_STATIC,3,58,47,8 - EDITTEXT IDC_EDIT_EVENT_ATTR_TYPE,50,55,42,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_EVENT_ATTR_TYPE,52,55,84,14,ES_AUTOHSCROLL LTEXT "* con1 :",IDC_STATIC,3,81,26,8 LTEXT "* con2 :",IDC_STATIC,3,98,26,8 LTEXT "* con3 :",IDC_STATIC,3,116,26,8 @@ -793,123 +868,110 @@ BEGIN EDITTEXT IDC_EDIT_EVENT_ATTR_EXE4,32,227,150,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_EVENT_ATTR_EXE5,32,244,150,14,ES_AUTOHSCROLL LTEXT "* Event Name :",IDC_STATIC,3,24,50,8 - EDITTEXT IDC_EDIT_EVENT_ATTR_NAME,53,21,82,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_EVENT_ATTR_NAME,54,21,82,14,ES_AUTOHSCROLL LTEXT "* Zone ID : ",IDC_STATIC,3,6,38,8 - EDITTEXT IDC_EDIT_EVENT_ZONE_ID,41,4,49,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_EVENT_ZONE_ID,55,4,81,14,ES_AUTOHSCROLL END -IDD_POND_PROPERTY DIALOG DISCARDABLE 0, 0, 159, 228 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Pond Propertys" -FONT 10, "System" +IDD_POND_PROPERTY DIALOGEX 0, 0, 159, 312 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Pond Properties" +FONT 10, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",IDOK,0,133,159,58 - PUSHBUTTON "Cancel",IDCANCEL,0,190,159,37 - LISTBOX IDC_LP_POND,0,0,159,132,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,0,269,159,19 + PUSHBUTTON "Cancel",IDCANCEL,0,289,159,22 + LISTBOX IDC_LP_POND,0,0,159,130,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP PUSHBUTTON "Edit Pond",IDC_BUTTON_EDITPOND,79,182,80,15 PUSHBUTTON "Move Pond",IDC_BUTTON_MOVE_POND,0,197,79,14 - PUSHBUTTON "",IDC_BUTTON_STATION_POND,0,211,79,15 + PUSHBUTTON "Reorder",IDC_BUTTON_STATION_POND,0,211,79,15 PUSHBUTTON "Delete Pond",IDC_BUTTON_DELETE_POND,79,211,80,15 - LTEXT "Static",IDC_WIDTHLENGTH,34,164,41,9 - LTEXT "Static",IDC_HEIGHTLENGTH,111,164,43,9 - LTEXT "x Ÿ : ",IDC_STATICNAME1,6,164,26,9 - LTEXT "y Ÿ : ",IDC_STATICNAME2,80,164,26,8 - PUSHBUTTON "UV ",IDC_BU_RECALCUV,0,182,79,15 - PUSHBUTTON "׷",IDC_GROUP,79,197,80,14 - GROUPBOX " Ÿ",IDC_STATIC3,2,153,157,25 - COMBOBOX IDC_COMBO_GOPOND,80,136,73,76,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - LTEXT "ϴ ",IDC_STATIC4,5,138,70,11 -END - -IDD_LOAD_EVENT DIALOG DISCARDABLE 0, 0, 187, 217 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU + LTEXT "Static",IDC_WIDTHLENGTH,45,164,30,9 + LTEXT "Static",IDC_HEIGHTLENGTH,121,164,33,9 + LTEXT "x-distance:",IDC_STATICNAME1,6,164,36,9 + LTEXT "y-distance:",IDC_STATICNAME2,80,164,34,8 + PUSHBUTTON "UV reorder",IDC_BU_RECALCUV,0,182,79,15 + PUSHBUTTON "Group",IDC_GROUP,79,197,80,14 + GROUPBOX "distance between cells",IDC_STATIC3,2,153,157,25 + COMBOBOX IDC_COMBO_GOPOND,80,136,73,76,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "Pond you wanna go",IDC_STATIC4,5,138,70,11 +END + +IDD_LOAD_EVENT DIALOGEX 0, 0, 187, 217 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Dialog" -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,141,8,43,55 PUSHBUTTON "Cancel",IDCANCEL,141,69,43,55 - LISTBOX IDC_LIST_SAVED_EVT_FILE,3,4,135,209,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_SAVED_EVT_FILE,3,4,135,209,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END -IDD_SAVE_EVENT DIALOG DISCARDABLE 0, 0, 187, 283 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_SAVE_EVENT DIALOGEX 0, 0, 187, 283 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Save Event File " -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,137,172,47,51 PUSHBUTTON "Cancel",IDCANCEL,137,227,47,51 - LISTBOX IDC_LIST_SAVED_EVT_FILE,3,16,131,232,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_SAVED_EVT_FILE,3,16,131,232,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_EDIT_NEW_EVT_FILE,3,265,131,14,ES_AUTOHSCROLL - LTEXT "* ִ ϵ",IDC_STATIC,2,5,59,8 - LTEXT "* ̸",IDC_STATIC,2,255,59,8 + LTEXT "* Current files""",IDC_STATIC,2,5,48,8 + LTEXT "* Filename to save """,IDC_STATIC,2,255,66,8 END -IDD_UNUSED_FILES DIALOG DISCARDABLE 0, 0, 379, 363 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Ⱦ " -FONT 9, "" +IDD_UNUSED_FILES DIALOGEX 0, 0, 379, 363 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Delete Unused Files" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - LISTBOX IDC_LIST_FILES,3,15,372,179,LBS_SORT | - LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "õ ",IDC_DELETE,3,197,312,30 - PUSHBUTTON "ݱ",ID_CANCEL,315,197,60,30 - LTEXT " ִ Ʈ",IDC_STATIC,3,237,63,9 - LISTBOX IDC_LIST_INVALID_OBJECTS,3,249,372,111,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_FILES,3,15,372,179,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Clear selected files",IDC_DELETE,3,197,312,30 + PUSHBUTTON "Cancel",ID_CANCEL,315,197,60,30 + LTEXT "object in error",IDC_STATIC,3,237,63,9 + LISTBOX IDC_LIST_INVALID_OBJECTS,3,249,372,111,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END -IDD_MAKE_REGEN_USER DIALOG DISCARDABLE 0, 0, 125, 311 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_MAKE_REGEN_USER DIALOGEX 0, 0, 125, 311 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Make Region Regen User" -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - LTEXT "* ġ REGION",-1,3,85,55,8 - LISTBOX IDC_LIST_REGENUSERREGION,1,97,122,211,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "ҷ",IDC_BTN_LOAD_PATHSET,13,62,31,14 - PUSHBUTTON "ϱ",IDC_BTN_SAVE_PATHSET,46,62,32,14 - LTEXT "* ̸",-1,3,13,50,8 - GROUPBOX "* ϰ *",-1,1,1,122,79 - PUSHBUTTON "̸",IDC_BTN_SAVE_AS,80,62,41,14 - PUSHBUTTON "",IDC_BTN_PATH_DELETE,63,83,27,13 - EDITTEXT IDC_EDT_PATHNAME,3,25,118,32,ES_MULTILINE | ES_READONLY | - NOT WS_BORDER + LTEXT """Placed Region""",-1,3,85,55,8 + LISTBOX IDC_LIST_REGENUSERREGION,1,97,122,211,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Load",IDC_BTN_LOAD_PATHSET,13,62,31,14 + PUSHBUTTON "Save",IDC_BTN_SAVE_PATHSET,46,62,32,14 + LTEXT "* current file name""",-1,3,13,50,8 + GROUPBOX "* File Management *",-1,1,1,122,79 + PUSHBUTTON "Save as",IDC_BTN_SAVE_AS,80,62,41,14 + PUSHBUTTON "Del",IDC_BTN_PATH_DELETE,63,83,27,13 + EDITTEXT IDC_EDT_PATHNAME,3,25,118,32,ES_MULTILINE | ES_READONLY | NOT WS_BORDER END IDD_SHAPE_LIST DIALOGEX 0, 0, 166, 336 -STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_TOOLWINDOW CAPTION "Shape List" -FONT 9, "", 0, 0, 0x1 +FONT 9, "Arial", 400, 0, 0x0 BEGIN - CONTROL "",IDC_PREVIEW,"Static",SS_GRAYFRAME,3,233,88,98 - LISTBOX IDC_LIST_OBJ,0,18,165,212,LBS_SORT | - LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON " ",IDC_BTN_SORT,0,0,50,14 + CONTROL "",IDC_PREVIEW,"Static",SS_GRAYFRAME,3,247,151,84 + LISTBOX IDC_LIST_OBJ,0,18,165,212,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Sort",IDC_BTN_SORT,37,2,50,14 END -IDD_EDIT_WARP DIALOG DISCARDABLE 0, 0, 173, 375 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_EDIT_WARP DIALOGEX 0, 0, 237, 375 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "set warp " -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "ݱ",IDOK,127,360,45,14 - EDITTEXT IDC_EDIT_ID,41,9,40,14,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,127,360,45,14 + EDITTEXT IDC_EDIT_ID,43,9,123,14,ES_AUTOHSCROLL LTEXT "ID :",IDC_STATIC,23,9,12,8 - LTEXT "̸ :",IDC_STATIC,16,25,19,8 - EDITTEXT IDC_EDIT_NAME,41,25,128,14,ES_AUTOHSCROLL - LTEXT "ǹ :",IDC_STATIC,9,41,26,8 - EDITTEXT IDC_EDIT_AGREE,41,41,128,86,ES_MULTILINE | - ES_AUTOVSCROLL + LTEXT "Name:",IDC_STATIC,11,25,25,8 + EDITTEXT IDC_EDIT_NAME,43,25,122,14,ES_AUTOHSCROLL + LTEXT "Agreement:",IDC_STATIC,5,41,40,8 + EDITTEXT IDC_EDIT_AGREE,43,41,122,86,ES_MULTILINE | ES_AUTOVSCROLL EDITTEXT IDC_EDIT_MONEY,41,130,40,14,ES_AUTOHSCROLL - LTEXT " :",IDC_STATIC,23,130,12,8 + LTEXT "? :",IDC_STATIC,23,130,12,8 EDITTEXT IDC_EDIT_ZONE,41,147,40,14,ES_AUTOHSCROLL LTEXT "Zone ID :",IDC_STATIC,2,147,31,8 EDITTEXT IDC_EDIT_POS_X,41,164,40,14,ES_AUTOHSCROLL @@ -918,62 +980,56 @@ BEGIN EDITTEXT IDC_EDIT_POS_Z,129,164,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_RAD,41,181,40,14,ES_AUTOHSCROLL LTEXT "Rad. :",IDC_STATIC,15,181,20,8 - LISTBOX IDC_LIST_WARP,0,216,172,140,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_WARP,0,216,172,140,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LTEXT "List",IDC_STATIC,3,204,12,8 - PUSHBUTTON "",IDC_BTN_DELETE,24,202,29,14 - PUSHBUTTON "",IDC_BTN_UPDATE,88,202,29,14 - PUSHBUTTON "",IDC_BTN_EDIT,56,202,29,14 - GROUPBOX "edit..",IDC_STATIC,0,0,172,199 + PUSHBUTTON "DEL",IDC_BTN_DELETE,24,202,29,14 + PUSHBUTTON "?",IDC_BTN_UPDATE,88,202,29,14 + PUSHBUTTON "?",IDC_BTN_EDIT,56,202,29,14 + GROUPBOX "edit..",IDC_STATIC,0,4,207,194 PUSHBUTTON "Export",IDC_BTN_EXPORT,1,360,41,14 PUSHBUTTON "Import",IDC_BTN_IMPORT,47,360,41,14 END -IDD_SAVE_DIVIDE DIALOG DISCARDABLE 0, 0, 368, 423 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "߶ ϱ" -FONT 9, "ü" +IDD_SAVE_DIVIDE DIALOGEX 0, 0, 369, 274 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Cut and Save" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "Save",IDOK,316,409,50,14 - PUSHBUTTON "Cancel",IDCANCEL,1,409,50,14 - LTEXT "*ü ũ:",IDC_STATIC,4,4,64,8 - LTEXT "4096m",IDC_STC_TOTAL_SIZE,69,4,21,8 - COMBOBOX IDC_CB_DIVISION,133,0,67,122,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - LTEXT "*:",IDC_STATIC,100,4,32,8 - CONTROL "",IDC_STATIC_MINIMAP,"Static",SS_BLACKFRAME,0,17,368, - 389 + DEFPUSHBUTTON "Save",IDOK,316,260,50,14 + PUSHBUTTON "Cancel",IDCANCEL,1,260,50,14 + LTEXT "*Size of the entire map:",IDC_STATIC,4,4,107,8 + LTEXT "4096m",IDC_STC_TOTAL_SIZE,116,4,21,8 + COMBOBOX IDC_CB_DIVISION,265,2,67,122,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "Divide",IDC_STATIC,219,4,32,8 + CONTROL "",IDC_STATIC_MINIMAP,"Static",SS_BLACKFRAME,0,17,369,235 END -IDD_CONTROL_HEIGHT_SCALE DIALOG DISCARDABLE 0, 0, 83, 231 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION " " -FONT 9, "ü" +IDD_CONTROL_HEIGHT_SCALE DIALOGEX 0, 0, 83, 231 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Height scale" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_VERT | TBS_BOTH | WS_TABSTOP,5,0,37,231 + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,5,0,37,231 END -IDD_EDIT_BGM DIALOG DISCARDABLE 0, 0, 298, 339 -STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "ȯ Ҹȿ ϱ" -FONT 9, "" +IDD_EDIT_BGM DIALOGEX 0, 0, 298, 339 +STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Setting environmental sound effects" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - LISTBOX IDC_LIST_SOUNDGROUP,5,13,90,306,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_SOUNDGROUP,5,14,90,305,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LTEXT "none",IDC_BGM_NAME1,109,17,153,8 LTEXT "Static",IDC_BGM_NAME2,109,33,153,8 LTEXT "Static",IDC_BGM_NAME3,109,49,153,8 LTEXT "Static",IDC_BGM_NAME4,109,65,153,8 - GROUPBOX "* *",IDC_STATIC,103,4,192,78,BS_CENTER - PUSHBUTTON "߰",IDC_BTN_ADD_SOUNDGROUP,7,321,26,14 + GROUPBOX "* music *",IDC_STATIC,103,4,192,78,BS_CENTER + PUSHBUTTON "Add",IDC_BTN_ADD_SOUNDGROUP,7,321,26,14 LTEXT "Static",IDC_BGE_NAME1,109,101,153,8 LTEXT "Static",IDC_BGE_NAME2,109,117,153,8 LTEXT "Static",IDC_BGE_NAME3,109,133,153,8 LTEXT "Static",IDC_BGE_NAME4,109,149,153,8 - GROUPBOX "* ȿ *",IDC_STATIC,103,87,192,78,BS_CENTER - LISTBOX IDC_LIST_SOUNDINFO,126,178,165,155,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "* effect *",IDC_STATIC,103,87,192,78,BS_CENTER + LISTBOX IDC_LIST_SOUNDINFO,126,178,165,155,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LTEXT "Static",IDC_BGM_REGENTIME1,268,17,19,8 LTEXT "Static",IDC_BGM_REGENTIME2,268,33,19,8 LTEXT "Static",IDC_BGM_REGENTIME3,268,49,19,8 @@ -982,105 +1038,157 @@ BEGIN LTEXT "Static",IDC_BGE_REGENTIME2,268,117,19,8 LTEXT "Static",IDC_BGE_REGENTIME3,268,133,19,8 LTEXT "Static",IDC_BGE_REGENTIME4,268,149,19,8 - PUSHBUTTON "",IDC_BTN_DELETE_SOUNDGROUP,35,321,26,14 + PUSHBUTTON "Delete",IDC_BTN_DELETE_SOUNDGROUP,35,321,26,14 PUSHBUTTON "->",IDC_BTN_INPUT_INFO,106,180,17,18 - GROUPBOX "* Ҹ *",IDC_STATIC,103,167,192,170, - BS_CENTER - PUSHBUTTON "",IDC_BTN_INPUT_INFO_EDIT,106,202,17,18 - PUSHBUTTON "",IDC_BTN_INPUT_INFO_DEL,106,224,17,18 - GROUPBOX "* Ҹ *",IDC_STATIC,2,4,97,334,BS_CENTER - PUSHBUTTON "",IDC_BTN_MODIFY_SOUNDGROUP,63,321,26,14 + GROUPBOX "* Edited Sound Information *",IDC_STATIC,103,167,192,170,BS_CENTER + PUSHBUTTON "Edit",IDC_BTN_INPUT_INFO_EDIT,106,202,17,18 + PUSHBUTTON "Del",IDC_BTN_INPUT_INFO_DEL,106,224,17,18 + GROUPBOX "* List of sound bundles *",IDC_STATIC,2,4,97,334,BS_CENTER + PUSHBUTTON "Update",IDC_BTN_MODIFY_SOUNDGROUP,63,321,29,14 END -IDD_ADD_SOUNDGROUP DIALOG DISCARDABLE 0, 0, 255, 233 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Ҹ߰" -FONT 9, "" +IDD_ADD_SOUNDGROUP DIALOGEX 0, 0, 319, 233 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Adding a set of sounds" +FONT 9, "Arial", 400, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,195,214,52,16 PUSHBUTTON "Cancel",IDCANCEL,136,214,52,16 - LTEXT "̸ :",IDC_STATIC,3,3,32,8 - EDITTEXT IDC_EDT_GROUPNAME,37,0,215,14,ES_AUTOHSCROLL - GROUPBOX "* *",IDC_STATIC,0,21,255,91 - LTEXT "- ̸ -",IDC_STATIC,5,34,40,8 - PUSHBUTTON "ã",IDC_BTN_BGM_NAME1,192,46,30,14 + LTEXT "Sound Name:",IDC_STATIC,3,3,49,8 + EDITTEXT IDC_EDT_GROUPNAME,51,0,201,14,ES_AUTOHSCROLL + GROUPBOX "* music *",IDC_STATIC,0,21,319,91 + LTEXT "- file name -",IDC_STATIC,5,34,40,8 + PUSHBUTTON "find file",IDC_BTN_BGM_NAME1,224,46,30,14 LTEXT "none",IDC_BGM_NAME1,5,46,153,8 LTEXT "Static",IDC_BGM_NAME2,5,62,153,8 LTEXT "Static",IDC_BGM_NAME3,5,78,153,8 LTEXT "Static",IDC_BGM_NAME4,5,94,153,8 - PUSHBUTTON "ã",IDC_BTN_BGM_NAME2,192,62,30,14 - PUSHBUTTON "ã",IDC_BTN_BGM_NAME3,192,78,30,14 - PUSHBUTTON "ã",IDC_BTN_BGM_NAME4,192,94,30,14 - EDITTEXT IDC_EDT_BGM_REGEN1,225,46,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_BGM_REGEN2,225,62,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_BGM_REGEN3,225,78,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_BGM_REGEN4,225,94,27,14,ES_AUTOHSCROLL - LTEXT "- Ÿ -",IDC_STATIC,206,34,40,8 - GROUPBOX "* ȿ *",IDC_STATIC,0,117,255,91 - LTEXT "- ̸ -",IDC_STATIC,5,129,40,8 - PUSHBUTTON "ã",IDC_BTN_BGE_NAME1,192,141,30,14 + PUSHBUTTON "find file",IDC_BTN_BGM_NAME2,224,62,30,14 + PUSHBUTTON "find file",IDC_BTN_BGM_NAME3,224,78,30,14 + PUSHBUTTON "find file",IDC_BTN_BGM_NAME4,224,94,30,14 + EDITTEXT IDC_EDT_BGM_REGEN1,265,46,47,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_BGM_REGEN2,265,62,47,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_BGM_REGEN3,265,78,46,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_BGM_REGEN4,265,94,47,14,ES_AUTOHSCROLL + LTEXT "- Regentime -",IDC_STATIC,206,34,40,8 + GROUPBOX "* effect *",IDC_STATIC,0,117,319,91 + LTEXT "- file name -",IDC_STATIC,5,129,40,8 + PUSHBUTTON "find file",IDC_BTN_BGE_NAME1,220,141,30,14 LTEXT "none",IDC_BGE_NAME1,5,141,153,8 LTEXT "Static",IDC_BGE_NAME2,5,157,153,8 LTEXT "Static",IDC_BGE_NAME3,5,173,153,8 LTEXT "Static",IDC_BGE_NAME4,5,189,153,8 - PUSHBUTTON "ã",IDC_BTN_BGE_NAME2,192,157,30,14 - PUSHBUTTON "ã",IDC_BTN_BGE_NAME3,192,173,30,14 - PUSHBUTTON "ã",IDC_BTN_BGE_NAME4,192,189,30,14 - EDITTEXT IDC_EDT_BGE_REGEN1,225,141,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_BGE_REGEN2,225,157,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_BGE_REGEN3,225,173,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_BGE_REGEN4,225,189,27,14,ES_AUTOHSCROLL - LTEXT "- Ÿ -",IDC_STATIC,206,129,40,8 - PUSHBUTTON "",IDC_BTN_DEL_BGM_NAME1,170,46,20,14 - PUSHBUTTON "",IDC_BTN_DEL_BGM_NAME2,170,62,20,14 - PUSHBUTTON "",IDC_BTN_DEL_BGM_NAME3,170,78,20,14 - PUSHBUTTON "",IDC_BTN_DEL_BGM_NAME4,170,94,20,14 - PUSHBUTTON "",IDC_BTN_DEL_BGE_NAME1,170,142,20,14 - PUSHBUTTON "",IDC_BTN_DEL_BGE_NAME2,170,158,20,14 - PUSHBUTTON "",IDC_BTN_DEL_BGE_NAME3,170,174,20,14 - PUSHBUTTON "",IDC_BTN_DEL_BGE_NAME4,170,190,20,14 -END - -IDD_ALL_MAP_VIEW DIALOG DISCARDABLE 0, 0, 257, 276 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "ü " -FONT 10, "System" + PUSHBUTTON "find file",IDC_BTN_BGE_NAME2,220,157,30,14 + PUSHBUTTON "find file",IDC_BTN_BGE_NAME3,220,173,30,14 + PUSHBUTTON "find file",IDC_BTN_BGE_NAME4,220,189,30,14 + EDITTEXT IDC_EDT_BGE_REGEN1,264,141,48,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_BGE_REGEN2,264,157,48,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_BGE_REGEN3,264,173,48,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_BGE_REGEN4,264,189,48,14,ES_AUTOHSCROLL + LTEXT "- Regentime -",IDC_STATIC,206,129,40,8 + PUSHBUTTON "delete",IDC_BTN_DEL_BGM_NAME1,170,46,40,14 + PUSHBUTTON "delete",IDC_BTN_DEL_BGM_NAME2,170,62,40,14 + PUSHBUTTON "delete",IDC_BTN_DEL_BGM_NAME3,170,78,40,14 + PUSHBUTTON "delete",IDC_BTN_DEL_BGM_NAME4,170,94,40,14 + PUSHBUTTON "delete",IDC_BTN_DEL_BGE_NAME1,170,142,37,14 + PUSHBUTTON "delete",IDC_BTN_DEL_BGE_NAME2,170,158,37,14 + PUSHBUTTON "delete",IDC_BTN_DEL_BGE_NAME3,170,174,38,14 + PUSHBUTTON "delete",IDC_BTN_DEL_BGE_NAME4,170,190,37,14 +END + +IDD_ALL_MAP_VIEW DIALOGEX 0, 0, 257, 276 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION +CAPTION "View full map" +FONT 10, "Arial", 400, 0, 0x0 BEGIN CONTROL "",IDC_MAP_VIEW,"Static",SS_BLACKFRAME,0,0,256,256 - PUSHBUTTON " Ʈ",IDC_MAP_UPDATA,39,260,76,12 + PUSHBUTTON "Map Update",IDC_MAP_UPDATA,39,260,76,12 PUSHBUTTON "CANCEL",IDC_MAP_VIEW_CANCEL,119,259,76,12 END -IDD_LIGHT DIALOG DISCARDABLE 0, 0, 139, 329 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_LIGHT DIALOGEX 0, 0, 139, 329 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Lights" -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",IDOK,0,0,6,6,NOT WS_VISIBLE + DEFPUSHBUTTON "OK",IDOK,7,311,41,14,NOT WS_VISIBLE PUSHBUTTON "Import",IDC_BTN_IMPORT,67,37,33,11 PUSHBUTTON "Export",IDC_BTN_EXPORT,103,37,33,11 LTEXT "^^",IDC_PATHNAME,4,12,131,20 - GROUPBOX "",IDC_STATIC,0,0,138,51,BS_LEFT - LISTBOX IDC_LIST_LIGHTS,0,145,138,183,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "",IDC_STATIC,0,2,138,49,BS_LEFT + LISTBOX IDC_LIST_LIGHTS,0,145,138,153,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP CONTROL "",IDC_STC_COLOR,"Static",SS_BLACKFRAME,27,74,107,14 - CONTROL "Slider1",IDC_SLD_RANGE,"msctls_trackbar32",TBS_BOTH | - TBS_NOTICKS | WS_TABSTOP,29,90,106,15 + CONTROL "Slider1",IDC_SLD_RANGE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,29,90,106,15 LTEXT "Color :",IDC_STATIC,2,77,23,8 EDITTEXT IDC_EDT_NAME,27,57,107,14,ES_AUTOHSCROLL GROUPBOX "",IDC_STATIC,0,49,138,77 LTEXT "Name :",IDC_STATIC,2,60,23,8 LTEXT "Range :",IDC_STATIC,2,94,26,8 - CONTROL "Slider1",IDC_SLD_ATTEN,"msctls_trackbar32",TBS_BOTH | - TBS_NOTICKS | WS_TABSTOP,44,108,91,15 + CONTROL "Slider1",IDC_SLD_ATTEN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,44,108,91,15 LTEXT "Attenuation :",IDC_STATIC,2,111,41,8 - PUSHBUTTON "",IDC_BTN_DOWNLOAD,1,129,43,14 - PUSHBUTTON "",IDC_BTN_UPLOAD,47,129,43,14 + PUSHBUTTON "?",IDC_BTN_DOWNLOAD,1,129,43,14 + PUSHBUTTON "?",IDC_BTN_UPLOAD,47,129,43,14 PUSHBUTTON "Delete",IDC_BTN_DELETE,93,129,43,14 END +IDD_MAKE_NPCPATH DIALOG 0, 0, 163, 571 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Make NPC Path " +FONT 9, "" +BEGIN + CONTROL "Edit Start Region",IDC_RDO_START_RGN,"Button",BS_AUTORADIOBUTTON | WS_GROUP,11,252,66,10 + CONTROL "Make Path",IDC_RDO_MAKE_PATH,"Button",BS_AUTORADIOBUTTON,11,264,50,10 + CONTROL "Edit Action Region",IDC_RDO_MAKE_ACT_RGN,"Button",BS_AUTORADIOBUTTON,11,277,75,10 + COMBOBOX IDC_COMBO_NPC,4,112,145,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "NPC Type :",IDC_STATIC,5,99,38,8 + EDITTEXT IDC_EDIT_NUM_NPC,46,131,31,14,ES_AUTOHSCROLL + PUSHBUTTON "",IDC_BTN_RECORD,2,337,72,14 + LTEXT "* NPC paths..",IDC_STATIC,6,357,46,8 + LISTBOX IDC_LIST_NPCPATH,3,369,158,180,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Load",IDC_BTN_LOAD_PATHSET,4,39,31,14 + PUSHBUTTON "Save",IDC_BTN_SAVE_PATHSET,37,39,32,14 + LTEXT "* ̸",IDC_STATIC,3,12,50,8 + LTEXT "/npclist/pathset.txt",IDC_PATHSETNAME,4,24,117,8 + GROUPBOX "* File *",IDC_STATIC,0,1,159,58 + LTEXT "regen time :",IDC_STATIC,5,149,39,8 + EDITTEXT IDC_EDIT_REGENTIME,46,147,31,14,ES_AUTOHSCROLL + LTEXT "sec.",IDC_STATIC,79,149,15,8 + LTEXT "Action Type:",IDC_STATIC,5,167,41,8 + COMBOBOX IDC_COMBO_ACTIONTYPE,48,164,73,95,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "How many? :",IDC_STATIC,2,133,42,8 + PUSHBUTTON "Save Server Data",IDC_BTN_SAVE_SERVER_PATHSET,71,39,61,14 + PUSHBUTTON "",IDC_BTN_PATH_MODIFY,78,337,72,14 + PUSHBUTTON "Del",IDC_BTN_PATH_DELETE,59,354,27,13 + GROUPBOX "",IDC_STATIC,3,243,147,48 + EDITTEXT IDC_EDT_NPCPATHNAME,4,319,146,14,ES_AUTOHSCROLL + LTEXT "* Current NPC path name",IDC_STATIC,6,307,82,8 + LTEXT "* remaining path :",IDC_STATIC,6,294,58,8 + LTEXT "32",IDC_NUM_POINT,67,294,8,8 + GROUPBOX "View Movable Region",IDC_STATIC,0,63,162,31 + CONTROL "No",IDC_RDO_VIEW_NONMOVE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,7,77,25,10 + CONTROL "Yes",IDC_RDO_VIEW_NONE,"Button",BS_AUTORADIOBUTTON,56,77,29,10 + PUSHBUTTON "color",IDC_BTN_SETCOLOR,119,302,33,14 + PUSHBUTTON "Load NPC Type",IDC_BTN_LOAD_NPCLIST,89,97,61,14 + EDITTEXT IDC_EDT_TRANS_X,12,554,27,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDT_TRANS_Z,52,554,27,14,ES_AUTOHSCROLL + PUSHBUTTON "Move Whole NPC Path",IDC_BTN_TRANS,82,554,78,15,WS_DISABLED + LTEXT "x",IDC_STATIC,4,554,8,8 + LTEXT "z",IDC_STATIC,46,554,8,8 + LTEXT "Group Attr.:",IDC_STATIC,2,183,38,8 + COMBOBOX IDC_COMBO_NPC_ATTR_GROUP,41,181,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "Regen Attr.:",IDC_STATIC,2,198,39,8 + COMBOBOX IDC_COMBO_NPC_ATTR_REGEN,41,196,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "Create Attr.:",IDC_STATIC,2,213,39,8 + COMBOBOX IDC_COMBO_NPC_ATTR_CREATE,41,211,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "load",IDC_BTN_LOAD_GROUP,140,179,20,14 + PUSHBUTTON "load",IDC_BTN_LOAD_REGEN,140,195,20,14 + PUSHBUTTON "load",IDC_BTN_LOAD_CREATE,140,211,20,14 + LTEXT "Option:",IDC_STATIC,2,228,24,8 + COMBOBOX IDC_COMBO_NPC_OPTION,41,225,97,179,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "load",IDC_BTN_LOAD_OPTION,140,225,20,14 +END + -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -1103,33 +1211,24 @@ BEGIN BEGIN BLOCK "000004b0" BEGIN - VALUE "Comments", "\0" - VALUE "CompanyName", "noah system\0" - VALUE "FileDescription", "N3ME_debug\0" - VALUE "FileVersion", "2, 4, 2, 1440\0" - VALUE "InternalName", "N3ME_debug\0" - VALUE "LegalCopyright", "Copyright 2002\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "N3ME_debug.exe\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "noah system N3ME_debug\0" - VALUE "ProductVersion", "2, 4, 2, 1440\0" - VALUE "SpecialBuild", "\0" + VALUE "CompanyName", "noah system" + VALUE "FileDescription", "N3ME_debug" + VALUE "FileVersion", "2, 4, 2, 1440" + VALUE "InternalName", "N3ME_debug" + VALUE "LegalCopyright", "Copyright ? 2002" + VALUE "OriginalFilename", "N3ME_debug.exe" + VALUE "ProductName", "noah system N3ME_debug" + VALUE "ProductVersion", "2, 4, 2, 1440" END BLOCK "041204b0" BEGIN - VALUE "Comments", "\0" - VALUE "CompanyName", "\0" - VALUE "FileDescription", "NoahSystem 3D Map Editor\0" - VALUE "FileVersion", "2, 4, 2, 1440\0" - VALUE "InternalName", "N3ME\0" - VALUE "LegalCopyright", "Copyright (C) 2001\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "N3ME.EXE\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "N3MapEditor\0" - VALUE "ProductVersion", "2, 4, 2, 1440\0" - VALUE "SpecialBuild", "\0" + VALUE "FileDescription", "NoahSystem 3D Map Editor" + VALUE "FileVersion", "2, 4, 2, 1440" + VALUE "InternalName", "N3ME" + VALUE "LegalCopyright", "Copyright (C) 2001" + VALUE "OriginalFilename", "N3ME.EXE" + VALUE "ProductName", "N3MapEditor" + VALUE "ProductVersion", "2, 4, 2, 1440" END END BLOCK "VarFileInfo" @@ -1138,8 +1237,6 @@ BEGIN END END -#endif // !_MAC - ///////////////////////////////////////////////////////////////////////////// // @@ -1147,7 +1244,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_ABOUTBOX, DIALOG BEGIN @@ -1157,17 +1254,24 @@ BEGIN BOTTOMMARGIN, 48 END + IDR_MAINFRAME, DIALOG + BEGIN + RIGHTMARGIN, 475 + VERTGUIDE, 108 + END + IDD_SCENE_GRAPH, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 199 TOPMARGIN, 7 + BOTTOMMARGIN, 336 END IDD_BRUSH, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 119 + RIGHTMARGIN, 180 TOPMARGIN, 7 BOTTOMMARGIN, 165 END @@ -1185,6 +1289,15 @@ BEGIN LEFTMARGIN, 7 END + IDD_INPUT_ATTR, DIALOG + BEGIN + END + + IDD_INPUT_GROUP, DIALOG + BEGIN + RIGHTMARGIN, 151 + END + IDD_DEL_GROUP, DIALOG BEGIN LEFTMARGIN, 7 @@ -1195,13 +1308,14 @@ BEGIN IDD_DTEX_GROUP, DIALOG BEGIN + RIGHTMARGIN, 100 BOTTOMMARGIN, 482 END IDD_RIVER_PROPERTY, DIALOG BEGIN RIGHTMARGIN, 182 - BOTTOMMARGIN, 203 + BOTTOMMARGIN, 324 END IDD_BASE, DIALOG @@ -1231,6 +1345,10 @@ BEGIN BOTTOMMARGIN, 265 END + IDD_SET_LIGHTMAP, DIALOG + BEGIN + END + IDD_LOAD_TILESET, DIALOG BEGIN LEFTMARGIN, 7 @@ -1247,6 +1365,10 @@ BEGIN BOTTOMMARGIN, 254 END + IDD_LOAD_NPCPATH, DIALOG + BEGIN + END + IDD_SAVE_NPCPATH, DIALOG BEGIN LEFTMARGIN, 7 @@ -1255,34 +1377,87 @@ BEGIN BOTTOMMARGIN, 258 END + IDD_SOW_SEED, DIALOG + BEGIN + END + + IDD_MAKE_WALL, DIALOG + BEGIN + END + IDD_EDIT_EVENT, DIALOG BEGIN - BOTTOMMARGIN, 372 + BOTTOMMARGIN, 370 + END + + IDD_EDIT_EVENT_ATTR, DIALOG + BEGIN + BOTTOMMARGIN, 262 END IDD_POND_PROPERTY, DIALOG BEGIN - BOTTOMMARGIN, 227 + BOTTOMMARGIN, 311 + END + + IDD_LOAD_EVENT, DIALOG + BEGIN END IDD_SAVE_EVENT, DIALOG BEGIN BOTTOMMARGIN, 280 END -END -#endif // APSTUDIO_INVOKED + IDD_UNUSED_FILES, DIALOG + BEGIN + END -///////////////////////////////////////////////////////////////////////////// -// -// Cursor -// + IDD_MAKE_REGEN_USER, DIALOG + BEGIN + END + + IDD_SHAPE_LIST, DIALOG + BEGIN + END + + IDD_EDIT_WARP, DIALOG + BEGIN + RIGHTMARGIN, 207 + END + + IDD_SAVE_DIVIDE, DIALOG + BEGIN + RIGHTMARGIN, 368 + END + + IDD_CONTROL_HEIGHT_SCALE, DIALOG + BEGIN + END + + IDD_EDIT_BGM, DIALOG + BEGIN + END + + IDD_ADD_SOUNDGROUP, DIALOG + BEGIN + RIGHTMARGIN, 255 + END + + IDD_ALL_MAP_VIEW, DIALOG + BEGIN + END + + IDD_LIGHT, DIALOG + BEGIN + END + + IDD_MAKE_NPCPATH, DIALOG + BEGIN + END +END +#endif // APSTUDIO_INVOKED -IDC_MOVE CURSOR DISCARDABLE "res\\move.cur" -IDC_ROTATE CURSOR DISCARDABLE "res\\rotate.cur" -IDC_ZOOM CURSOR DISCARDABLE "res\\zoom.cur" -IDC_TRANSFORM CURSOR DISCARDABLE "res\\transform.cur" -IDC_LOAD CURSOR DISCARDABLE "res\\load.cur" ///////////////////////////////////////////////////////////////////////////// // @@ -1312,359 +1487,335 @@ END ///////////////////////////////////////////////////////////////////////////// // -// String Table +// AFX_DIALOG_LAYOUT // -STRINGTABLE PRELOAD DISCARDABLE +IDD_ABOUTBOX AFX_DIALOG_LAYOUT BEGIN - IDR_MAINFRAME "N3ME\n\nN3ME\nN3ME (*.n3m)\n.n3m\nN3ME.Document\nN3ME Document" + 0 END -STRINGTABLE PRELOAD DISCARDABLE +IDD_ADD_SOUNDGROUP AFX_DIALOG_LAYOUT BEGIN - AFX_IDS_APP_TITLE "N3ME" - AFX_IDS_IDLEMESSAGE "غ" + 0 END -STRINGTABLE DISCARDABLE +IDD_ADDDTEX AFX_DIALOG_LAYOUT BEGIN - ID_INDICATOR_EXT "EXT" - ID_INDICATOR_CAPS "CAP" - ID_INDICATOR_NUM "NUM" - ID_INDICATOR_SCRL "SCRL" - ID_INDICATOR_OVR "OVR" - ID_INDICATOR_REC "REC" + 0 END -STRINGTABLE DISCARDABLE +IDD_ALL_MAP_VIEW AFX_DIALOG_LAYOUT BEGIN - ID_FILE_NEW " ۼմϴ\n " - ID_FILE_OPEN " ϴ\n" - ID_FILE_CLOSE " ݽϴ\nݱ" - ID_FILE_SAVE " մϴ\n" - ID_FILE_SAVE_AS " ٸ ̸ մϴ\nٸ ̸ " + 0 END -STRINGTABLE DISCARDABLE +IDD_BASE AFX_DIALOG_LAYOUT BEGIN - ID_APP_ABOUT "α׷ , ۱ ǥմϴ\n" - ID_APP_EXIT " α׷ ϱ ϴ\n" + 0 END -STRINGTABLE DISCARDABLE +IDD_BRUSH AFX_DIALOG_LAYOUT BEGIN - ID_FILE_MRU_FILE1 " ϴ" - ID_FILE_MRU_FILE2 " ϴ" - ID_FILE_MRU_FILE3 " ϴ" - ID_FILE_MRU_FILE4 " ϴ" - ID_FILE_MRU_FILE5 " ϴ" - ID_FILE_MRU_FILE6 " ϴ" - ID_FILE_MRU_FILE7 " ϴ" - ID_FILE_MRU_FILE8 " ϴ" - ID_FILE_MRU_FILE9 " ϴ" - ID_FILE_MRU_FILE10 " ϴ" - ID_FILE_MRU_FILE11 " ϴ" - ID_FILE_MRU_FILE12 " ϴ" - ID_FILE_MRU_FILE13 " ϴ" - ID_FILE_MRU_FILE14 " ϴ" - ID_FILE_MRU_FILE15 " ϴ" - ID_FILE_MRU_FILE16 " ϴ" + 0 END -STRINGTABLE DISCARDABLE +IDD_CONTROL_HEIGHT_SCALE AFX_DIALOG_LAYOUT BEGIN - ID_NEXT_PANE " â ȯմϴ\n â" - ID_PREV_PANE " â ȯմϴ\n â" + 0 END -STRINGTABLE DISCARDABLE +IDD_DEL_GROUP AFX_DIALOG_LAYOUT BEGIN - ID_WINDOW_SPLIT " â ϴ\n" + 0 END -STRINGTABLE DISCARDABLE +IDD_DTEX_GROUP AFX_DIALOG_LAYOUT BEGIN - ID_EDIT_CLEAR " κ ϴ\n" - ID_EDIT_CLEAR_ALL " ϴ\n " - ID_EDIT_COPY " κ Ͽ Ŭ忡 ֽϴ\n" - ID_EDIT_CUT " κ ߶󳻾 Ŭ忡 ֽϴ\n߶󳻱" - ID_EDIT_FIND " ڿ ãϴ\nã" - ID_EDIT_PASTE "Ŭ ٿ ֽϴ\nٿֱ" - ID_EDIT_REPEAT " ݺմϴ\nݺ" - ID_EDIT_REPLACE " ڿ ٸ ڿ ٲߴϴ\nٲٱ" - ID_EDIT_SELECT_ALL " ü մϴ\nü " - ID_EDIT_UNDO " մϴ\n " - ID_EDIT_REDO " ٽ մϴ\nٽ " + 0 END -STRINGTABLE DISCARDABLE +IDD_EDIT_BGM AFX_DIALOG_LAYOUT BEGIN - ID_VIEW_TOOLBAR " ̰ų ϴ\n ȯ" - ID_VIEW_STATUS_BAR " ǥ ǥϰų ϴ\n ǥ ȯ" + 0 END -STRINGTABLE DISCARDABLE +IDD_EDIT_EVENT AFX_DIALOG_LAYOUT BEGIN - AFX_IDS_SCSIZE "â ũ⸦ մϴ" - AFX_IDS_SCMOVE "â ġ մϴ" - AFX_IDS_SCMINIMIZE "â ٿ ǥմϴ" - AFX_IDS_SCMAXIMIZE "â ִ ũ Ȯմϴ" - AFX_IDS_SCNEXTWINDOW " â ȯմϴ" - AFX_IDS_SCPREVWINDOW " â ȯմϴ" - AFX_IDS_SCCLOSE " â ݰ ϴ" + 0 END -STRINGTABLE DISCARDABLE +IDD_EDIT_EVENT_ATTR AFX_DIALOG_LAYOUT BEGIN - AFX_IDS_SCRESTORE "â ũ մϴ" - AFX_IDS_SCTASKLIST "۾ Ȱȭմϴ" + 0 END -STRINGTABLE DISCARDABLE +IDD_EDIT_WARP AFX_DIALOG_LAYOUT BEGIN - ID_CURSOR_SELECT "ü մϴ.\n" - ID_CURSOR_OBJ_BRUSH "ü ġմϴ.\nġ" - ID_FILLMODE_WIREFRAME "̾ ϴ\n̾ " - ID_FILLMODE_SOLID "ָ ϴ\nָ " - ID_CURSOR_ROTATE " ü ȸŵϴ.\nȸ" - ID_CURSOR_POS " ü ̵մϴ.\n̵" - ID_CURSOR_SCALE " ü Ȯ/մϴ.\nȮ/" + 0 END -STRINGTABLE DISCARDABLE +IDD_INPUT_ATTR AFX_DIALOG_LAYOUT BEGIN - ID_CURSOR_EDIT_TERRAIN " մϴ.\n" - ID_TIP_DROP " ü Դϴ.\nDrop" + 0 END -STRINGTABLE DISCARDABLE +IDD_INPUT_GROUP AFX_DIALOG_LAYOUT BEGIN - ID_CURSOR_SMOOTH_TERRAIN "Smooth Tool\nSmooth Tool" - ID_PROJECT_SET "Project θ մϴ.\\Project " - ID_FILE_COLORMAP_LOAD "÷ θϴ.(*.bmp)\\÷ б" - ID_FILE_COLORMAP_SAVE "÷ մϴ.(*.bmp)\\÷ " - ID_RESOURCE_PATH_SET "Resource File θ մϴ.\nResource " + 0 END -STRINGTABLE DISCARDABLE +IDD_LIGHT AFX_DIALOG_LAYOUT BEGIN - ID_VIEW_SELECTED_OBJECT_WIREFRAME - "õ Object Wire Frame \nõ Object Wire Frame " - ID_FILE_IMPORT_POST_DATA_FROM_SCENE - "*.N3Scene Ʈ ġ θ\nġ Import" + 0 END -#endif // Korean resources -///////////////////////////////////////////////////////////////////////////// +IDD_LOAD_EVENT AFX_DIALOG_LAYOUT +BEGIN + 0 +END +IDD_LOAD_NPCPATH AFX_DIALOG_LAYOUT +BEGIN + 0 +END -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources +IDD_LOAD_TILESET AFX_DIALOG_LAYOUT +BEGIN + 0 +END -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 +IDD_MAKE_WALL AFX_DIALOG_LAYOUT +BEGIN + 0 +END -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// +IDD_MODIFY_DTEX AFX_DIALOG_LAYOUT +BEGIN + 0 +END -IDR_MAINFRAME MENU PRELOAD DISCARDABLE +IDD_POND_PROPERTY AFX_DIALOG_LAYOUT BEGIN - POPUP "File(&F)" - BEGIN - MENUITEM "Set resource path(&R)...\tCtrl+R", ID_RESOURCE_PATH_SET - MENUITEM "New(&N)\tCtrl+N", ID_FILE_NEW - MENUITEM "Open(&O)...\tCtrl+O", ID_FILE_OPEN - MENUITEM "Save(&S)\tCtrl+S", ID_FILE_SAVE - MENUITEM "Save as(&A)...", ID_FILE_SAVE_AS - MENUITEM "Save with cutted", ID_FILE_SAVE_DIVIDE - MENUITEM SEPARATOR - MENUITEM "generate height data from VMesh", ID_FILE_IMPORT_HEIGHT - MENUITEM "Import height data from VMesh(&I)", ID_FILE_IMPORT - MENUITEM "Export HeightBMP", ID_FILE_EXPORT_HEIGHT_BMP - MENUITEM "Import HegihtBMP", ID_FILE_IMPORT_HEIGHT_BMP - MENUITEM SEPARATOR - MENUITEM "Open Shape", ID_FILE_IMPORT_SHAPES - MENUITEM "Save as game format(&E)...", ID_FILE_EXPORT - MENUITEM "Save as server format(&V)", ID_FILE_SERVER_DATA - MENUITEM "Import colormap(&C)", ID_FILE_COLORMAP_LOAD - MENUITEM "Export colormap", ID_FILE_COLORMAP_SAVE - MENUITEM "Save tile game formatted texture data", - ID_FILE_GAMETILETEX_SAVE - MENUITEM SEPARATOR - MENUITEM "Import *.N3Scene object position data", - ID_FILE_IMPORT_POST_DATA_FROM_SCENE + 0 +END - MENUITEM SEPARATOR - MENUITEM "Recent files", ID_FILE_MRU_FILE1, GRAYED - MENUITEM SEPARATOR - MENUITEM "Exit(&X)", ID_APP_EXIT - END - POPUP "Edit(&E)" - BEGIN - MENUITEM "Undo(&U)\tCtrl+Z", ID_EDIT_UNDO - MENUITEM SEPARATOR - MENUITEM "Cur(&T)\tCtrl+X", ID_EDIT_CUT - MENUITEM "Copy(&C)\tCtrl+C", ID_EDIT_COPY - MENUITEM "Paste(&P)\tCtrl+V", ID_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "Property(R)", ID_EDIT_PROPERTY - MENUITEM "Edit Detail Texture", ID_EDIT_DTEX - END - POPUP "View(&V)" - BEGIN - MENUITEM "Tool bar(&T)", ID_VIEW_TOOLBAR - MENUITEM "status bar(&S)", ID_VIEW_STATUS_BAR - MENUITEM "Source Object List(&C)", ID_VIEW_SOURCEOBJECT - MENUITEM "Output Object List(&O)", ID_VIEW_OUTPUTOBJECT - MENUITEM "Detail Texture List(&D)", ID_VIEW_DTEX - MENUITEM SEPARATOR - MENUITEM "Focus selected object\tF", ID_TIP_FOCUS_SELOBJ - MENUITEM "Focus whole map\tA", ID_TIP_FOCUS_ALL - MENUITEM SEPARATOR - MENUITEM "WIREFRAME MODE(&W)", ID_VIEW_WIREFRAME - MENUITEM "SOLID MODE(&L)", ID_VIEW_SOLID - MENUITEM "View selected object by wire Frame", - ID_VIEW_SELECTED_OBJECT_WIREFRAME - , CHECKED - MENUITEM "View axis and grid", ID_VIEW_AXIS_AND_GRID - MENUITEM "Hide objects\tH", ID_VIEW_HIDE_OBJ - MENUITEM "View perspective", ID_VIEW_ORTH - MENUITEM "Toggle fog", ID_VIEW_TOGGLE_FOG - END - POPUP "Edit mode(&C)" - BEGIN - MENUITEM "Select\tQ", ID_CURSOR_SELECT - MENUITEM "Move\tW", ID_CURSOR_POS - MENUITEM "Rotate\tE", ID_CURSOR_ROTATE - MENUITEM "Scale\tR", ID_CURSOR_SCALE - MENUITEM "Object Brush\tT", ID_CURSOR_OBJ_BRUSH - MENUITEM "Edit terrain", ID_CURSOR_EDIT_TERRAIN - MENUITEM "Smooth", ID_CURSOR_SMOOTH_TERRAIN - MENUITEM "Detail texture\tD", ID_CURSOR_DTEX - MENUITEM "River", ID_CURSOR_EDIT_RIVER - MENUITEM "Pond", ID_CURSOR_EDIT_POND - MENUITEM "Light map", ID_CURSOR_EDIT_LIGHTMAP - MENUITEM "NPC Path", ID_CURSOR_MAKE_NPCPATH - MENUITEM "Wall", ID_CURSOR_MAKE_WALL - MENUITEM "Event", ID_CURSOR_EDIT_EVENT - MENUITEM "Plane", ID_CURSOR_FLAT_TERRAIN - MENUITEM "User regeneration region", ID_CURSOR_REGEN_USER - MENUITEM "Environment sound effect", ID_CURSOR_SOUND - END - POPUP "Tool(&T)" - BEGIN - MENUITEM "Attach object to terrain", ID_TIP_DROP - MENUITEM "Delete selected object\tDel", ID_TIP_DELETE_OBJ - MENUITEM SEPARATOR - MENUITEM "Make colormap\tC", ID_TIP_GENERATE_COLORMAP - MENUITEM "make whole colormap\tX", ID_TIP_GENERATE_COLORMAP_ALL - MENUITEM "fill whole map with current tile\tV", ID_TIP_TILING_ALL - MENUITEM SEPARATOR - MENUITEM "Set to basic material\t(&D)", ID_TIP_DEFAULT_MATERIAL - MENUITEM "Remove Alpha Blending Flag\t(&R)", ID_TIP_REMOVE_ALPHAFLAG - MENUITEM SEPARATOR - MENUITEM "Spread seed", ID_TIP_SOW_SEED - MENUITEM "Make unused file list", ID_TIP_DELETE_UNUSED_FILES - MENUITEM "Remove overlapped objects", ID_TIP_DELETE_OVERLAPPED_OBJECTS +IDD_MAKE_REGEN_USER AFX_DIALOG_LAYOUT +BEGIN + 0 +END - MENUITEM "Remove selected source objects", - ID_TIP_DELETE_SELECTED_SOURCE_OBJECTS +IDD_RIVER_PROPERTY AFX_DIALOG_LAYOUT +BEGIN + 0 +END - MENUITEM SEPARATOR - MENUITEM "Make warp info", ID_TIP_SET_WARP_INFO - MENUITEM "Adjust height scale", ID_TIP_SET_HEIGHT_SCALE - MENUITEM SEPARATOR - MENUITEM "View whole map && edit partial", ID_SELECT_MAP_EDIT - END - POPUP "Help(&H)" - BEGIN - MENUITEM "About N3MapEditor\t(&A)", ID_APP_ABOUT - END +IDD_SAVE_DIVIDE AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SAVE_NEW_TILESET AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SAVE_EVENT AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SET_LIGHTMAP AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SAVE_NPCPATH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SCENE_GRAPH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SETDETAILTEXTURE AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SHAPE_LIST AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SOW_SEED AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_TERRAINSIZE AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_UNUSED_FILES AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDR_MAINFRAME AFX_DIALOG_LAYOUT +BEGIN + 0 END ///////////////////////////////////////////////////////////////////////////// // -// Dialog +// String Table // -IDD_MAKE_NPCPATH DIALOG DISCARDABLE 0, 0, 163, 571 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Make NPC Path " -FONT 9, "" +STRINGTABLE BEGIN - CONTROL "Edit Start Region",IDC_RDO_START_RGN,"Button", - BS_AUTORADIOBUTTON | WS_GROUP,11,252,66,10 - CONTROL "Make Path",IDC_RDO_MAKE_PATH,"Button", - BS_AUTORADIOBUTTON,11,264,50,10 - CONTROL "Edit Action Region",IDC_RDO_MAKE_ACT_RGN,"Button", - BS_AUTORADIOBUTTON,11,277,75,10 - COMBOBOX IDC_COMBO_NPC,4,112,145,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "NPC Type :",IDC_STATIC,5,99,38,8 - EDITTEXT IDC_EDIT_NUM_NPC,46,131,31,14,ES_AUTOHSCROLL - PUSHBUTTON "",IDC_BTN_RECORD,2,337,72,14 - LTEXT "* NPC paths..",IDC_STATIC,6,357,46,8 - LISTBOX IDC_LIST_NPCPATH,3,369,158,180,LBS_SORT | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Load",IDC_BTN_LOAD_PATHSET,4,39,31,14 - PUSHBUTTON "Save",IDC_BTN_SAVE_PATHSET,37,39,32,14 - LTEXT "* ̸",IDC_STATIC,3,12,50,8 - LTEXT "/npclist/pathset.txt",IDC_PATHSETNAME,4,24,117,8 - GROUPBOX "* File *",IDC_STATIC,0,1,159,58 - LTEXT "regen time :",IDC_STATIC,5,149,39,8 - EDITTEXT IDC_EDIT_REGENTIME,46,147,31,14,ES_AUTOHSCROLL - LTEXT "sec.",IDC_STATIC,79,149,15,8 - LTEXT "Action Type:",IDC_STATIC,5,167,41,8 - COMBOBOX IDC_COMBO_ACTIONTYPE,48,164,73,95,CBS_DROPDOWN | - CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "How many? :",IDC_STATIC,2,133,42,8 - PUSHBUTTON "Save Server Data",IDC_BTN_SAVE_SERVER_PATHSET,71,39,61, - 14 - PUSHBUTTON "",IDC_BTN_PATH_MODIFY,78,337,72,14 - PUSHBUTTON "Del",IDC_BTN_PATH_DELETE,59,354,27,13 - GROUPBOX "",IDC_STATIC,3,243,147,48 - EDITTEXT IDC_EDT_NPCPATHNAME,4,319,146,14,ES_AUTOHSCROLL - LTEXT "* Current NPC path name",IDC_STATIC,6,307,82,8 - LTEXT "* remaining path :",IDC_STATIC,6,294,58,8 - LTEXT "32",IDC_NUM_POINT,67,294,8,8 - GROUPBOX "View Movable Region",IDC_STATIC,0,63,162,31 - CONTROL "No",IDC_RDO_VIEW_NONMOVE,"Button",BS_AUTORADIOBUTTON | - WS_GROUP,7,77,25,10 - CONTROL "Yes",IDC_RDO_VIEW_NONE,"Button",BS_AUTORADIOBUTTON,56, - 77,29,10 - PUSHBUTTON "color",IDC_BTN_SETCOLOR,119,302,33,14 - PUSHBUTTON "Load NPC Type",IDC_BTN_LOAD_NPCLIST,89,97,61,14 - EDITTEXT IDC_EDT_TRANS_X,12,554,27,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDT_TRANS_Z,52,554,27,14,ES_AUTOHSCROLL - PUSHBUTTON "Move Whole NPC Path",IDC_BTN_TRANS,82,554,78,15, - WS_DISABLED - LTEXT "x",IDC_STATIC,4,554,8,8 - LTEXT "z",IDC_STATIC,46,554,8,8 - LTEXT "Group Attr.:",IDC_STATIC,2,183,38,8 - COMBOBOX IDC_COMBO_NPC_ATTR_GROUP,41,181,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - LTEXT "Regen Attr.:",IDC_STATIC,2,198,39,8 - COMBOBOX IDC_COMBO_NPC_ATTR_REGEN,41,196,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - LTEXT "Create Attr.:",IDC_STATIC,2,213,39,8 - COMBOBOX IDC_COMBO_NPC_ATTR_CREATE,41,211,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "load",IDC_BTN_LOAD_GROUP,140,179,20,14 - PUSHBUTTON "load",IDC_BTN_LOAD_REGEN,140,195,20,14 - PUSHBUTTON "load",IDC_BTN_LOAD_CREATE,140,211,20,14 - LTEXT "Option:",IDC_STATIC,2,228,24,8 - COMBOBOX IDC_COMBO_NPC_OPTION,41,225,97,179,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "load",IDC_BTN_LOAD_OPTION,140,225,20,14 + IDR_MAINFRAME "N3ME\n\nN3ME\nN3ME files(*.n3m)\n.n3m\nN3ME.Document\nN3ME Document" +END + +STRINGTABLE +BEGIN + AFX_IDS_APP_TITLE "N3ME" + AFX_IDS_IDLEMESSAGE "Preparation" +END + +STRINGTABLE +BEGIN + ID_INDICATOR_EXT "EXT" + ID_INDICATOR_CAPS "CAP" + ID_INDICATOR_NUM "NUM" + ID_INDICATOR_SCRL "SCRL" + ID_INDICATOR_OVR "OVR" + ID_INDICATOR_REC "REC" +END + +STRINGTABLE +BEGIN + ID_FILE_NEW "Create a new document\nNew file" + ID_FILE_OPEN "Open an existing document\nOpen" + ID_FILE_CLOSE "Close the currently open document\nClose" + ID_FILE_SAVE "Save the currently open document\nSave" + ID_FILE_SAVE_AS "Save the currently open document as\nSave As" +END + +STRINGTABLE +BEGIN + ID_APP_ABOUT "Display program information, version information, and copyright information\nAbout" + ID_APP_EXIT "Ask if you want to save the document to exit the application\nExit" +END + +STRINGTABLE +BEGIN + ID_FILE_MRU_FILE1 "open this document" + ID_FILE_MRU_FILE2 "open this document" + ID_FILE_MRU_FILE3 "open this document" + ID_FILE_MRU_FILE4 "open this document" + ID_FILE_MRU_FILE5 "open this document" + ID_FILE_MRU_FILE6 "open this document" + ID_FILE_MRU_FILE7 "open this document" + ID_FILE_MRU_FILE8 "open this document" + ID_FILE_MRU_FILE9 "open this document" + ID_FILE_MRU_FILE10 "open this document" + ID_FILE_MRU_FILE11 "open this document" + ID_FILE_MRU_FILE12 "open this document" + ID_FILE_MRU_FILE13 "open this document" + ID_FILE_MRU_FILE14 "open this document" + ID_FILE_MRU_FILE15 "open this document" + ID_FILE_MRU_FILE16 "open this document" +END + +STRINGTABLE +BEGIN + ID_NEXT_PANE "Switch to the next window\nNext window" + ID_PREV_PANE "Switch to previous window\nPrevious window" +END + +STRINGTABLE +BEGIN + ID_WINDOW_SPLIT "Split the currently open window\nSplit" +END + +STRINGTABLE +BEGIN + ID_EDIT_CLEAR "Clear selection\nClear" + ID_EDIT_CLEAR_ALL "Clear everything\nClear everything" + ID_EDIT_COPY "Copies the selection and puts it on the clipboard\nCopy" + ID_EDIT_CUT "Cut the selection and put it on the clipboard\nCut" + ID_EDIT_FIND "Find the specified string\nFind" + ID_EDIT_PASTE "Paste the clipboard contents\nPaste" + ID_EDIT_REPEAT "Repeat last action\nRepeat" + ID_EDIT_REPLACE "Replaces the specified string with another string\nReplace" + ID_EDIT_SELECT_ALL "Select all documents\nSelect all" + ID_EDIT_UNDO "Undo the last action\nUndo" + ID_EDIT_REDO "Redo a previously undone action\nRedo" +END + +STRINGTABLE +BEGIN + ID_VIEW_TOOLBAR "Show/hide toolbar\nToggle toolbar" + ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle status bar" +END + +STRINGTABLE +BEGIN + AFX_IDS_SCSIZE "Change the window size" + AFX_IDS_SCMOVE "Change window position" + AFX_IDS_SCMINIMIZE "Reduce the window to an icon" + AFX_IDS_SCMAXIMIZE "Expand the window to its maximum size" + AFX_IDS_SCNEXTWINDOW "Switch to the next document window" + AFX_IDS_SCPREVWINDOW "Switch to the previous document window" + AFX_IDS_SCCLOSE "Close the currently open window and ask if you want to save the document" +END + +STRINGTABLE +BEGIN + AFX_IDS_SCRESTORE "Restore the window to its original size" + AFX_IDS_SCTASKLIST "Activate the task list" +END + +STRINGTABLE +BEGIN + ID_CURSOR_SELECT "Select object.\nSelect" + ID_CURSOR_OBJ_BRUSH "Place the object.\nPlace" + ID_FILLMODE_WIREFRAME "View in wireframe mode\nWireframe mode" + ID_FILLMODE_SOLID "View in Solid Mode\nSolid Mode" + ID_CURSOR_ROTATE "Rotates the selected object.\nRotate" + ID_CURSOR_POS "Move the selected object.\nMove" + ID_CURSOR_SCALE "Zoom the selected object.\nZoom" +END + +STRINGTABLE +BEGIN + ID_CURSOR_EDIT_TERRAIN "Terrain correction.\nTerrain correction" + ID_TIP_DROP "Drop the selected object onto the terrain.\nDrop" +END + +STRINGTABLE +BEGIN + ID_CURSOR_SMOOTH_TERRAIN "Smooth Tool\nSmooth Tool" + ID_PROJECT_SET "Specifies the Project path.\\Specifies the Project path" + ID_FILE_COLORMAP_LOAD "Call colormap.(*.bmp)\\Read colormap" + ID_FILE_COLORMAP_SAVE "Save colormap.(*.bmp)\\save colormap" + ID_RESOURCE_PATH_SET "Specifies the path of Resource Files.\nSpecifies the resource path" +END + +STRINGTABLE +BEGIN + ID_VIEW_SELECTED_OBJECT_WIREFRAME + "View with selected Object Wire Frame\nView with selected Object Wire Frame" + ID_FILE_IMPORT_POST_DATA_FROM_SCENE + "Importing object batch data from *.N3Scene\nImport batch data" END -#endif // English (U.S.) resources +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/tool/N3ME/N3ME.vcxproj.user b/src/tool/N3ME/N3ME.vcxproj.user index 78fe6cea..db7ab1ea 100644 --- a/src/tool/N3ME/N3ME.vcxproj.user +++ b/src/tool/N3ME/N3ME.vcxproj.user @@ -8,4 +8,7 @@ $(ProjectDir)..\..\assets\game WindowsLocalDebugger + + N3ME.rc + \ No newline at end of file diff --git a/src/tool/N3ME/Resource.h b/src/tool/N3ME/Resource.h index a2aa223e..2229a845 100644 --- a/src/tool/N3ME/Resource.h +++ b/src/tool/N3ME/Resource.h @@ -1,405 +1,405 @@ //{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. +// Microsoft Visual C++ generated include file. // Used by N3ME.rc // -#define ID_MODIFY_DTEX_MIRROR 3 -#define IDC_GROUP 3 -#define ID_MODIFY_DTEX_CW90D 4 -#define ID_MODIFY_DTEX_CW180D 8 -#define ID_MODIFY_DTEX_CW270D 9 -#define IDD_ABOUTBOX 100 -#define IDD_BROWSE_PATH 102 -#define IDD_BASE 103 -#define IDR_MAINFRAME 128 -#define IDR_N3METYPE 129 -#define IDD_SCENE_GRAPH 130 -#define IDD_SELECT 131 -#define IDD_FOLDER_SELECT 134 -#define IDC_MOVE 136 -#define IDC_ROTATE 137 -#define IDC_ZOOM 138 -#define IDC_TRANSFORM 139 -#define IDD_BRUSH 140 -#define IDB_SCENE_NODES 142 -#define IDD_TERRAINSIZE 143 -#define IDC_LOAD 144 -#define IDD_SETDETAILTEXTURE 145 -#define IDD_INPUT_ATTR 146 -#define IDD_INPUT_GROUP 147 -#define IDD_DEL_GROUP 148 -#define IDD_DTEX_GROUP 149 -#define IDD_RIVER_PROPERTY 150 -#define IDD_ADDDTEX 153 -#define IDD_MODIFY_DTEX 156 -#define IDD_SET_LIGHTMAP 158 -#define IDD_DELDTEX 159 -#define IDD_LOAD_TILESET 160 -#define IDD_SAVE_NEW_TILESET 161 -#define IDD_MAKE_NPCPATH 162 -#define IDD_LOAD_NPCPATH 163 -#define IDD_SAVE_NPCPATH 164 -#define IDD_SOW_SEED 165 -#define IDD_MAKE_WALL 166 -#define IDD_EDIT_EVENT 167 -#define IDD_EDIT_EVENT_ATTR 168 -#define IDD_POND_PROPERTY 169 -#define IDD_LOAD_EVENT 170 -#define IDD_SAVE_EVENT 171 -#define IDD_UNUSED_FILES 172 -#define IDD_MAKE_REGEN_USER 173 -#define IDD_SHAPE_LIST 174 -#define IDD_EDIT_WARP 175 -#define IDD_SAVE_DIVIDE 176 -#define IDD_CONTROL_HEIGHT_SCALE 177 -#define IDD_EDIT_BGM 178 -#define IDD_ADD_SOUNDGROUP 179 -#define IDD_ALL_MAP_VIEW 181 -#define IDD_LIGHT 182 -#define IDC_COMBO 1000 -#define IDC_SLIDER_ROTATE 1001 -#define IDC_CB_PART_SHAPE 1001 -#define IDC_FILELIST 1001 -#define IDC_EDIT_ROTATE 1002 -#define IDC_E_NAME 1002 -#define IDC_LP_TRANSFORM 1003 -#define IDC_SYNCH_FOLDERS 1003 -#define IDC_LP_SHAPE 1004 -#define IDC_LP_CHR 1005 -#define IDC_CB_LOD 1006 -#define IDC_CB_PART_CHARACTER 1007 -#define IDC_LP_CAMERA 1008 -#define IDC_PREVIEW 1008 -#define IDC_LP_LIGHT 1009 -#define IDC_SHAPE 1009 -#define IDC_SLIDER_SIZE 1010 -#define IDC_LP_MATERIAL 1010 -#define IDC_SLIDER_FALLOFF 1011 -#define IDC_CB_PLUG_CHARACTER 1011 -#define IDC_EDIT_SIZE 1012 -#define IDC_STATIC_NAME 1012 -#define IDC_EDIT_FALLOFF 1013 -#define IDC_EDIT1 1013 -#define IDC_LP_CHR_PART 1013 -#define IDC_COMBO_FILELIST 1014 -#define IDC_LP_CHR_PLUG 1014 -#define IDC_EDIT_NAME 1014 -#define IDC_EDIT_AGREE 1015 -#define IDC_BTN_SAVE 1016 -#define IDC_EDIT_MONEY 1016 -#define IDC_TEXTUREVIEW 1017 -#define IDC_EDIT_ZONE 1017 -#define IDC_ATTR 1018 -#define IDC_EDIT_POS_X 1018 -#define IDC_COMBO_ATTR 1019 -#define IDC_EDIT_POS_Y 1019 -#define IDC_COMBO_GROUP 1020 -#define IDC_EDIT_POS_Z 1020 -#define IDC_EDIT_RAD 1021 -#define IDC_LIST_GROUP 1022 -#define IDC_BTN_ADDGROUP 1023 -#define IDC_EDIT_INPUTGROUP 1024 -#define IDC_BTN_DELGROUP 1024 -#define IDC_LIST_DELGROUP 1026 -#define IDC_TREE_DTEX_GROUP 1027 -#define IDC_LP_RIVER 1030 -#define IDC_NOTSELECTED 1031 -#define IDC_BUTTON_EXTRUDE 1032 -#define IDC_BUTTON_DELETE_VERTEX 1033 -#define IDC_BTN_ADDDTEX 1033 -#define IDC_BUTTON_RECALC_UV 1034 -#define IDC_ADDDTEXLIST 1034 -#define IDC_BTN_DELDTEX 1034 -#define IDC_BUTTON_DELETE_RIVER 1035 -#define IDC_B_SET_PATH 1035 -#define IDC_B_SET_RESOURCE_PATH 1035 -#define IDC_E_PATH 1036 -#define IDC_STATIC_TRANSFORM 1037 -#define IDC_E_TRANSFORM_X 1038 -#define IDC_E_TRANSFORM_Y 1039 -#define IDC_TILEAUTO 1039 -#define IDC_E_TRANSFORM_Z 1040 -#define IDC_TILEMANUEL 1040 -#define IDC_TILEMANUELNOMIX 1041 -#define IDC_TREE_OBJ 1047 -#define IDC_PREVIEW_DTEX_GROUP 1052 -#define IDC_LB_GROUP 1053 -#define IDC_SLIDER_DTEX 1054 -#define IDC_SLIDER_TILEREGION 1058 -#define IDC_SLIDER_FARPLANE 1059 -#define IDC_SLIDER_LIGHT 1060 -#define IDC_LM_SLD_PEN_SIZE 1062 -#define IDC_LM_SLD_DENSITY 1070 -#define IDC_LM_SLD_HARD 1071 -#define IDC_LM_SLD_OPACITY 1072 -#define IDC_RADIO1 1074 -#define IDC_RADIO2 1075 -#define IDC_LIST_DELDTEX 1077 -#define IDC_BTN_LOAD_TILESET 1078 -#define IDC_BTN_SAVE_TILESET 1079 -#define IDC_BTN_SAVE_NEWNAME_TILESET 1080 -#define IDC_STATIC_TILESETNAME 1081 -#define IDC_LIST_LOAD_TILESET 1082 -#define IDC_LIST_TILESET 1083 -#define IDC_EDIT_NEWTILESETNAME 1084 -#define IDC_COMBO_NPC 1085 -#define IDC_BUTTON_RECALCVERTEX 1085 -#define IDC_EDIT_NUM_NPC 1086 -#define IDC_BTN_RECORD 1087 -#define IDC_COMBO_NPC_ATTR_GROUP 1088 -#define IDC_LIST_NPCPATH 1089 -#define IDC_COMBO_NPC_ATTR_REGEN 1090 -#define IDC_COMBO_NPC_ATTR_CREATE 1091 -#define IDC_RDO_START_RGN 1093 -#define IDC_RDO_MAKE_PATH 1094 -#define IDC_BTN_LOAD_PATHSET 1095 -#define IDC_BTN_SAVE_PATHSET 1096 -#define IDC_PATHSETNAME 1097 -#define IDC_COMBO_ACTIONTYPE 1098 -#define IDC_EDIT_REGENTIME 1099 -#define IDC_RDO_MAKE_ACT_RGN 1100 -#define IDC_LIST_NPCPATHFILENAME 1101 -#define IDC_COMBO_NPC_OPTION 1101 -#define IDC_EDIT_NPCPATHFILENAME 1102 -#define IDC_BTN_SAVE_SERVER_PATHSET 1103 -#define IDC_BTN_PATH_MODIFY 1105 -#define IDC_BTN_PATH_DELETE 1106 -#define IDC_STATIC_SELECTEDCOLOR 1107 -#define IDC_BTN_SELECT_COLOR 1108 -#define IDC_E_ZONEID 1109 -#define IDC_EDT_NPCPATHNAME 1110 -#define IDC_CB_SEED 1111 -#define IDC_CB_TILEGROUP 1112 -#define IDC_LB_SOWED 1113 -#define IDC_BTN_SOW 1114 -#define IDC_BTN_DEL_SEED 1115 -#define IDC_NUM_POINT 1116 -#define IDC_LIST_WALL 1117 -#define IDC_BTN_WALL_RECORD 1118 -#define IDC_BTN_WALL_EDIT 1119 -#define IDC_BTN_DELETE 1120 -#define IDC_EDIT_WALL 1121 -#define IDC_EVENT_LIST 1122 -#define IDC_BTN_EVENT_RECORD 1123 -#define IDC_BTN_EVENT_EDIT 1124 -#define IDC_EDIT_EVENT_ATTR_TYPE 1124 -#define IDC_BTN_EVENT_DEL 1125 -#define IDC_EDIT_EVENT_ATTR_CON1 1125 -#define IDC_EDIT_EVENT_ATTR_CON2 1126 -#define IDC_EDIT_EVENT_ATTR_CON3 1127 -#define IDC_EDIT_EVENT_ATTR_CON4 1128 -#define IDC_EDIT_EVENT_ATTR_CON5 1129 -#define IDC_EDIT_EVENT_ATTR_EXE1 1130 -#define IDC_EDIT_EVENT_ATTR_EXE2 1131 -#define IDC_EDIT_EVENT_ATTR_EXE3 1132 -#define IDC_EDIT_EVENT_ATTR_EXE4 1133 -#define IDC_EDIT_EVENT_ATTR_EXE5 1134 -#define IDC_EDIT_EVENT_ATTR_ID 1135 -#define IDC_STATIC_CURR_EVENT 1136 -#define IDC_EDIT_EVENT_ATTR_NAME 1137 -#define IDC_RDO_VIEW_NONMOVE 1138 -#define IDC_RDO_VIEW_NONE 1139 -#define IDC_CHECK_FLAT 1140 -#define IDC_BUTTON_DELETE_POND 1141 -#define IDC_LP_POND 1142 -#define IDC_STATIC_GRASSINFO 1143 -#define IDC_BTN_GRASSINFOLOAD 1144 -#define IDC_BTN_SAVEGAME 1145 -#define IDC_STATIC_CURR_FILENAME 1146 -#define IDC_BTN_GRASS_DELETE 1146 -#define IDC_BTN_LOAD_EVTFILE 1147 -#define IDC_BTN_GRASSINFOSAVE 1147 -#define IDC_BTN_SAVE_EVTFILE 1148 -#define IDC_LIST_SAVED_EVT_FILE 1150 -#define IDC_EDIT_NEW_EVT_FILE 1151 -#define IDC_EDIT_EVENT_ZONE_ID 1152 -#define IDC_STATIC_DTEXGROUP 1153 -#define IDC_STATIC_GRASS 1154 -#define IDC_BTN_GRASS_READ 1155 -#define IDC_LIST_FILES 1158 -#define IDC_DELETE 1159 -#define ID_CANCEL 1160 -#define IDC_LIST_INVALID_OBJECTS 1161 -#define IDC_FLAT_HEIGHT 1162 -#define IDC_RDO_GET_HEIGHT 1166 -#define IDC_RDO_FLATEN 1167 -#define IDC_LIST_REGENUSERREGION 1168 -#define IDC_BTN_SAVE_AS 1169 -#define IDC_EDT_PATHNAME 1170 -#define IDC_BTN_SETCOLOR 1171 -#define IDC_LIST_OBJ 1173 -#define IDC_BTN_SORT 1174 -#define IDC_LIST_WARP 1177 -#define IDC_BTN_UPDATE 1179 -#define IDC_BTN_EDIT 1180 -#define IDC_EDIT_ID 1181 -#define IDC_BTN_EXPORT 1182 -#define IDC_BTN_IMPORT 1183 -#define IDC_STC_TOTAL_SIZE 1183 -#define IDC_CB_DIVISION 1185 -#define IDC_SLIDER1 1186 -#define IDC_STATIC_MINIMAP 1187 -#define IDC_SLD_ATTEN 1187 -#define IDC_BTN_LOAD_NPCLIST 1188 -#define IDC_EDT_TRANS_Z 1192 -#define IDC_BTN_TRANS 1193 -#define IDC_EDT_TRANS_X 1194 -#define IDC_LIST_SOUNDGROUP 1195 -#define IDC_BTN_ADD_SOUNDGROUP 1196 -#define IDC_LIST_SOUNDINFO 1197 -#define IDC_BGM_NAME1 1198 -#define IDC_BGM_NAME2 1199 -#define IDC_BGM_NAME3 1200 -#define IDC_BGM_NAME4 1201 -#define IDC_BROWSE_TREE 1202 -#define IDC_BGM_REGENTIME1 1202 -#define IDC_FOLDER_LIST 1203 -#define IDC_BGM_REGENTIME2 1203 -#define IDC_TUNNEL_TREE 1204 -#define IDC_BGM_REGENTIME3 1204 -#define IDC_BGM_REGENTIME4 1205 -#define IDC_BGE_REGENTIME1 1206 -#define IDC_BGE_REGENTIME2 1207 -#define IDC_BGE_REGENTIME3 1208 -#define IDC_BGE_REGENTIME4 1209 -#define IDC_BGE_NAME1 1210 -#define IDC_BGE_NAME2 1211 -#define IDC_BGE_NAME3 1212 -#define IDC_BGE_NAME4 1213 -#define IDC_BTN_DELETE_SOUNDGROUP 1214 -#define IDC_BTN_INPUT_INFO 1215 -#define IDC_BTN_INPUT_INFO_EDIT 1216 -#define IDC_BTN_INPUT_INFO_DEL 1217 -#define IDC_BTN_MODIFY_SOUNDGROUP 1218 -#define IDC_BTN_BGM_NAME1 1220 -#define IDC_BTN_BGM_NAME2 1221 -#define IDC_BTN_BGM_NAME3 1222 -#define IDC_BTN_BGM_NAME4 1223 -#define IDC_EDT_BGM_REGEN1 1224 -#define IDC_EDT_BGM_REGEN2 1225 -#define IDC_EDT_BGM_REGEN3 1226 -#define IDC_EDT_BGM_REGEN4 1227 -#define IDC_BTN_BGE_NAME1 1228 -#define IDC_BTN_BGE_NAME2 1229 -#define IDC_BTN_BGE_NAME3 1230 -#define IDC_BTN_BGE_NAME4 1231 -#define IDC_EDT_BGE_REGEN1 1232 -#define IDC_EDT_BGE_REGEN2 1233 -#define IDC_EDT_BGE_REGEN3 1234 -#define IDC_EDT_BGE_REGEN4 1235 -#define IDC_EDT_GROUPNAME 1236 -#define IDC_BTN_DEL_BGM_NAME1 1237 -#define IDC_BTN_DEL_BGM_NAME2 1238 -#define IDC_BTN_LOAD_GROUP 1238 -#define IDC_BTN_DEL_BGM_NAME3 1239 -#define IDC_BTN_LOAD_REGEN 1239 -#define IDC_BTN_DEL_BGM_NAME4 1240 -#define IDC_BTN_DEL_BGE_NAME1 1241 -#define IDC_BTN_LOAD_CREATE 1241 -#define IDC_RADIO_SOW 1241 -#define IDC_BTN_DEL_BGE_NAME2 1242 -#define IDC_BTN_LOAD_OPTION 1242 -#define IDC_RADIO_SELECT 1242 -#define IDC_BTN_DEL_BGE_NAME3 1243 -#define IDC_SEED_EXIT 1243 -#define IDC_BTN_DEL_BGE_NAME4 1244 -#define IDC_BUTTON_RANDOM 1244 -#define IDC_S_TILE_DETAIL 1245 -#define IDC_SOW_BRUSH_SIZE 1246 -#define IDC_MAP_VIEW 1247 -#define IDC_MAP_UPDATA 1248 -#define IDC_MAP_VIEW_CANCEL 1249 -#define IDC_BUTTON_EDITPOND 1249 -#define IDC_BUTTON_MOVE_POND 1250 -#define IDC_BUTTON_STATION_POND 1251 -#define IDC_WIDTHLENGTH 1252 -#define IDC_HEIGHTLENGTH 1253 -#define IDC_STATICNAME1 1254 -#define IDC_STATICNAME2 1255 -#define IDC_BU_RECALCUV 1260 -#define IDC_STATIC3 1261 -#define IDC_COMBO_GOPOND 1262 -#define IDC_STATIC4 1263 -#define IDC_COMBO_RIBER 1264 -#define IDC_LIST_LIGHTS 1265 -#define IDC_BTN_DOWNLOAD 1267 -#define IDC_BTN_UPLOAD 1268 -#define IDC_PATHNAME 1269 -#define IDC_EDT_NAME 1270 -#define IDC_STC_COLOR 1271 -#define IDC_SLD_RANGE 1272 -#define ID_CURSOR_SELECT 32774 -#define ID_CURSOR_OBJ_BRUSH 32775 -#define ID_EDIT_PROPERTY 32776 -#define ID_FILLMODE_WIREFRAME 32777 -#define ID_FILLMODE_SOLID 32778 -#define ID_CURSOR_ROTATE 32779 -#define ID_CURSOR_POS 32780 -#define ID_CURSOR_SCALE 32781 -#define ID_FILE_EXPORT 32788 -#define ID_VIEW_SOURCEOBJECT 32789 -#define ID_VIEW_OUTPUTOBJECT 32790 -#define ID_VIEW_WIREFRAME 32791 -#define ID_VIEW_SOLID 32792 -#define ID_CURSOR_EDIT_TERRAIN 32794 -#define ID_TIP_FOCUS_SELOBJ 32796 -#define ID_TIP_FOCUS_ALL 32797 -#define ID_TIP_DROP 32798 -#define ID_BUTTON32799 32799 -#define ID_TIP_DELETE_OBJ 32800 -#define ID_CURSOR_SMOOTH_TERRAIN 32801 -#define ID_FILE_IMPORT 32802 -#define ID_EDIT_DTEX 32803 -#define ID_VIEW_DTEX 32804 -#define ID_CURSOR_DTEX 32805 -#define ID_FILE_SERVER_DATA 32806 -#define ID_CURSOR_EDIT_RIVER 32807 -#define ID_PROJECT_SET 32808 -#define ID_FILE_COLORMAP_LOAD 32809 -#define ID_FILE_COLORMAP_SAVE 32810 -#define ID_FILE_GAMETILETEX_SAV 32811 -#define ID_FILE_GAMETILETEX_SAVE 32811 -#define ID_RESOURCE_PATH_SET 32812 -#define ID_TIP_GENERATE_COLORMAP 32813 -#define ID_TIP_TILING_ALL 32814 -#define ID_TIP_GENERATE_COLORMAP_ALL 32816 -#define ID_TIP_DEFAULT_MATERIAL 32817 -#define ID_TIP_REMOVE_ALPHAFLAG 32818 -#define ID_CURSOR_EDIT_LIGHTMAP 32819 -#define ID_CURSOR_MAKE_NPCPATH 32821 -#define ID_VIEW_SELECTED_OBJECT_WIREFRAME 32822 -#define ID_TIP_SOW_SEED 32823 -#define ID_FILE_IMPORT_POST_DATA_FROM_SCENE 32824 -#define ID_VIEW_HIDE_OBJ 32825 -#define ID_VIEW_AXIS_AND_GRID 32826 -#define ID_CURSOR_MAKE_WALL 32827 -#define ID_CURSOR_EDIT_EVENT 32828 -#define ID_FILE_IMPORT_SHAPES 32829 -#define ID_CURSOR_EDIT_POND 32830 -#define ID_FILE_IMPORT_HEIGHT 32831 -#define ID_TIP_DELETE_UNUSED_FILES 32832 -#define ID_TIP_DELETE_OVERLAPPED_OBJECTS 32833 +#define ID_MODIFY_DTEX_MIRROR 3 +#define IDC_GROUP 3 +#define ID_MODIFY_DTEX_CW90D 4 +#define ID_MODIFY_DTEX_CW180D 8 +#define ID_MODIFY_DTEX_CW270D 9 +#define IDD_ABOUTBOX 100 +#define IDD_BROWSE_PATH 102 +#define IDD_BASE 103 +#define IDR_MAINFRAME 128 +#define IDR_N3METYPE 129 +#define IDD_SCENE_GRAPH 130 +#define IDD_SELECT 131 +#define IDD_FOLDER_SELECT 134 +#define IDC_MOVE 136 +#define IDC_ROTATE 137 +#define IDC_ZOOM 138 +#define IDC_TRANSFORM 139 +#define IDD_BRUSH 140 +#define IDB_SCENE_NODES 142 +#define IDD_TERRAINSIZE 143 +#define IDC_LOAD 144 +#define IDD_SETDETAILTEXTURE 145 +#define IDD_INPUT_ATTR 146 +#define IDD_INPUT_GROUP 147 +#define IDD_DEL_GROUP 148 +#define IDD_DTEX_GROUP 149 +#define IDD_RIVER_PROPERTY 150 +#define IDD_ADDDTEX 153 +#define IDD_MODIFY_DTEX 156 +#define IDD_SET_LIGHTMAP 158 +#define IDD_DELDTEX 159 +#define IDD_LOAD_TILESET 160 +#define IDD_SAVE_NEW_TILESET 161 +#define IDD_MAKE_NPCPATH 162 +#define IDD_LOAD_NPCPATH 163 +#define IDD_SAVE_NPCPATH 164 +#define IDD_SOW_SEED 165 +#define IDD_MAKE_WALL 166 +#define IDD_EDIT_EVENT 167 +#define IDD_EDIT_EVENT_ATTR 168 +#define IDD_POND_PROPERTY 169 +#define IDD_LOAD_EVENT 170 +#define IDD_SAVE_EVENT 171 +#define IDD_UNUSED_FILES 172 +#define IDD_MAKE_REGEN_USER 173 +#define IDD_SHAPE_LIST 174 +#define IDD_EDIT_WARP 175 +#define IDD_SAVE_DIVIDE 176 +#define IDD_CONTROL_HEIGHT_SCALE 177 +#define IDD_EDIT_BGM 178 +#define IDD_ADD_SOUNDGROUP 179 +#define IDD_ALL_MAP_VIEW 181 +#define IDD_LIGHT 182 +#define IDC_COMBO 1000 +#define IDC_SLIDER_ROTATE 1001 +#define IDC_CB_PART_SHAPE 1001 +#define IDC_FILELIST 1001 +#define IDC_EDIT_ROTATE 1002 +#define IDC_E_NAME 1002 +#define IDC_LP_TRANSFORM 1003 +#define IDC_SYNCH_FOLDERS 1003 +#define IDC_LP_SHAPE 1004 +#define IDC_LP_CHR 1005 +#define IDC_CB_LOD 1006 +#define IDC_CB_PART_CHARACTER 1007 +#define IDC_LP_CAMERA 1008 +#define IDC_PREVIEW 1008 +#define IDC_LP_LIGHT 1009 +#define IDC_SHAPE 1009 +#define IDC_SLIDER_SIZE 1010 +#define IDC_LP_MATERIAL 1010 +#define IDC_SLIDER_FALLOFF 1011 +#define IDC_CB_PLUG_CHARACTER 1011 +#define IDC_EDIT_SIZE 1012 +#define IDC_STATIC_NAME 1012 +#define IDC_EDIT_FALLOFF 1013 +#define IDC_EDIT1 1013 +#define IDC_LP_CHR_PART 1013 +#define IDC_COMBO_FILELIST 1014 +#define IDC_LP_CHR_PLUG 1014 +#define IDC_EDIT_NAME 1014 +#define IDC_EDIT_AGREE 1015 +#define IDC_BTN_SAVE 1016 +#define IDC_EDIT_MONEY 1016 +#define IDC_TEXTUREVIEW 1017 +#define IDC_EDIT_ZONE 1017 +#define IDC_ATTR 1018 +#define IDC_EDIT_POS_X 1018 +#define IDC_COMBO_ATTR 1019 +#define IDC_EDIT_POS_Y 1019 +#define IDC_COMBO_GROUP 1020 +#define IDC_EDIT_POS_Z 1020 +#define IDC_EDIT_RAD 1021 +#define IDC_LIST_GROUP 1022 +#define IDC_BTN_ADDGROUP 1023 +#define IDC_EDIT_INPUTGROUP 1024 +#define IDC_BTN_DELGROUP 1024 +#define IDC_LIST_DELGROUP 1026 +#define IDC_TREE_DTEX_GROUP 1027 +#define IDC_LP_RIVER 1030 +#define IDC_NOTSELECTED 1031 +#define IDC_BUTTON_EXTRUDE 1032 +#define IDC_BUTTON_DELETE_VERTEX 1033 +#define IDC_BTN_ADDDTEX 1033 +#define IDC_BUTTON_RECALC_UV 1034 +#define IDC_ADDDTEXLIST 1034 +#define IDC_BTN_DELDTEX 1034 +#define IDC_BUTTON_DELETE_RIVER 1035 +#define IDC_B_SET_PATH 1035 +#define IDC_B_SET_RESOURCE_PATH 1035 +#define IDC_E_PATH 1036 +#define IDC_STATIC_TRANSFORM 1037 +#define IDC_E_TRANSFORM_X 1038 +#define IDC_E_TRANSFORM_Y 1039 +#define IDC_TILEAUTO 1039 +#define IDC_E_TRANSFORM_Z 1040 +#define IDC_TILEMANUEL 1040 +#define IDC_TILEMANUELNOMIX 1041 +#define IDC_TREE_OBJ 1047 +#define IDC_PREVIEW_DTEX_GROUP 1052 +#define IDC_LB_GROUP 1053 +#define IDC_SLIDER_DTEX 1054 +#define IDC_SLIDER_TILEREGION 1058 +#define IDC_SLIDER_FARPLANE 1059 +#define IDC_SLIDER_LIGHT 1060 +#define IDC_LM_SLD_PEN_SIZE 1062 +#define IDC_LM_SLD_DENSITY 1070 +#define IDC_LM_SLD_HARD 1071 +#define IDC_LM_SLD_OPACITY 1072 +#define IDC_RADIO1 1074 +#define IDC_RADIO2 1075 +#define IDC_LIST_DELDTEX 1077 +#define IDC_BTN_LOAD_TILESET 1078 +#define IDC_BTN_SAVE_TILESET 1079 +#define IDC_BTN_SAVE_NEWNAME_TILESET 1080 +#define IDC_STATIC_TILESETNAME 1081 +#define IDC_LIST_LOAD_TILESET 1082 +#define IDC_LIST_TILESET 1083 +#define IDC_EDIT_NEWTILESETNAME 1084 +#define IDC_COMBO_NPC 1085 +#define IDC_BUTTON_RECALCVERTEX 1085 +#define IDC_EDIT_NUM_NPC 1086 +#define IDC_BTN_RECORD 1087 +#define IDC_COMBO_NPC_ATTR_GROUP 1088 +#define IDC_LIST_NPCPATH 1089 +#define IDC_COMBO_NPC_ATTR_REGEN 1090 +#define IDC_COMBO_NPC_ATTR_CREATE 1091 +#define IDC_RDO_START_RGN 1093 +#define IDC_RDO_MAKE_PATH 1094 +#define IDC_BTN_LOAD_PATHSET 1095 +#define IDC_BTN_SAVE_PATHSET 1096 +#define IDC_PATHSETNAME 1097 +#define IDC_COMBO_ACTIONTYPE 1098 +#define IDC_EDIT_REGENTIME 1099 +#define IDC_RDO_MAKE_ACT_RGN 1100 +#define IDC_LIST_NPCPATHFILENAME 1101 +#define IDC_COMBO_NPC_OPTION 1101 +#define IDC_EDIT_NPCPATHFILENAME 1102 +#define IDC_BTN_SAVE_SERVER_PATHSET 1103 +#define IDC_BTN_PATH_MODIFY 1105 +#define IDC_BTN_PATH_DELETE 1106 +#define IDC_STATIC_SELECTEDCOLOR 1107 +#define IDC_BTN_SELECT_COLOR 1108 +#define IDC_E_ZONEID 1109 +#define IDC_EDT_NPCPATHNAME 1110 +#define IDC_CB_SEED 1111 +#define IDC_CB_TILEGROUP 1112 +#define IDC_LB_SOWED 1113 +#define IDC_BTN_SOW 1114 +#define IDC_BTN_DEL_SEED 1115 +#define IDC_NUM_POINT 1116 +#define IDC_LIST_WALL 1117 +#define IDC_BTN_WALL_RECORD 1118 +#define IDC_BTN_WALL_EDIT 1119 +#define IDC_BTN_DELETE 1120 +#define IDC_EDIT_WALL 1121 +#define IDC_EVENT_LIST 1122 +#define IDC_BTN_EVENT_RECORD 1123 +#define IDC_BTN_EVENT_EDIT 1124 +#define IDC_EDIT_EVENT_ATTR_TYPE 1124 +#define IDC_BTN_EVENT_DEL 1125 +#define IDC_EDIT_EVENT_ATTR_CON1 1125 +#define IDC_EDIT_EVENT_ATTR_CON2 1126 +#define IDC_EDIT_EVENT_ATTR_CON3 1127 +#define IDC_EDIT_EVENT_ATTR_CON4 1128 +#define IDC_EDIT_EVENT_ATTR_CON5 1129 +#define IDC_EDIT_EVENT_ATTR_EXE1 1130 +#define IDC_EDIT_EVENT_ATTR_EXE2 1131 +#define IDC_EDIT_EVENT_ATTR_EXE3 1132 +#define IDC_EDIT_EVENT_ATTR_EXE4 1133 +#define IDC_EDIT_EVENT_ATTR_EXE5 1134 +#define IDC_EDIT_EVENT_ATTR_ID 1135 +#define IDC_STATIC_CURR_EVENT 1136 +#define IDC_EDIT_EVENT_ATTR_NAME 1137 +#define IDC_RDO_VIEW_NONMOVE 1138 +#define IDC_RDO_VIEW_NONE 1139 +#define IDC_CHECK_FLAT 1140 +#define IDC_BUTTON_DELETE_POND 1141 +#define IDC_LP_POND 1142 +#define IDC_STATIC_GRASSINFO 1143 +#define IDC_BTN_GRASSINFOLOAD 1144 +#define IDC_BTN_SAVEGAME 1145 +#define IDC_STATIC_CURR_FILENAME 1146 +#define IDC_BTN_GRASS_DELETE 1146 +#define IDC_BTN_LOAD_EVTFILE 1147 +#define IDC_BTN_GRASSINFOSAVE 1147 +#define IDC_BTN_SAVE_EVTFILE 1148 +#define IDC_LIST_SAVED_EVT_FILE 1150 +#define IDC_EDIT_NEW_EVT_FILE 1151 +#define IDC_EDIT_EVENT_ZONE_ID 1152 +#define IDC_STATIC_DTEXGROUP 1153 +#define IDC_STATIC_GRASS 1154 +#define IDC_BTN_GRASS_READ 1155 +#define IDC_LIST_FILES 1158 +#define IDC_DELETE 1159 +#define ID_CANCEL 1160 +#define IDC_LIST_INVALID_OBJECTS 1161 +#define IDC_FLAT_HEIGHT 1162 +#define IDC_RDO_GET_HEIGHT 1166 +#define IDC_RDO_FLATEN 1167 +#define IDC_LIST_REGENUSERREGION 1168 +#define IDC_BTN_SAVE_AS 1169 +#define IDC_EDT_PATHNAME 1170 +#define IDC_BTN_SETCOLOR 1171 +#define IDC_LIST_OBJ 1173 +#define IDC_BTN_SORT 1174 +#define IDC_LIST_WARP 1177 +#define IDC_BTN_UPDATE 1179 +#define IDC_BTN_EDIT 1180 +#define IDC_EDIT_ID 1181 +#define IDC_BTN_EXPORT 1182 +#define IDC_BTN_IMPORT 1183 +#define IDC_STC_TOTAL_SIZE 1183 +#define IDC_CB_DIVISION 1185 +#define IDC_SLIDER1 1186 +#define IDC_STATIC_MINIMAP 1187 +#define IDC_SLD_ATTEN 1187 +#define IDC_BTN_LOAD_NPCLIST 1188 +#define IDC_EDT_TRANS_Z 1192 +#define IDC_BTN_TRANS 1193 +#define IDC_EDT_TRANS_X 1194 +#define IDC_LIST_SOUNDGROUP 1195 +#define IDC_BTN_ADD_SOUNDGROUP 1196 +#define IDC_LIST_SOUNDINFO 1197 +#define IDC_BGM_NAME1 1198 +#define IDC_BGM_NAME2 1199 +#define IDC_BGM_NAME3 1200 +#define IDC_BGM_NAME4 1201 +#define IDC_BROWSE_TREE 1202 +#define IDC_BGM_REGENTIME1 1202 +#define IDC_FOLDER_LIST 1203 +#define IDC_BGM_REGENTIME2 1203 +#define IDC_TUNNEL_TREE 1204 +#define IDC_BGM_REGENTIME3 1204 +#define IDC_BGM_REGENTIME4 1205 +#define IDC_BGE_REGENTIME1 1206 +#define IDC_BGE_REGENTIME2 1207 +#define IDC_BGE_REGENTIME3 1208 +#define IDC_BGE_REGENTIME4 1209 +#define IDC_BGE_NAME1 1210 +#define IDC_BGE_NAME2 1211 +#define IDC_BGE_NAME3 1212 +#define IDC_BGE_NAME4 1213 +#define IDC_BTN_DELETE_SOUNDGROUP 1214 +#define IDC_BTN_INPUT_INFO 1215 +#define IDC_BTN_INPUT_INFO_EDIT 1216 +#define IDC_BTN_INPUT_INFO_DEL 1217 +#define IDC_BTN_MODIFY_SOUNDGROUP 1218 +#define IDC_BTN_BGM_NAME1 1220 +#define IDC_BTN_BGM_NAME2 1221 +#define IDC_BTN_BGM_NAME3 1222 +#define IDC_BTN_BGM_NAME4 1223 +#define IDC_EDT_BGM_REGEN1 1224 +#define IDC_EDT_BGM_REGEN2 1225 +#define IDC_EDT_BGM_REGEN3 1226 +#define IDC_EDT_BGM_REGEN4 1227 +#define IDC_BTN_BGE_NAME1 1228 +#define IDC_BTN_BGE_NAME2 1229 +#define IDC_BTN_BGE_NAME3 1230 +#define IDC_BTN_BGE_NAME4 1231 +#define IDC_EDT_BGE_REGEN1 1232 +#define IDC_EDT_BGE_REGEN2 1233 +#define IDC_EDT_BGE_REGEN3 1234 +#define IDC_EDT_BGE_REGEN4 1235 +#define IDC_EDT_GROUPNAME 1236 +#define IDC_BTN_DEL_BGM_NAME1 1237 +#define IDC_BTN_DEL_BGM_NAME2 1238 +#define IDC_BTN_LOAD_GROUP 1238 +#define IDC_BTN_DEL_BGM_NAME3 1239 +#define IDC_BTN_LOAD_REGEN 1239 +#define IDC_BTN_DEL_BGM_NAME4 1240 +#define IDC_BTN_DEL_BGE_NAME1 1241 +#define IDC_BTN_LOAD_CREATE 1241 +#define IDC_RADIO_SOW 1241 +#define IDC_BTN_DEL_BGE_NAME2 1242 +#define IDC_BTN_LOAD_OPTION 1242 +#define IDC_RADIO_SELECT 1242 +#define IDC_BTN_DEL_BGE_NAME3 1243 +#define IDC_SEED_EXIT 1243 +#define IDC_BTN_DEL_BGE_NAME4 1244 +#define IDC_BUTTON_RANDOM 1244 +#define IDC_S_TILE_DETAIL 1245 +#define IDC_SOW_BRUSH_SIZE 1246 +#define IDC_MAP_VIEW 1247 +#define IDC_MAP_UPDATA 1248 +#define IDC_MAP_VIEW_CANCEL 1249 +#define IDC_BUTTON_EDITPOND 1249 +#define IDC_BUTTON_MOVE_POND 1250 +#define IDC_BUTTON_STATION_POND 1251 +#define IDC_WIDTHLENGTH 1252 +#define IDC_HEIGHTLENGTH 1253 +#define IDC_STATICNAME1 1254 +#define IDC_STATICNAME2 1255 +#define IDC_BU_RECALCUV 1260 +#define IDC_STATIC3 1261 +#define IDC_COMBO_GOPOND 1262 +#define IDC_STATIC4 1263 +#define IDC_COMBO_RIBER 1264 +#define IDC_LIST_LIGHTS 1265 +#define IDC_BTN_DOWNLOAD 1267 +#define IDC_BTN_UPLOAD 1268 +#define IDC_PATHNAME 1269 +#define IDC_EDT_NAME 1270 +#define IDC_STC_COLOR 1271 +#define IDC_SLD_RANGE 1272 +#define ID_CURSOR_SELECT 32774 +#define ID_CURSOR_OBJ_BRUSH 32775 +#define ID_EDIT_PROPERTY 32776 +#define ID_FILLMODE_WIREFRAME 32777 +#define ID_FILLMODE_SOLID 32778 +#define ID_CURSOR_ROTATE 32779 +#define ID_CURSOR_POS 32780 +#define ID_CURSOR_SCALE 32781 +#define ID_FILE_EXPORT 32788 +#define ID_VIEW_SOURCEOBJECT 32789 +#define ID_VIEW_OUTPUTOBJECT 32790 +#define ID_VIEW_WIREFRAME 32791 +#define ID_VIEW_SOLID 32792 +#define ID_CURSOR_EDIT_TERRAIN 32794 +#define ID_TIP_FOCUS_SELOBJ 32796 +#define ID_TIP_FOCUS_ALL 32797 +#define ID_TIP_DROP 32798 +#define ID_BUTTON32799 32799 +#define ID_TIP_DELETE_OBJ 32800 +#define ID_CURSOR_SMOOTH_TERRAIN 32801 +#define ID_FILE_IMPORT 32802 +#define ID_EDIT_DTEX 32803 +#define ID_VIEW_DTEX 32804 +#define ID_CURSOR_DTEX 32805 +#define ID_FILE_SERVER_DATA 32806 +#define ID_CURSOR_EDIT_RIVER 32807 +#define ID_PROJECT_SET 32808 +#define ID_FILE_COLORMAP_LOAD 32809 +#define ID_FILE_COLORMAP_SAVE 32810 +#define ID_FILE_GAMETILETEX_SAV 32811 +#define ID_FILE_GAMETILETEX_SAVE 32811 +#define ID_RESOURCE_PATH_SET 32812 +#define ID_TIP_GENERATE_COLORMAP 32813 +#define ID_TIP_TILING_ALL 32814 +#define ID_TIP_GENERATE_COLORMAP_ALL 32816 +#define ID_TIP_DEFAULT_MATERIAL 32817 +#define ID_TIP_REMOVE_ALPHAFLAG 32818 +#define ID_CURSOR_EDIT_LIGHTMAP 32819 +#define ID_CURSOR_MAKE_NPCPATH 32821 +#define ID_VIEW_SELECTED_OBJECT_WIREFRAME 32822 +#define ID_TIP_SOW_SEED 32823 +#define ID_FILE_IMPORT_POST_DATA_FROM_SCENE 32824 +#define ID_VIEW_HIDE_OBJ 32825 +#define ID_VIEW_AXIS_AND_GRID 32826 +#define ID_CURSOR_MAKE_WALL 32827 +#define ID_CURSOR_EDIT_EVENT 32828 +#define ID_FILE_IMPORT_SHAPES 32829 +#define ID_CURSOR_EDIT_POND 32830 +#define ID_FILE_IMPORT_HEIGHT 32831 +#define ID_TIP_DELETE_UNUSED_FILES 32832 +#define ID_TIP_DELETE_OVERLAPPED_OBJECTS 32833 #define ID_TIP_DELETE_SELECTED_SOURCE_OBJECTS 32834 -#define ID_VIEW_ORTH 32835 -#define ID_CURSOR_FLAT_TERRAIN 32836 -#define ID_VIEW_TOGGLE_FOG 32837 -#define ID_CURSOR_REGEN_USER 32838 -#define ID_TIP_SET_WARP_INFO 32839 -#define ID_FILE_SAVE_DIVIDE 32840 -#define ID_FILE_EXPORT_HEIGHT_BMP 32841 -#define ID_FILE_IMPORT_HEIGHT_BMP 32842 -#define ID_TIP_SET_HEIGHT_SCALE 32843 -#define ID_CURSOR_SOUND 32844 -#define ID_SELECT_MAP_EDIT 32845 -#define ID_CURSOR_LIGHTOBJ 32846 +#define ID_VIEW_ORTH 32835 +#define ID_CURSOR_FLAT_TERRAIN 32836 +#define ID_VIEW_TOGGLE_FOG 32837 +#define ID_CURSOR_REGEN_USER 32838 +#define ID_TIP_SET_WARP_INFO 32839 +#define ID_FILE_SAVE_DIVIDE 32840 +#define ID_FILE_EXPORT_HEIGHT_BMP 32841 +#define ID_FILE_IMPORT_HEIGHT_BMP 32842 +#define ID_TIP_SET_HEIGHT_SCALE 32843 +#define ID_CURSOR_SOUND 32844 +#define ID_SELECT_MAP_EDIT 32845 +#define ID_CURSOR_LIGHTOBJ 32846 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 183 -#define _APS_NEXT_COMMAND_VALUE 32847 -#define _APS_NEXT_CONTROL_VALUE 1273 -#define _APS_NEXT_SYMED_VALUE 107 +#define _APS_3D_CONTROLS 1 +#define _APS_NEXT_RESOURCE_VALUE 208 +#define _APS_NEXT_COMMAND_VALUE 32847 +#define _APS_NEXT_CONTROL_VALUE 1273 +#define _APS_NEXT_SYMED_VALUE 107 #endif #endif diff --git a/src/tool/RscTables/RscTables.rc b/src/tool/RscTables/RscTables.rc index 0209ac44..a6e62a6f 100644 --- a/src/tool/RscTables/RscTables.rc +++ b/src/tool/RscTables/RscTables.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,13 +13,11 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// Korean resources +// Korean (Korea) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR) -#ifdef _WIN32 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT #pragma code_page(949) -#endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -27,18 +25,18 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" @@ -58,6 +56,16 @@ END #endif // APSTUDIO_INVOKED +#endif // Korean (Korea) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // @@ -66,73 +74,63 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\RscTables.ico" +IDR_MAINFRAME ICON "res\\RscTables.ico" + ///////////////////////////////////////////////////////////////////////////// // // Dialog // -IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "RscTables " -FONT 9, "" +IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "RscTables ??" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 - LTEXT "RscTables 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX + ICON IDR_MAINFRAME,IDC_STATIC,11,17,18,17 + LTEXT "RscTables ?? 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX LTEXT "Copyright (C) 2001",IDC_STATIC,40,25,119,8 - DEFPUSHBUTTON "Ȯ",IDOK,178,7,50,14,WS_GROUP + DEFPUSHBUTTON "??",IDOK,178,9,50,14,WS_GROUP END IDD_RSCTABLES_DIALOG DIALOGEX 0, 0, 354, 439 -STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME EXSTYLE WS_EX_APPWINDOW CAPTION "RscTables" MENU IDR_MENU -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - LISTBOX IDC_LIST_DATATYPE,3,3,150,429,LBS_OWNERDRAWVARIABLE | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | - WS_TABSTOP - LTEXT "Data0 is must be DWORD type. and it must be identifical number.", - IDC_STATIC,162,9,189,24 - LTEXT "Converting\n1. make table by Excel\n2. Save as txt\n3. open enumeration file\n4. Convert text 2 bin.", - IDC_STATIC,162,39,183,42 - EDITTEXT IDC_E_TABLE_BASIC_TXT,192,126,129,12,ES_MULTILINE | - ES_AUTOHSCROLL | ES_READONLY + LISTBOX IDC_LIST_DATATYPE,3,3,150,429,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LTEXT "Data0 is must be DWORD type. and it must be identifical number.",IDC_STATIC,162,14,189,18 + LTEXT "Converting\n1. make table by Excel\n2. Save as txt\n3. open enumeration file\n4. Convert text 2 bin.",IDC_STATIC,162,39,183,42 + EDITTEXT IDC_E_TABLE_BASIC_TXT,192,126,129,12,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY PUSHBUTTON "..",IDC_B_OPEN_TABLE_BASIC,324,114,15,24 GROUPBOX "Item Generation",IDC_STATIC,162,87,183,345 PUSHBUTTON "Generate All",IDC_B_GENERATE_ALL,252,405,87,21 - PUSHBUTTON "Generate Selected",IDC_B_GENERATE_SELECTED,168,405,84, - 21 - LISTBOX IDC_LIST_TABLE_EXT,168,169,171,233,LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_HSCROLL | WS_TABSTOP - EDITTEXT IDC_E_TABLE_BASIC_ENM,192,114,129,12,ES_MULTILINE | - ES_AUTOHSCROLL | ES_READONLY + PUSHBUTTON "Generate Selected",IDC_B_GENERATE_SELECTED,168,405,84,21 + LISTBOX IDC_LIST_TABLE_EXT,168,175,171,227,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + EDITTEXT IDC_E_TABLE_BASIC_ENM,192,114,129,12,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY LTEXT "Basic Table",IDC_STATIC,192,102,42,8 PUSHBUTTON "..",IDC_B_OPEN_TABLE_EXT_ENUM,324,156,15,12 - EDITTEXT IDC_E_TABLE_EXT_ENM,192,157,129,12,ES_MULTILINE | - ES_AUTOHSCROLL | ES_READONLY + EDITTEXT IDC_E_TABLE_EXT_ENM,192,157,129,12,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY LTEXT "Extension Table",IDC_STATIC,192,144,39,8 LTEXT "*.enm",IDC_STATIC,171,114,21,12,SS_CENTERIMAGE LTEXT "*.txt",IDC_STATIC,171,126,21,12,SS_CENTERIMAGE LTEXT "*.enm",IDC_STATIC,171,157,21,12,SS_CENTERIMAGE END -IDD_DIALOG_DATACOUNT DIALOG DISCARDABLE 0, 0, 122, 55 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_DIALOG_DATACOUNT DIALOGEX 0, 0, 157, 55 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Data Count" -FONT 9, "" +FONT 9, "Arial", 400, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",IDOK,7,34,50,14 - PUSHBUTTON "Cancel",IDCANCEL,65,34,50,14 - EDITTEXT IDC_EDIT_COUNT,67,13,48,13,ES_AUTOHSCROLL | ES_NUMBER - LTEXT "Input Data Count",IDC_STATIC,7,15,57,10 + DEFPUSHBUTTON "OK",IDOK,16,34,50,14 + PUSHBUTTON "Cancel",IDCANCEL,81,34,50,14 + EDITTEXT IDC_EDIT_COUNT,83,13,48,13,ES_AUTOHSCROLL | ES_NUMBER + LTEXT "Input Data Count",IDC_STATIC,16,15,57,10 END -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -155,18 +153,13 @@ BEGIN BEGIN BLOCK "041204b0" BEGIN - VALUE "Comments", "\0" - VALUE "CompanyName", "\0" - VALUE "FileDescription", "Resource Table ȯ α׷\0" - VALUE "FileVersion", "2, 1, 10, 1632\0" - VALUE "InternalName", "RscTables\0" - VALUE "LegalCopyright", "Copyright (C) 2001\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "RscTables.EXE\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "RscTables α׷\0" - VALUE "ProductVersion", "2, 1, 10, 1632\0" - VALUE "SpecialBuild", "\0" + VALUE "FileDescription", "Resource Table ?? ????" + VALUE "FileVersion", "2, 1, 10, 1632" + VALUE "InternalName", "RscTables" + VALUE "LegalCopyright", "Copyright (C) 2001" + VALUE "OriginalFilename", "RscTables.EXE" + VALUE "ProductName", "RscTables ?? ????" + VALUE "ProductVersion", "2, 1, 10, 1632" END END BLOCK "VarFileInfo" @@ -175,8 +168,6 @@ BEGIN END END -#endif // !_MAC - ///////////////////////////////////////////////////////////////////////////// // @@ -184,7 +175,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_ABOUTBOX, DIALOG BEGIN @@ -205,7 +196,7 @@ BEGIN IDD_DIALOG_DATACOUNT, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 115 + RIGHTMARGIN, 150 TOPMARGIN, 7 BOTTOMMARGIN, 48 END @@ -218,7 +209,7 @@ END // Menu // -IDR_MENU MENU DISCARDABLE +IDR_MENU MENU BEGIN POPUP "&File" BEGIN @@ -246,14 +237,39 @@ BEGIN END +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_DIALOG_DATACOUNT AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_RSCTABLES_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_ABOUTBOX AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + ///////////////////////////////////////////////////////////////////////////// // // String Table // -STRINGTABLE DISCARDABLE +STRINGTABLE +BEGIN + IDS_ABOUTBOX "RscTables ??(&A)..." +END + +STRINGTABLE BEGIN - IDS_ABOUTBOX "RscTables (&A)..." IDS_FMT_TABLE_EXT0 "0 : Dagger - " IDS_FMT_TABLE_EXT1 "1 : Sword - " IDS_FMT_TABLE_EXT2 "2 : TwoHanded Sword - " @@ -270,6 +286,10 @@ BEGIN IDS_FMT_TABLE_EXT13 "13 : Upper - " IDS_FMT_TABLE_EXT14 "14 : Lower - " IDS_FMT_TABLE_EXT15 "15 : Helmet - " +END + +STRINGTABLE +BEGIN IDS_FMT_TABLE_EXT16 "16 : Gauntlet - " IDS_FMT_TABLE_EXT17 "17 : Graves - " IDS_FMT_TABLE_EXT18 "18 : EarRing - " @@ -280,7 +300,7 @@ BEGIN IDS_FMT_TABLE_EXT23 "23 : Temp, Tester's Ring - " END -#endif // Korean resources +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/tool/RscTables/res/RscTables.ico b/src/tool/RscTables/res/RscTables.ico index 99c8d32330f938951576eb5d33edac67d7ce50c2..29834cb40c882246f8c272c8603876b62d9d9a92 100644 GIT binary patch delta 38 ncmdlcvrR^pfq{{Mi9tYs0SGu4GFTZH)PO7n1u%c3tRx=*RXhW| delta 38 lcmdlcvrR^pfq{{Mi9tYs0Sq!&85q=nECmHHccZK%9{^Nr1FZl6 diff --git a/src/tool/UIE/UIE.rc b/src/tool/UIE/UIE.rc index 743141de..5db153e3 100644 --- a/src/tool/UIE/UIE.rc +++ b/src/tool/UIE/UIE.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,13 +13,11 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// Korean resources +// Korean (Korea) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR) -#ifdef _WIN32 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT #pragma code_page(949) -#endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -27,18 +25,18 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "#define _AFX_NO_OLE_RESOURCES\r\n" "#define _AFX_NO_TRACKER_RESOURCES\r\n" @@ -65,22 +63,25 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\UIE.ico" -IDR_UIETYPE ICON DISCARDABLE "res\\UIEDoc.ico" +IDR_MAINFRAME ICON "res\\UIE.ico" + +IDR_UIETYPE ICON "res\\UIEDoc.ico" + ///////////////////////////////////////////////////////////////////////////// // // Bitmap // -IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp" +IDR_MAINFRAME BITMAP "res\\Toolbar.bmp" + ///////////////////////////////////////////////////////////////////////////// // // Toolbar // -IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15 +IDR_MAINFRAME TOOLBAR 16, 15 BEGIN BUTTON ID_FILE_NEW BUTTON ID_FILE_OPEN @@ -99,7 +100,7 @@ END // Menu // -IDR_MAINFRAME MENU PRELOAD DISCARDABLE +IDR_MAINFRAME MENU BEGIN POPUP "&File" BEGIN @@ -114,7 +115,7 @@ BEGIN MENUITEM "&Export Tooltip file", ID_FILE_EXPORT_TOOLTIP MENUITEM "&Import Tooltip file", ID_FILE_IMPORT_TOOLTIP MENUITEM SEPARATOR - MENUITEM "ֱ ", ID_FILE_MRU_FILE1, GRAYED + MENUITEM "ֱ ", ID_FILE_MRU_FILE1, GRAYED MENUITEM SEPARATOR MENUITEM "E&xit", ID_APP_EXIT END @@ -172,166 +173,84 @@ BEGIN POPUP "&Batch Tool" BEGIN MENUITEM "Change &Image Path", ID_BATCH_TOOL_CHANGE_IMAGE_PATH - MENUITEM "Change &Font", ID_BATCH_TOOL_CHANGE_FONT MENUITEM "Gather Image FileNames", ID_BATCH_TOOL_GATHER_IMAGE_FILE_NAME - END END -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE -BEGIN - "D", ID_EDIT_DUPLICATE, VIRTKEY, CONTROL, NOINVERT - "G", ID_EDIT_MAKE_GROUP, VIRTKEY, CONTROL, NOINVERT - "N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT - "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT - "S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT - VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT - VK_DOWN, ID_EDITRECT_INCREASE_Y, VIRTKEY, NOINVERT - VK_DOWN, ID_EDITRECT_INCREASE_HEIGHT, VIRTKEY, SHIFT, NOINVERT - VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT - VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT - VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT - VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT - VK_LEFT, ID_EDITRECT_DECREASE_X, VIRTKEY, NOINVERT - VK_LEFT, ID_EDITRECT_DECREASE_WIDTH, VIRTKEY, SHIFT, NOINVERT - VK_RIGHT, ID_EDITRECT_INCREASE_X, VIRTKEY, NOINVERT - VK_RIGHT, ID_EDITRECT_INCREASE_WIDTH, VIRTKEY, SHIFT, NOINVERT - VK_UP, ID_EDITRECT_DECREASE_Y, VIRTKEY, NOINVERT - VK_UP, ID_EDITRECT_DECREASE_HEIGHT, VIRTKEY, SHIFT, NOINVERT - "X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT - "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT -END - -IDR_ACCEL_DLGTEXTURE ACCELERATORS DISCARDABLE -BEGIN - "G", ID_EDIT_MAKE_GROUP, VIRTKEY, CONTROL, NOINVERT - "H", IDC_RADIO_HAND, VIRTKEY, NOINVERT - "S", IDC_RADIO_SELECT, VIRTKEY, NOINVERT - "Z", IDC_RADIO_ZOOM, VIRTKEY, NOINVERT -END - -IDR_ACCEL_VIEW ACCELERATORS DISCARDABLE -BEGIN - "P", ID_EDIT_PARENT, VIRTKEY, NOINVERT - "P", ID_EDIT_UNPARENT, VIRTKEY, SHIFT, NOINVERT - "Q", ID_EDIT_MODE_SELECT, VIRTKEY, NOINVERT - "W", ID_EDIT_MODE_MOVE_AND_RESIZE, VIRTKEY, NOINVERT -END - - ///////////////////////////////////////////////////////////////////////////// // // Dialog // -IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "UIE ༭" -FONT 9, "" +IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "UIE About" +FONT 9, "", 0, 0, 0x0 BEGIN ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 - LTEXT "UIE༭",IDC_STATIC,40,10,119,8,SS_NOPREFIX + LTEXT "UIE Support",IDC_STATIC,40,10,119,8,SS_NOPREFIX LTEXT "Copyright (C) 2001",IDC_STATIC,40,25,119,8 - DEFPUSHBUTTON "ر",IDOK,178,7,50,14,WS_GROUP + DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP END -IDR_MAINFRAME DIALOG DISCARDABLE 0, 0, 330, 16 -STYLE WS_CHILD +IDR_MAINFRAME DIALOG 0, 0, 330, 16 +STYLE DS_SETFONT | WS_CHILD FONT 9, "" BEGIN PUSHBUTTON "Browse",IDC_BUTTON_BASEPATH,193,2,33,12 LTEXT "Դ· :",IDC_STATIC,5,4,58,8 - EDITTEXT IDC_EDIT_BASEPATH,66,2,126,12,ES_AUTOHSCROLL | - ES_READONLY + EDITTEXT IDC_EDIT_BASEPATH,66,2,126,12,ES_AUTOHSCROLL | ES_READONLY END -IDD_PROPERTY DIALOG DISCARDABLE 0, 0, 125, 307 -STYLE WS_CHILD +IDD_PROPERTY DIALOG 0, 0, 125, 307 +STYLE DS_SETFONT | WS_CHILD FONT 9, "" BEGIN - LISTBOX IDC_UI_BASE,0,0,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_BUTTON,0,53,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_IMAGE,0,18,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_STRING,0,35,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_PROGRESS,0,99,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_TRACKBAR,0,120,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_SCROLLBAR,0,142,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_EDIT,0,75,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_AREA,0,161,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_ICONSLOT,1,182,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_STATIC,0,202,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP - LISTBOX IDC_UI_LIST,0,222,107,18,LBS_OWNERDRAWVARIABLE | - LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_BASE,0,0,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_BUTTON,0,53,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_IMAGE,0,18,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_STRING,0,35,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_PROGRESS,0,99,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_TRACKBAR,0,120,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_SCROLLBAR,0,142,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_EDIT,0,75,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_AREA,0,161,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_ICONSLOT,1,182,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_STATIC,0,202,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LISTBOX IDC_UI_LIST,0,222,107,18,LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END IDD_TEXTURE DIALOGEX 0, 0, 277, 234 -STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | - WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME CAPTION "Texture" FONT 9, "", 0, 0, 0x1 BEGIN DEFPUSHBUTTON "OK",IDOK,227,0,50,14 PUSHBUTTON "Cancel",IDCANCEL,227,14,50,14 - CONTROL "Select(&S)",IDC_RADIO_SELECT,"Button", - BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP,226,31,50,14 - CONTROL "Zoom(&Z)",IDC_RADIO_ZOOM,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE,227,46,50,14 - CONTROL "Hand(&H)",IDC_RADIO_HAND,"Button",BS_AUTORADIOBUTTON | - BS_PUSHLIKE,227,61,50,14 - LTEXT "Info",IDC_STATIC_INFO,226,143,50,70,0,WS_EX_CLIENTEDGE | - WS_EX_STATICEDGE - COMBOBOX IDC_COMBO_IMAGETYPE,227,217,50,102,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "ڵ()",IDC_BUTTON_AUTOSELECT_H,227,82,50,14, - NOT WS_VISIBLE - PUSHBUTTON "ڵ()",IDC_BUTTON_AUTOSELECT_V,227,98,50,14, - NOT WS_VISIBLE -END - -IDD_ANIMATE DIALOG DISCARDABLE 0, 0, 115, 87 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU + CONTROL "Select(&S)",IDC_RADIO_SELECT,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_GROUP,226,31,50,14 + CONTROL "Zoom(&Z)",IDC_RADIO_ZOOM,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE,227,46,50,14 + CONTROL "Hand(&H)",IDC_RADIO_HAND,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE,227,61,50,14 + LTEXT "Info",IDC_STATIC_INFO,226,143,50,70,0,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE + COMBOBOX IDC_COMBO_IMAGETYPE,227,217,50,102,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "ڵ()",IDC_BUTTON_AUTOSELECT_H,227,82,50,14,NOT WS_VISIBLE + PUSHBUTTON "ڵ()",IDC_BUTTON_AUTOSELECT_V,227,98,50,14,NOT WS_VISIBLE +END + +IDD_ANIMATE DIALOG 0, 0, 115, 87 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Set animate image count" FONT 9, "" BEGIN DEFPUSHBUTTON "OK",IDOK,7,66,50,14 PUSHBUTTON "Cancel",IDCANCEL,58,66,50,14 - LTEXT "ϸ̼ǵǴ ׸ ڸ ϼ.\n(0 ø image ưϴ.)", - IDC_STATIC,7,7,101,32 + LTEXT "ϸ̼ǵǴ ׸ ڸ ϼ.\n(0 ø image ưϴ.)",IDC_STATIC,7,7,101,32 EDITTEXT IDC_EDIT_COUNT,7,47,101,14,ES_AUTOHSCROLL END -IDD_REPLACE DIALOG DISCARDABLE 0, 0, 227, 45 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_REPLACE DIALOG 0, 0, 227, 45 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Replace texture" FONT 9, "" BEGIN @@ -343,8 +262,8 @@ BEGIN EDITTEXT IDC_EDIT_REPLACE,41,24,125,14,ES_AUTOHSCROLL END -IDD_CHANGE_IMAGE_FILE_NAME DIALOG DISCARDABLE 0, 0, 189, 88 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_CHANGE_IMAGE_FILE_NAME DIALOG 0, 0, 189, 88 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "׸ ٲٱ" FONT 9, "" BEGIN @@ -359,19 +278,17 @@ BEGIN PUSHBUTTON "..",IDC_B_BROWSE_NEW_FILE,120,39,12,15 END -IDD_UNUSED_FILE DIALOG DISCARDABLE 0, 0, 390, 218 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_UNUSED_FILE DIALOG 0, 0, 390, 218 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION " ʴ Ʈ" FONT 9, "" BEGIN PUSHBUTTON "Cancel",IDCANCEL,198,174,186,39 - LISTBOX IDC_LIST_FILES,6,9,375,162,LBS_SORT | LBS_MULTIPLESEL | - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LISTBOX IDC_LIST_FILES,6,9,375,162,LBS_SORT | LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "õ ",IDC_B_DELETE_SELECT,6,174,186,39 END -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -394,18 +311,13 @@ BEGIN BEGIN BLOCK "041204b0" BEGIN - VALUE "Comments", "\0" - VALUE "CompanyName", "\0" - VALUE "FileDescription", "UIE MFC α׷\0" - VALUE "FileVersion", "2, 2, 7, 1341\0" - VALUE "InternalName", "UIE\0" - VALUE "LegalCopyright", "Copyright (C) 2001\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "UIE.EXE\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "UIE α׷\0" - VALUE "ProductVersion", "2, 2, 7, 1341\0" - VALUE "SpecialBuild", "\0" + VALUE "FileDescription", "UIE MFC α׷" + VALUE "FileVersion", "2, 2, 7, 1341" + VALUE "InternalName", "UIE" + VALUE "LegalCopyright", "Copyright (C) 2001" + VALUE "OriginalFilename", "UIE.EXE" + VALUE "ProductName", "UIE α׷" + VALUE "ProductVersion", "2, 2, 7, 1341" END END BLOCK "VarFileInfo" @@ -414,8 +326,6 @@ BEGIN END END -#endif // !_MAC - ///////////////////////////////////////////////////////////////////////////// // @@ -423,7 +333,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_ABOUTBOX, DIALOG BEGIN @@ -433,11 +343,19 @@ BEGIN BOTTOMMARGIN, 48 END + IDR_MAINFRAME, DIALOG + BEGIN + END + IDD_PROPERTY, DIALOG BEGIN BOTTOMMARGIN, 253 END + IDD_TEXTURE, DIALOG + BEGIN + END + IDD_ANIMATE, DIALOG BEGIN LEFTMARGIN, 7 @@ -475,30 +393,32 @@ END ///////////////////////////////////////////////////////////////////////////// // -// Cursor +// AFX_DIALOG_LAYOUT // -IDC_CURSOR_HAND CURSOR DISCARDABLE "res\\hand.cur" -IDC_CURSOR_ZOOMOUT CURSOR DISCARDABLE "res\\zoomout.cur" -IDC_CURSOR_ZOOMIN CURSOR DISCARDABLE "res\\zoomin.cur" +IDD_ABOUTBOX AFX_DIALOG_LAYOUT +BEGIN + 0 +END + ///////////////////////////////////////////////////////////////////////////// // // String Table // -STRINGTABLE PRELOAD DISCARDABLE +STRINGTABLE BEGIN IDR_MAINFRAME "UIE\n\nUI\nui (*.uif)\n.uif\nUIE.Document\nUI Document" END -STRINGTABLE PRELOAD DISCARDABLE +STRINGTABLE BEGIN AFX_IDS_APP_TITLE "UI Editor" AFX_IDS_IDLEMESSAGE "غ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_INDICATOR_EXT "EXT" ID_INDICATOR_CAPS "CAP" @@ -508,7 +428,7 @@ BEGIN ID_INDICATOR_REC "REC" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_FILE_NEW " ۼմϴ\n " ID_FILE_OPEN " ϴ\n" @@ -517,13 +437,13 @@ BEGIN ID_FILE_SAVE_AS "õUI ٸ ̸ Exportմϴ\nExport" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_APP_ABOUT "α׷ , ۱ ǥմϴ\n" ID_APP_EXIT " α׷ ϱ ϴ\n" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_FILE_MRU_FILE1 " ϴ" ID_FILE_MRU_FILE2 " ϴ" @@ -543,18 +463,18 @@ BEGIN ID_FILE_MRU_FILE16 " ϴ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_NEXT_PANE " â ȯմϴ\n â" ID_PREV_PANE " â ȯմϴ\n â" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_WINDOW_SPLIT " â ϴ\n" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_EDIT_CLEAR " κ ϴ\n" ID_EDIT_CLEAR_ALL " ϴ\n " @@ -569,14 +489,14 @@ BEGIN ID_EDIT_REDO " ٽ մϴ\nٽ " END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_VIEW_TOOLBAR " ̰ų ϴ\n ȯ" ID_VIEW_STATUS_BAR " ǥ ǥϰų ϴ\n ǥ ȯ" ID_VIEW_AUTOARRANGE "𴫿 ߾ մϴ." END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN AFX_IDS_SCSIZE "â ũ⸦ մϴ" AFX_IDS_SCMOVE "â ġ մϴ" @@ -587,13 +507,13 @@ BEGIN AFX_IDS_SCCLOSE " â ݰ ϴ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN AFX_IDS_SCRESTORE "â ũ մϴ" AFX_IDS_SCTASKLIST "۾ Ȱȭմϴ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_VIEW_SMALLICON " Ͽ ׸ ǥմϴ\n " ID_VIEW_LARGEICON "ū Ͽ ׸ ǥմϴ\nū " @@ -603,7 +523,7 @@ BEGIN ID_VIEW_BYNAME "ĺ մϴ." END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_INSERT_IMAGE "̹ մϴ.\nimage" ID_INSERT_STRING " ڸ մϴ.\nText" @@ -619,7 +539,7 @@ BEGIN ID_VIEW_EDIT " ȯմϴ.\n" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_INSERT_AREA "Area box մϴ.\narea" ID_INSERT_LIST "Text List մϴ.nList " @@ -628,7 +548,7 @@ BEGIN " õ UI ġ űų ũ⸦ մϴ.\nġ ̵, ũ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_EDIT_MAKE_GROUP " õ UI ϳ ׷ մϴ.\n׷ " ID_EDIT_MOVE_CHILD_TO_LOWER @@ -641,19 +561,85 @@ BEGIN ID_INSERT_GROUP "׷ \n ִ ׷ մϴ." ID_TEMP_CHANGE_PATH " ̹ ϵ θ ٲߴϴ.\\ ٲٱ" ID_TOOL_CHANGE_FONT " Ʈ ٲߴϴ.\\Ʈ ٲٱ" - ID_BATCH_TOOL_CHANGE_PATH - " ̹ ϵ θ ٲߴϴ.\\ ٲٱ" + ID_BATCH_TOOL_CHANGE_PATH " ̹ ϵ θ ٲߴϴ.\\ ٲٱ" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN - ID_BATCH_TOOL_CHANGE_IMAGE_PATH - " ̹ ϵ θ ٲߴϴ.\\ ٲٱ" + ID_BATCH_TOOL_CHANGE_IMAGE_PATH " ̹ ϵ θ ٲߴϴ.\\ ٲٱ" ID_BATCH_TOOL_GATHER_IMAGE_FILE_NAME " ʴ ̹ Ʈ ϴ.\n̻ ϸƮ ." END -#endif // Korean resources +#endif // Korean (Korea) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_MAINFRAME ACCELERATORS +BEGIN + "D", ID_EDIT_DUPLICATE, VIRTKEY, CONTROL, NOINVERT + "G", ID_EDIT_MAKE_GROUP, VIRTKEY, CONTROL, NOINVERT + "N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT + "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT + "S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT + VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT + VK_DOWN, ID_EDITRECT_INCREASE_Y, VIRTKEY, NOINVERT + VK_DOWN, ID_EDITRECT_INCREASE_HEIGHT, VIRTKEY, SHIFT, NOINVERT + VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT + VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT + VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT + VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT + VK_LEFT, ID_EDITRECT_DECREASE_X, VIRTKEY, NOINVERT + VK_LEFT, ID_EDITRECT_DECREASE_WIDTH, VIRTKEY, SHIFT, NOINVERT + VK_RIGHT, ID_EDITRECT_INCREASE_X, VIRTKEY, NOINVERT + VK_RIGHT, ID_EDITRECT_INCREASE_WIDTH, VIRTKEY, SHIFT, NOINVERT + VK_UP, ID_EDITRECT_DECREASE_Y, VIRTKEY, NOINVERT + VK_UP, ID_EDITRECT_DECREASE_HEIGHT, VIRTKEY, SHIFT, NOINVERT + "X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT + "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT +END + +IDR_ACCEL_DLGTEXTURE ACCELERATORS +BEGIN + "G", ID_EDIT_MAKE_GROUP, VIRTKEY, CONTROL, NOINVERT + "H", IDC_RADIO_HAND, VIRTKEY, NOINVERT + "S", IDC_RADIO_SELECT, VIRTKEY, NOINVERT + "Z", IDC_RADIO_ZOOM, VIRTKEY, NOINVERT +END + +IDR_ACCEL_VIEW ACCELERATORS +BEGIN + "P", ID_EDIT_PARENT, VIRTKEY, NOINVERT + "P", ID_EDIT_UNPARENT, VIRTKEY, SHIFT, NOINVERT + "Q", ID_EDIT_MODE_SELECT, VIRTKEY, NOINVERT + "W", ID_EDIT_MODE_MOVE_AND_RESIZE, VIRTKEY, NOINVERT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Cursor +// + +IDC_CURSOR_HAND CURSOR "res\\hand.cur" + +IDC_CURSOR_ZOOMOUT CURSOR "res\\zoomout.cur" + +IDC_CURSOR_ZOOMIN CURSOR "res\\zoomin.cur" + +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/tool/UIE/UIE.vcxproj b/src/tool/UIE/UIE.vcxproj index 27568ea7..230bb98b 100644 --- a/src/tool/UIE/UIE.vcxproj +++ b/src/tool/UIE/UIE.vcxproj @@ -64,6 +64,7 @@ EnableFastChecks EditAndContinue true + 4996 Windows @@ -98,6 +99,7 @@ true true true + 4996 Windows From 1ef7c16dc4c6be32c9325724fe0b575fc3518649 Mon Sep 17 00:00:00 2001 From: "sap_al@hotmail.com" Date: Sat, 16 Mar 2024 12:51:15 +0300 Subject: [PATCH 2/3] Clang-formating pass pr checks --- src/engine/N3Base/N3VMesh.h | 3 ++- src/game/Main.cpp | 31 ++++++++++++++----------------- src/game/Main.h | 1 - 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/engine/N3Base/N3VMesh.h b/src/engine/N3Base/N3VMesh.h index 45c141db..c669a752 100644 --- a/src/engine/N3Base/N3VMesh.h +++ b/src/engine/N3Base/N3VMesh.h @@ -26,7 +26,8 @@ class CN3VMesh : public CN3BaseFileAccess { bool Pick(const __Matrix44 & MtxWorld, const __Vector3 & vPos, const __Vector3 & vDir, __Vector3 * pVCol = NULL, __Vector3 * pVNormal = NULL); bool CheckCollision(const __Matrix44 & MtxWorld, const __Vector3 & v0, const __Vector3 & v1, - __Vector3 * pVCol = NULL, __Vector3 * pVNormal = NULL); // Collision check determination through local coordinates.. + __Vector3 * pVCol = NULL, + __Vector3 * pVNormal = NULL); // Collision check determination through local coordinates.. float Radius() { return m_fRadius; } void FindMinMax(); void Render(D3DCOLOR crLine); diff --git a/src/game/Main.cpp b/src/game/Main.cpp index 875f667c..46cf6b70 100644 --- a/src/game/Main.cpp +++ b/src/game/Main.cpp @@ -397,9 +397,8 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi CGameProcedure::s_bWindowed = true; #endif // #if _DEBUG - HWND hWndSub = CreateSubWindow(hInstance); - ::ShowWindow(hWndSub, SW_HIDE); + ::ShowWindow(hWndSub, SW_HIDE); // Clap clap clap clap... HWND hWndMain = CreateMainWindow(hInstance); @@ -407,34 +406,32 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi CLogWriter::Write("Cannot create window."); exit(-1); } - ::ShowWindow(hWndMain, nCmdShow); + ::ShowWindow(hWndMain, nCmdShow); ::SetActiveWindow(hWndMain); // Launcher - FILE * pFile = fopen("Launcher2.exe", "r"); + FILE * pFile = fopen("Launcher2.exe", "r"); if (pFile) { fclose(pFile); - if (::DeleteFile("Launcher.exe")) - { - ::rename("Launcher2.exe", "Launcher.exe"); + if (::DeleteFile("Launcher.exe")) { + ::rename("Launcher2.exe", "Launcher.exe"); } } // Huh huh tsk tsk tsk tsk? - if (lpCmdLine && lstrlen(lpCmdLine) > 0 && lstrlen(lpCmdLine) < 64) - { + if (lpCmdLine && lstrlen(lpCmdLine) > 0 && lstrlen(lpCmdLine) < 64) { char szService[64], szAccountTmp[64], szPWTmp[64]; sscanf(lpCmdLine, "%s %s %s", szService, szAccountTmp, szPWTmp); - if (0 == lstrcmpi(szService, "MGame")) { + if (0 == lstrcmpi(szService, "MGame")) { CGameProcedure::s_eLogInClassification = LIC_MGAME; - } else if (0 == lstrcmpi(szService, "Daum")) { + } else if (0 == lstrcmpi(szService, "Daum")) { CGameProcedure::s_eLogInClassification = LIC_DAUM; } else { CGameProcedure::s_eLogInClassification = LIC_KNIGHTONLINE; } CGameProcedure::s_szAccount = szAccountTmp; // Thick straw - CGameProcedure::s_szPassWord = szPWTmp; + CGameProcedure::s_szPassWord = szPWTmp; if (0 == lstrcmpi(szService, "$#$%&^@!#$%#@^%&#%$&^¿î¿µÆ??ü¿ë°Ô?Ó")) { // I was shocked CGameProcedure::s_bWindowed = true; @@ -445,8 +442,8 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi ////////////////////////////////////////////////////////////////////////////////////////// // Static Member - CGameProcedure::StaticMemberInit(hInstance, hWndMain, hWndSub); - CGameProcedure::ProcActiveSet((CGameProcedure *)CGameProcedure::s_pProcLogIn); + CGameProcedure::StaticMemberInit(hInstance, hWndMain, hWndSub); + CGameProcedure::ProcActiveSet((CGameProcedure *)CGameProcedure::s_pProcLogIn); BOOL bGotMsg = FALSE; @@ -492,14 +489,14 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi #endif // #if _DEBUG ////////////////////////////// - // + // // ::TerminateThread(hThreadCheckSpeedHack, 0); // hThreadCheckSpeedHack = 0; // dwCSHID = 0; - // + // ////////////////////////////// - CGameProcedure::StaticMemberRelease(); + CGameProcedure::StaticMemberRelease(); CN3Log::Destroy(); return msg.wParam; diff --git a/src/game/Main.h b/src/game/Main.h index 6c82930a..51b8b76b 100644 --- a/src/game/Main.h +++ b/src/game/Main.h @@ -1,6 +1,5 @@ #pragma once - LRESULT CALLBACK WndProcMain(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK WndProcSub(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK OYBLowLevelKeyboardProc(INT nCode, WPARAM wParam, LPARAM lParam); From aaff1bf1d2eba355a6336ef0779847b513929d55 Mon Sep 17 00:00:00 2001 From: SeniourMarquies Date: Sun, 28 Apr 2024 07:21:57 +0300 Subject: [PATCH 3/3] Korean to English --- src/engine/N3Base/BitMapFile.cpp | 49 +- src/engine/N3Base/BitMapFile.h | 10 +- src/engine/N3Base/DFont.cpp | 16 +- src/engine/N3Base/DFont.h | 28 +- src/engine/N3Base/JPEG.H | 8 +- src/engine/N3Base/LogWriter.cpp | 7 +- src/engine/N3Base/My_3DStruct.h | 9 +- src/engine/N3Base/N3AlphaPrimitiveManager.cpp | 5 +- src/engine/N3Base/N3AlphaPrimitiveManager.h | 5 +- src/engine/N3Base/N3AnimControl.h | 27 +- src/engine/N3Base/N3AnimatedTexures.cpp | 3 +- src/engine/N3Base/N3Base.cpp | 6 +- src/engine/N3Base/N3Base.h | 6 +- src/engine/N3Base/N3Board.cpp | 3 +- src/engine/N3Base/N3Camera.cpp | 5 +- src/engine/N3Base/N3Eng.cpp | 6 +- src/engine/N3Base/N3FXPlug.cpp | 2 +- src/engine/N3Base/N3IMesh.cpp | 4 +- src/engine/N3Base/N3IMesh.h | 18 +- src/engine/N3Base/N3Joint.cpp | 576 ++++++++++++++++++ src/engine/N3Base/N3Joint.h | 2 +- src/engine/N3Base/N3Light.h | 9 +- src/engine/N3Base/N3Mesh.h | 2 +- src/engine/N3Base/N3Mng.h | 3 +- src/engine/N3Base/N3PMesh.cpp | 12 +- src/engine/N3Base/N3PMesh.h | 9 +- src/engine/N3Base/N3PMeshInstance.cpp | 10 +- src/engine/N3Base/N3PMeshInstance.h | 4 +- src/engine/N3Base/N3Shape.cpp | 17 +- src/engine/N3Base/N3Shape.h | 8 +- src/engine/N3Base/N3ShapeExtra.cpp | 7 +- src/engine/N3Base/N3ShapeExtra.h | 5 +- src/engine/N3Base/N3TableBase.h | 30 +- src/engine/N3Base/N3Texture.cpp | 16 +- src/engine/N3Base/N3Texture.h | 4 +- src/engine/N3Base/N3TransformCollision.cpp | 4 +- src/game/Bird.cpp | 18 +- src/game/Bird.h | 18 +- src/game/BirdMng.cpp | 6 +- src/game/BirdMng.h | 2 +- src/game/GameProcedure.cpp | 27 +- src/game/GameProcedure.h | 4 +- 42 files changed, 813 insertions(+), 197 deletions(-) diff --git a/src/engine/N3Base/BitMapFile.cpp b/src/engine/N3Base/BitMapFile.cpp index 83c758e3..af43eb2b 100644 --- a/src/engine/N3Base/BitMapFile.cpp +++ b/src/engine/N3Base/BitMapFile.cpp @@ -21,41 +21,35 @@ 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 instead of bm + // bmp instead of bm if (m_bmfHeader.bfType != 0x4D42) { MessageBox(::GetActiveWindow(), "What bitmap?", "error", MB_OK); return FALSE; } - 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) - { - MessageBox(::GetActiveWindow(), "my bitmap, 24 bit.", "error", - NULL); + if (24 != wBitCount || m_bmInfoHeader.biWidth <= 0 || m_bmInfoHeader.biHeight <= 0) { + MessageBox(::GetActiveWindow(), "my bitmap, 24 bit.", "error", NULL); return FALSE; } // 24 bit int iRealWidth = ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; - // why? + // why? int iDIBSize = iRealWidth * m_bmInfoHeader.biHeight; if ((m_pPixels = ::GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, iDIBSize)) == NULL) { @@ -63,8 +57,7 @@ bool CBitMapFile::Load(HANDLE hFile) { return FALSE; } - - for (int y = m_bmInfoHeader.biHeight - 1; y >= 0; y--) // What is it? + for (int y = m_bmInfoHeader.biHeight - 1; y >= 0; y--) // What is it? { ReadFile(hFile, (BYTE *)m_pPixels + y * iRealWidth, iRealWidth, &dwRWC, NULL); } @@ -85,18 +78,13 @@ void * CBitMapFile::Pixels(int x, int y) { bool CBitMapFile::Save(HANDLE hFile) { DWORD dwRWC = 0; - WriteFile(hFile, &m_bmfHeader, sizeof(m_bmfHeader), &dwRWC, NULL); - WriteFile(hFile, &m_bmInfoHeader, sizeof(m_bmInfoHeader), &dwRWC, NULL); - 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); } @@ -138,23 +126,23 @@ bool CBitMapFile::SaveRectToFile(const std::string & szFN, RECT rc) { DWORD dwRWC = 0; HANDLE hFile = ::CreateFile(szFN.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - // Contacted or reached + // Contacted or reached if (INVALID_HANDLE_VALUE == hFile) { MessageBox(::GetActiveWindow(), "What a bitmap.", "error", MB_OK); return false; } - // 24 bit + // 24 bit int iRealWidthDest = ((int)((nWidth * 3 + 3) / 4)) * 4; int iDestDIBSize = sizeof(BITMAPINFOHEADER) + iRealWidthDest * nHeight; - // What is the name of the file header? + // What is the name of the 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; @@ -162,17 +150,14 @@ bool CBitMapFile::SaveRectToFile(const std::string & szFN, RECT rc) { bmInfoHeaderDest.biPlanes = 1; bmInfoHeaderDest.biSizeImage = iRealWidthDest * nHeight; - WriteFile(hFile, &bmfHeaderDest, sizeof(bmfHeaderDest), &dwRWC, NULL); - 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); @@ -220,14 +205,14 @@ 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; - int iDIBSize = iRealWidth * nHeight; + int iRealWidth = ((nWidth * 3 + 3) / 4) * 4; + int iDIBSize = iRealWidth * nHeight; if ((m_pPixels = ::GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, iDIBSize)) == NULL) { MessageBox(::GetActiveWindow(), "What is it?", "error", MB_OK); @@ -236,7 +221,7 @@ bool CBitMapFile::Create(int nWidth, int nHeight, int nBPP) { memset(m_pPixels, 0, iDIBSize); - // What is the name of the file header? + // What is the name of the file header? m_bmfHeader.bfType = 0x4D42; // "BM" m_bmfHeader.bfSize = sizeof(m_bmfHeader) + iDIBSize; m_bmfHeader.bfOffBits = sizeof(m_bmfHeader) + sizeof(BITMAPINFOHEADER); diff --git a/src/engine/N3Base/BitMapFile.h b/src/engine/N3Base/BitMapFile.h index a3566cdd..9cc1ab5b 100644 --- a/src/engine/N3Base/BitMapFile.h +++ b/src/engine/N3Base/BitMapFile.h @@ -10,11 +10,11 @@ class CBitMapFile { BITMAPINFOHEADER m_bmInfoHeader; public: - void * m_pPixels; // actual pixel data - int Pitch() { return ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; } // Actual width of the bitmap (byte unit). - 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; // actual pixel data + int Pitch() { return ((int)((m_bmInfoHeader.biWidth * 3 + 3) / 4)) * 4; } // Actual width of the bitmap (byte unit). + 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); diff --git a/src/engine/N3Base/DFont.cpp b/src/engine/N3Base/DFont.cpp index 0d7ba8a2..397c7af2 100644 --- a/src/engine/N3Base/DFont.cpp +++ b/src/engine/N3Base/DFont.cpp @@ -403,7 +403,8 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { m_dwFontColor = 0xffffffff; SIZE size; - float fMaxX = 0.0f, fMaxY = 0.0f; // To investigate the maximum and minimum values of the range in which letters can be printed. + float fMaxX = 0.0f, + fMaxY = 0.0f; // To investigate the maximum and minimum values of the range in which letters can be printed. while (iCount < iStrLen) { if ('\n' == szText[iCount]) { // \n @@ -455,11 +456,11 @@ void CDFont::Make2DVertex(const int iFontHeight, const std::string & szText) { vtx_sx = 0; vtx_sy = vtx_sy + ((float)(iFontHeight)) / m_fTextScale; continue; - } else if (0x80 & szText[iCount]) { + } else if (0x80 & szText[iCount]) { memcpy(szTempChar, &(szText[iCount]), 2); iCount += 2; szTempChar[2] = 0x00; - } else { + } else { memcpy(szTempChar, &(szText[iCount]), 1); iCount += 1; szTempChar[1] = 0x00; @@ -594,7 +595,8 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO char szTempChar[3] = ""; SIZE size; - float fMaxX = 0.0f, fMaxY = 0.0f; // To investigate the maximum and minimum values of the range in which letters can be printed. + float fMaxX = 0.0f, + fMaxY = 0.0f; // To investigate the maximum and minimum values of the range in which letters can be printed. while (iCount < iStrLen) { if ('\n' == szText[iCount]) // \n @@ -646,13 +648,11 @@ void CDFont::Make3DVertex(const int iFontHeight, const std::string & szText, DWO vtx_sx = 0; vtx_sy = vtx_sy - ((float)(iFontHeight)) / m_fTextScale; continue; - } else if (0x80 & szText[iCount]) - { + } else if (0x80 & szText[iCount]) { memcpy(szTempChar, &(szText[iCount]), 2); iCount += 2; szTempChar[2] = 0x00; - } else - { + } else { memcpy(szTempChar, &(szText[iCount]), 1); iCount += 1; szTempChar[1] = 0x00; diff --git a/src/engine/N3Base/DFont.h b/src/engine/N3Base/DFont.h index c98738cb..16d297ec 100644 --- a/src/engine/N3Base/DFont.h +++ b/src/engine/N3Base/DFont.h @@ -65,12 +65,12 @@ class CDFont : public CN3Base { // In this case, use Scale to enlarge the image. // HDC m_hDC; // DC handle - HFONT m_hFont; //Font handle - UINT m_iPrimitiveCount; // Number of plates to write on - D3DXVECTOR2 m_PrevLeftTop; // In case of DrawText, variable for when the location of the drawing location changes - DWORD m_dwFontColor; // font color - BOOL m_Is2D; // Is it 2D Text? - SIZE m_Size; // Size occupied by written letters (pixel unit, width and height) + HFONT m_hFont; //Font handle + UINT m_iPrimitiveCount; // Number of plates to write on + D3DXVECTOR2 m_PrevLeftTop; // In case of DrawText, variable for when the location of the drawing location changes + DWORD m_dwFontColor; // font color + BOOL m_Is2D; // Is it 2D Text? + SIZE m_Size; // Size occupied by written letters (pixel unit, width and height) // Operations public: @@ -81,13 +81,15 @@ class CDFont : public CN3Base { return false; } void AddToAlphaManager(DWORD dwColor, float fDist, __Matrix44 & mtxWorld, DWORD dwFlags); - HRESULT SetFontColor(DWORD dwColor); // Change the font color. - HRESULT InitDeviceObjects(LPDIRECT3DDEVICE9 pd3dDevice); // Initialization function that determines the d3d device (called when Init) - HRESULT RestoreDeviceObjects(); // Initialization function to set resources in memory (called when Init) - HRESULT InvalidateDeviceObjects(); // Function to invalidate resources, etc. (called when releasing) - HRESULT DeleteDeviceObjects(); // Release resources, etc. from memory (called when releasing) - - HRESULT SetText(const std::string & szText, DWORD dwFlags = 0L); // It is important to call this only when the text to be printed changes. + HRESULT SetFontColor(DWORD dwColor); // Change the font color. + HRESULT InitDeviceObjects( + LPDIRECT3DDEVICE9 pd3dDevice); // Initialization function that determines the d3d device (called when Init) + HRESULT RestoreDeviceObjects(); // Initialization function to set resources in memory (called when Init) + HRESULT InvalidateDeviceObjects(); // Function to invalidate resources, etc. (called when releasing) + HRESULT DeleteDeviceObjects(); // Release resources, etc. from memory (called when releasing) + + HRESULT SetText(const std::string & szText, + DWORD dwFlags = 0L); // It is important to call this only when the text to be printed changes. HRESULT DrawText(FLOAT sx, FLOAT sy, DWORD dwColor, DWORD dwFlags, FLOAT fZ = 1.0f); // Draw the text stored in the buffer. (2d) HRESULT DrawText3D(DWORD dwColor, DWORD dwFlags); // Draw the text stored in the buffer. (3d) diff --git a/src/engine/N3Base/JPEG.H b/src/engine/N3Base/JPEG.H index f90f486a..a2c9b6cb 100644 --- a/src/engine/N3Base/JPEG.H +++ b/src/engine/N3Base/JPEG.H @@ -32,7 +32,7 @@ struct DHT { }; struct FRAMEHEADER { - WORD Y; // height of image + WORD Y; // height of image WORD X; //width of image BYTE Nf; // number of components BYTE C[3]; // component ID @@ -42,7 +42,7 @@ struct FRAMEHEADER { }; struct SCANHEADER { - BYTE Ns; // number of components + BYTE Ns; // number of components BYTE Cs[3]; // component ID BYTE Td[3]; // DC Huffman Table number of the component BYTE Ta[3]; // AC Huffman Table number of the component @@ -87,8 +87,8 @@ class CJpeg { void PutSOS(HANDLE hFile); // Insert ScanHeader void PutEOI(HANDLE hFile); // Insert End of Image marker - void ShotBit(BYTE Bit); // Function to store 1 bit in the buffer - void ChargeCode(WORD Code, int Size); // Function to store the code in the buffer as long as Size (from the bottom) + void ShotBit(BYTE Bit); // Function to store 1 bit in the buffer + void ChargeCode(WORD Code, int Size); // Function to store the code in the buffer as long as Size (from the bottom) void EncodeDU(short * pos, BOOL Flag, int bWidth); // Function to encode 8x8 Block void hEncode(int bWidth, int bHeight); // Huffman encoding part BYTE GetCategory(short V); // Function to find the category of a given value diff --git a/src/engine/N3Base/LogWriter.cpp b/src/engine/N3Base/LogWriter.cpp index cf19a9e5..0421d36f 100644 --- a/src/engine/N3Base/LogWriter.cpp +++ b/src/engine/N3Base/LogWriter.cpp @@ -36,8 +36,7 @@ void CLogWriter::Open(const std::string & szFN) { DWORD dwSizeHigh = 0; DWORD dwSizeLow = ::GetFileSize(hFile, &dwSizeHigh); - if (dwSizeLow > 256000) - { + if (dwSizeLow > 256000) { CloseHandle(hFile); ::DeleteFile(s_szFileName.c_str()); hFile = CreateFile(s_szFileName.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); @@ -46,7 +45,7 @@ void CLogWriter::Open(const std::string & szFN) { } } - ::SetFilePointer(hFile, 0, NULL, FILE_END); + ::SetFilePointer(hFile, 0, NULL, FILE_END); char szBuff[1024]; SYSTEMTIME time; @@ -75,7 +74,7 @@ void CLogWriter::Close() { } if (hFile) { - ::SetFilePointer(hFile, 0, NULL, FILE_END); + ::SetFilePointer(hFile, 0, NULL, FILE_END); char szBuff[1024]; SYSTEMTIME time; diff --git a/src/engine/N3Base/My_3DStruct.h b/src/engine/N3Base/My_3DStruct.h index 267e75e4..b7c3170f 100644 --- a/src/engine/N3Base/My_3DStruct.h +++ b/src/engine/N3Base/My_3DStruct.h @@ -695,14 +695,14 @@ inline void __Matrix44::operator-=(const D3DXVECTOR3 & v) { inline __Matrix44 __Matrix44::operator*(const __Quaternion & qRot) { static __Matrix44 mtx; - mtx. operator=(qRot); + mtx.operator=(qRot); return this->operator*(mtx); } inline void __Matrix44::operator*=(const __Quaternion & qRot) { static __Matrix44 mtx; - mtx. operator=(qRot); + mtx.operator=(qRot); this->operator*=(mtx); } @@ -1558,7 +1558,8 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, // If determinant is near zero, ray lies in plane of triangle fDet = vEdge1.Dot(pVec); - if (fDet < 0.0001f) { // When it is close to 0, the plane of the triangle and the line passing through it are parallel. + if (fDet < + 0.0001f) { // When it is close to 0, the plane of the triangle and the line passing through it are parallel. return FALSE; } @@ -1616,7 +1617,7 @@ inline bool _IntersectTriangle(const __Vector3 & vOrig, const __Vector3 & vDir, vEdge1 = v1 - v0; vEdge2 = v2 - v0; - // By: Ecli666 (On 2001-09-12 10:39:01 AM) + // By: Ecli666 (On 2001-09-12 10:39:01 AM) pVec.Cross(vEdge1, vEdge2); fDet = pVec.Dot(vDir); diff --git a/src/engine/N3Base/N3AlphaPrimitiveManager.cpp b/src/engine/N3Base/N3AlphaPrimitiveManager.cpp index d48e627b..7737d38b 100644 --- a/src/engine/N3Base/N3AlphaPrimitiveManager.cpp +++ b/src/engine/N3Base/N3AlphaPrimitiveManager.cpp @@ -26,7 +26,8 @@ void CN3AlphaPrimitiveManager::Render() { for (int i = 0; i < m_nToDrawCount; i++) { pBuffs[i] = &(m_Buffers[i]); } - qsort(pBuffs, m_nToDrawCount, 4, SortByCameraDistance); // Sort according to the primitives accumulated in the buffer. + qsort(pBuffs, m_nToDrawCount, 4, + SortByCameraDistance); // Sort according to the primitives accumulated in the buffer. struct __RenderState { DWORD dwAlpha, dwFog, dwCull, dwLgt, dwZWrite, dwAO, dwAA1, dwAA2, dwCO, dwCA1, dwCA2, dwPointSampling; @@ -34,7 +35,7 @@ void CN3AlphaPrimitiveManager::Render() { DWORD dwSrcBlend, dwDestBlend; DWORD dwZEnable; }; - __RenderState RS_old; // Previous render state (to revert later) + __RenderState RS_old; // Previous render state (to revert later) __RenderState RS_current; // Current render state (to determine what the current state is) CN3Base::s_lpD3DDev->GetRenderState(D3DRS_ALPHABLENDENABLE, &RS_old.dwAlpha); diff --git a/src/engine/N3Base/N3AlphaPrimitiveManager.h b/src/engine/N3Base/N3AlphaPrimitiveManager.h index 2206ee5d..7c4c0871 100644 --- a/src/engine/N3Base/N3AlphaPrimitiveManager.h +++ b/src/engine/N3Base/N3AlphaPrimitiveManager.h @@ -24,8 +24,9 @@ struct __AlphaPrimitive { BOOL bUseVB; // Whether to use vertex buffer or index buffer const void * pwIndices; // If it is Index-based... just enter something other than NULL. int nVertexCount; - const void * pVertices; //Triangle.. is a vector type, but it must be used to accept various point formats through forced type conversion.. - __Matrix44 MtxWorld; // Matrix + const void * + pVertices; //Triangle.. is a vector type, but it must be used to accept various point formats through forced type conversion.. + __Matrix44 MtxWorld; // Matrix }; const int MAX_ALPHAPRIMITIVE_BUFFER = 1024; diff --git a/src/engine/N3Base/N3AnimControl.h b/src/engine/N3Base/N3AnimControl.h index 9634fedb..f6e055c7 100644 --- a/src/engine/N3Base/N3AnimControl.h +++ b/src/engine/N3Base/N3AnimControl.h @@ -26,8 +26,8 @@ typedef struct __AnimData { float fFrmSound0; float fFrmSound1; - float fTimeBlend; // Blending time when connected to other actions - int iBlendFlags; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. + float fTimeBlend; // Blending time when connected to other actions + int iBlendFlags; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. float fFrmStrike0; float fFrmStrike1; @@ -39,7 +39,8 @@ typedef struct __AnimData { fFrmPlugTraceStart = fFrmPlugTraceEnd = 0; fFrmSound0 = fFrmSound1 = 0; fTimeBlend = 0.25f; // Basic blending time.. - iBlendFlags = 0; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. + iBlendFlags = + 0; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. fFrmStrike0 = fFrmStrike1 = 0; } @@ -55,7 +56,9 @@ typedef struct __AnimData { fFrmSound1 = other.fFrmSound1; fTimeBlend = other.fTimeBlend; - iBlendFlags = other.iBlendFlags; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. + iBlendFlags = + other + .iBlendFlags; // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. fFrmStrike0 = other.fFrmStrike0; fFrmStrike1 = other.fFrmStrike1; @@ -71,7 +74,8 @@ typedef struct __AnimData { DWORD dwRWC = 0; int nL = 0; - ReadFile(hFile, &nL, 4, &dwRWC, NULL); // Originally, this is where the string pointer was... for compatibility... just... + ReadFile(hFile, &nL, 4, &dwRWC, + NULL); // Originally, this is where the string pointer was... for compatibility... just... ReadFile(hFile, &fFrmStart, 4, &dwRWC, NULL); // start upper body ReadFile(hFile, &fFrmEnd, 4, &dwRWC, NULL); // upper body end @@ -84,8 +88,9 @@ typedef struct __AnimData { ReadFile(hFile, &fFrmSound1, 4, &dwRWC, NULL); ReadFile(hFile, &fTimeBlend, 4, &dwRWC, NULL); - ReadFile(hFile, &iBlendFlags, 4, &dwRWC, - NULL); // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. + ReadFile( + hFile, &iBlendFlags, 4, &dwRWC, + NULL); // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. ReadFile(hFile, &fFrmStrike0, 4, &dwRWC, NULL); ReadFile(hFile, &fFrmStrike1, 4, &dwRWC, NULL); @@ -107,7 +112,8 @@ typedef struct __AnimData { DWORD dwRWC = 0; int nL = 0; - WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Originally, this is where the string pointer was... for compatibility... just... + WriteFile(hFile, &nL, 4, &dwRWC, + NULL); // Originally, this is where the string pointer was... for compatibility... just... WriteFile(hFile, &fFrmStart, 4, &dwRWC, NULL); // start upper body WriteFile(hFile, &fFrmEnd, 4, &dwRWC, NULL); // upper body end @@ -120,8 +126,9 @@ typedef struct __AnimData { WriteFile(hFile, &fFrmSound1, 4, &dwRWC, NULL); WriteFile(hFile, &fTimeBlend, 4, &dwRWC, NULL); - WriteFile(hFile, &iBlendFlags, 4, &dwRWC, - NULL); // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. + WriteFile( + hFile, &iBlendFlags, 4, &dwRWC, + NULL); // If the blending flag is 0, just blending. If it is 1, there is a time delay equal to the blending time when looping. WriteFile(hFile, &fFrmStrike0, 4, &dwRWC, NULL); WriteFile(hFile, &fFrmStrike1, 4, &dwRWC, NULL); diff --git a/src/engine/N3Base/N3AnimatedTexures.cpp b/src/engine/N3Base/N3AnimatedTexures.cpp index 945f0340..3637058d 100644 --- a/src/engine/N3Base/N3AnimatedTexures.cpp +++ b/src/engine/N3Base/N3AnimatedTexures.cpp @@ -99,6 +99,7 @@ void CN3AnimatedTexures::Tick() { int iTC = m_TexRefs.size(); m_fTexIndex += CN3Base::s_fSecPerFrm * m_fTexFPS; if (m_fTexIndex >= iTC) { - m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) + m_fTexIndex -= (iTC * m_fTexIndex) / + iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) } } diff --git a/src/engine/N3Base/N3Base.cpp b/src/engine/N3Base/N3Base.cpp index 76b0da5f..6b82caa7 100644 --- a/src/engine/N3Base/N3Base.cpp +++ b/src/engine/N3Base/N3Base.cpp @@ -47,8 +47,10 @@ CN3Mng CN3Base::s_MngPMesh; // Progressive Mesh Manager CN3Mng CN3Base::s_MngJoint; // Joint Manager CN3Mng CN3Base::s_MngSkins; // Character Part Skins Manager CN3Mng CN3Base::s_MngAniCtrl; // Animation Manager -CN3Mng CN3Base::s_MngFXPMesh; // PMesh used in FX - The file uses general PMesh, but the contents are different. -CN3Mng CN3Base::s_MngFXShape; // Shape used in FX - The file uses a general shape, but the inside is different. +CN3Mng + CN3Base::s_MngFXPMesh; // PMesh used in FX - The file uses general PMesh, but the contents are different. +CN3Mng + CN3Base::s_MngFXShape; // Shape used in FX - The file uses a general shape, but the inside is different. CN3AlphaPrimitiveManager CN3Base:: s_AlphaMgr; // Manage the polygons to be alpha blended.. Add them.. Arrange them according to the camera distance and draw them all at once.. diff --git a/src/engine/N3Base/N3Base.h b/src/engine/N3Base/N3Base.h index d3172917..c8b3565e 100644 --- a/src/engine/N3Base/N3Base.h +++ b/src/engine/N3Base/N3Base.h @@ -190,8 +190,10 @@ class CN3Base { static CN3Mng s_MngJoint; // Joint Manager static CN3Mng s_MngSkins; // Character Part Skin Manager static CN3Mng s_MngAniCtrl; // Animation Manager - static CN3Mng s_MngFXPMesh; // PMesh used in FX - The file uses general PMesh, but the contents are different. - static CN3Mng s_MngFXShape; // Shape used in FX - The file uses a general shape, but the inside is different. + static CN3Mng + s_MngFXPMesh; // PMesh used in FX - The file uses general PMesh, but the contents are different. + static CN3Mng + s_MngFXShape; // Shape used in FX - The file uses a general shape, but the inside is different. protected: static std::string s_szPath; // path where the program was executed. diff --git a/src/engine/N3Base/N3Board.cpp b/src/engine/N3Base/N3Board.cpp index 63e10085..a932b3a8 100644 --- a/src/engine/N3Base/N3Board.cpp +++ b/src/engine/N3Base/N3Board.cpp @@ -67,7 +67,8 @@ void CN3Board::Tick(float fFrm) { if (iTC > 1) { m_fTexIndex += CN3Base::s_fSecPerFrm * m_fTexFPS; if (m_fTexIndex >= iTC) { - m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) + m_fTexIndex -= (iTC * m_fTexIndex) / + iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) } } } diff --git a/src/engine/N3Base/N3Camera.cpp b/src/engine/N3Base/N3Camera.cpp index 5749410c..d1f8a980 100644 --- a/src/engine/N3Base/N3Camera.cpp +++ b/src/engine/N3Base/N3Camera.cpp @@ -270,7 +270,8 @@ void CN3Camera::Rotate(float fRadianX, float fRadianY) { } #ifdef _N3TOOL -void CN3Camera::LookAround(float fRadianX, float fRadianY) //The camera rotates around At Postion, so the position changes. +void CN3Camera::LookAround(float fRadianX, + float fRadianY) //The camera rotates around At Postion, so the position changes. { //static __Matrix44 mtx; //static __Vector3 v1, v2; @@ -379,7 +380,7 @@ void CN3Camera::Apply() { // Therefore, when rotating the camera, the fog is observed to change around the vertex. // pixel fog: It seems that fog is calculated based on the depth value of the pixel. - // To see the differences between all the fogs above, you can easily observe them by drawing a large board and adding the fog. + // To see the differences between all the fogs above, you can easily observe them by drawing a large board and adding the fog. // s_lpD3DDev->SetRenderState( D3DRS_FOGSTART, *(DWORD*)&m_fFogStart); // s_lpD3DDev->SetRenderState( D3DRS_FOGEND, *(DWORD*)&m_fFogEnd); diff --git a/src/engine/N3Base/N3Eng.cpp b/src/engine/N3Base/N3Eng.cpp index c4272209..73782b62 100644 --- a/src/engine/N3Base/N3Eng.cpp +++ b/src/engine/N3Base/N3Eng.cpp @@ -471,7 +471,8 @@ void CN3Eng::Clear(D3DCOLOR crFill, RECT * pRC) { void CN3Eng::ClearAuto(RECT * pRC) { DWORD dwFillColor = D3DCOLOR_ARGB(255, 192, 192, 192); // Basic color DWORD dwUseFog = FALSE; - s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwUseFog); // When using fog, the fog color is applied as the background color. + s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, + &dwUseFog); // When using fog, the fog color is applied as the background color. if (dwUseFog != 0) { s_lpD3DDev->GetRenderState(D3DRS_FOGCOLOR, &dwFillColor); } else { @@ -512,7 +513,8 @@ bool CN3Eng::Reset(BOOL bWindowed, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP) { if (dwWidth <= 0 || dwHeight <= 0) { return false; } - if (dwWidth == s_DevParam.BackBufferWidth && dwHeight == s_DevParam.BackBufferHeight) // When the width and height are the same... + if (dwWidth == s_DevParam.BackBufferWidth && + dwHeight == s_DevParam.BackBufferHeight) // When the width and height are the same... { if (0 == dwBPP) { return false; diff --git a/src/engine/N3Base/N3FXPlug.cpp b/src/engine/N3Base/N3FXPlug.cpp index bff03980..d4e9a380 100644 --- a/src/engine/N3Base/N3FXPlug.cpp +++ b/src/engine/N3Base/N3FXPlug.cpp @@ -85,7 +85,7 @@ void CN3FXPlugPart::Tick(const __Matrix44 & mtxParent) { // location m_pFXB->m_vPos = m_vOffsetPos * mtxParent; - // rotation + // rotation static __Matrix44 mtxRot; mtxRot = mtxParent; mtxRot.PosSet(0, 0, 0); diff --git a/src/engine/N3Base/N3IMesh.cpp b/src/engine/N3Base/N3IMesh.cpp index 6c3192a5..c670de58 100644 --- a/src/engine/N3Base/N3IMesh.cpp +++ b/src/engine/N3Base/N3IMesh.cpp @@ -32,9 +32,9 @@ CN3IMesh::~CN3IMesh() { m_pfUVs = NULL; delete[] m_pwVtxIndices; - m_pwVtxIndices = NULL; // List of point indices. + m_pwVtxIndices = NULL; // List of point indices. delete[] m_pwUVsIndices; - m_pwUVsIndices = NULL; // Texture coordinate index list. + m_pwUVsIndices = NULL; // Texture coordinate index list. // if(m_lpVB) m_lpVB->Release(); } diff --git a/src/engine/N3Base/N3IMesh.h b/src/engine/N3Base/N3IMesh.h index 4a086677..3d19061d 100644 --- a/src/engine/N3Base/N3IMesh.h +++ b/src/engine/N3Base/N3IMesh.h @@ -20,11 +20,11 @@ class CN3IMesh : public CN3BaseFileAccess { int m_nUVC; // UV coordinate Count WORD * m_pwUVsIndices; // Texture coordinate index list. - __VertexXyzNormal * m_pVertices;// Coordinate Data + __VertexXyzNormal * m_pVertices; // Coordinate Data float * m_pfUVs; // UV Data - Allocate as much as m_nUVC * 2. // LPDIRECT3DVERTEXBUFFER9 m_lpVB; - __Vector3 m_vMin, m_vMax; // Minimum and maximum points... they may change, but roughly... + __Vector3 m_vMin, m_vMax; // Minimum and maximum points... they may change, but roughly... public: #ifdef _N3TOOL @@ -32,12 +32,14 @@ class CN3IMesh : public CN3BaseFileAccess { void ReGenerateSmoothNormal(); void RenderSelected(); #endif // end of _N3TOOL - __Vector3 Min() { return m_vMin; } - __Vector3 Max() { return m_vMax; } - void FindMinMax(); - void Render(bool bUseTwoUV = false); - __VertexT1 * BuildVertexList(); // Create a point in the Vertex Buffer. Be careful not to use it twice at the same time. - __VertexT2 * BuildVertexListTwoUV(); // Create a point in the Vertex Buffer. Be careful not to use it twice at the same time. + __Vector3 Min() { return m_vMin; } + __Vector3 Max() { return m_vMax; } + void FindMinMax(); + void Render(bool bUseTwoUV = false); + __VertexT1 * + BuildVertexList(); // Create a point in the Vertex Buffer. Be careful not to use it twice at the same time. + __VertexT2 * + BuildVertexListTwoUV(); // Create a point in the Vertex Buffer. Be careful not to use it twice at the same time. int FaceCount() { return m_nFC; } int VertexCount() { return m_nVC; } diff --git a/src/engine/N3Base/N3Joint.cpp b/src/engine/N3Base/N3Joint.cpp index 6adbb4f0..65053fa9 100644 --- a/src/engine/N3Base/N3Joint.cpp +++ b/src/engine/N3Base/N3Joint.cpp @@ -574,3 +574,579 @@ void CN3Joint::CopyExceptAnimationKey(CN3Joint * pJSrc) { } } #endif // end of _N3TOOL +// N3Joint.cpp: implementation of the CN3Joint class. +// +////////////////////////////////////////////////////////////////////// +#include "StdAfx.h" +#include "N3Joint.h" +#include "N3Mesh.h" + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +CN3Joint::CN3Joint() { + m_dwType |= OBJ_JOINT; + + m_qOrient.Identity(); // Joint Orient Quaternion + m_pParent = NULL; +} + +CN3Joint::~CN3Joint() { + for (it_Joint it = m_Children.begin(), itEnd = m_Children.end(); it != itEnd; it++) { + delete *it; + } + m_Children.clear(); +} + +void CN3Joint::Release() { + m_qOrient.Identity(); // Joint Orient Quaternion + m_KeyOrient.Release(); // Joint Orient key value... If it is NULL, it does not exist. + + for (it_Joint it = m_Children.begin(), itEnd = m_Children.end(); it != itEnd; it++) { + delete *it; + } + m_Children.clear(); + m_pParent = NULL; + + CN3Transform::Release(); +} + +bool CN3Joint::Load(HANDLE hFile) { + CN3Transform::Load(hFile); + + DWORD dwRWC = 0; + int nL = 0; + + m_KeyOrient.Load(hFile); // Joint Orient... + + int nCC = 0; + ReadFile(hFile, &nCC, 4, &dwRWC, NULL); + for (int i = 0; i < nCC; i++) { + CN3Joint * pChild = new CN3Joint(); + this->ChildAdd(pChild); + + pChild->Load(hFile); + } + + return true; +} + +#ifdef _N3TOOL +bool CN3Joint::Save(HANDLE hFile) { + CN3Transform::Save(hFile); + + DWORD dwRWC = 0; + + m_KeyOrient.Save(hFile); // + + int iSize = m_Children.size(); + WriteFile(hFile, &iSize, 4, &dwRWC, NULL); + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + + __ASSERT(pChild, "Child joint pointer is NULL!"); + pChild->Save(hFile); + } + + return true; +} +#endif // end of _N3TOOL + +#ifdef _N3TOOL +void CN3Joint::Render(const __Matrix44 * pMtxParent, float fUnitSize) { + DWORD dwAlpha, dwFog, dwLight, dwZ; + s_lpD3DDev->GetRenderState(D3DRS_ZENABLE, &dwZ); + s_lpD3DDev->GetRenderState(D3DRS_FOGENABLE, &dwFog); + s_lpD3DDev->GetRenderState(D3DRS_ALPHABLENDENABLE, &dwAlpha); + s_lpD3DDev->GetRenderState(D3DRS_LIGHTING, &dwLight); + + if (dwZ) { + s_lpD3DDev->SetRenderState(D3DRS_ZENABLE, FALSE); + } + if (dwFog) { + s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, FALSE); + } + if (dwAlpha) { + s_lpD3DDev->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); + } + if (dwLight) { + s_lpD3DDev->SetRenderState(D3DRS_LIGHTING, FALSE); + } + + static __Matrix44 stm; + static __Material smtl; + static bool bInit = false; + if (false == bInit) { + stm.Identity(); + smtl.Init(); + bInit = true; + } + + s_lpD3DDev->SetTransform(D3DTS_WORLD, &stm); + s_lpD3DDev->SetMaterial(&smtl); + s_lpD3DDev->SetTexture(0, NULL); + + if (m_pParent) // The line connecting the parent joint... + { + static __Vector3 v[2]; + static __VertexColor vBone[2]; + + v[0] = m_pParent->m_Matrix.Pos(); + v[1] = m_Matrix.Pos(); + if (pMtxParent) { + D3DXMATRIX mmm; + v[0] *= *pMtxParent; + v[1] *= *pMtxParent; + } + + vBone[0].Set(v[0], 0xff00ff00); + vBone[1].Set(v[1], 0xff0000ff); + s_lpD3DDev->SetFVF(FVF_CV); + s_lpD3DDev->DrawPrimitiveUP(D3DPT_LINELIST, 1, vBone, sizeof(__VertexColor)); // Drawing a line... + } + + // Drawing a box... + static __VertexColor vBoxes[36]; + static __VertexColor vAxis[6]; + static bool bBoxCreated = false; + if (false == bBoxCreated) { + CN3Mesh mesh; + mesh.Create_Cube(__Vector3(-0.5f, -0.5f, -0.5f), __Vector3(0.5f, 0.5f, 0.5f)); + __VertexT1 * pVSrc = mesh.Vertices(); + for (int i = 0; i < 36; i++) { + vBoxes[i].Set(pVSrc[i].x, pVSrc[i].y, pVSrc[i].z, 0xff00ff00); + } + + float fL = 1.0f; + vAxis[0].Set(0, 0, 0, 0xffff0000); + vAxis[1].Set(fL, 0, 0, 0xffff0000); + vAxis[2].Set(0, 0, 0, 0xff00ff00); + vAxis[3].Set(0, fL, 0, 0xff00ff00); + vAxis[4].Set(0, 0, 0, 0xff0000ff); + vAxis[5].Set(0, 0, fL, 0xff0000ff); + + bBoxCreated = true; + } + + __Matrix44 mtxAxis, mtxBox; + mtxBox.Scale(fUnitSize, fUnitSize, fUnitSize); + if (m_Children.size() > 0) { + mtxAxis.Scale(fUnitSize * 2, fUnitSize * 2, fUnitSize * 2); + } else { + mtxAxis.Scale(fUnitSize * 12, fUnitSize * 12, fUnitSize * 12); + } + + mtxBox *= m_Matrix; + mtxAxis *= m_Matrix; + + s_lpD3DDev->SetFVF(FVF_CV); + s_lpD3DDev->SetTransform(D3DTS_WORLD, &mtxBox); + s_lpD3DDev->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 12, vBoxes, sizeof(__VertexColor)); // Drawing a box... + s_lpD3DDev->SetTransform(D3DTS_WORLD, &mtxAxis); + s_lpD3DDev->DrawPrimitiveUP(D3DPT_LINELIST, 3, vAxis, sizeof(__VertexColor)); // Draw axis... + + if (dwZ) { + s_lpD3DDev->SetRenderState(D3DRS_ZENABLE, dwZ); + } + if (dwFog) { + s_lpD3DDev->SetRenderState(D3DRS_FOGENABLE, dwFog); + } + if (dwAlpha) { + s_lpD3DDev->SetRenderState(D3DRS_ALPHABLENDENABLE, dwAlpha); + } + if (dwLight) { + s_lpD3DDev->SetRenderState(D3DRS_LIGHTING, dwLight); + } + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + + __ASSERT(pChild, "Child joint pointer is NULL!"); + pChild->Render(pMtxParent, fUnitSize); + } +} +#endif // end of _N3TOOL + +void CN3Joint::ChildAdd(CN3Joint * pChild) { + __ASSERT(pChild, "Child joint pointer is NULL!"); + + CN3Joint * pChild2 = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild2 = *it; + if (pChild2 == pChild) { + return; + } + } + + m_Children.push_back(pChild); + pChild->ParentSet(this); +} + +void CN3Joint::ChildDelete(CN3Joint * pChild) { + if (NULL == pChild) { + return; + } + it_Joint it = m_Children.begin(), itEnd = m_Children.end(); + int iSize = m_Children.size(); + for (; it != itEnd;) { + if (*it == pChild) { + it = m_Children.erase(it); + pChild->ParentSet(NULL); + break; + } else { + it++; + } + } +} + +void CN3Joint::ParentSet(CN3Joint * pParent) { + if (pParent == m_pParent) { + return; + } + + m_pParent = pParent; + if (pParent) { + pParent->ChildAdd(this); + } +} + +void CN3Joint::NodeCount(int & nCount) { + nCount++; + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + + __ASSERT(pChild, "Child joint pointer is NULL!"); + pChild->NodeCount(nCount); + } +} + +#ifdef _N3TOOL +BOOL CN3Joint::FindPointerByName(const std::string & szName, + CN3Joint *& pJoint) // If you enter a name, a pointer to the node is returned. +{ + if (szName.empty()) { + pJoint = NULL; + return FALSE; + } + + if (m_szName == szName) { + return TRUE; + } + pJoint = this; + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + + __ASSERT(pChild, "Child joint pointer is NULL!"); + if (TRUE == pChild->FindPointerByName(szName, pJoint)) { + return TRUE; + } + } + + return FALSE; +} +#endif // end of _N3TOOL + +BOOL CN3Joint::FindPointerByID(int nID, CN3Joint *& pJoint) { + static int stnID = 0; + if (pJoint == NULL) { + stnID = 0; + } + + pJoint = this; + if (nID == stnID) { + return TRUE; + } + stnID++; + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + + __ASSERT(pChild, "Child joint pointer is NULL!"); + if (TRUE == pChild->FindPointerByID(nID, pJoint)) { + return TRUE; + } + } + + return FALSE; +} + +#ifdef _N3TOOL +BOOL CN3Joint::FindIndex(const std::string & szName, int & nIndex) { + if (szName.empty()) { + nIndex = -1; + return FALSE; + } + + if (m_szName == szName) { + return TRUE; + } + nIndex++; + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + + __ASSERT(pChild, "Child joint pointer is NULL!"); + if (TRUE == pChild->FindIndex(szName, nIndex)) { + return TRUE; + } + } + + return FALSE; +} +#endif // end of _N3TOOL + +void CN3Joint::Tick(float fFrm) { + m_KeyPos.DataGet(fFrm, m_vPos); + m_KeyRot.DataGet(fFrm, m_qRot); + m_KeyScale.DataGet(fFrm, m_vScale); + m_KeyOrient.DataGet(fFrm, m_qOrient); + + CN3Joint::ReCalcMatrix(); + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + + __ASSERT(pChild, "Child joint pointer is NULL!"); + pChild->Tick(fFrm); + } +} + +bool CN3Joint::TickAnimationKey(float fFrm) { + bool bNeedReCalcMatrix = CN3Transform::TickAnimationKey(fFrm); + if (m_KeyOrient.DataGet(fFrm, m_qOrient)) { + bNeedReCalcMatrix = true; + } + + return bNeedReCalcMatrix; +} + +void CN3Joint::ReCalcMatrix() { + static __Matrix44 mtx; + static __Quaternion qt; + // Original matrix calculation code... + // m_Matrix.Identity(); + // mtx.Rotation(m_vRot.x, m_vRot.y, m_vRot.z); m_Matrix *= mtx; // Rotate by the parent axis. + // mtx.Scale(m_vScale); m_Matrix *= mtx; // Rotate by the parent axis. + // mtx.Rotation(m_vOrigin.x, m_vOrigin.y, m_vOrigin.z); m_Matrix *= mtx; // Rotate by parent local axis. + //mtx.Identity(); mtx.PosSet(m_vPos); m_Matrix *= mtx; // movement + + // if(m_RotSeq == ROT_SEQ_XYZ) + // { + // m_Matrix.Rotation(m_vRot.x, m_vRot.y, m_vRot.z); // Rotate by the parent axis. // When rotating XYZ... + // } + // else if(ROT_SEQ_YXZ) + // { + // m_Matrix.Identity(); + // mtx.RotationY(m_vRot.y); m_Matrix *= mtx; // When rotating YXZ + // mtx.RotationX(m_vRot.x); m_Matrix *= mtx; + // mtx.RotationZ(m_vRot.z); m_Matrix *= mtx; + // } + + if (m_KeyOrient.Count() > 0) // If there is an Orient key value... + { + qt = m_qRot * m_qOrient; + ::D3DXMatrixRotationQuaternion(&m_Matrix, &qt); // Rotation.. Quaternion calculation.. + } else { + ::D3DXMatrixRotationQuaternion(&m_Matrix, &m_qRot); // Rotation.. Quaternion calculation.. + } + + if (1.0f != m_vScale.x || 1.0f != m_vScale.y || 1.0f != m_vScale.z) // If there is a scale value... + { + mtx.Scale(m_vScale); // scale + m_Matrix *= mtx; + } + m_Matrix.PosSet(m_vPos); + + if (m_pParent) { + m_Matrix *= m_pParent->m_Matrix; // parent matrix + } +} + +void CN3Joint::MatricesGet(__Matrix44 * pMtxs, int & nJointIndex) { + memcpy(&(pMtxs[nJointIndex]), &m_Matrix, sizeof(__Matrix44)); + nJointIndex++; + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(); + int iSize = m_Children.size(); + for (int i = 0; i < iSize; i++, it++) { + pChild = *it; + pChild->MatricesGet(pMtxs, nJointIndex); + } +} + +void CN3Joint::ReCalcMatrixBlended(float fFrm0, float fFrm1, float fWeight0) { + // __ASSERT(1.0f == (fWeight0 + fWeight1)); + + static __Vector3 v1, v2; + static __Quaternion qt1, qt2; + int nKC = 0, nFrm0 = (int)fFrm0, nFrm1 = (int)fFrm1; + float fWeight1 = 1.0f - fWeight0; + + bool bHaveKey1 = m_KeyPos.DataGet(fFrm0, v1); + bool bHaveKey2 = m_KeyPos.DataGet(fFrm1, v2); + if (bHaveKey1 && bHaveKey2) { + m_vPos = (v1 * fWeight0) + (v2 * fWeight1); + } + + bHaveKey1 = m_KeyRot.DataGet(fFrm0, qt1); + bHaveKey2 = m_KeyRot.DataGet(fFrm1, qt2); + if (bHaveKey1 && bHaveKey2) { + m_qRot.Slerp(qt1, qt2, fWeight1); + } + + bHaveKey1 = m_KeyScale.DataGet(fFrm0, v1); + bHaveKey1 = m_KeyScale.DataGet(fFrm1, v2); + if (bHaveKey1 && bHaveKey2) { + m_vScale = (v1 * fWeight0) + (v2 * fWeight1); + } + + bHaveKey1 = m_KeyOrient.DataGet(fFrm0, qt1); + bHaveKey1 = m_KeyOrient.DataGet(fFrm1, qt2); + if (bHaveKey1 && bHaveKey2) { + m_qOrient.Slerp(qt1, qt2, fWeight1); + } + + this->ReCalcMatrix(); // Matrix calculation... +} + +#ifdef _N3TOOL +void CN3Joint::KeyDelete(CN3Joint * pJoint, int nKS, int nKE) { + CN3AnimKey * pAKs[3] = {&(pJoint->m_KeyPos), &(pJoint->m_KeyRot), &(pJoint->m_KeyScale)}; + + for (int i = 0; i < 3; i++) { + int nKC = pAKs[i]->Count(); + if (nKC > 0 && nKS > 0 && nKS < nKC && nKE > nKS && nKE < nKC) { + int nKE2 = nKC - nKE - 1; + + __Vector3 * pVs1 = new __Vector3[nKS]; + __Vector3 * pVs2 = new __Vector3[nKE2]; + + if (pAKs[i]->Type() == KEY_VECTOR3) { + memcpy(pVs1, &(((__Vector3 *)pAKs[i]->m_pDatas)[0]), sizeof(__Vector3) * nKS); + memcpy(pVs2, &(((__Vector3 *)pAKs[i]->m_pDatas)[nKE + 1]), sizeof(__Vector3) * nKE2); + } else if (pAKs[i]->Type() == KEY_QUATERNION) { + memcpy(pVs1, &(((__Quaternion *)pAKs[i]->m_pDatas)[0]), sizeof(__Quaternion) * nKS); + memcpy(pVs2, &(((__Quaternion *)pAKs[i]->m_pDatas)[nKE + 1]), sizeof(__Quaternion) * nKE2); + } + + delete[] pAKs[i]->m_pDatas; + pAKs[i]->m_nCount = 0; + pAKs[i]->m_pDatas = NULL; + + pAKs[i]->Alloc(nKS + nKE2, pAKs[i]->SamplingRate(), pAKs[i]->Type()); + + if (pAKs[i]->Type() == KEY_VECTOR3) { + memcpy(&(((__Vector3 *)pAKs[i]->m_pDatas)[0]), pVs1, sizeof(__Vector3) * nKS); + memcpy(&(((__Vector3 *)pAKs[i]->m_pDatas)[nKS]), pVs2, sizeof(__Vector3) * nKE2); + } else if (pAKs[i]->Type() == KEY_QUATERNION) { + memcpy(&(((__Quaternion *)pAKs[i]->m_pDatas)[0]), pVs1, sizeof(__Quaternion) * nKS); + memcpy(&(((__Quaternion *)pAKs[i]->m_pDatas)[nKS]), pVs2, sizeof(__Quaternion) * nKE2); + } + + delete[] pVs1; + delete[] pVs2; + } + } + + // Create the Child again. + int nCC = pJoint->ChildCount(); + for (int i = 0; i < nCC; i++) { + CN3Joint * pChild = pJoint->Child(i); + pChild->KeyDelete(pChild, nKS, nKE); // Copy subjoint.. + } +} +#endif // end of _N3TOOL + +#ifdef _N3TOOL +void CN3Joint::AddKey(CN3Joint * pJSrc, int nIndexS, int nIndexE) { + m_KeyPos.Add(pJSrc->m_KeyPos, nIndexS, nIndexE); + m_KeyRot.Add(pJSrc->m_KeyRot, nIndexS, nIndexE); + m_KeyScale.Add(pJSrc->m_KeyScale, nIndexS, nIndexE); + + it_Joint it = pJSrc->m_Children.begin(); + it_Joint it2 = m_Children.begin(); + int iSize = pJSrc->m_Children.size(); + int iSize2 = m_Children.size(); + __ASSERT(iSize == iSize2, "can't copy animation key - because child count is different from each other."); + for (int i = 0; i < iSize; i++, it++, it2++) { + CN3Joint * pChildSrc = *it; + CN3Joint * pChildDest = *it2; + + pChildDest->AddKey(pChildSrc, nIndexS, nIndexE); // recursive call + } +} +#endif // end of _N3TOOL + +// rotation value, etc. +#ifdef _N3TOOL +void CN3Joint::CopyExceptAnimationKey(CN3Joint * pJSrc) { + this->Release(); + + m_szName = pJSrc->m_szName; + m_szFileName = pJSrc->m_szFileName; + + m_vPos = pJSrc->m_vPos; + m_qRot = pJSrc->m_qRot; + m_vScale = pJSrc->m_vScale; + + m_Matrix = pJSrc->m_Matrix; + m_fFrmCur = pJSrc->m_fFrmCur; + m_fFrmWhole = pJSrc->m_fFrmWhole; + + if (m_KeyPos.Count() <= 0) { + m_KeyPos.m_eType = pJSrc->m_KeyPos.m_eType; + } + if (m_KeyRot.Count() <= 0) { + m_KeyRot.m_eType = pJSrc->m_KeyRot.m_eType; + } + if (m_KeyScale.Count() <= 0) { + m_KeyScale.m_eType = pJSrc->m_KeyScale.m_eType; + } + + CN3Joint * pChild = NULL; + it_Joint it = m_Children.begin(), itEnd = m_Children.end(); + for (; it != itEnd;) { + pChild = *it; + delete pChild; + it = m_Children.erase(it); + } + m_Children.clear(); + + it = pJSrc->m_Children.begin(); + itEnd = pJSrc->m_Children.end(); + for (; it != itEnd; it++) { + CN3Joint * pChildDest = new CN3Joint(); + this->ChildAdd(pChildDest); // Add children.. + + CN3Joint * pChildSrc = *it; + pChildDest->CopyExceptAnimationKey(pChildSrc); // recursive call + } +} +#endif // end of _N3TOOL diff --git a/src/engine/N3Base/N3Joint.h b/src/engine/N3Base/N3Joint.h index 44f6a40c..6eae6882 100644 --- a/src/engine/N3Base/N3Joint.h +++ b/src/engine/N3Base/N3Joint.h @@ -58,7 +58,7 @@ class CN3Joint : public CN3Transform { #ifdef _N3TOOL BOOL FindIndex(const std::string & szName, int & nIndex); BOOL FindPointerByName(const std::string & szName, - CN3Joint *& pJoint); // If you enter a name, a pointer to the corresponding node is returned. + CN3Joint *& pJoint); // If you enter a name, a pointer to the corresponding node is returned. void RotSet(const __Quaternion & qtRot) { m_qRot = qtRot; this->ReCalcMatrix(); diff --git a/src/engine/N3Base/N3Light.h b/src/engine/N3Base/N3Light.h index 10ee5299..3683899d 100644 --- a/src/engine/N3Base/N3Light.h +++ b/src/engine/N3Base/N3Light.h @@ -31,7 +31,9 @@ class CN3Light : public CN3Transform { fRange = 0.0001f; } Attenuation0 = 1.0f - fAttenuation; - Attenuation1 = fAttenuation / fRange; // Attenuation range calculation. Make sure that half of the range is exactly half attenuated. + Attenuation1 = + fAttenuation / + fRange; // Attenuation range calculation. Make sure that half of the range is exactly half attenuated. Attenuation2 = fAttenuation / (fRange * fRange); Range = fRange * 4.0f; bOn = TRUE; @@ -68,7 +70,10 @@ class CN3Light : public CN3Transform { fRange = 0.0001f; } Attenuation0 = 1.0f; - Attenuation1 = 1.0f / (fRange / 2.0f); // Calculate attenuation range. Make sure that half of the range is exactly half attenuated.. + Attenuation1 = + 1.0f / + (fRange / + 2.0f); // Calculate attenuation range. Make sure that half of the range is exactly half attenuated.. Range = fRange; Falloff = 1.0f; //Because the effect is minimal and there is a load, 1.0 is usually used. diff --git a/src/engine/N3Base/N3Mesh.h b/src/engine/N3Base/N3Mesh.h index 016b5549..1870f072 100644 --- a/src/engine/N3Base/N3Mesh.h +++ b/src/engine/N3Base/N3Mesh.h @@ -26,7 +26,7 @@ class CN3Mesh : public CN3BaseFileAccess { int VertexCount() { return m_nVC; } __VertexT1 * Vertices() { return m_pVertices; } int IndexCount() { return m_nIC; } - WORD * Indices() { return m_psnIndices; }// index buffer + WORD * Indices() { return m_psnIndices; } // index buffer bool Load(HANDLE hFile); diff --git a/src/engine/N3Base/N3Mng.h b/src/engine/N3Base/N3Mng.h index 5f5bc378..2c54d9a4 100644 --- a/src/engine/N3Base/N3Mng.h +++ b/src/engine/N3Base/N3Mng.h @@ -105,7 +105,8 @@ template class CN3Mng { // asm if (reChk == -1) // When adding, there is data before, so one reference count is added. { - T * pBakData = pData; // Receives and returns all data from the same file (may not be changed to a new image) + T * pBakData = + pData; // Receives and returns all data from the same file (may not be changed to a new image) it_Data it = m_Datas.find(pBakData->FileName()); pData = (*it).second; diff --git a/src/engine/N3Base/N3PMesh.cpp b/src/engine/N3Base/N3PMesh.cpp index 78529624..b8f81394 100644 --- a/src/engine/N3Base/N3PMesh.cpp +++ b/src/engine/N3Base/N3PMesh.cpp @@ -169,8 +169,9 @@ bool CN3PMesh::Load(HANDLE hFile) { [m_iNumCollapses + 1]; // +1 : PMeshInstance::SplitOne() There are times when a pointer must inevitably point to a boundary line in a function. ReadFile(hFile, m_pCollapses, m_iNumCollapses * sizeof(__EdgeCollapse), &dwNum, NULL); - ZeroMemory(m_pCollapses + m_iNumCollapses, - sizeof(__EdgeCollapse)); // Same as the reason for +1 above. I initialized the last data just in case. + ZeroMemory( + m_pCollapses + m_iNumCollapses, + sizeof(__EdgeCollapse)); // Same as the reason for +1 above. I initialized the last data just in case. bool bFixed = false; for (int i = 0; i < m_iNumCollapses; i++) { @@ -363,8 +364,9 @@ void CN3PMesh::CopyMesh(CN3PMesh * pSrcPMesh) { [m_iNumCollapses + 1]; // Reason for +1: In the PMeshInstance::SplitOne() function, there are cases where the pointer must inevitably point to the boundary line. CopyMemory(m_pCollapses, pSrcPMesh->m_pCollapses, sizeof(__EdgeCollapse) * m_iNumCollapses); - ZeroMemory(m_pCollapses + m_iNumCollapses, - sizeof(__EdgeCollapse)); // Same as the reason for +1 above. I initialized the last data just in case. + ZeroMemory( + m_pCollapses + m_iNumCollapses, + sizeof(__EdgeCollapse)); // Same as the reason for +1 above. I initialized the last data just in case. } hr = Create(m_iMaxNumVertices, m_iMaxNumIndices); @@ -522,7 +524,7 @@ void CN3PMesh::LODCtrlSet(__LODCtrlValue * pLODCtrls, int nCount) { m_pLODCtrlValues = new __LODCtrlValue[nCount]; memcpy(m_pLODCtrlValues, pLODCtrls, sizeof(__LODCtrlValue) * nCount); - // Sort by distance + // Sort by distance qsort(m_pLODCtrlValues, m_iLODCtrlValueCount, sizeof(__LODCtrlValue), SortByDistance); } } diff --git a/src/engine/N3Base/N3PMesh.h b/src/engine/N3Base/N3PMesh.h index 30c07112..e15a0d4f 100644 --- a/src/engine/N3Base/N3PMesh.h +++ b/src/engine/N3Base/N3PMesh.h @@ -25,9 +25,10 @@ class CN3PMesh : public CN3BaseFileAccess { // float Value; int NumIndicesToLose, NumIndicesToChange, NumVerticesToLose; //int *IndexChanges; - int iIndexChanges; // store nth instead of pointer (0, 1, 2,...) - int CollapseTo; - bool bShouldCollapse; // If you stop merging/dividing here, a hole will open. You need to proceed to the next step. + int iIndexChanges; // store nth instead of pointer (0, 1, 2,...) + int CollapseTo; + bool + bShouldCollapse; // If you stop merging/dividing here, a hole will open. You need to proceed to the next step. }; protected: @@ -111,7 +112,7 @@ class CN3PMesh : public CN3BaseFileAccess { __VertexT1 * GetVertices() const { return m_pVertices; }; __VertexT2 * GetVertices2() const { return m_pVertices2; }; WORD * GetIndices() const { return m_pIndices; }; // Not a proper Index - // (To obtain the correct index, create an N3PMeshInstance, adjust the LOD, and obtain the index value.) + // (To obtain the correct index, create an N3PMeshInstance, adjust the LOD, and obtain the index value.) #endif #ifdef _N3TOOL diff --git a/src/engine/N3Base/N3PMeshInstance.cpp b/src/engine/N3Base/N3PMeshInstance.cpp index d948a422..53671056 100644 --- a/src/engine/N3Base/N3PMeshInstance.cpp +++ b/src/engine/N3Base/N3PMeshInstance.cpp @@ -193,11 +193,13 @@ void CN3PMeshInstance::SetLOD(float value) { CN3PMesh::__LODCtrlValue * pTmpLODCV = m_pPMesh->m_pLODCtrlValues + m_pPMesh->m_iLODCtrlValueCount - 1; - if (value < m_pPMesh->m_pLODCtrlValues[0].fDist) { // Since it is closer than the minimum standard, it is drawn with the most sides. + if (value < m_pPMesh->m_pLODCtrlValues[0] + .fDist) { // Since it is closer than the minimum standard, it is drawn with the most sides. SetLODByNumVertices(m_pPMesh->m_pLODCtrlValues[0].iNumVertices); - } else if (pTmpLODCV->fDist < value) { // Since it is farther than the maximum reference value, draw with the fewest sides. + } else if (pTmpLODCV->fDist < + value) { // Since it is farther than the maximum reference value, draw with the fewest sides. SetLODByNumVertices(pTmpLODCV->iNumVertices); - } else {// Draw with the number of sides adjusted to the intermediate value. + } else { // Draw with the number of sides adjusted to the intermediate value. for (int i = 1; i < m_pPMesh->m_iLODCtrlValueCount; ++i) { if (value < m_pPMesh->m_pLODCtrlValues[i].fDist) { CN3PMesh::__LODCtrlValue * pHiValue = m_pPMesh->m_pLODCtrlValues + i; @@ -542,4 +544,4 @@ void CN3PMeshInstance::PartialRender(int iCount, WORD * pIndices) { #endif } - // ~(By Ecli666 On 2002-08-06 4:33:04 PM) + // ~(By Ecli666 On 2002-08-06 4:33:04 PM) diff --git a/src/engine/N3Base/N3PMeshInstance.h b/src/engine/N3Base/N3PMeshInstance.h index e84eaed2..bf158954 100644 --- a/src/engine/N3Base/N3PMeshInstance.h +++ b/src/engine/N3Base/N3PMeshInstance.h @@ -22,7 +22,7 @@ class CN3PMeshInstance : public CN3Base { #ifdef _USE_VERTEXBUFFER LPDIRECT3DINDEXBUFFER9 m_pIB; #else - WORD * m_pIndices; + WORD * m_pIndices; #endif int m_iNumIndices, m_iNumVertices; // number of triangles/vertices to use at this moment. @@ -71,7 +71,7 @@ class CN3PMeshInstance : public CN3Base { #ifdef _USE_VERTEXBUFFER void PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB); #else - void PartialRender(int iCount, WORD * pIndices); + void PartialRender(int iCount, WORD * pIndices); #endif int GetIndexByiOrder(int iOrder); __Vector3 GetVertexByIndex(int iIndex); diff --git a/src/engine/N3Base/N3Shape.cpp b/src/engine/N3Base/N3Shape.cpp index 93929c89..e837b66f 100644 --- a/src/engine/N3Base/N3Shape.cpp +++ b/src/engine/N3Base/N3Shape.cpp @@ -9,7 +9,7 @@ CN3SPart::CN3SPart() { m_dwType |= OBJ_SHAPE_PART; - m_vPivot.Set(0, 0, 0); // Local axis + m_vPivot.Set(0, 0, 0); // Local axis m_Matrix.Identity(); // World Matrix.. It is best to calculate it in advance when Shape Loading. m_bOutOfCameraRange = TRUE; // Outside Camera range... m_Mtl.Init(); //Material @@ -82,7 +82,8 @@ void CN3SPart::Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, // If you get too far away from the camera, it will pass by. __Vector3 vCenter = (this->Min() + this->Max()) * 0.5f; - if (s_CameraData.IsOutOfFrustum(vCenter, this->Radius() * fScale)) // If it is outside the camera tetrahedron, it passes. + if (s_CameraData.IsOutOfFrustum(vCenter, + this->Radius() * fScale)) // If it is outside the camera tetrahedron, it passes. { m_bOutOfCameraRange = TRUE; return; @@ -102,7 +103,8 @@ void CN3SPart::Tick(const __Matrix44 & mtxParent, const __Quaternion & qRot, { m_fTexIndex += CN3Base::s_fSecPerFrm * m_fTexFPS; if (m_fTexIndex >= iTC) { - m_fTexIndex -= (iTC * m_fTexIndex) / iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) + m_fTexIndex -= (iTC * m_fTexIndex) / + iTC; // If you divide by an integer, only the decimal point is left?? (It's similar anyway~) } } @@ -372,7 +374,8 @@ bool CN3SPart::Save(HANDLE hFile) { nL = pPMesh->FileName().size(); } else { MessageBox(GetActiveWindow(), - "Progressive mesh pointer is NULL! : The object may not be displayed properly (the resource file may not be displayed properly). " + "Progressive mesh pointer is NULL! : The object may not be displayed properly (the resource file " + "may not be displayed properly). " "It is highly likely that it has not been loaded.)", "warning", MB_OK); } @@ -398,7 +401,7 @@ bool CN3SPart::Save(HANDLE hFile) { int iTC = m_TexRefs.size(); WriteFile(hFile, &iTC, 4, &dwRWC, NULL); WriteFile(hFile, &m_fTexFPS, 4, &dwRWC, NULL); - for (int j = 0; j < iTC; j++)// Write Texture File name... + for (int j = 0; j < iTC; j++) // Write Texture File name... { if (m_TexRefs[j]) { nL = m_TexRefs[j]->FileName().size(); @@ -503,7 +506,7 @@ void CN3SPart::PartialRender(int iCount, LPDIRECT3DINDEXBUFFER9 pIB) { s_lpD3DDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE); } - // Apply the pre-calculated world matrix when loading... + // Apply the pre-calculated world matrix when loading... s_lpD3DDev->SetTransform(D3DTS_WORLD, &m_Matrix); m_PMInst.PartialRender(iCount, pIB); @@ -651,7 +654,7 @@ void CN3Shape::Tick(float fFrm) { return; } - // If the distance is close, loosen the curling more. + // If the distance is close, loosen the curling more. // Find the largest scale value... float fScale = m_vScale.x; if (fScale < m_vScale.y) { diff --git a/src/engine/N3Base/N3Shape.h b/src/engine/N3Base/N3Shape.h index 9a43109e..95536243 100644 --- a/src/engine/N3Base/N3Shape.h +++ b/src/engine/N3Base/N3Shape.h @@ -124,7 +124,7 @@ typedef typename std::vector::iterator it_SPart; class CN3Shape : public CN3TransformCollision { public: - int m_iBelong; // Affiliation - 0:No affiliation 1:Elmorad 2:Carus 3:?? .... + int m_iBelong; // Affiliation - 0:No affiliation 1:Elmorad 2:Carus 3:?? .... int m_iEventID; //Event ID int m_iEventType; // Event Type int m_iNPC_ID; // NPC ID if the object is used as an NPC @@ -144,10 +144,12 @@ class CN3Shape : public CN3TransformCollision { #endif // end of _N3TOOL int CheckCollisionPrecisely( bool bIgnoreBoxCheck, int ixScreen, int iyScreen, __Vector3 * pVCol = NULL, - __Vector3 * pVNormal = NULL); // Precisely check by polygon - first check the box and then check again precisely... + __Vector3 * pVNormal = + NULL); // Precisely check by polygon - first check the box and then check again precisely... int CheckCollisionPrecisely( bool bIgnoreBoxCheck, const __Vector3 & vPos, const __Vector3 & vDir, __Vector3 * pVCol = NULL, - __Vector3 * pVNormal = NULL); // Precisely check by polygon - first check the box and then check again precisely... + __Vector3 * pVNormal = + NULL); // Precisely check by polygon - first check the box and then check again precisely... bool MakeCollisionMeshByParts(); // Recreate the collision mesh as a box... bool MakeCollisionMeshByPartsDetail(); // As it is... create a collision mesh... diff --git a/src/engine/N3Base/N3ShapeExtra.cpp b/src/engine/N3Base/N3ShapeExtra.cpp index 49a04585..2a8880b3 100644 --- a/src/engine/N3Base/N3ShapeExtra.cpp +++ b/src/engine/N3Base/N3ShapeExtra.cpp @@ -36,7 +36,7 @@ bool CN3ShapeExtra::Load(HANDLE hFile) { void CN3ShapeExtra::Tick(float fFrm) { if (false == m_bVisible) { m_bDontRender = true; - return;// Do not force rendering. + return; // Do not force rendering. } CN3Shape::Tick(); @@ -97,7 +97,8 @@ void CN3ShapeExtra::RotateTo(int iPart, const __Vector3 & vAxis, float fRadianTo pRot->fRadianPerSec = fRadianPerSec; pRot->vAxis = vAxis; if (bImmediately) { - pRot->fRadianCur = pRot->fRadianToReach - - 0.01f; // This will open it directly. The reason for subtracting the value slightly is to make it tick once. + pRot->fRadianCur = + pRot->fRadianToReach - + 0.01f; // This will open it directly. The reason for subtracting the value slightly is to make it tick once. } } \ No newline at end of file diff --git a/src/engine/N3Base/N3ShapeExtra.h b/src/engine/N3Base/N3ShapeExtra.h index 2a9e6516..47cc617e 100644 --- a/src/engine/N3Base/N3ShapeExtra.h +++ b/src/engine/N3Base/N3ShapeExtra.h @@ -28,8 +28,9 @@ class CN3ShapeExtra : public CN3Shape { std::vector<__Rotation> m_Rotations; public: - void RotateTo(int iPart, const __Vector3 & vAxis, float fRadianToReach, float fRadianPerSec, - bool bImmediately = false); // Rotate the desired part at a specified speed to a specified angle along the axis. + void RotateTo( + int iPart, const __Vector3 & vAxis, float fRadianToReach, float fRadianPerSec, + bool bImmediately = false); // Rotate the desired part at a specified speed to a specified angle along the axis. bool Load(HANDLE hFile); void Tick(float fFrm); diff --git a/src/engine/N3Base/N3TableBase.h b/src/engine/N3Base/N3TableBase.h index 82f647aa..4284655c 100644 --- a/src/engine/N3Base/N3TableBase.h +++ b/src/engine/N3Base/N3TableBase.h @@ -71,7 +71,7 @@ template class CN3TableBase { { it_Table it = m_Datas.find(dwID); if (it == m_Datas.end()) { - return -1;// Failed to find!~!! + return -1; // Failed to find!~!! } it_Table itSkill = m_Datas.begin(); @@ -145,7 +145,7 @@ template BOOL CN3TableBase::WriteData(HANDLE hFile, DATA_TYPE if (isdigit(lpszData[0]) || '-' == lpszData[0]) { int iTemp = atoi(lpszData); if (iTemp < -32767 || iTemp > 32768) { - return FALSE;//Out of range~ + return FALSE; //Out of range~ } iWrite = (short)iTemp; } else { @@ -292,13 +292,13 @@ template BOOL CN3TableBase::LoadFromFile(const std::string & return FALSE; } -// Read the original file... + // Read the original file... BYTE * pDatas = new BYTE[dwSizeLow]; DWORD dwRWC = 0; ::ReadFile(hFile, pDatas, dwSizeLow, &dwRWC, NULL); // Read encrypted data... CloseHandle(hFile); // close the original file - // Same key as the key used in the table creation tool.. + // Same key as the key used in the table creation tool.. WORD key_r = 0x0816; WORD key_c1 = 0x6081; WORD key_c2 = 0x1608; @@ -374,8 +374,9 @@ template BOOL CN3TableBase::Load(HANDLE hFile) { int iSize = offsets [iDataTypeCount]; //Among the values returned from the MakeOffstTable function, m_iDataTypeCount contains the actual size of this function. - if (sizeof(Type) != iSize || // The size of the entire type is different from the size of the actual structure - DT_DWORD != m_DataTypes[0]) // When the first data is not DT_DWORD type (since the first data is a unique ID) + if (sizeof(Type) != iSize || // The size of the entire type is different from the size of the actual structure + DT_DWORD != + m_DataTypes[0]) // When the first data is not DT_DWORD type (since the first data is a unique ID) { m_DataTypes.clear(); __ASSERT(0, "DataType is mismatch or DataSize is incorrect!!"); @@ -383,7 +384,7 @@ template BOOL CN3TableBase::Load(HANDLE hFile) { } } - // read how many rows there are + // read how many rows there are int iRC; ReadFile(hFile, &iRC, sizeof(iRC), &dwNum, NULL); Type Data; @@ -434,12 +435,14 @@ template BOOL CN3TableBase::MakeOffsetTable(std::vector int iDataTypeCount = m_DataTypes.size(); offsets.clear(); - offsets.resize(iDataTypeCount + 1); // The reason for adding +1 is to put the actual size of the Type in the last value. + offsets.resize(iDataTypeCount + + 1); // The reason for adding +1 is to put the actual size of the Type in the last value. offsets[0] = 0; int iPrevDataSize = SizeOf(m_DataTypes[0]); for (int i = 1; i < iDataTypeCount; ++i) { int iCurDataSize = SizeOf(m_DataTypes[i]); - if (1 == iCurDataSize % 4) //If the current data is 1 byte, it doesn't matter how many bytes the previous data is. + if (1 == + iCurDataSize % 4) //If the current data is 1 byte, it doesn't matter how many bytes the previous data is. { offsets[i] = offsets[i - 1] + iPrevDataSize; } else if (2 == iCurDataSize % 4) //If the current data is 2 bytes, it must be located at an even address. @@ -449,7 +452,9 @@ template BOOL CN3TableBase::MakeOffsetTable(std::vector } else { offsets[i] = offsets[i - 1] + iPrevDataSize + 1; } - } else if (0 == iCurDataSize % 4) // If the current data is 4 bytes, it must be located at an address that is a multiple of 4. + } else if (0 == + iCurDataSize % + 4) // If the current data is 4 bytes, it must be located at an address that is a multiple of 4. { if (0 == ((offsets[i - 1] + iPrevDataSize) % 4)) { offsets[i] = offsets[i - 1] + iPrevDataSize; @@ -462,8 +467,9 @@ template BOOL CN3TableBase::MakeOffsetTable(std::vector iPrevDataSize = iCurDataSize; } - // Let's put the actual size of the Type in the last value. - offsets[iDataTypeCount] = ((int)(offsets[iDataTypeCount - 1] + iPrevDataSize + 3) / 4) * 4; // Make it a multiple of 4 + // Let's put the actual size of the Type in the last value. + offsets[iDataTypeCount] = + ((int)(offsets[iDataTypeCount - 1] + iPrevDataSize + 3) / 4) * 4; // Make it a multiple of 4 return true; } diff --git a/src/engine/N3Base/N3Texture.cpp b/src/engine/N3Base/N3Texture.cpp index 60fc50b4..3850def5 100644 --- a/src/engine/N3Base/N3Texture.cpp +++ b/src/engine/N3Base/N3Texture.cpp @@ -102,7 +102,7 @@ bool CN3Texture::Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerat memset(&m_Header, 0, sizeof(m_Header)); // MipMap step decision.. - // Create MipMap only up to 4 + // Create MipMap only up to 4 int nMMC = 1; if (bGenerateMipMap) { nMMC = 0; @@ -342,7 +342,8 @@ bool CN3Texture::Load(HANDLE hFile) { if (D3DFMT_DXT1 == HeaderOrg.Format) { iSkipSize += iWTmp * iHTmp / 2; // DXT1 format is compressed to 1/4 of the 16-bit format. } else { - iSkipSize += iWTmp * iHTmp; // DXT2 ~ DXT5 formats are compressed to 1/2 of the 16-bit format. + iSkipSize += + iWTmp * iHTmp; // DXT2 ~ DXT5 formats are compressed to 1/2 of the 16-bit format. } } ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip it. @@ -430,7 +431,8 @@ bool CN3Texture::Load(HANDLE hFile) { // Skip compressed data.. int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; if (D3DFMT_DXT1 == HeaderOrg.Format) { - iSkipSize = iWTmp * iHTmp / 2; // The DXT1 format is compressed to 1/4 the size of the 16-bit format. + iSkipSize = + iWTmp * iHTmp / 2; // The DXT1 format is compressed to 1/4 the size of the 16-bit format. } else { iSkipSize = iWTmp * iHTmp; // DXT2 ~ DXT5 formats are compressed to 1/2 of the 16-bit format. } @@ -453,12 +455,13 @@ bool CN3Texture::Load(HANDLE hFile) { { int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; for (int i = 0; i < m_iLOD; i++, iWTmp /= 2, iHTmp /= 2) { - iSkipSize += iWTmp * iHTmp * iPixelSize; // I think the pixel size is the pitch divided by the width... + iSkipSize += + iWTmp * iHTmp * iPixelSize; // I think the pixel size is the pitch divided by the width... } ::SetFilePointer(hFile, iSkipSize, 0, FILE_CURRENT); // Skip. } - // Skip if the video card supported texture size is small.. + // Skip if the video card supported texture size is small.. int iWTmp = HeaderOrg.nWidth, iHTmp = HeaderOrg.nHeight, iSkipSize = 0; for (; iWTmp > s_DevCaps.MaxTextureWidth || iHTmp > s_DevCaps.MaxTextureHeight; iWTmp /= 2, iHTmp /= 2) { iSkipSize += iWTmp * iHTmp * iPixelSize; @@ -532,7 +535,8 @@ bool CN3Texture::SkipFileHandle(HANDLE hFile) { iWTmp = HeaderOrg.nWidth / 2; iHTmp = HeaderOrg.nHeight / 2; for (; iWTmp >= 4 && iHTmp >= 4; - iWTmp /= 2, iHTmp /= 2) { // It is formatted as A1R5G5B5 or A4R4G4B4, which contains two bytes per pixel. + iWTmp /= 2, + iHTmp /= 2) { // It is formatted as A1R5G5B5 or A4R4G4B4, which contains two bytes per pixel. iSkipSize += iWTmp * iHTmp * 2; // Skip } } else // pair of if(HeaderOrg.bMipMap) diff --git a/src/engine/N3Base/N3Texture.h b/src/engine/N3Base/N3Texture.h index 69f85ee3..6342a2d4 100644 --- a/src/engine/N3Base/N3Texture.h +++ b/src/engine/N3Base/N3Texture.h @@ -49,9 +49,9 @@ class CN3Texture : public CN3BaseFileAccess { } } - bool Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerateMipMap); // Created to fit your device + bool Create(int nWidth, int nHeight, D3DFORMAT Format, BOOL bGenerateMipMap); // Created to fit your device LPDIRECT3DTEXTURE9 Get() { return m_lpTexture; } - operator LPDIRECT3DTEXTURE9() { return m_lpTexture; } + operator LPDIRECT3DTEXTURE9() { return m_lpTexture; } void Release(); CN3Texture(); diff --git a/src/engine/N3Base/N3TransformCollision.cpp b/src/engine/N3Base/N3TransformCollision.cpp index 628ea9f5..5146272a 100644 --- a/src/engine/N3Base/N3TransformCollision.cpp +++ b/src/engine/N3Base/N3TransformCollision.cpp @@ -92,7 +92,9 @@ bool CN3TransformCollision::Save(HANDLE hFile) { } WriteFile(hFile, &nL, 4, &dwRWC, NULL); // Mesh FileName if (nL > 0) { - if (-1 == m_pMeshClimb->FileName().find("object\\")) //I put it in to change the path temporarily. I will delete it later if I don't need it. + if (-1 == + m_pMeshClimb->FileName().find( + "object\\")) //I put it in to change the path temporarily. I will delete it later if I don't need it. { char szFNTmp[256]; wsprintf(szFNTmp, "Object\\%s.N3VMesh", m_pMeshClimb->m_szName.c_str()); diff --git a/src/game/Bird.cpp b/src/game/Bird.cpp index ddb096e0..18ad03d2 100644 --- a/src/game/Bird.cpp +++ b/src/game/Bird.cpp @@ -70,14 +70,14 @@ void CBird::Tick() { m_fFactorY2 -= (2 * D3DX_PI); } - // ġ + // Position calculation __Vector3 vPos; vPos.Set(sinf(m_fFactor1) * m_fRadius * cosf(m_fRadian), m_fRadiusY * (sinf(m_fFactorY1) + cosf(m_fFactorY2)) / 2.0f, sinf(m_fFactor2) * m_fRadius * sinf(m_fRadian)); - // - // ̺н ̿Ͽ ϱ + // angle calculation + // Find the slope using differential equations float x = (m_fFactorSpeed1 * cosf(m_fFactor1) * cosf(m_fRadian) - m_fRadianSpeed * sinf(m_fFactor1) * sinf(m_fRadian)); float z = @@ -111,7 +111,7 @@ void CBird::Render() { int CBird::LoadBird(const std::string & szFN) { Release(); - FILE * stream = fopen(szFN.c_str(), "r"); //textϷ + FILE * stream = fopen(szFN.c_str(), "r"); // Make it a text file if (NULL == stream) { #if _DEBUG char szErr[512]; @@ -124,15 +124,15 @@ int CBird::LoadBird(const std::string & szFN) { char szRrcName[_MAX_PATH]; float fSpeed = 0.0f; int result = fscanf(stream, "ResourceName = %s\n", szRrcName); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Pivot = %f %f %f\n", &(m_vPivot.x), &(m_vPivot.y), &(m_vPivot.z)); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Radius = %f\n", &m_fRadius); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "RadiusY = %f\n", &m_fRadiusY); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); result = fscanf(stream, "Speed = %f\n", &fSpeed); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); fclose(stream); diff --git a/src/game/Bird.h b/src/game/Bird.h index 91f59b07..004a7e85 100644 --- a/src/game/Bird.h +++ b/src/game/Bird.h @@ -17,20 +17,20 @@ class CBird : public CN3Base { // Attributes public: protected: - // Ͽ о + // Information read from file CN3Shape * m_pShape; // Shape pointer - __Vector3 m_vPivot; // ߽(߽ ݰ m_fRadiusŭ δ. - float m_fRadius; // ݰ + __Vector3 m_vPivot; // Center point (moves within a range of radius m_fRadius from the center point. + float m_fRadius; // radius - // __Vector3 m_vVelocity; // ӵ(ǵ+) - float m_fRadianSpeed; // ӷ - float m_fRadian; // Ÿ ġ + // __Vector3 m_vVelocity; // Current speed (speed + direction) + float m_fRadianSpeed; // speed + float m_fRadian; // Current position angle of ellipse float m_fFactor1, m_fFactor2; float m_fFactorSpeed1, m_fFactorSpeed2; - float m_fRadiusY; // ݰ - float m_fFactorY1, m_fFactorY2; // ȭ - float m_fFactorYSpeed1, m_fFactorYSpeed2; // ȭ ȭ.. + float m_fRadiusY; // height radius + float m_fFactorY1, m_fFactorY2; // height change factor + float m_fFactorYSpeed1, m_fFactorYSpeed2; // Height change factor rate of change... CN3SndObj * m_pSnd; float m_fSndInterval; diff --git a/src/game/BirdMng.cpp b/src/game/BirdMng.cpp index 0806eb30..8b9ed019 100644 --- a/src/game/BirdMng.cpp +++ b/src/game/BirdMng.cpp @@ -33,7 +33,7 @@ void CBirdMng::LoadFromFile(const std::string & szFN) { if (szFN.empty()) { return; } - FILE * stream = fopen(szFN.c_str(), "r"); //textϷ + FILE * stream = fopen(szFN.c_str(), "r"); // Make it a text file if (NULL == stream) { #if _DEBUG @@ -46,7 +46,7 @@ void CBirdMng::LoadFromFile(const std::string & szFN) { char szRrcName[_MAX_PATH]; int result = fscanf(stream, "count = %d\n", &m_iBirdCount); - __ASSERT(result != EOF, "߸ Machine "); + __ASSERT(result != EOF, "Invalid machine settings file"); if (m_iBirdCount > 0) { m_pBird = new CBird[m_iBirdCount]; @@ -54,7 +54,7 @@ void CBirdMng::LoadFromFile(const std::string & szFN) { for (int i = 0; i < m_iBirdCount; i++) { result = fscanf(stream, "%s\n", szRrcName); - __ASSERT(result != EOF, "߸ bird list "); + __ASSERT(result != EOF, "Invalid bird list settings file"); m_pBird[i].LoadBird(szRrcName); } fclose(stream); diff --git a/src/game/BirdMng.h b/src/game/BirdMng.h index 330e5a8b..d02cbcb3 100644 --- a/src/game/BirdMng.h +++ b/src/game/BirdMng.h @@ -10,7 +10,7 @@ typedef struct __TABLE_BIRD { DWORD dwID; // zone ID char * pszTerrainFN; // Terrain FileName - Terrain, Tile Map, ColorMap.... char * pszColorMapFN; - char * pszObjectPostDataFN; // Object ġ - ̾ȿ 浹 üũ ͵ ִ. + char * pszObjectPostDataFN; // Object location information - This also contains collision check data. } TABLE_BIRD; class CBird; diff --git a/src/game/GameProcedure.cpp b/src/game/GameProcedure.cpp index 88a59d89..73dcd861 100644 --- a/src/game/GameProcedure.cpp +++ b/src/game/GameProcedure.cpp @@ -97,10 +97,10 @@ HCURSOR CGameProcedure::m_hPrevGameCursor = NULL; HWND CGameProcedure::s_hWndSubSocket = NULL; // Window handle for sub socket.. int CGameProcedure::s_iChrSelectIndex = 0; bool CGameProcedure::s_bNeedReportVersionCheck = false; -bool CGameProcedure::s_bNeedReportConnectionClosed = false; // Should I report that the server connection was lost? -bool CGameProcedure::s_bWindowed = false; // Run windowed mode?? -bool CGameProcedure::s_bKeyPress = false; // When a key is pressed, if there is a corresponding operation in the UI -bool CGameProcedure::s_bKeyPressed = false; // If there is a corresponding manipulation in the UI when the key is raised +bool CGameProcedure::s_bNeedReportConnectionClosed = false; // Should I report that the server connection was lost? +bool CGameProcedure::s_bWindowed = false; // Run windowed mode?? +bool CGameProcedure::s_bKeyPress = false; // When a key is pressed, if there is a corresponding operation in the UI +bool CGameProcedure::s_bKeyPressed = false; // If there is a corresponding manipulation in the UI when the key is raised CGameProcedure::CGameProcedure() { m_bCursorLocked = false; @@ -886,14 +886,17 @@ void CGameProcedure::MsgSend_CharacterSelect() // virtual { BYTE byBuff[64]; int iOffset = 0; - CAPISocket::MP_AddByte(byBuff, iOffset, N3_CHARACTER_SELECT); // Command. - CAPISocket::MP_AddShort(byBuff, iOffset, s_szAccount.size()); // Account length... - CAPISocket::MP_AddString(byBuff, iOffset, s_szAccount); // Account string.. - CAPISocket::MP_AddShort(byBuff, iOffset, s_pPlayer->IDString().size()); // Character ID length... - CAPISocket::MP_AddString(byBuff, iOffset, s_pPlayer->IDString()); // Character ID string.. - CAPISocket::MP_AddByte(byBuff, iOffset, s_pPlayer->m_InfoExt.iZoneInit); // Whether it is the first time connection or not 0x01: First time connection - CAPISocket::MP_AddByte(byBuff, iOffset, s_pPlayer->m_InfoExt.iZoneCur); // Character zone number in the character selection window - s_pSocket->Send(byBuff, iOffset); // send + CAPISocket::MP_AddByte(byBuff, iOffset, N3_CHARACTER_SELECT); // Command. + CAPISocket::MP_AddShort(byBuff, iOffset, s_szAccount.size()); // Account length... + CAPISocket::MP_AddString(byBuff, iOffset, s_szAccount); // Account string.. + CAPISocket::MP_AddShort(byBuff, iOffset, s_pPlayer->IDString().size()); // Character ID length... + CAPISocket::MP_AddString(byBuff, iOffset, s_pPlayer->IDString()); // Character ID string.. + CAPISocket::MP_AddByte( + byBuff, iOffset, + s_pPlayer->m_InfoExt.iZoneInit); // Whether it is the first time connection or not 0x01: First time connection + CAPISocket::MP_AddByte(byBuff, iOffset, + s_pPlayer->m_InfoExt.iZoneCur); // Character zone number in the character selection window + s_pSocket->Send(byBuff, iOffset); // send CLogWriter::Write("MsgSend_CharacterSelect - name(%s) zone(%d)", s_pPlayer->IDString().c_str(), s_pPlayer->m_InfoExt.iZoneCur); // Debugging log... diff --git a/src/game/GameProcedure.h b/src/game/GameProcedure.h index 8b5a6fcb..0dd6f3f9 100644 --- a/src/game/GameProcedure.h +++ b/src/game/GameProcedure.h @@ -113,8 +113,8 @@ class CGameProcedure : public CGameBase { static void ReportServerConnectionClosed(bool bNeedQuitGame); static void ReportDebugStringAndSendToServer(const std::string & szDebug); - virtual int MsgRecv_VersionCheck(DataPack * pDataPack, int & iOffset); // ȣȭ Ű ޴´.. - virtual int MsgRecv_GameServerLogIn(DataPack * pDataPack, int & iOffset); // virtual - ȣ Ѵ. + virtual int MsgRecv_VersionCheck(DataPack * pDataPack, int & iOffset); // ȣȭ Ű ޴´.. + virtual int MsgRecv_GameServerLogIn(DataPack * pDataPack, int & iOffset); // virtual - ȣ Ѵ. virtual bool MsgRecv_CharacterSelect(DataPack * pDataPack, int & iOffset); static void MsgSend_GameServerLogIn();