diff --git a/PlugY/InfinityStash.cpp b/PlugY/InfinityStash.cpp index 22e9c35..ea09d36 100644 --- a/PlugY/InfinityStash.cpp +++ b/PlugY/InfinityStash.cpp @@ -26,6 +26,7 @@ bool active_sharedStash = false; bool separateHardSoftStash = false; bool active_sharedGold=false; char* sharedStashFilename = NULL; +DWORD saveFileStackSize = 0x2000; typedef int (*TchangeToSelectedStash)(Unit* ptChar, Stash* newStash, DWORD bOnlyItems, DWORD bIsClient); @@ -422,7 +423,7 @@ void saveStashList(Unit* ptChar, Stash* ptStash, BYTE** data, DWORD* maxSize, DW while(ptStash) { - if (*curSize + 0x2000 > *maxSize) + if (*curSize + saveFileStackSize > *maxSize) { BYTE* oldData = *data; *maxSize *= 2; diff --git a/PlugY/Interface_Skills.cpp b/PlugY/Interface_Skills.cpp index 90178f7..8a07c2a 100644 --- a/PlugY/Interface_Skills.cpp +++ b/PlugY/Interface_Skills.cpp @@ -49,9 +49,10 @@ Unit* STDCALL skillsPageMouseDown(sWinMessage* msg) if (active_SkillsPoints && !onRealm && D2isLODGame() && isOnButtonUnassignSkill(D2GetMouseX(),D2GetMouseY())) { log_msg("push down left button unassign skill\n"); - btnSkillIsDown = 1; + //btnSkillIsDown = 1; D2PlaySound(4,0,0,0,0); freeMessage(msg); + updateServer(US_UNASSIGN_SKILLS); return NULL; } return ptChar; @@ -233,6 +234,7 @@ void Install_InterfaceSkills() //6FAE1112 > C745 18 00000000 MOV DWORD PTR SS:[EBP+18],0 //004ABC1A |> C746 18 00000000 MOV DWORD PTR DS:[ESI+18],0 + /* Conflicts with D2ExpRes // Manage mouse up mem_seek R8(D2Client, 7BC40, 7BC40, 78466, 17558, 8C078, 80248, 795F8, 30AA8, ABC96); MEMJ_REF4( D2FreeWinMessage, caller_skillsPageMouseUp);//0xFFF93B0A @@ -243,6 +245,7 @@ void Install_InterfaceSkills() //6FB295F7 .^E9 8828F9FF JMP //6FAE0AA7 .^E9 E0B2FDFF JMP //004ABC95 |. E8 F645F7FF CALL Game.00420290 + */ log_msg("\n"); diff --git a/PlugY/Interface_Stats.cpp b/PlugY/Interface_Stats.cpp index 85e6029..1d3a4cf 100644 --- a/PlugY/Interface_Stats.cpp +++ b/PlugY/Interface_Stats.cpp @@ -13,6 +13,7 @@ #include "common.h" #include +/* static struct { union{ @@ -35,6 +36,7 @@ static struct #define getYNextPageBtn() RY(D2GetResolution()?0x40:0x70) #define getHNextPageBtn() 32 #define isOnNextPageBtn(x,y) isOnRect(x, y, getXNextPageBtn(), getYNextPageBtn(), getLNextPageBtn(), getHNextPageBtn()) +*/ @@ -49,7 +51,7 @@ void STDCALL printStatsPageBtns() sDrawImageInfo data; ZeroMemory(&data,sizeof(data)); - if (printBackgroundOnMainPage && D2GetResolution()) + if (printBackgroundOnMainPage) { setImage(&data, statsBackgroundImages); setFrame(&data, 1); @@ -57,16 +59,14 @@ void STDCALL printStatsPageBtns() } setImage(&data, D2LoadBuySelBtn()); - if (D2GetResolution()) - { - setFrame(&data, 12 + isDownBtn.previousPage); - D2PrintImage(&data, getXPreviousPageBtn(), getYPreviousPageBtn(), -1, 5, 0); - } + setFrame(&data, 12 + isDownBtn.previousPage); + D2PrintImage(&data, getXPreviousPageBtn(), getYPreviousPageBtn(), -1, 5, 0); + setFrame(&data, 14 + isDownBtn.nextPage); D2PrintImage(&data, getXNextPageBtn(), getYNextPageBtn(), -1, 5, 0); D2SetFont(1); - if (D2GetResolution() && isOnPreviousPageBtn(mx,my)) //print popup "previous page" + if (isOnPreviousPageBtn(mx,my)) //print popup "previous page" { lpText = getLocalString(STR_PREVIOUS_PAGE); D2PrintPopup(lpText, getXPreviousPageBtn()+getLPreviousPageBtn()/2, getYPreviousPageBtn()-getHPreviousPageBtn(), WHITE, 1); @@ -84,6 +84,12 @@ Unit* STDCALL statsPageMouseDown(sWinMessage* msg) if (!active_newInterfaces || !D2isLODGame() ) return ptChar; + if (statsLeftDown(msg)) { + freeMessage(msg); + return NULL; + } + + /* if (D2GetResolution() && isOnPreviousPageBtn(msg->x,msg->y)) { log_msg("push down left button previous page\n"); @@ -100,6 +106,7 @@ Unit* STDCALL statsPageMouseDown(sWinMessage* msg) freeMessage(msg); return NULL; } + */ return ptChar; } @@ -110,6 +117,13 @@ Unit* STDCALL statsPageMouseUp(sWinMessage* msg) if (!active_newInterfaces || !D2isLODGame() ) return ptChar; + if (statsLeftUp(msg)) { + isDownBtn.all=0; + freeMessage(msg); + return NULL; + } + + /* if (D2GetResolution() && isOnPreviousPageBtn(msg->x,msg->y)) { log_msg("push up left button previous page\n"); @@ -134,6 +148,7 @@ Unit* STDCALL statsPageMouseUp(sWinMessage* msg) return NULL; } } + */ isDownBtn.all=0; return ptChar; diff --git a/PlugY/LocalizedStrings.cpp b/PlugY/LocalizedStrings.cpp index 70595ee..3c76d87 100644 --- a/PlugY/LocalizedStrings.cpp +++ b/PlugY/LocalizedStrings.cpp @@ -51,7 +51,7 @@ LPCWSTR getLocalTypeString(DWORD code) { if (sLocalizedTypeStrings[i].code == code) { - log_msg("Code=%08X\n", code); + //log_msg("Code=%08X\n", code); if (sLocalizedTypeStrings[i].itemStr) return StripGender(D2GetStringFromString(sLocalizedTypeStrings[i].itemStr)); LPWSTR text = StripGender(sLocalizedTypeStrings[i].typeLocalizedString); @@ -300,6 +300,8 @@ void loadLocalizedStrings(int language) LOAD(STR_SHARED_GOLD_QUANTITY); LOAD(STR_PREVIOUS_PAGE); LOAD(STR_NEXT_PAGE); + LOAD(STR_PREVIOUS_RUNE); + LOAD(STR_NEXT_RUNE); LOAD(STR_ITEM_LEVEL); LOAD(STR_PAGE_TYPE_CHANGE); diff --git a/PlugY/LocalizedStrings.h b/PlugY/LocalizedStrings.h index 9fb08e7..0e7b83d 100644 --- a/PlugY/LocalizedStrings.h +++ b/PlugY/LocalizedStrings.h @@ -37,6 +37,8 @@ enum eStringList STR_SHARED_GOLD_QUANTITY, STR_PREVIOUS_PAGE, STR_NEXT_PAGE, + STR_PREVIOUS_RUNE, + STR_NEXT_RUNE, STR_ITEM_LEVEL, STR_PAGE_TYPE_CHANGE, // diff --git a/PlugY/NewInterface_CubeListing.cpp b/PlugY/NewInterface_CubeListing.cpp index 1c54331..d50c8bc 100644 --- a/PlugY/NewInterface_CubeListing.cpp +++ b/PlugY/NewInterface_CubeListing.cpp @@ -233,12 +233,6 @@ DWORD print(CubeMainBIN* curForm, LPWSTR buf, LPINT len, DWORD)//maxsize) printInputItem(&curForm->input6, buf, len, &realNbInputs); printInputItem(&curForm->input7, buf, len, &realNbInputs); - if (realNbInputs != curForm->numinputs) - { - PRINT(BUF, L" *** ERROR : numInputs(%d) != realNbInputs(%d) ***", curForm->numinputs, realNbInputs); - return 1; - } - PRINT(BUF,L" => "); int realNbOutputs=0; @@ -269,6 +263,9 @@ DWORD print(CubeMainBIN* curForm, LPWSTR buf, LPINT len, DWORD)//maxsize) // if (curForm->version == 100) // sprintf(BUF, " [expansion only]"); + if (realNbInputs != curForm->numinputs) + PRINT(BUF, L" *** ERROR : numInputs(%d) != realNbInputs(%d) ***", curForm->numinputs, realNbInputs); + return 1; } #undef BUF diff --git a/PlugY/NewInterface_Runewords.cpp b/PlugY/NewInterface_Runewords.cpp index 99d1f38..13efd9f 100644 --- a/PlugY/NewInterface_Runewords.cpp +++ b/PlugY/NewInterface_Runewords.cpp @@ -12,6 +12,7 @@ #include "common.h" #include +/* #define NB_RUNES_PER_PAGE 25 #define getXCloseBtn() 360 @@ -53,6 +54,7 @@ static struct }; }; } isDownBtn; +*/ void printRuneword(RunesBIN* runesData, DWORD pos) @@ -64,7 +66,7 @@ void printRuneword(RunesBIN* runesData, DWORD pos) D2SetFont(6); DWORD nbPixel = D2GetPixelLen(lpText); DWORD x1 = (nbPixel >= 195) ? 0 : 195-nbPixel; - D2PrintString(lpText, x1, 10 + pos*20, GOLD, 0);//MILIEU(0x00,0x70,nbPixel) + D2PrintString(lpText, posXRunesList + RX(x1), posYRunesList + 10 + pos*20, GOLD, 0);//MILIEU(0x00,0x70,nbPixel) typesList[0]=L'\0'; DWORD numItype=0; @@ -80,7 +82,7 @@ void printRuneword(RunesBIN* runesData, DWORD pos) } nbPixel = D2GetPixelLen(typesList); x1 = (nbPixel >= 195) ? 0 : 195-nbPixel; - D2PrintString(typesList, x1, 20 + pos*20, WHITE, 0);//MILIEU(0x70,0xA0,nbPixel) + D2PrintString(typesList, posXRunesList + RX(x1), posYRunesList + 20 + pos*20, WHITE, 0);//MILIEU(0x70,0xA0,nbPixel) runesList[0]=L'\0'; DWORD numRune=0; @@ -115,7 +117,7 @@ void printRuneword(RunesBIN* runesData, DWORD pos) } // x1 = (nbPixel < 145) ? 155 : 300-nbPixel; - D2PrintString(runesList, x1, y1 + pos*20, WHITE, 0);//MILIEU(0xD0,0xA0,nbPixel) + D2PrintString(runesList, posXRunesList + RX(x1), posYRunesList + y1 + pos*20, WHITE, 0);//MILIEU(0xD0,0xA0,nbPixel) } @@ -123,48 +125,58 @@ void printRuneword(RunesBIN* runesData, DWORD pos) //6FB21FAA void STDCALL printRunewordsPage() { - if (!D2isLODGame() || !D2GetResolution()) return D2PrintStatsPage(); + if (!D2isLODGame()) return D2PrintStatsPage(); LPWSTR lpText; - bDontPrintBorder = true; + bDontPrintBorder = D2GetResolution()? true : false; //Init data for print image sDrawImageInfo data; ZeroMemory(&data,sizeof(data)); //print background -/* setImage(&data, newStatsInterfaceImages); + fillRect(RX(0), RY(ResolutionY), 512, 768, 0, 5); + setImage(&data, newStatsInterfaceImages); setFrame(&data, 0); - D2PrintImage(&data, 0, 256, -1, 5, 0); + D2PrintImage(&data, RX(0), RY(ResolutionY-256), -1, 5, 0); setFrame(&data, 1); - D2PrintImage(&data, 256,256, -1, 5, 0); + D2PrintImage(&data, RX(256),RY(ResolutionY-256), -1, 5, 0); setFrame(&data, 2); - D2PrintImage(&data, 0, 512, -1, 5, 0); + D2PrintImage(&data, RX(0), RY(ResolutionY-256*2), -1, 5, 0); setFrame(&data, 3); - D2PrintImage(&data, 256,512, -1, 5, 0); + D2PrintImage(&data, RX(256),RY(ResolutionY-256*2), -1, 5, 0); setFrame(&data, 4); - D2PrintImage(&data, 0, 552, -1, 5, 0); + D2PrintImage(&data, RX(0), RY(ResolutionY-256*3), -1, 5, 0); setFrame(&data, 5); - D2PrintImage(&data, 256,552, -1, 5, 0); -*/ - fillRect(0,0,400,552,0,5); + D2PrintImage(&data, RX(256),RY(ResolutionY-256*3), -1, 5, 0); + + if (printBackgroundOnMainPage) + { + setImage(&data, statsBackgroundImages); + setFrame(&data, 1); + D2PrintImage(&data, getXPreviousPageBtn()-7, getYPreviousPageBtn()+8, -1, 5, 0); + D2PrintImage(&data, getXPrevRunesBtn()-7, getYPrevRunesBtn()+8, -1, 5, 0); + } //print button close setImage(&data, D2LoadBuySelBtn()); setFrame(&data, 10 + isDownBtn.close); D2PrintImage(&data, getXCloseBtn(), getYCloseBtn(), -1, 5, 0); + //print previous page button + setFrame(&data, 12 + isDownBtn.previousPage); + D2PrintImage(&data, getXPreviousPageBtn(), getYPreviousPageBtn(), -1, 5, 0); + //print next page button - setFrame(&data, isDownBtn.nextPage); + setFrame(&data, 14 + isDownBtn.nextPage); D2PrintImage(&data, getXNextPageBtn(), getYNextPageBtn(), -1, 5, 0); //print previous runes button - setImage(&data, stashBtnsImages); - setFrame(&data, isDownBtn.prevRunes); + setFrame(&data, 12 + isDownBtn.prevRunes); D2PrintImage(&data, getXPrevRunesBtn(), getYPrevRunesBtn(), -1, 5, 0); //print previous runes button - setFrame(&data, 2 + isDownBtn.nextRunes); + setFrame(&data, 14 + isDownBtn.nextRunes); D2PrintImage(&data, getXNextRunesBtn(), getYNextRunesBtn(), -1, 5, 0); D2SetFont(6); @@ -181,11 +193,11 @@ void STDCALL printRunewordsPage() { if (!runesData->Complete || runesData->Server) continue; nbRunesCompleted++; - if ( (curRunesPage * NB_RUNES_PER_PAGE < nbRunesCompleted) && - (nbRunesCompleted <= (curRunesPage+1) * NB_RUNES_PER_PAGE) ) + if ( (curRunesPage * runesPerPage < nbRunesCompleted) && + (nbRunesCompleted <= (curRunesPage+1) * runesPerPage) ) printRuneword(runesData, curNbRunes++); } - maxRunesPage = nbRunesCompleted ? (nbRunesCompleted-1) / NB_RUNES_PER_PAGE : 0; + maxRunesPage = nbRunesCompleted ? (nbRunesCompleted-1) / runesPerPage : 0; //////////////////// POPUP PRINTING //////////////////// @@ -197,11 +209,26 @@ void STDCALL printRunewordsPage() { D2PrintPopup(D2GetStringFromIndex(0x1030), getXCloseBtn()+getLCloseBtn()/2, getYCloseBtn()-getHCloseBtn(), WHITE, 1); } + else if (isOnPreviousPageBtn(x,y)) //print popup "previous page" + { + lpText = getLocalString(STR_PREVIOUS_PAGE); + D2PrintPopup(lpText, getXPreviousPageBtn()+getLPreviousPageBtn()/2, getYPreviousPageBtn()-getHPreviousPageBtn(), WHITE, 1); + } else if (isOnNextPageBtn(x,y)) // print popup "next page" { lpText = getLocalString(STR_NEXT_PAGE); D2PrintPopup(lpText, getXNextPageBtn()+getLNextPageBtn()/2, getYNextPageBtn()-getHNextPageBtn(), WHITE, 1); } + else if (isOnPrevRunesBtn(x,y)) // print popup "previous rune" + { + lpText = getLocalString(STR_PREVIOUS_RUNE); + D2PrintPopup(lpText, getXPrevRunesBtn()+getLPrevRunesBtn()/2, getYPrevRunesBtn()-getHPrevRunesBtn(), WHITE, 1); + } + else if (isOnNextRunesBtn(x,y)) // print popup "next rune" + { + lpText = getLocalString(STR_NEXT_RUNE); + D2PrintPopup(lpText, getXNextRunesBtn()+getLNextRunesBtn()/2, getYNextRunesBtn()-getHNextRunesBtn(), WHITE, 1); + } } ////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/PlugY/NewInterface_Stats.cpp b/PlugY/NewInterface_Stats.cpp index 10fa32d..d73c5da 100644 --- a/PlugY/NewInterface_Stats.cpp +++ b/PlugY/NewInterface_Stats.cpp @@ -13,6 +13,7 @@ #include +/* #define getXCloseBtn() 360 #define getLCloseBtn() 32 #define getYCloseBtn() (ResolutionY - 60) @@ -92,6 +93,7 @@ void** ptD2AssignStatsPointsBtnImages = (void**)0x6FBB5BB4; +/* static struct { union{ @@ -111,6 +113,7 @@ static struct }; }; } isDownBtn; +*/ void print2Lines(WORD id, LPWSTR lpText, DWORD x, DWORD l, DWORD y) diff --git a/PlugY/NewInterface_StatsPageTwo.cpp b/PlugY/NewInterface_StatsPageTwo.cpp index dfdc8a1..6215dd6 100644 --- a/PlugY/NewInterface_StatsPageTwo.cpp +++ b/PlugY/NewInterface_StatsPageTwo.cpp @@ -12,6 +12,7 @@ #include "common.h" #include +/* #define getXCloseBtn() RX(0x110) #define getLCloseBtn() 32 #define getYCloseBtn() RY(0x40) @@ -29,11 +30,13 @@ #define getYNextPageBtn() RY(0x40) #define getHNextPageBtn() 32 #define isOnNextPageBtn(x,y) isOnRect(x, y, getXNextPageBtn(), getYNextPageBtn(), getLNextPageBtn(), getHNextPageBtn()) +*/ const char * STATS_INTERFACE_FILENAME = "PlugY\\statsinterface.txt"; #define BUFSIZE 0x400 +/* static struct { union{ @@ -45,6 +48,7 @@ static struct }; }; } isDownBtn; +*/ struct statsInterfaceBIN @@ -337,8 +341,7 @@ void STDCALL printNewStatsPageTwo(int currentPage) WCHAR text[BUFSIZE]; LPWSTR lpText; - bDontPrintBorder = false; - + bDontPrintBorder = D2GetResolution()? true : false; Unit* ptChar = D2GetClientPlayer(); d2_assert(!ptChar, "Printing stats page : no character selected",__FILE__,__LINE__); @@ -349,16 +352,20 @@ void STDCALL printNewStatsPageTwo(int currentPage) ZeroMemory(&data,sizeof(data)); //print background - fillRect(RX(0),RY(480),320,432,0,5);//552 + fillRect(RX(0), RY(ResolutionY), 512, 768, 0, 5); setImage(&data, newStatsInterfaceImages); setFrame(&data, 0); - D2PrintImage(&data, RX(0), RY(224), -1, 5, 0); + D2PrintImage(&data, RX(0), RY(ResolutionY-256), -1, 5, 0); setFrame(&data, 1); - D2PrintImage(&data, RX(256),RY(224), -1, 5, 0);//256 + D2PrintImage(&data, RX(256),RY(ResolutionY-256), -1, 5, 0); setFrame(&data, 2); - D2PrintImage(&data, RX(0), RY(48), -1, 5, 0);//432 + D2PrintImage(&data, RX(0), RY(ResolutionY-256*2), -1, 5, 0); setFrame(&data, 3); - D2PrintImage(&data, RX(256),RY(48), -1, 5, 0); + D2PrintImage(&data, RX(256),RY(ResolutionY-256*2), -1, 5, 0); + setFrame(&data, 4); + D2PrintImage(&data, RX(0), RY(ResolutionY-256*3), -1, 5, 0); + setFrame(&data, 5); + D2PrintImage(&data, RX(256),RY(ResolutionY-256*3), -1, 5, 0); D2SetFont(1); for (int i=0; i= 0) && (page <= lastPage + (D2GetResolution()? extraHiddenPage : 0)) ) + if ( (page >= 0) && (page <= (lastPage + extraHiddenPage)) ) selectedPage = page; + else if (page < 0) + selectedPage = lastPage + extraHiddenPage; + else + selectedPage = 0; } int GetCurrentPage() @@ -83,6 +115,16 @@ DWORD STDCALL mouseCustomPageLeftDown(sWinMessage* msg) DWORD STDCALL mouseCustomPageLeftUp(sWinMessage* msg) { if(onRealm) return -1; + + if (selectedPage == 0) return -1; + if (!isOnStatsPage(msg->x,msg->y)) return 1; + statsLeftUp(msg); + D2CleanStatMouseUp(); + freeMessage(msg); + isDownBtn.all=0; + return 0; + + /* if ( (selectedPage > 0) && (selectedPage <= lastPage) ) return mouseNewStatsPageTwoLeftUp(msg); else if (selectedPage == lastPage+1) @@ -91,6 +133,87 @@ DWORD STDCALL mouseCustomPageLeftUp(sWinMessage* msg) return mouseNewStatsPageLeftUp(msg); else return -1; + */ +} + +DWORD STDCALL statsLeftDown(sWinMessage* msg) +{ + if (isOnCloseBtn(msg->x,msg->y) && selectedPage != 0) + { + log_msg("push down left button close\n"); + isDownBtn.close = 1; + D2PlaySound(4,0,0,0,0); + return 1; + } + else if (isOnPreviousPageBtn(msg->x,msg->y)) + { + log_msg("push down left button previous page\n"); + isDownBtn.previousPage = 1; + D2PlaySound(4,0,0,0,0); + return 1; + } + else if (isOnNextPageBtn(msg->x,msg->y)) + { + log_msg("push down left button next page\n"); + isDownBtn.nextPage = 1; + D2PlaySound(4,0,0,0,0); + return 1; + } + else if (isOnPrevRunesBtn(msg->x,msg->y) && selectedPage == (lastPage + extraHiddenPage)) + { + log_msg("push down left button prev runes\n"); + isDownBtn.prevRunes = 1; + D2PlaySound(4,0,0,0,0); + return 1; + } + else if (isOnNextRunesBtn(msg->x,msg->y) && selectedPage == (lastPage + extraHiddenPage)) + { + log_msg("push down left button next runes\n"); + isDownBtn.nextRunes = 1; + D2PlaySound(4,0,0,0,0); + return 1; + } + return 0; +} + +DWORD STDCALL statsLeftUp(sWinMessage* msg) +{ + if (isOnCloseBtn(msg->x,msg->y) && selectedPage != 0) + { + log_msg("push up left button close\n"); + if (isDownBtn.close) + D2TogglePage(2,1,0); + return 1; + } + else if (isOnPreviousPageBtn(msg->x,msg->y)) + { + log_msg("push up left button previous page\n"); + if (isDownBtn.previousPage) + GoStatPage(selectedPage-1); + return 1; + } + else if (isOnNextPageBtn(msg->x,msg->y)) + { + log_msg("push up left button next page\n"); + if (isDownBtn.nextPage) + GoStatPage(selectedPage+1); + return 1; + } + else if (isOnPrevRunesBtn(msg->x,msg->y) && selectedPage == (lastPage + extraHiddenPage)) + { + log_msg("push up left button prev runes\n"); + if (isDownBtn.prevRunes && curRunesPage) + curRunesPage--; + return 1; + } + else if (isOnNextRunesBtn(msg->x,msg->y) && selectedPage == (lastPage + extraHiddenPage)) + { + log_msg("push up left button next runes\n"); + if (isDownBtn.nextRunes && (curRunesPage < maxRunesPage)) + curRunesPage++; + return 1; + } + return 0; } FCT_ASM ( caller_DontPrintBorder_114 ) @@ -474,6 +597,7 @@ void Install_NewInterfaces() //00498636 |. 6A 48 PUSH 48 //00498638 |. 8D45 B8 LEA EAX,DWORD PTR SS:[EBP-48] + /* Conflicts with D2ExpRes // Manage mouse down (Play sound) mem_seek R8(D2Client, 2A9DC, 2A9CC, 312A5, 82736, 891B6, 6B116, BCD36, BF4D6, A7731); memt_byte( 0x8D, 0xE8 ); // CALL @@ -486,6 +610,7 @@ void Install_NewInterfaces() //6FB6CD36 . 8D88 80000000 LEA ECX,DWORD PTR DS:[EAX+80] //6FB6F4D6 . 8D88 80000000 LEA ECX,DWORD PTR DS:[EAX+80] //004A7731 . 8D88 80000000 LEA ECX,DWORD PTR DS:[EAX+80] + */ // Manage mouse up mem_seek R8(D2Client, 2ABBB, 2ABAB, 3148D, 836D9, 8A159, 6C0B9, BDCB9, C0459, A78DA); diff --git a/PlugY/Parameters.cpp b/PlugY/Parameters.cpp index b4dc915..392c112 100644 --- a/PlugY/Parameters.cpp +++ b/PlugY/Parameters.cpp @@ -58,6 +58,7 @@ const char* S_dllFilenames2 = "DllToLoad2"; const char* S_active_Commands = "ActiveCommands"; const char* S_active_CheckMemory = "ActiveCheckMemory"; const char* S_active_othersFeatures = "ActiveAllOthersFeatures"; +const char* S_saveFileStackSize = "SaveFileStackSize"; const char* S_WINDOWED = "WINDOWED"; const char* S_ActiveWindowed = "ActiveWindowed"; @@ -214,6 +215,19 @@ const char* S_INTERFACE = "INTERFACE"; const char* S_active_newInterfaces = "ActiveNewStatsInterface"; const char* S_selectMainPageOnOpenning = "SelectMainPageOnOpenning"; const char* S_printBackgroundOnMainPage = "PrintButtonsBackgroundOnMainStatsPage"; +const char* S_posXNextPageBtn = "PosXNextPageBtn"; +const char* S_posYNextPageBtn = "PosYNextPageBtn"; +const char* S_posXPrevPageBtn = "PosXPrevPageBtn"; +const char* S_posYPrevPageBtn = "PosYPrevPageBtn"; +const char* S_posXClosePageBtn = "PosXClosePageBtn"; +const char* S_posYClosePageBtn = "PosYClosePageBtn"; +const char* S_posXNextRuneBtn = "PosXNextRuneBtn"; +const char* S_posYNextRuneBtn = "PosYNextRuneBtn"; +const char* S_posXPrevRuneBtn = "PosXPrevRuneBtn"; +const char* S_posYPrevRuneBtn = "PosYPrevRuneBtn"; +const char* S_posXRunesList = "PosXRunesList"; +const char* S_posYRunesList = "PosYRunesList"; +const char* S_runesPerPage = "RunesPerPage"; const char* S_EXTRA = "EXTRA"; const char* S_active_RunLODs = "ActiveLaunchAnyNumberOfLOD"; @@ -316,6 +330,10 @@ void init_General(INIFile* iniFile, INIFile* iniFixedFile, INIFile* iniDefaultFi active_othersFeatures = atoi(buffer) != 0; log_msg("active_othersFeatures\t\t= %u\n", active_othersFeatures); + GET_PRIVATE_PROFILE_STRING(S_GENERAL, S_saveFileStackSize, "8192"); + saveFileStackSize = atoi(buffer); + log_msg("SaveFileStackSize\t\t\t= %u\n", saveFileStackSize); + log_msg("\n"); } @@ -1032,6 +1050,52 @@ void init_NewInterfaces(INIFile* iniFile, INIFile* iniFixedFile, INIFile* iniDef GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_printBackgroundOnMainPage, "1"); printBackgroundOnMainPage = atoi(buffer) != 0; log_msg("printBackgroundOnMainPage\t= %u\n", printBackgroundOnMainPage); + + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posXNextPageBtn, "161"); + posXNextPageBtn = atoi(buffer); + log_msg("posXNextPageBtn\t= %d\n", posXNextPageBtn); + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posYNextPageBtn, "64"); + posYNextPageBtn = atoi(buffer); + log_msg("posYNextPageBtn\t= %d\n", posYNextPageBtn); + + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posXPrevPageBtn, "119"); + posXPrevPageBtn = atoi(buffer); + log_msg("posXPrevPageBtn\t= %d\n", posXPrevPageBtn); + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posYPrevPageBtn, "64"); + posYPrevPageBtn = atoi(buffer); + log_msg("posYPrevPageBtn\t= %d\n", posYPrevPageBtn); + + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posXClosePageBtn, "360"); + posXClosePageBtn = atoi(buffer); + log_msg("posXClosePageBtn\t= %d\n", posXClosePageBtn); + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posYClosePageBtn, "64"); + posYClosePageBtn = atoi(buffer); + log_msg("posYClosePageBtn\t= %d\n", posYClosePageBtn); + + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posXNextRuneBtn, "302"); + posXNextRuneBtn = atoi(buffer); + log_msg("posXNextRuneBtn\t= %d\n", posXNextRuneBtn); + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posYNextRuneBtn, "64"); + posYNextRuneBtn = atoi(buffer); + log_msg("posYNextRuneBtn\t= %d\n", posYNextRuneBtn); + + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posXPrevRuneBtn, "260"); + posXPrevRuneBtn = atoi(buffer); + log_msg("posXPrevRuneBtn\t= %d\n", posXPrevRuneBtn); + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posYPrevRuneBtn, "64"); + posYPrevRuneBtn = atoi(buffer); + log_msg("posYPrevRuneBtn\t= %d\n", posYPrevRuneBtn); + + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posXRunesList, "50"); + posXRunesList = atoi(buffer); + log_msg("posXRunesList\t= %d\n", posXRunesList); + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_posYRunesList, "45"); + posYRunesList = atoi(buffer); + log_msg("posYRunesList\t= %d\n", posYRunesList); + + GET_PRIVATE_PROFILE_STRING(S_INTERFACE, S_runesPerPage, "30"); + runesPerPage = atoi(buffer); + log_msg("runesPerPage\t= %d\n", runesPerPage); } log_msg("\n"); } diff --git a/PlugY/infinityStash.h b/PlugY/infinityStash.h index 0ca6b4d..123705d 100644 --- a/PlugY/infinityStash.h +++ b/PlugY/infinityStash.h @@ -18,6 +18,7 @@ extern bool active_sharedStash; extern bool active_sharedGold; extern bool separateHardSoftStash; extern char* sharedStashFilename; +extern DWORD saveFileStackSize; extern bool displaySharedSetItemNameInGreen; extern int posXPreviousBtn; diff --git a/PlugY/newInterfaces.h b/PlugY/newInterfaces.h index de51f26..c4c4ff3 100644 --- a/PlugY/newInterfaces.h +++ b/PlugY/newInterfaces.h @@ -9,20 +9,94 @@ #include "common.h" #define MILIEU(X,L,N) (X + ((N