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);//Нанять