diff --git a/Diablo Edit2/CharacterDialogBase.h b/Diablo Edit2/CharacterDialogBase.h index 5702eb4..215b26b 100644 --- a/Diablo Edit2/CharacterDialogBase.h +++ b/Diablo Edit2/CharacterDialogBase.h @@ -12,7 +12,6 @@ class CCharacterDialogBase : public CDialog CCharacterDialogBase(UINT nIDTemplate,CWnd* pParent = NULL); // 标准构造函数 virtual ~CCharacterDialogBase(); // 自定义函数 - virtual CSize GetSize() const = 0; virtual void UpdateUI(const CD2S_Struct & character) = 0; virtual BOOL GatherData(CD2S_Struct & character) = 0; virtual void ResetAll() = 0; diff --git a/Diablo Edit2/Diablo Edit2View.cpp b/Diablo Edit2/Diablo Edit2View.cpp index 63f1187..a6ee34b 100644 --- a/Diablo Edit2/Diablo Edit2View.cpp +++ b/Diablo Edit2/Diablo Edit2View.cpp @@ -75,6 +75,7 @@ void CDiabloEdit2View::OnInitialUpdate() GetParentFrame()->RecalcLayout(); //初始化界面 InitUI(); + RefreshUI(); } // CDiabloEdit2View 诊断 @@ -135,63 +136,27 @@ void CDiabloEdit2View::InitUI(void) LoadText(); - // Calulate minimum size for view - CSize newSize; - CSize result = m_dlgTabPage[0]->GetSize(); - newSize.cx = max(result.cx, newSize.cx); - newSize.cy = max(result.cy, newSize.cy); - - result = m_dlgTabPage[1]->GetSize(); - newSize.cx = max(result.cx, newSize.cx); - newSize.cy = max(result.cy, newSize.cy); - - // Adjust size for frame - CRect toolRect(0, 0, 0, 0); - CWnd* pBar; - WINDOWPLACEMENT wndpl; - if (pBar = GetParent()->GetDescendantWindow(AFX_IDW_TOOLBAR)) - { - pBar->GetWindowPlacement(&wndpl); - if (wndpl.showCmd && SW_SHOW) - { - toolRect = wndpl.rcNormalPosition; - newSize.cy -= toolRect.Height(); - } - } - - if (pBar = GetParent()->GetDescendantWindow(AFX_IDW_STATUS_BAR)) - { - pBar->GetWindowPlacement(&wndpl); - if (wndpl.showCmd && SW_SHOW) - { - toolRect = wndpl.rcNormalPosition; - newSize.cy -= toolRect.Height(); - } - } - - newSize.cx += (GetSystemMetrics(SM_CXSIZEFRAME) + GetSystemMetrics(SM_CXBORDER)) * 2 + GetSystemMetrics(SM_CYVSCROLL); - - CRect rect; - GetWindowRect(&rect); - GetParent()->ScreenToClient(&rect); - rect.right = rect.left + newSize.cx; - rect.bottom = rect.top + newSize.cy; - m_dlgTabPage[0]->MoveWindow(rect); - m_dlgTabPage[1]->MoveWindow(rect); - SetWindowPos(NULL, -1, -1, rect.Width(), rect.Height(), SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - GetParentFrame()->SetWindowPos(NULL, -1, -1, rect.Width(), rect.Height(), SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); + // resize views + ResizeParentToFit(); + RefreshUI(); } } void CDiabloEdit2View::RefreshUI(void) { + // In case of resize, the tab control needs to resize CRect rect; GetClientRect(&rect); + + // get the current scroll bar state and adjust rect + CSize scrollPos = GetScrollPosition(); + rect.left -= scrollPos.cx; + rect.top -= scrollPos.cy; m_tcTab.MoveWindow(rect); m_tcTab.GetClientRect(&rect); - rect.top += 20; - if(m_dlgTabPage) - for(int i = 0;i < m_nTabPageCount;++i) + m_tcTab.AdjustRect(FALSE, &rect); + if (m_dlgTabPage) + for (int i = 0; i < m_nTabPageCount; ++i) m_dlgTabPage[i]->MoveWindow(rect); } @@ -408,4 +373,3 @@ void CDiabloEdit2View::OnLanguage3() LoadText(); } } - diff --git a/Diablo Edit2/DiabloEdit2.rc b/Diablo Edit2/DiabloEdit2.rc index f747e5a..c7a7a66 100644 Binary files a/Diablo Edit2/DiabloEdit2.rc and b/Diablo Edit2/DiabloEdit2.rc differ diff --git a/Diablo Edit2/DlgCharBasicInfo.cpp b/Diablo Edit2/DlgCharBasicInfo.cpp index e40722b..9e7c2a2 100644 --- a/Diablo Edit2/DlgCharBasicInfo.cpp +++ b/Diablo Edit2/DlgCharBasicInfo.cpp @@ -144,53 +144,6 @@ BEGIN_MESSAGE_MAP(CDlgCharBasicInfo, CDialog) ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &CDlgCharBasicInfo::OnTcnSelchangeTab1) END_MESSAGE_MAP() -CSize CDlgCharBasicInfo::GetSize() const -{ - CRect rect; - auto pWnd = GetDlgItem(IDC_TAB1); // This control should have an pixel top position of 235 - if (pWnd == nullptr || !::IsWindow(pWnd->GetSafeHwnd())) - { - GetClientRect(&rect); - return CSize(rect.Width(), rect.Height()); - } - - CRect rectTab; - pWnd->GetWindowRect(&rectTab); - ScreenToClient(&rectTab); - - m_dlgTabPage[0]->GetWindowRect(&rect); - ScreenToClient(&rect); - CSize result = m_dlgTabPage[0]->GetSize(); - result.cx += rectTab.left + rect.left; - result.cy += rectTab.top + rect.top; - CSize newSize = result; - - m_dlgTabPage[1]->GetWindowRect(&rect); - ScreenToClient(&rect); - result = m_dlgTabPage[0]->GetSize(); - result.cx += rectTab.left + rect.left; - result.cy += rectTab.top + rect.top; - newSize.cx = max(result.cx, newSize.cx); - newSize.cy = max(result.cy, newSize.cy); - - pWnd = GetDlgItem(IDC_STATIC_GoldinSta); // This control should be the right most - if (pWnd != nullptr && ::IsWindow(pWnd->GetSafeHwnd())) - { - CRect rect2; - pWnd->GetWindowRect(&rect2); - ScreenToClient(&rect); - newSize.cx = max(newSize.cx, rect2.right + rect.left); - } - - GetClientRect(&rect); - rect.right = rect.left + newSize.cx; - rect.bottom = rect.top + newSize.cy; - ::SetWindowPos(GetSafeHwnd(), NULL, -1, -1, rect.Width(), rect.Height(), SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - m_dlgTabPage[0]->MoveWindow(rect); - m_dlgTabPage[1]->MoveWindow(rect); - return newSize; -} - // 更新显示的人物信息 void CDlgCharBasicInfo::UpdateUI(const CD2S_Struct& character) { @@ -376,6 +329,9 @@ void CDlgCharBasicInfo::InitUI(void) m_dlgTabPage[1]->Create(CDlgQuestInfo::IDD, &m_tcBasicInfo); m_dlgTabPage[1]->ShowWindow(SW_HIDE); //在此处添加新的属性窗体 + // + // resize views + RefreshUI(); m_nTabCurSel = 0; m_tcBasicInfo.SetCurSel(m_nTabCurSel); @@ -383,6 +339,27 @@ void CDlgCharBasicInfo::InitUI(void) } } +void CDlgCharBasicInfo::RefreshUI(void) +{ + // In case of resize, the tab control needs to resize + CRect rect; + GetClientRect(&rect); + + CRect rectTab; + m_tcBasicInfo.GetWindowRect(&rectTab); + ScreenToClient(&rectTab); + rect.top = rectTab.top; + + m_tcBasicInfo.MoveWindow(rect); + m_tcBasicInfo.GetClientRect(&rect); + m_tcBasicInfo.AdjustRect(FALSE, &rect); + + // resize views + if (m_dlgTabPage) + for (int i = 0; i < m_nTabPageCount; ++i) + m_dlgTabPage[i]->MoveWindow(rect); +} + void CDlgCharBasicInfo::LoadText(void) { TCITEM tci; @@ -449,29 +426,8 @@ void CDlgCharBasicInfo::OnEnChangeLevel() void CDlgCharBasicInfo::OnPaint() { + RefreshUI(); CCharacterDialogBase::OnPaint(); - CRect rect; - GetClientRect(&rect); - - auto pWnd = GetDlgItem(IDC_TAB1); // This control should have an pixel left position of 338 and bottom position of 58 - if (pWnd != nullptr && ::IsWindow(pWnd->GetSafeHwnd())) - { - CRect rectTab; - pWnd->GetWindowRect(&rectTab); - ScreenToClient(&rectTab); - rect.top = rectTab.top; - } - else - { - rect.top += 235; - } - - m_tcBasicInfo.MoveWindow(rect); - m_tcBasicInfo.GetClientRect(&rect); - rect.top += 20; - if (m_dlgTabPage) - for (int i = 0; i < m_nTabPageCount; ++i) - m_dlgTabPage[i]->MoveWindow(rect); } void CDlgCharBasicInfo::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) diff --git a/Diablo Edit2/DlgCharBasicInfo.h b/Diablo Edit2/DlgCharBasicInfo.h index f9634e0..b4f9c71 100644 --- a/Diablo Edit2/DlgCharBasicInfo.h +++ b/Diablo Edit2/DlgCharBasicInfo.h @@ -66,13 +66,13 @@ class CDlgCharBasicInfo : public CCharacterDialogBase DWORD m_dwMaxGoldInStash; // 自定义函数 public: - CSize GetSize() const; void UpdateUI(const CD2S_Struct & character); BOOL GatherData(CD2S_Struct & character); void ResetAll(); void LoadText(void); //加载控件的字符串内容 private: void InitUI(void); + void RefreshUI(void); public: virtual BOOL OnInitDialog(); afx_msg void OnBnClicked_Skills(); diff --git a/Diablo Edit2/DlgCharItems.cpp b/Diablo Edit2/DlgCharItems.cpp index 79b1e0f..45dcad9 100644 --- a/Diablo Edit2/DlgCharItems.cpp +++ b/Diablo Edit2/DlgCharItems.cpp @@ -25,8 +25,6 @@ using namespace std; const int GRID_WIDTH = 30; //每个网格的边长(像素) // SCALING to take into account the possiblity of different dialog base units -static double DLG_SCALE_X = 1.0; -static double DLG_SCALE_Y = 1.0; static int GRID_WIDTH_SCALED = GRID_WIDTH; //物品类型和能装备的位置 @@ -126,7 +124,7 @@ static BOOL IsGolem(EPosition pos) { return GOLEM == pos; } //每个位置(EPosition)在UI的起始坐标(像素),列数,行数 //left,top,col,row,equip -const int POSITION_INFO[POSITION_END][5] = { +int POSITION_INFO[POSITION_END][5] = { // Top-Left position adjusted by CalculateScale at runtime to adjust for DPI {10,5,6,8,E_ANY}, //箱子 {10,5,10,10,E_ANY}, //D2R大箱子 {10,315,10,4,E_ANY}, //口袋 @@ -164,10 +162,48 @@ const int POSITION_INFO[POSITION_END][5] = { {600,30,2,4,E_ANY}, //生成金属石魔的物品 }; +const int POSITION_RECT[POSITION_END] = { // Rect used to position images + IDC_INV_STASH, //箱子 + IDC_INV_STASH, //D2R大箱子 + IDC_INV, //口袋 + IDC_INV_CUBE, //方块 + IDC_INV_BELT_GRID, //腰带里 + IDC_INV_SOCKETS, //镶嵌在孔里 + + IDC_INV_HELM, //头 + IDC_INV_AMU, //项链 + IDC_INV_TORSO, //身体 + IDC_INV_RH, //武器右 + IDC_INV_LH, //武器左 + IDC_INV_RF, //戒指右 + IDC_INV_LF, //戒指左 + IDC_INV_BELT, //腰带 + IDC_INV_FOOT, //鞋子 + IDC_INV_GLOVE, //手套 + + IDC_INV_CORPSE_HELM, //尸体的头 + IDC_INV_CORPSE_AMU, //尸体的项链 + IDC_INV_CORPSE_TORSO, //尸体的身体 + IDC_INV_CORPSD_RH, //尸体的武器右 + IDC_INV_CORPSD_LH, //尸体的武器左 + IDC_INV_CORPSE_RF, //尸体的戒指右 + IDC_INV_CORPSE_LF, //尸体的戒指左 + IDC_INV_CORPSE_BELT, //尸体的腰带 + IDC_INV_CORPSE_FOOT, //尸体的鞋子 + IDC_INV_CORPSE_GLOVE, //尸体的手套 + + IDC_INV_MERC_HELM, //雇佣兵的头 + IDC_INV_MERC_TORSO, //雇佣兵的身体 + IDC_INV_MERC_RH, //雇佣兵的武器右 + IDC_INV_MERC_LH, //雇佣兵的武器左 + + IDC_INV_GOLEM, //生成金属石魔的物品 +}; + static CRect PositionToRect(EPosition pos) { ASSERT(pos < POSITION_END); auto & p = POSITION_INFO[pos]; - return CRect(p[0] * DLG_SCALE_X, p[1] * DLG_SCALE_Y, p[0] * DLG_SCALE_X + GRID_WIDTH_SCALED * p[2], p[1] * DLG_SCALE_Y + GRID_WIDTH_SCALED * p[3]); + return CRect(p[0], p[1], p[0] + GRID_WIDTH_SCALED * p[2], p[1] + GRID_WIDTH_SCALED * p[3]); } static int PositionToCol(EPosition pos) { @@ -492,13 +528,6 @@ BEGIN_MESSAGE_MAP(CDlgCharItems, CDialog) ON_NOTIFY(NM_DBLCLK, IDC_LIST_RECYCLE, &CDlgCharItems::OnNMDblclkListRecycle) END_MESSAGE_MAP() -CSize CDlgCharItems::GetSize() const -{ - CRect rect; - GetClientRect(&rect); - return CSize(rect.Width(), rect.Height()); -} - void CDlgCharItems::UpdateUI(const CD2S_Struct & character) { ResetAll(); m_bHasCharacter = TRUE; @@ -665,15 +694,34 @@ static void DrawGrid(CPaintDC & dc, const CRect & rect, int intervalX = 0, int i void CDlgCharItems::CalculateScale() { - auto pWnd = GetDlgItem(IDC_CHECK1); // This control should have an pixel left position of 338 and bottom position of 58 + // Fix up position and grid scale + auto pWnd = GetDlgItem(IDC_INV_STASH); // This control is a good one to calculate scale and it is the biggest grid and the other grids should follow it's scale if (pWnd != nullptr && ::IsWindow(pWnd->GetSafeHwnd())) { CRect rect; pWnd->GetWindowRect(&rect); ScreenToClient(&rect); - DLG_SCALE_X = double(rect.left) / 338.0; - DLG_SCALE_Y = double(rect.bottom) / 58.0; - GRID_WIDTH_SCALED = (int)std::floor(min(DLG_SCALE_X, DLG_SCALE_Y) * GRID_WIDTH); + + // This grid should be info[2] * GRID_WIDTH wide and info[3] * GRID_WIDTH high, so calcualte scale of each GRID Cell. + auto& info = POSITION_INFO[STASH_D2R]; + double scaleX = double(rect.Width()) / double(info[2] * GRID_WIDTH); + double scaleY = double(rect.Height()) / double(info[3] * GRID_WIDTH); + GRID_WIDTH_SCALED = (int)std::floor(min(scaleX, scaleY) * GRID_WIDTH); + } + + // Adjust POSITION_RECT top-left values + for (size_t i = 0; i < POSITION_END; ++i) + { + pWnd = GetDlgItem(POSITION_RECT[i]); + if (pWnd != nullptr && ::IsWindow(pWnd->GetSafeHwnd())) + { + auto& info = POSITION_INFO[i]; + CRect rect; + pWnd->GetWindowRect(&rect); + ScreenToClient(&rect); + info[0] = rect.left; + info[1] = rect.top; + } } //初始化所有网格 @@ -1186,11 +1234,42 @@ void CDlgCharItems::OnChangeMercenary() { } } -static HCURSOR CreateCursorFromBitmap(int picIndex, CSize sz) { +static HCURSOR CreateCursorFromBitmap(CDC* pDC, int picIndex, CSize sz) { // Load bitmap CBitmap bmp; if (!bmp.LoadBitmap(picIndex)) ASSERT(FALSE); + + // Check to see if we need to be scaled + BITMAP bmpInfo; + bmp.GetBitmap(&bmpInfo); + if (bmpInfo.bmWidth != sz.cx || bmpInfo.bmHeight != sz.cy) + { + // select the source CBitmap in a memory DC; + CDC memSrcDc; + memSrcDc.CreateCompatibleDC(pDC); + memSrcDc.SelectObject(&bmp); //now bitmap is an instance of CBitmap class + + // Create your new CBitmap with the new desired size and select it into a destination memory DC + CDC memDestDC; + CBitmap image; + memDestDC.CreateCompatibleDC(pDC); + image.CreateCompatibleBitmap(&memSrcDc, sz.cx, sz.cy); + memDestDC.SelectObject(&image); + + // StretchBlt from src to dest + memDestDC.StretchBlt(0, 0, sz.cx, sz.cy, &memSrcDc, 0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, SRCCOPY); + + HGDIOBJ hbitmap_detach = bmp.Detach(); + if (hbitmap_detach) + { + DeleteObject(hbitmap_detach); + } + + bmp.Attach(image.Detach()); + bmp.GetBitmap(&bmpInfo); + } + // Create an empty mask bitmap. CBitmap monobmp; monobmp.CreateBitmap(sz.cx, sz.cy, 1, 1, NULL); @@ -1206,7 +1285,7 @@ static HCURSOR CreateCursorFromBitmap(int picIndex, CSize sz) { } HCURSOR CDlgCharItems::CreateAlphaCursor(const CItemView & itemView) { - return ::CreateCursorFromBitmap(itemView.nPicRes, itemView.ViewSize()); + return ::CreateCursorFromBitmap(GetDC(), itemView.nPicRes, itemView.ViewSize()); } BOOL CDlgCharItems::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { diff --git a/Diablo Edit2/DlgCharItems.h b/Diablo Edit2/DlgCharItems.h index 09c78e5..9116f9e 100644 --- a/Diablo Edit2/DlgCharItems.h +++ b/Diablo Edit2/DlgCharItems.h @@ -128,7 +128,6 @@ class CDlgCharItems : public CCharacterDialogBase enum { IDD = IDD_DIALOG_CharItems }; CDlgCharItems(CWnd* pParent = NULL); //虚函数 - CSize GetSize() const; void UpdateUI(const CD2S_Struct & character); BOOL GatherData(CD2S_Struct & character); void ResetAll(); diff --git a/Diablo Edit2/DlgQuestInfo.cpp b/Diablo Edit2/DlgQuestInfo.cpp index 53bd5e6..de7cad2 100644 --- a/Diablo Edit2/DlgQuestInfo.cpp +++ b/Diablo Edit2/DlgQuestInfo.cpp @@ -113,13 +113,6 @@ BEGIN_MESSAGE_MAP(CDlgQuestInfo, CDialog) ON_BN_CLICKED(IDC_CHECK1, &CDlgQuestInfo::OnBnClickedCheck1) END_MESSAGE_MAP() -CSize CDlgQuestInfo::GetSize() const -{ - CRect rect; - GetClientRect(&rect); - return CSize(rect.Width(), rect.Height()); -} - void CDlgQuestInfo::UpdateUI(const CD2S_Struct & character) { for(int i = 0;i < LEVEL_SIZE;++i){ diff --git a/Diablo Edit2/DlgQuestInfo.h b/Diablo Edit2/DlgQuestInfo.h index 41dda4a..06a8c04 100644 --- a/Diablo Edit2/DlgQuestInfo.h +++ b/Diablo Edit2/DlgQuestInfo.h @@ -21,7 +21,6 @@ class CDlgQuestInfo : public CCharacterDialogBase DECLARE_MESSAGE_MAP() // 自定义函数 public: - CSize GetSize() const; void UpdateUI(const CD2S_Struct & character); BOOL GatherData(CD2S_Struct & character); void ResetAll(); diff --git a/Diablo Edit2/DlgWayPoints.cpp b/Diablo Edit2/DlgWayPoints.cpp index 1cd9da5..6207e79 100644 --- a/Diablo Edit2/DlgWayPoints.cpp +++ b/Diablo Edit2/DlgWayPoints.cpp @@ -123,13 +123,6 @@ BEGIN_MESSAGE_MAP(CDlgWayPoints, CDialog) ON_BN_CLICKED(IDC_CHECK0, &CDlgWayPoints::OnBnClicked_SelAll) END_MESSAGE_MAP() -CSize CDlgWayPoints::GetSize() const -{ - CRect rect; - GetClientRect(&rect); - return CSize(rect.Width(), rect.Height()); -} - void CDlgWayPoints::UpdateUI(const CD2S_Struct & character) { for(int i = 0;i < 3;++i){ diff --git a/Diablo Edit2/DlgWayPoints.h b/Diablo Edit2/DlgWayPoints.h index 8939d37..96ce592 100644 --- a/Diablo Edit2/DlgWayPoints.h +++ b/Diablo Edit2/DlgWayPoints.h @@ -22,7 +22,6 @@ class CDlgWayPoints : public CCharacterDialogBase DECLARE_MESSAGE_MAP() // 自定义函数 public: - CSize GetSize() const; void UpdateUI(const CD2S_Struct & character); BOOL GatherData(CD2S_Struct & character); void ResetAll(); diff --git a/Diablo Edit2/MainFrm.cpp b/Diablo Edit2/MainFrm.cpp index 5eda509..b56e799 100644 --- a/Diablo Edit2/MainFrm.cpp +++ b/Diablo Edit2/MainFrm.cpp @@ -93,7 +93,7 @@ BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) // CREATESTRUCT cs 来修改窗口类或样式 cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE - | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU; + | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU | WS_SIZEBOX; return TRUE; } diff --git a/Diablo Edit2/Resource.h b/Diablo Edit2/Resource.h index 1aa906e..d085d8b 100644 --- a/Diablo Edit2/Resource.h +++ b/Diablo Edit2/Resource.h @@ -1,11 +1,10 @@ //{{NO_DEPENDENCIES}} -// Microsoft Visual C++ 生成的包含文件。 -// 供 DiabloEdit2.rc 使用 +// Microsoft Visual C++ generated include file. +// Used by DiabloEdit2.rc // #define IDD_ABOUTBOX 100 #define IDP_OLE_INIT_FAILED 100 #define IDD_DIABLOEDIT2_FORM 101 -#define IDD_DIALOG_OnlyTabCtrl 101 #define IDD_DIALOG_BasicCharInfo 102 #define IDD_DIALOG_WayPoints 103 #define IDR_MAINFRAME 128 @@ -463,13 +462,39 @@ #define IDC_LIST_RECYCLE 1058 #define IDC_STATIC_TIP 1059 #define IDC_TREE1 1060 +#define IDC_INV_STASH 1061 +#define IDC_INV 1062 +#define IDC_INV_SOCKETS 1063 +#define IDC_INV_CUBE 1064 +#define IDC_INV_BELT_GRID 1065 +#define IDC_INV_RH 1066 +#define IDC_INV_LH 1067 #define IDC_BUTTON1 1068 -#define IDC_BUTTON2 1069 +#define IDC_INV_CORPSD_RH 1069 +#define IDC_INV_CORPSD_LH 1070 +#define IDC_INV_MERC_RH 1071 +#define IDC_INV_MERC_LH 1072 #define IDC_LIST1 1073 -#define IDC_BUTTON3 1074 -#define IDC_BUTTON4 1075 -#define IDC_BUTTON5 1076 +#define IDC_INV_GOLEM 1074 +#define IDC_INV_TORSO 1075 +#define IDC_INV_CORPSE_TORSO 1076 #define IDC_SLIDER1 1077 +#define IDC_INV_MERC_TORSO 1078 +#define IDC_INV_HELM 1079 +#define IDC_INV_CORPSE_HELM 1080 +#define IDC_INV_MERC_HELM 1081 +#define IDC_INV_GLOVE 1082 +#define IDC_INV_CORPSE_GLOVE 1083 +#define IDC_INV_FOOT 1084 +#define IDC_INV_CORPSE_FOOT 1085 +#define IDC_INV_BELT 1086 +#define IDC_INV_CORPSE_BELT 1087 +#define IDC_INV_RF 1088 +#define IDC_INV_CORPSE_RF 1089 +#define IDC_INV_LF 1090 +#define IDC_INV_CORPSE_LF 1091 +#define IDC_INV_AMU 1092 +#define IDC_INV_CORPSE_AMU 1093 #define IDC_STATIC05 1094 #define IDC_STATIC06 1095 #define IDC_STATIC07 1096 @@ -591,9 +616,9 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 478 +#define _APS_NEXT_RESOURCE_VALUE 479 #define _APS_NEXT_COMMAND_VALUE 32780 -#define _APS_NEXT_CONTROL_VALUE 1061 +#define _APS_NEXT_CONTROL_VALUE 1062 #define _APS_NEXT_SYMED_VALUE 310 #endif #endif diff --git a/Diablo Edit2/language.dat b/Diablo Edit2/language.dat index 3ff9c48..9194760 100644 Binary files a/Diablo Edit2/language.dat and b/Diablo Edit2/language.dat differ diff --git a/Diablo Edit2/resource.h b/Diablo Edit2/resource.h index 1aa906e..d085d8b 100644 --- a/Diablo Edit2/resource.h +++ b/Diablo Edit2/resource.h @@ -1,11 +1,10 @@ //{{NO_DEPENDENCIES}} -// Microsoft Visual C++ 生成的包含文件。 -// 供 DiabloEdit2.rc 使用 +// Microsoft Visual C++ generated include file. +// Used by DiabloEdit2.rc // #define IDD_ABOUTBOX 100 #define IDP_OLE_INIT_FAILED 100 #define IDD_DIABLOEDIT2_FORM 101 -#define IDD_DIALOG_OnlyTabCtrl 101 #define IDD_DIALOG_BasicCharInfo 102 #define IDD_DIALOG_WayPoints 103 #define IDR_MAINFRAME 128 @@ -463,13 +462,39 @@ #define IDC_LIST_RECYCLE 1058 #define IDC_STATIC_TIP 1059 #define IDC_TREE1 1060 +#define IDC_INV_STASH 1061 +#define IDC_INV 1062 +#define IDC_INV_SOCKETS 1063 +#define IDC_INV_CUBE 1064 +#define IDC_INV_BELT_GRID 1065 +#define IDC_INV_RH 1066 +#define IDC_INV_LH 1067 #define IDC_BUTTON1 1068 -#define IDC_BUTTON2 1069 +#define IDC_INV_CORPSD_RH 1069 +#define IDC_INV_CORPSD_LH 1070 +#define IDC_INV_MERC_RH 1071 +#define IDC_INV_MERC_LH 1072 #define IDC_LIST1 1073 -#define IDC_BUTTON3 1074 -#define IDC_BUTTON4 1075 -#define IDC_BUTTON5 1076 +#define IDC_INV_GOLEM 1074 +#define IDC_INV_TORSO 1075 +#define IDC_INV_CORPSE_TORSO 1076 #define IDC_SLIDER1 1077 +#define IDC_INV_MERC_TORSO 1078 +#define IDC_INV_HELM 1079 +#define IDC_INV_CORPSE_HELM 1080 +#define IDC_INV_MERC_HELM 1081 +#define IDC_INV_GLOVE 1082 +#define IDC_INV_CORPSE_GLOVE 1083 +#define IDC_INV_FOOT 1084 +#define IDC_INV_CORPSE_FOOT 1085 +#define IDC_INV_BELT 1086 +#define IDC_INV_CORPSE_BELT 1087 +#define IDC_INV_RF 1088 +#define IDC_INV_CORPSE_RF 1089 +#define IDC_INV_LF 1090 +#define IDC_INV_CORPSE_LF 1091 +#define IDC_INV_AMU 1092 +#define IDC_INV_CORPSE_AMU 1093 #define IDC_STATIC05 1094 #define IDC_STATIC06 1095 #define IDC_STATIC07 1096 @@ -591,9 +616,9 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 478 +#define _APS_NEXT_RESOURCE_VALUE 479 #define _APS_NEXT_COMMAND_VALUE 32780 -#define _APS_NEXT_CONTROL_VALUE 1061 +#define _APS_NEXT_CONTROL_VALUE 1062 #define _APS_NEXT_SYMED_VALUE 310 #endif #endif diff --git a/Generate Data/language.txt b/Generate Data/language.txt index c57d8eb..3c0afac 100644 --- a/Generate Data/language.txt +++ b/Generate Data/language.txt @@ -175,7 +175,7 @@ Ladder 天梯 天梯 Expansion 资料片 資料片 Hardcore 专家级 專家級 - Died berfore 以前死过 以前死過 + Died before 以前死过 以前死過 Skill Points 技能点剩余 技能點剩餘 Gold in person 身上金钱 身上金錢 Gold in stash 箱子金钱 箱子金錢