Mercurial > mm7
changeset 2373:b4a79e3ef2f0
Arena dialogue and other
author | Ritor1 |
---|---|
date | Sun, 01 Jun 2014 17:20:22 +0600 |
parents | 7bf6901add4a |
children | 802460e60eee |
files | AudioPlayer.h GUIWindow.h mm7_2.cpp mm7_3.cpp mm7_4.cpp |
diffstat | 5 files changed, 62 insertions(+), 133 deletions(-) [+] |
line wrap: on
line diff
--- a/AudioPlayer.h Sun Jun 01 15:18:00 2014 +0600 +++ b/AudioPlayer.h Sun Jun 01 17:20:22 2014 +0600 @@ -121,6 +121,7 @@ SOUND_CloseBook = 231, SOUND_11090 = 11090, SOUND_12040 = 12040, + SOUND_Arena_Welcome = 14060, SOUND_20001 = 0x4E21, };
--- a/GUIWindow.h Sun Jun 01 15:18:00 2014 +0600 +++ b/GUIWindow.h Sun Jun 01 17:20:22 2014 +0600 @@ -237,7 +237,7 @@ { DIALOGUE_USE_NPC_ABILITY = 9, DIALOGUE_13 = 0xD, - DIALOGUE_18 = 0x12, + DIALOGUE_18 = 18, DIALOGUE_EVT_A = 19, DIALOGUE_EVT_B = 20, DIALOGUE_EVT_C = 21, @@ -254,8 +254,8 @@ DIALOGUE_ARENA_SELECT_CHAMPION = 88, DIALOGUE_ARENA_WELCOME = 89, DIALOGUE_ARENA_FIGHT_NOT_OVER_YET = 90, - DIALOGUE_ARENA_REWARD = 0x5B, - DIALOGUE_ARENA_ALREADY_WON = 0x5C, + DIALOGUE_ARENA_REWARD = 91, + DIALOGUE_ARENA_ALREADY_WON = 92, };
--- a/mm7_2.cpp Sun Jun 01 15:18:00 2014 +0600 +++ b/mm7_2.cpp Sun Jun 01 17:20:22 2014 +0600 @@ -88,12 +88,12 @@ { for (int i = 0; i < 4; ++i) { - Player* player = &pParty->pPlayers[i]; - player->sHealth = player->GetMaxHealth(); + __debugbreak(); + pParty->pPlayers[i].sHealth = pParty->pPlayers[i].GetMaxHealth(); for (int j = 0; j < 14; ++j) - player->pConditions[i] = 0; - player->pConditions[18] = 0; + pParty->pPlayers[i].pConditions[j] = 0; + pParty->pPlayers[i].pConditions[Condition_Good] = 0; } } break; @@ -102,14 +102,14 @@ { for (int i = 0; i < 4; ++i) { + __debugbreak(); Player* player = &pParty->pPlayers[i]; - player->sHealth = player->GetMaxHealth(); + pParty->pPlayers[i].sHealth = pParty->pPlayers[i].GetMaxHealth(); int v5 = LODWORD(player->pConditions[19]);//*((int *)v4 - 32); int v6 = HIDWORD(player->pConditions[19]);//*((int *)v4 - 31); - memset(player->pConditions.data(), 0, 0xA0u); + memset(&pParty->pPlayers[i].pConditions, 0, sizeof(pParty->pPlayers[i].pConditions)); - __debugbreak(); *(int *)&player->pActiveSkills[PLAYER_SKILL_SHIELD] = v5; *(int *)&player->pActiveSkills[PLAYER_SKILL_CHAIN] = v6; } @@ -141,14 +141,14 @@ { if (uCurrentlyLoadedLevelType == LEVEL_Indoor) { - ShowStatusBarString(pGlobalTXT_LocalizationStrings[494], 2); + ShowStatusBarString(pGlobalTXT_LocalizationStrings[494], 2);//Нельзя применить знание Полет в помещении! pAudioPlayer->PlaySound(SOUND_203, 0, 0, -1, 0, 0, 0, 0); } else { int v19 = pOtherOverlayList->_4418B1(10008, 203, 0, 65536); pParty->pPartyBuffs[PARTY_BUFF_FLY].Apply(pParty->uTimePlayed + 60 * (256 * 2), 3, 1, v19, 0); - pParty->pPartyBuffs[PARTY_BUFF_FLY].uFlags |= 1u; + pParty->pPartyBuffs[PARTY_BUFF_FLY].uFlags |= 1; pAudioPlayer->PlaySound(SOUND_11090, 0, 0, -1, 0, 0, 0, 0); } } @@ -158,7 +158,7 @@ { int v20 = pOtherOverlayList->_4418B1(10005, 201, 0, 65536); pParty->pPartyBuffs[PARTY_BUFF_WATER_WALK].Apply(pParty->uTimePlayed + 60 * (256 * (2 + 1)), 3, 0, v20, 0); - pParty->pPartyBuffs[PARTY_BUFF_WATER_WALK].uFlags |= 1u; + pParty->pPartyBuffs[PARTY_BUFF_WATER_WALK].uFlags |= 1; pAudioPlayer->PlaySound(SOUND_12040, 0, 0, -1, 0, 0, 0, 0); } break; @@ -281,55 +281,39 @@ void Arena_SelectionFightLevel() { signed int v0; // ebp@3 - Actor *v1; // eax@4 - __int16 v2; // cx@5 - int v3; // esi@8 - Player *v4; // esi@14 GUIButton *v5; // eax@18 GUIButton *v6; // esi@19 - size_t v7; // [sp+10h] [bp-4h]@4 if ( pParty->field_7B5_in_arena_quest ) { if ( pParty->field_7B5_in_arena_quest == -1 ) { - uDialogueType = 92; + uDialogueType = DIALOGUE_ARENA_ALREADY_WON; } else { v0 = 0; - if ( (signed int)uNumActors > 0 ) - { - v1 = pActors.data();//[0].uAIState; - v7 = uNumActors; - do - { - v2 = v1->uAIState; - if ( v1->uAIState == Dead || v2 == Removed || v2 == Disabled || (v3 = v1->uSummonerID) != 0 && PID_TYPE(v3) == OBJECT_Player) - ++v0; - ++v1; - --v7; - } - while ( v7 ); - } + for (size_t i = 0; i < uNumActors; i++ ) + { + if ( pActors[i].uAIState == Dead + || pActors[i].uAIState == Removed + || pActors[i].uAIState == Disabled + || pActors[i].uSummonerID != 0 && PID_TYPE(pActors[i].uSummonerID) == OBJECT_Player) + ++v0; + } if ( v0 >= (signed int)uNumActors || (signed int)uNumActors <= 0) { - uDialogueType = 91; - v4 = pParty->pPlayers.data(); - ++*((char *)&pParty->monster_for_hunting_killed[3] + (unsigned __int8)pParty->field_7B5_in_arena_quest + 1); - do - { - v4->SetVariable(VAR_Award, (unsigned __int8)pParty->field_7B5_in_arena_quest + 3); - ++v4; - } - while ( (signed int)v4 < (signed int)pParty->pHirelings.data() ); + uDialogueType = DIALOGUE_ARENA_REWARD; + ++*((char *)&pParty->monster_for_hunting_killed[3] + (unsigned __int8)pParty->field_7B5_in_arena_quest + 1);//Ritor1:I dont know + for ( uint i= 0; i < 4; i++ ) + pParty->pPlayers[i].SetVariable(VAR_Award, (unsigned __int8)pParty->field_7B5_in_arena_quest + 3); pParty->PartyFindsGold(gold_transaction_amount, 0); - pAudioPlayer->PlaySound((SoundID)14060, 0, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound(SOUND_Arena_Welcome, 0, 0, -1, 0, 0, 0, 0); pParty->field_7B5_in_arena_quest = -1; } else { - uDialogueType = 90; + uDialogueType = DIALOGUE_ARENA_WELCOME; pParty->vPosition.x = 3849; pParty->vPosition.y = 5770; pParty->vPosition.z = 1; @@ -337,13 +321,13 @@ pParty->sRotationY = 512; pParty->sRotationX = 0; pParty->uFallSpeed = 0; - pAudioPlayer->PlaySound((SoundID)14060, 0, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound(SOUND_Arena_Welcome, 0, 0, -1, 0, 0, 0, 0); } } } else { - uDialogueType = 89; + uDialogueType = DIALOGUE_ARENA_WELCOME; v5 = pDialogueWindow->pControlsHead; if ( v5 ) { @@ -358,12 +342,13 @@ pDialogueWindow->pControlsHead = 0; pDialogueWindow->pControlsTail = 0; pDialogueWindow->uNumControls = 0; - pBtn_ExitCancel = pDialogueWindow->CreateButton(0x1D7u, 0x1BDu, 0xA9u, 0x23u, 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[79], + pBtn_ExitCancel = pDialogueWindow->CreateButton(471, 445, 0xA9u, 0x23u, 1, 0, UIMSG_Escape, 0, 0, + pGlobalTXT_LocalizationStrings[79], //Close, Закрыть pIcons_LOD->GetTexture(uExitCancelTextureId), 0); - pDialogueWindow->CreateButton(0x1E0u, 0xA0u, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 0x55u, 0, "", 0); - pDialogueWindow->CreateButton(0x1E0u, 0xBEu, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 0x56u, 0, "", 0); - pDialogueWindow->CreateButton(0x1E0u, 0xDCu, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 0x57u, 0, "", 0); - pDialogueWindow->CreateButton(0x1E0u, 0xFAu, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 0x58u, 0, "", 0); + pDialogueWindow->CreateButton(480, 160, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 85, 0, "", 0); + pDialogueWindow->CreateButton(480, 190, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 86, 0, "", 0); + pDialogueWindow->CreateButton(480, 220, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 87, 0, "", 0); + pDialogueWindow->CreateButton(480, 250, 0x8Cu, 0x1Eu, 1, 0, UIMSG_SelectNPCDialogueOption, 88, 0, "", 0); pDialogueWindow->_41D08F_set_keyboard_control_group(4, 1, 0, 1); } } @@ -373,17 +358,9 @@ { int v0; // edi@1 char *v1; // eax@7 -// Player *v2; // edi@9 int v3; // eax@10 signed int v4; // esi@10 - //signed __int64 v5; // qax@18 signed int v6; // ebx@34 - //char *v7; // edi@34 -// int v8; // eax@37 - //int v9; // esi@43 - //int v10; // eax@44 -// unsigned __int8 v11; // sf@44 -// unsigned __int8 v12; // of@44 signed int v13; // eax@49 int v14; // esi@49 int v15; // edx@50 @@ -391,14 +368,11 @@ signed int v17; // ecx@51 int v18; // edx@53 int i; // edi@55 -// int monster_y; // ST18_4@56 -// int v21; // eax@56 signed int v22; // [sp-4h] [bp-144h]@51 __int16 v23[100]; // [sp+Ch] [bp-134h]@39 GUIWindow window; // [sp+D4h] [bp-6Ch]@1 __int16 monster_ids[6]; // [sp+128h] [bp-18h]@56 int v26; // [sp+134h] [bp-Ch]@1 - //int v27; // [sp+138h] [bp-8h]@23 int num_monsters; // [sp+13Ch] [bp-4h]@17 v26 = 0; @@ -406,7 +380,7 @@ memcpy(&window, pDialogueWindow, sizeof(window)); window.uFrameWidth = game_viewport_width; window.uFrameZ = 452; - v0 = pFontArrus->CalcTextHeight(pGlobalTXT_LocalizationStrings[575], &window, 13, 0) + 7; + v0 = pFontArrus->CalcTextHeight(pGlobalTXT_LocalizationStrings[575], &window, 13, 0) + 7;// Пожалуйста, подождите пока я вызываю существ. Удачи. pRenderer->BeginSceneD3D(); if ( uCurrentlyLoadedLevelType == LEVEL_Indoor ) @@ -568,7 +542,7 @@ gold_transaction_amount = v26 * v13; for ( i = 0; i < v14; ++i ) Actor::Arena_summon_actor(monster_ids[rand() % num_monsters], pMonsterArenaPlacements[i].x, pMonsterArenaPlacements[i].y, 1); - pAudioPlayer->PlaySound((SoundID)14060, 0, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound(SOUND_Arena_Welcome, 0, 0, -1, 0, 0, 0, 0); } //----- (004BD8B5) -------------------------------------------------------- @@ -661,16 +635,12 @@ { const char *v1; // eax@2 unsigned int result; // eax@3 -// Player *v3; // eax@7 -// const char *v4; // ST24_4@9 -// int v5; // eax@9 const char *v6; // eax@10 const char *v7; // edx@10 const char *v8; // ecx@12 const char *v9; // eax@14 unsigned int v10; // eax@25 GUIWindow pWindow; // [sp+34h] [bp-9Ch]@1 - //MSG Msg; // [sp+88h] [bp-48h]@22 unsigned int v14; // [sp+A4h] [bp-2Ch]@5 void *v15; // [sp+A8h] [bp-28h]@1 const char *pInString; // [sp+ACh] [bp-24h]@5 @@ -678,7 +648,6 @@ unsigned int v18; // [sp+B4h] [bp-1Ch]@5 unsigned int v19; // [sp+B8h] [bp-18h]@5 int v20; // [sp+BCh] [bp-14h]@7 -// Player *i; // [sp+C0h] [bp-10h]@7 GUIFont *pFont; // [sp+C4h] [bp-Ch]@1 unsigned __int64 v23; // [sp+C8h] [bp-8h]@5 @@ -722,9 +691,9 @@ } pInString = v1; v23 = pParty->uTimePlayed - 138240; - v19 = (unsigned int)((signed __int64)((double)(pParty->uTimePlayed - 138240) * 0.234375) / 60 / 60) / 0x18; - v14 = (unsigned int)((signed __int64)((double)(pParty->uTimePlayed - 138240) * 0.234375) / 60 / 60) / 0x18 / 0x1C / 0xC; - v18 = (unsigned int)((signed __int64)((double)(pParty->uTimePlayed - 138240) * 0.234375) / 60 / 60) / 0x18 / 0x1C % 0xC; + v19 = (unsigned int)((signed __int64)((double)(pParty->uTimePlayed - 138240) * 0.234375) / 60 / 60) / 24; + v14 = (unsigned int)((signed __int64)((double)(pParty->uTimePlayed - 138240) * 0.234375) / 60 / 60) / 24 / 0x1C / 0xC; + v18 = (unsigned int)((signed __int64)((double)(pParty->uTimePlayed - 138240) * 0.234375) / 60 / 60) / 24 / 0x1C % 0xC; v17 = v19 % 0x1C; if ( !v19 ) v19 = 1; @@ -742,15 +711,19 @@ v6 = FitTextInAWindow(pInString, pFont, &pWindow, 0xC, 0); pWindow.DrawTitleText(pFont, 1, 5 * (LOBYTE(pFont->uFontHeight) + 11), 1, v6, 0); strcpy(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[37]);//Total Time: + v7 = pGlobalTXT_LocalizationStrings[56]; if ( v17 != 1 ) v7 = pGlobalTXT_LocalizationStrings[57]; - v8 = pGlobalTXT_LocalizationStrings[146]; + + v8 = pGlobalTXT_LocalizationStrings[146];//Month, Месяц if ( v18 != 1 ) - v8 = pGlobalTXT_LocalizationStrings[148]; + v8 = pGlobalTXT_LocalizationStrings[148];//Months,Месяцев + v9 = pGlobalTXT_LocalizationStrings[245]; if ( v14 != 1 ) v9 = pGlobalTXT_LocalizationStrings[132]; + sprintf(pTmpBuf2.data(), " %lu %s, %lu %s, %lu %s ", v14, v9, v18, v8, v17, v7); strcat(pTmpBuf.data(), pTmpBuf2.data()); pWindow.DrawTitleText(pFont, 1u, pWindow.uFrameHeight - 2 * LOBYTE(pFont->uFontHeight) - 5, 1u, pTmpBuf.data(), 3u); @@ -830,9 +803,6 @@ return result; } - - - //----- (00451007) -------------------------------------------------------- int stru350::sub_451007_scale_image_bicubic(unsigned short *pSrc, int srcWidth, int srcHeight, int srcPitch, //changing this to some library function might be a good idea unsigned short *pDst, int dstWidth, int dstHeight, int dstPitch, @@ -1225,8 +1195,6 @@ + (__PAIR__(v10, (unsigned __int16)a4 >> 2) & 0x1C00)); } - - //----- (004547E4) -------------------------------------------------------- void FactionTable::Initialize() { @@ -1276,8 +1244,6 @@ pHostileTXT_Raw = nullptr; } - - //----- (004610AA) -------------------------------------------------------- void __fastcall PrepareToLoadODM(unsigned int bLoading, ODMRenderParams *a2) { @@ -1295,23 +1261,12 @@ //----- (00461103) -------------------------------------------------------- void _461103_load_level_sub() { - //GUIProgressBar *v0; // ebx@1 - //signed int v1; // ebp@1 - //char *v2; // esi@2 - //__int16 v3; // cx@3 int v4; // edx@8 - //size_t v5; // edi@14 signed int v6; // esi@14 - //char *v7; // edx@15 signed int v8; // ecx@16 -// int v9; // ecx@23 -// MonsterInfo *v10; // ebx@23 - //int *v11; // esi@23 int v12; // esi@25 int v13; // eax@26 __int16 v14; // ax@41 - //signed int v15; // [sp+10h] [bp-4Ch]@1 - //signed int v16; // [sp+10h] [bp-4Ch]@14 signed int v17; // [sp+14h] [bp-48h]@3 signed int v18; // [sp+14h] [bp-48h]@23 int v19; // [sp+18h] [bp-44h]@1 @@ -1590,7 +1545,6 @@ pIcons_LOD->RemoveTexturesPackFromTextureList(); } - //----- (00464479) -------------------------------------------------------- void ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows() { @@ -1688,7 +1642,6 @@ pIconsFrameTable->InitializeAnimation(uIconID_CharacterFrame); } - //----- (00464866) -------------------------------------------------------- void DoPrepareWorld(unsigned int bLoading, int _1_fullscreen_loading_2_box) { @@ -1946,8 +1899,6 @@ } } - - //----- (004651F4) -------------------------------------------------------- bool MM7_Initialize(int game_width, int game_height) {
--- a/mm7_3.cpp Sun Jun 01 15:18:00 2014 +0600 +++ b/mm7_3.cpp Sun Jun 01 17:20:22 2014 +0600 @@ -524,9 +524,7 @@ result = 0; } else - { result = 1; - } return result; } @@ -610,9 +608,7 @@ result = 0; } else - { result = 1; - } return result; } @@ -621,7 +617,7 @@ { int v3; // ebx@6 int v5; // eax@10 - int v6; // ecx@10 + //int v6; // ecx@10 signed int v8; // ebx@17 // unsigned __int8 v10; // sf@17 // unsigned __int16 v11; // ax@21 @@ -663,8 +659,10 @@ for (v75 = 0; v75 < uNumActors; ++v75) { - if ( pActors[v75].uAIState == Removed || pActors[v75].uAIState == Disabled || pActors[v75].uAIState == Summoned - || !pActors[v75].uMovementSpeed ) + if ( pActors[v75].uAIState == Removed + || pActors[v75].uAIState == Disabled + || pActors[v75].uAIState == Summoned + || !pActors[v75].uMovementSpeed ) continue; v3 = 0; v69 = 0; @@ -677,10 +675,10 @@ v70 = IsTerrainSlopeTooHigh(pActors[v75].vPosition.x, pActors[v75].vPosition.y); v5 = ODM_GetFloorLevel(pActors[v75].vPosition.x, pActors[v75].vPosition.y, pActors[v75].vPosition.z, pActors[v75].uActorHeight, &uIsOnWater, (int *)&v69, v3); - v6 = pActors[v75].vPosition.z; + //v6 = pActors[v75].vPosition.z; uIsAboveFloor = 0; v67 = v69 == 0; - if ( v6 > v5 + 1 ) + if ( pActors[v75].vPosition.z > v5 + 1 ) uIsAboveFloor = 1; if ( pActors[v75].uAIState == Dead && uIsOnWater && !uIsAboveFloor ) { @@ -967,18 +965,11 @@ //----- (0047253E) -------------------------------------------------------- void UpdateObjects() { -// unsigned int v0; // ebx@0 ObjectDesc *object; // eax@5 int v5; // ecx@6 -// __int16 v6; // cx@7 signed int v7; // eax@9 signed int v11; // eax@17 int v12; // edi@27 -// int v13; // eax@27 -// int v14; // ebx@27 -// unsigned int v15; // ecx@27 -// unsigned int v16; // edx@30 -// unsigned int v17; // edx@32 int v18; // [sp+4h] [bp-10h]@27 int v19; // [sp+8h] [bp-Ch]@27 @@ -2677,9 +2668,7 @@ v3 = v4->uRespawnIntervalDays; } else - { v4 = (MapInfo *)thisa; - } day_attrib &= ~DAY_ATTRIB_FOG; dword_6BE13C_uCurrentlyLoadedLocationID = v2; pOutdoor->Initialize(
--- a/mm7_4.cpp Sun Jun 01 15:18:00 2014 +0600 +++ b/mm7_4.cpp Sun Jun 01 17:20:22 2014 +0600 @@ -142,8 +142,6 @@ array_77EC08[i].field_108 = 0; } - - //----- (00491E3A) -------------------------------------------------------- void sub_491E3A() { @@ -1282,23 +1280,23 @@ case 12: pReputation = npc->rep; if ( pReputation >= 25 ) - pText = pGlobalTXT_LocalizationStrings[379]; + pText = pGlobalTXT_LocalizationStrings[379];//Ненавистный else { if ( pReputation < 6 ) { if ( pReputation >= -5 ) - pText = pGlobalTXT_LocalizationStrings[399]; + pText = pGlobalTXT_LocalizationStrings[399];//Нейтральная else { if ( pReputation < -24 ) - pText = pGlobalTXT_LocalizationStrings[434]; + pText = pGlobalTXT_LocalizationStrings[434];//Почтенная else - pText = pGlobalTXT_LocalizationStrings[402]; + pText = pGlobalTXT_LocalizationStrings[402];//Дружелюбный } } else - pText = pGlobalTXT_LocalizationStrings[392]; + pText = pGlobalTXT_LocalizationStrings[392];//Недружелюбный } strcat(pTmpBuf2.data(), pText); dst = strlen(pTmpBuf2.data()); @@ -1501,10 +1499,6 @@ //----- (0049B04D) -------------------------------------------------------- void stru154::GetFacePlaneAndClassify(ODMFace *a2, BSPVertexBuffer *a3) { - //stru154 *v3; // edi@1 - //signed int v4; // eax@1 - //signed int result; // eax@9 - //signed int v6; // [sp-8h] [bp-18h]@8 Vec3_float_ v; // [sp+4h] [bp-Ch]@1 float v7; @@ -1660,18 +1654,12 @@ void OracleDialogue() { __int16 *v0; // edi@1 -// int v1; // ebx@3 -// Player *v2; // esi@3 -// int v3; // eax@4 signed int v4; // eax@9 int v5; // ebx@11 -// Player *v6; // esi@13 -// ItemGen *v7; // eax@14 signed int v8; // edi@14 ItemGen *v9; // [sp+Ch] [bp-Ch]@11 signed int v10; // [sp+10h] [bp-8h]@13 int v11; // [sp+14h] [bp-4h]@1 -// Player *v12; // [sp+14h] [bp-4h]@11 contract_approved = 0; v11 = 0; @@ -1688,7 +1676,7 @@ for ( uint pl = 0; pl < 4; pl++ ) { //LOBYTE(v3) = pParty->pPlayers[pl].CompareVariable(VAR_PlayerItemInHands, *(v0+1)); - if ( pParty->pPlayers[pl].CompareVariable(VAR_PlayerItemInHands, *(v0+1)) ) + if ( pParty->pPlayers[pl].CompareVariable(VAR_PlayerItemInHands, *(v0 + 1)) ) break; //++v2; //++v1; @@ -2055,7 +2043,7 @@ pDialogueWindow = GUIWindow::Create(0, 0, window->GetWidth(), window->GetHeight(), WINDOW_Dialogue, 1, 0); if ( pNPCStats->pProfessions[v0->uProfession].pBenefits)//*(&pNPCStats->field_13A5C + 5 * v0->uProfession) ) { - pDialogueWindow->CreateButton(480, 160, 140, 28, 1, 0, UIMSG_SelectNPCDialogueOption, 77, 0, pGlobalTXT_LocalizationStrings[407], 0); + pDialogueWindow->CreateButton(480, 160, 140, 28, 1, 0, UIMSG_SelectNPCDialogueOption, 77, 0, pGlobalTXT_LocalizationStrings[407], 0);//Подробнее v1 = 1; } pDialogueWindow->CreateButton(480, 30 * v1 + 160, 140, 30, 1, 0, UIMSG_SelectNPCDialogueOption, 76, 0, pGlobalTXT_LocalizationStrings[406], 0);//Нанять