comparison mm7_4.cpp @ 263:8cf4fe6b4941

Слияние
author Ritor1
date Mon, 18 Feb 2013 12:38:38 +0600
parents 2d6dda2e0405 0a37a56e9f02
children fb890fb66cad
comparison
equal deleted inserted replaced
262:2d6dda2e0405 263:8cf4fe6b4941
3528 v50 = 0; 3528 v50 = 0;
3529 v47 = 0; 3529 v47 = 0;
3530 v45 = 0; 3530 v45 = 0;
3531 v48 = 0; 3531 v48 = 0;
3532 v46 = 0; 3532 v46 = 0;
3533 if ( v44 && v21->classType == PLAYER_CLASS_31 ) 3533 if ( v44 && v21->classType == PLAYER_CLASS_WARLOCK )
3534 v50 = 1; 3534 v50 = 1;
3535 if ( v21->classType == PLAYER_CLASS_LICH ) 3535 if ( v21->classType == PLAYER_CLASS_LICH )
3536 v48 = 1; 3536 v48 = 1;
3537 v22 = (ITEM_EQUIP_TYPE)0; 3537 v22 = (ITEM_EQUIP_TYPE)0;
3538 while ( 1 ) 3538 while ( 1 )
4834 } 4834 }
4835 return result; 4835 return result;
4836 } 4836 }
4837 4837
4838 //----- (00495461) -------------------------------------------------------- 4838 //----- (00495461) --------------------------------------------------------
4839 char *__fastcall sub_495461(char *lpsz, unsigned __int8 uPlayerID, ItemGen *a3, char *a4, int a5, __int64 *a6) 4839 char *BuilDialogueString(char *lpsz, unsigned __int8 uPlayerID, ItemGen *a3, char *a4, int a5, __int64 *a6)
4840 { 4840 {
4841 unsigned __int8 v6; // bl@1 4841 unsigned __int8 v6; // bl@1
4842 Player *pPlayer; // ebx@3 4842 Player *pPlayer; // ebx@3
4843 NPCData *v9; // eax@4 4843 //NPCData *v9; // eax@4
4844 //size_t v10; // eax@6 4844 //size_t v10; // eax@6
4845 char *v11; // esi@7 4845 char *v11; // esi@7
4846 int v12; // edx@7 4846 //int v12; // edx@7
4847 ItemGen *v13; // edi@7 4847 //ItemGen *v13; // edi@7
4848 char v14; // cl@8 4848 //char v14; // cl@8
4849 char *v15; // ecx@10 4849 //char *v15; // ecx@10
4850 int v16; // edx@10 4850 //int v16; // edx@10
4851 int v17; // eax@10 4851 int v17; // eax@10
4852 signed __int64 v18; // qax@18 4852 signed __int64 v18; // qax@18
4853 unsigned int v19; // edi@32 4853 unsigned int v19; // edi@32
4854 unsigned __int8 *v20; // ebx@32 4854 unsigned __int8 *v20; // ebx@32
4855 int v21; // ecx@34 4855 int v21; // ecx@34
4889 __int16 v55[56]; // [sp+10h] [bp-128h]@34 4889 __int16 v55[56]; // [sp+10h] [bp-128h]@34
4890 stru351 v56; // [sp+80h] [bp-B8h]@107 4890 stru351 v56; // [sp+80h] [bp-B8h]@107
4891 stru351 v57; // [sp+9Ch] [bp-9Ch]@115 4891 stru351 v57; // [sp+9Ch] [bp-9Ch]@115
4892 char a1[100]; // [sp+B8h] [bp-80h]@3 4892 char a1[100]; // [sp+B8h] [bp-80h]@3
4893 unsigned int v59; // [sp+11Ch] [bp-1Ch]@3 4893 unsigned int v59; // [sp+11Ch] [bp-1Ch]@3
4894 size_t v60; // [sp+120h] [bp-18h]@3 4894 //size_t v60; // [sp+120h] [bp-18h]@3
4895 //Player *v61; // [sp+124h] [bp-14h]@3 4895 //Player *v61; // [sp+124h] [bp-14h]@3
4896 //char *Str; // [sp+128h] [bp-10h]@1 4896 //char *Str; // [sp+128h] [bp-10h]@1
4897 int v63; // [sp+12Ch] [bp-Ch]@32 4897 int v63; // [sp+12Ch] [bp-Ch]@32
4898 int v64; // [sp+130h] [bp-8h]@6 4898 //int v64; // [sp+130h] [bp-8h]@6
4899 NPCData *v65; // [sp+134h] [bp-4h]@6 4899 //NPCData *v65; // [sp+134h] [bp-4h]@6
4900 //int packed;
4901
4902
4900 4903
4901 v6 = uPlayerID; 4904 v6 = uPlayerID;
4902 //Str = lpsz; 4905 //Str = lpsz;
4903 if ( IsBadStringPtrA(lpsz, 1u) ) 4906 if ( IsBadStringPtrA(lpsz, 1u) )
4904 return "Invalid String Passed"; 4907 return "Invalid String Passed";
4905 v60 = strlen(lpsz); 4908
4906 a1[0] = 0; 4909 a1[0] = 0;
4907 pPlayer = &pParty->pPlayers[v6]; 4910 pPlayer = &pParty->pPlayers[v6];
4908 v59 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(255, 255, 155); 4911 v59 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(255, 255, 155);
4909 //v61 = pPlayer; 4912 //v61 = pPlayer;
4910 memset(pTmpBuf2, 0, 0x7D0u); 4913 memset(pTmpBuf2, 0, sizeof(pTmpBuf2));
4914
4915 NPCData *npc = nullptr;
4911 if ( dword_5C35D4 ) 4916 if ( dword_5C35D4 )
4912 { 4917 {
4913 __debugbreak(); // fix 4918 __debugbreak(); // fix
4914 v9 = array_5913D8[(unsigned int)((char *)array_5913D8[6] + -(dword_591080 != 0) - 1)]; 4919 npc = array_5913D8[(unsigned int)((char *)array_5913D8[6] + -(dword_591080 != 0) - 1)];
4915 } 4920 }
4916 else 4921 else
4917 v9 = GetNPCData(uDialogue_SpeakingActorNPC_ID); 4922 npc = GetNPCData(uDialogue_SpeakingActorNPC_ID);
4918 v65 = v9; 4923 //v65 = v9;
4919 //v10 = 0; 4924 //v10 = 0;
4920 v64 = 0; 4925 //v64 = 0;
4921 4926
4922 int i = 0; 4927 //int i = 0;
4923 if ( (signed int)v60 > 0 ) 4928 //if ( (signed int)v60 > 0 )
4924 { 4929 v11 = a4;
4925 v11 = a4; 4930
4926 v12 = v64; 4931 auto len = strlen(lpsz);
4927 v13 = a3; 4932 for (int i = 0, dst = 0; i < len; ++i)
4928 while ( 1 ) 4933 {
4929 { 4934 //v12 = v64;
4930 v14 = lpsz[v12]; 4935 //v13 = a3;
4931 if ( v14 == '%' ) 4936 //while ( 1 )
4932 break; 4937 //{
4933 pTmpBuf2[i++] = v14; 4938 char c = lpsz[i];
4934 LABEL_119: 4939 if (c != '%')
4935 ++v12; 4940 pTmpBuf2[dst++] = c;
4936 v64 = v12; 4941 else
4937 if ( v12 >= (signed int)v60 ) 4942 {
4938 return pTmpBuf2; 4943 //v15 = &lpsz[v12 + 1];
4939 } 4944 //v16 = (unsigned __int8)lpsz[v12 + 2];
4940 v15 = &lpsz[v12 + 1]; 4945 //packed = 10 * (int)lpsz[v12 + 1] + lpsz[v12 + 2];
4941 v16 = (unsigned __int8)lpsz[v12 + 2]; 4946 //v17 = packed - 528;// 10 * '0' + '0'
4942 v17 = v16 + 10 * (unsigned __int8)*v15 - 528; 4947 v17 = 10 * (int)(lpsz[i + 1] - '0') + lpsz[i + 2] - '0';
4943 4948
4944 if ( v17 <= 15 ) 4949 switch ( v17 )
4945 { 4950 {
4946 if ( v17 != 15 ) 4951 case 1:
4947 { 4952 v11 = npc->pName;
4948 switch ( v16 + 10 * (unsigned __int8)*v15 ) 4953 goto _continue_strcat;
4949 { 4954 case 2:
4950 case 0x211:
4951 v11 = v65->pName;
4952 goto LABEL_118;
4953 case 0x212:
4954 v11 = pPlayer->pName; 4955 v11 = pPlayer->pName;
4955 goto LABEL_118; 4956 goto _continue_strcat;
4956 case 0x213: 4957 case 3:
4957 case 0x219: 4958 case 4:
4958 if ( v65->uSex ) 4959 v11 = a1;
4959 v11 = pGlobalTXT_LocalizationStrings[384];// "her" 4960 goto _continue_strcat;
4960 else 4961 case 5:
4961 v11 = pGlobalTXT_LocalizationStrings[383];// "his"
4962 goto LABEL_118;
4963 case 0x215:
4964 v18 = (signed __int64)((double)(signed __int64)pParty->uTimePlayed * 0.234375) / 60 / 60 % 24; 4962 v18 = (signed __int64)((double)(signed __int64)pParty->uTimePlayed * 0.234375) / 60 / 60 % 24;
4965 v11 = pGlobalTXT_LocalizationStrings[397];// "evening" 4963 v11 = pGlobalTXT_LocalizationStrings[397];// "evening"
4966 if ( SHIDWORD(v18) <= 0 && SHIDWORD(v18) >= 0 && (unsigned int)v18 >= 5 && SHIDWORD(v18) <= 0 ) 4964 if ( SHIDWORD(v18) <= 0 && SHIDWORD(v18) >= 0 && (unsigned int)v18 >= 5 && SHIDWORD(v18) <= 0 )
4967 { 4965 {
4968 if ( SHIDWORD(v18) >= 0 && (unsigned int)v18 >= 0xB ) 4966 if ( SHIDWORD(v18) >= 0 && (unsigned int)v18 >= 0xB )
4973 else 4971 else
4974 { 4972 {
4975 v11 = pGlobalTXT_LocalizationStrings[395];// "morning" 4973 v11 = pGlobalTXT_LocalizationStrings[395];// "morning"
4976 } 4974 }
4977 } 4975 }
4978 goto LABEL_118; 4976 goto _continue_strcat;
4979 case 0x216: 4977 case 6:
4980 if ( pPlayer->uSex ) 4978 if ( pPlayer->uSex )
4981 v11 = pGlobalTXT_LocalizationStrings[387];// "lady" 4979 v11 = pGlobalTXT_LocalizationStrings[387];// "lady"
4982 else 4980 else
4983 v11 = pGlobalTXT_LocalizationStrings[385];// "sir" 4981 v11 = pGlobalTXT_LocalizationStrings[385];// "sir"
4984 goto LABEL_118; 4982 goto _continue_strcat;
4985 case 0x217: 4983 case 7:
4986 if ( pPlayer->uSex ) 4984 if ( pPlayer->uSex )
4987 goto LABEL_43; 4985 v11 = pGlobalTXT_LocalizationStrings[389];// "Lady"
4988 v11 = pGlobalTXT_LocalizationStrings[386];// "Sir" 4986 else
4989 goto LABEL_118; 4987 v11 = pGlobalTXT_LocalizationStrings[386];// "Sir"
4990 case 0x218: 4988 goto _continue_strcat;
4989 case 8:
4991 v19 = 0; 4990 v19 = 0;
4992 v63 = 0; 4991 v63 = 0;
4993 v20 = (unsigned __int8 *)pPlayer->field_152; 4992 v20 = (unsigned __int8 *)pPlayer->field_152;
4994 do 4993 do
4995 { 4994 {
5017 else 5016 else
5018 { 5017 {
5019 v11 = (char *)pNPCTopics[55].pText; 5018 v11 = (char *)pNPCTopics[55].pText;
5020 } 5019 }
5021 //pPlayer = v61; 5020 //pPlayer = v61;
5022 v13 = a3; 5021 //v13 = a3;
5023 goto LABEL_118; 5022 goto _continue_strcat;
5024 case 0x21A: 5023 case 9:
5024 if ( npc->uSex )
5025 v11 = pGlobalTXT_LocalizationStrings[384];// "her"
5026 else
5027 v11 = pGlobalTXT_LocalizationStrings[383];// "his"
5028 goto _continue_strcat;
5029 case 10:
5025 if ( pPlayer->uSex ) 5030 if ( pPlayer->uSex )
5026 LABEL_43:
5027 v11 = pGlobalTXT_LocalizationStrings[389];// "Lady" 5031 v11 = pGlobalTXT_LocalizationStrings[389];// "Lady"
5028 else 5032 else
5029 v11 = pGlobalTXT_LocalizationStrings[388];// "Lord" 5033 v11 = pGlobalTXT_LocalizationStrings[388];// "Lord"
5030 goto LABEL_118; 5034 goto _continue_strcat;
5031 case 0x21B: 5035 case 11:
5032 v25 = GetPartyReputation(); 5036 v25 = GetPartyReputation();
5033 goto LABEL_46; 5037 goto LABEL_46;
5034 case 0x21C: 5038 case 12:
5035 v25 = v65->rep; 5039 v25 = npc->rep;
5036 LABEL_46: 5040 LABEL_46:
5037 if ( v25 >= 25 ) 5041 if ( v25 >= 25 )
5038 { 5042 {
5039 v11 = pGlobalTXT_LocalizationStrings[379]; 5043 v11 = pGlobalTXT_LocalizationStrings[379];
5040 } 5044 }
5057 else 5061 else
5058 { 5062 {
5059 v11 = pGlobalTXT_LocalizationStrings[392]; 5063 v11 = pGlobalTXT_LocalizationStrings[392];
5060 } 5064 }
5061 } 5065 }
5062 goto LABEL_118; 5066 goto _continue_strcat;
5063 case 0x21D: 5067 case 13:
5064 v11 = sub_495366(pPlayer->pName[0], pPlayer->uSex); 5068 v11 = sub_495366(pPlayer->pName[0], pPlayer->uSex);
5065 goto LABEL_118; 5069 goto _continue_strcat;
5066 case 0x21E: 5070 case 14:
5067 goto LABEL_93; 5071 {
5068 case 0x214: 5072 if ( npc->uSex )
5073 v11 = pGlobalTXT_LocalizationStrings[391];// "sister"
5074 else
5075 v11 = pGlobalTXT_LocalizationStrings[390];// "brother"
5076 goto _continue_strcat;
5077 }
5078
5079 case 15:
5080 {
5081 v11 = pGlobalTXT_LocalizationStrings[393];// "daughter"
5082 _continue_strcat:
5083 strcat(pTmpBuf2, v11);
5084 dst = strlen(pTmpBuf2);
5085 //v64 += 2;
5086 i += 2;
5087 }
5088 break;
5089
5090 case 16:
5091 {
5092 if ( npc->uSex )
5093 v11 = pGlobalTXT_LocalizationStrings[391];// "sister"
5094 else
5095 v11 = pGlobalTXT_LocalizationStrings[390];// "brother"
5096 goto _continue_strcat;
5097 }
5098 case 17:
5099 {
5100 auto pay_percentage = pNPCStats->pProfessions[npc->uProfession - 1].uHirePrice / 100;
5101 if (!pay_percentage)
5102 pay_percentage = 1;
5103
5104 sprintf(a1, "%lu", pay_percentage);
5069 v11 = a1; 5105 v11 = a1;
5070 goto LABEL_118; 5106 goto _continue_strcat;
5071 default: 5107 }
5072 goto LABEL_108; 5108
5073 } 5109 case 18:
5074 goto LABEL_108; 5110 case 19:
5075 } 5111 case 20:
5076 v11 = pGlobalTXT_LocalizationStrings[393];// "daughter" 5112 case 21:
5077 LABEL_118: 5113 case 22:
5078 strcat(pTmpBuf2, v11); 5114 case 26:
5079 i = strlen(pTmpBuf2); 5115 _continue_strncpy:
5080 v64 += 2; 5116 strncpy(a1, lpsz + i + 1, 2);
5081 v12 = v64; 5117 v51 = atoi(a1);
5082 goto LABEL_119; 5118 sprintf(a1, "%lu", v51);
5083 }
5084 if ( v17 <= 29 )
5085 {
5086 if ( v17 == 29 )
5087 {
5088 //v34 = p2DEvents_minus1__20[13 * (signed int)a4];
5089 v34 = p2DEvents[(signed int)a4 - 1].fPriceMultiplier;
5090 }
5091 else
5092 {
5093 if ( v16 + 10 * (unsigned __int8)*v15 == 544 )
5094 {
5095 LABEL_93:
5096 if ( v65->uSex )
5097 v11 = pGlobalTXT_LocalizationStrings[391];// "sister"
5098 else
5099 v11 = pGlobalTXT_LocalizationStrings[390];// "brother"
5100 goto LABEL_118;
5101 }
5102 if ( v16 + 10 * (unsigned __int8)*v15 == 545 )
5103 {
5104 v29 = *(&pNPCStats->field_13A58 + 5 * v65->uProfession) / 100;
5105 goto LABEL_91;
5106 }
5107 if ( v16 + 10 * (unsigned __int8)*v15 == 551 )
5108 {
5109 v47 = pMapStats->GetMapInfo(pCurrentMapName);
5110 if ( v47 )
5111 v11 = pMapStats->pInfos[v47].pName;
5112 else
5113 v11 = pGlobalTXT_LocalizationStrings[394];// "Unknown"
5114 goto LABEL_118;
5115 }
5116 if ( v16 + 10 * (unsigned __int8)*v15 == 552 )
5117 {
5118 v46 = v13->GetDisplayName();
5119 sprintf(a1, format_4E2D80, v59, v46);
5120 v11 = a1; 5119 v11 = a1;
5121 goto LABEL_118; 5120 goto _continue_strcat;
5122 } 5121
5123 if ( v16 + 10 * (unsigned __int8)*v15 == 553 ) 5122 case 23:
5124 { 5123 {
5125 //v37 = &p2DEvents_minus1__20[13 * (signed int)a4]; 5124 v47 = pMapStats->GetMapInfo(pCurrentMapName);
5126 v37 = &p2DEvents[(signed int)a4 - 1].fPriceMultiplier; 5125 if ( v47 )
5127 v38 = *v37; 5126 v11 = pMapStats->pInfos[v47].pName;
5128 v39 = v13->GetValue(); 5127 else
5129 v29 = pPlayer->_4B8233(v39, v38); 5128 v11 = pGlobalTXT_LocalizationStrings[394];// "Unknown"
5129 goto _continue_strcat;
5130 }
5131 case 24:
5132 {
5133 v46 = a3->GetDisplayName();
5134 sprintf(a1, format_4E2D80, v59, v46);
5135 v11 = a1;
5136 goto _continue_strcat;
5137 }
5138
5139
5140 case 25:
5141 {
5142 v37 = &p2DEvents[(signed int)a4 - 1].fPriceMultiplier;
5143 v38 = *v37;
5144 v39 = a3->GetValue();
5145 v29 = pPlayer->_4B8233(v39, v38);
5130 switch ( a5 ) 5146 switch ( a5 )
5131 { 5147 {
5132 case 3: 5148 case 3:
5133 v44 = *v37; 5149 v44 = *v37;
5134 v45 = v13->GetValue(); 5150 v45 = a3->GetValue();
5135 v29 = pPlayer->_4B8213(v45, v44); 5151 v29 = pPlayer->_4B8213(v45, v44);
5136 break; 5152 break;
5137 case 4: 5153 case 4:
5138 v29 = pPlayer->_4B824B(*v37); 5154 v29 = pPlayer->_4B824B(*v37);
5139 break; 5155 break;
5140 case 5: 5156 case 5:
5141 v42 = *v37; 5157 v42 = *v37;
5142 v43 = v13->GetValue(); 5158 v43 = a3->GetValue();
5143 v29 = pPlayer->_4B8265(v43, v42); 5159 v29 = pPlayer->_4B8265(v43, v42);
5144 break; 5160 break;
5145 case 6: 5161 case 6:
5146 v40 = *v37; 5162 v40 = *v37;
5147 v41 = v13->GetValue(); 5163 v41 = a3->GetValue();
5148 v29 = pPlayer->_4B8213(v41, v40) / 2; 5164 v29 = pPlayer->_4B8213(v41, v40) / 2;
5149 break; 5165 break;
5166 }
5167 goto _continue_sprintf;
5150 } 5168 }
5151 goto LABEL_98; 5169
5152 } 5170 case 27:
5153 if ( v16 + 10 * (unsigned __int8)*v15 != 555 )
5154 {
5155 if ( v16 + 10 * (unsigned __int8)*v15 == 556 )
5156 { 5171 {
5157 //v11 = (char *)p2DEvents_minus1__10[13 * (signed int)a4]; 5172 v26 = &p2DEvents[(signed int)a4 - 1].fPriceMultiplier;
5158 v11 = (char *)p2DEvents[(signed int)a4 - 1].pProprieterTitle;
5159 goto LABEL_118;
5160 }
5161 LABEL_108:
5162 strncpy(a1, v15, 2u);
5163 v51 = atoi(a1);
5164 sprintf(a1, "%lu", v51);
5165 v11 = a1;
5166 goto LABEL_118;
5167 }
5168 v26 = &p2DEvents[(signed int)a4 - 1].fPriceMultiplier;
5169 v27 = *v26; 5173 v27 = *v26;
5170 v28 = v13->GetValue(); 5174 v28 = a3->GetValue();
5171 v29 = pPlayer->_4B8142(v28, v27); 5175 v29 = pPlayer->_4B8142(v28, v27);
5172 if ( a5 == 3 ) 5176 if ( a5 == 3 )
5173 { 5177 {
5174 v35 = *v26; 5178 v35 = *v26;
5175 v36 = v13->GetValue(); 5179 v36 = a3->GetValue();
5176 v29 = pPlayer->_4B8102(v36, v35); 5180 v29 = pPlayer->_4B8102(v36, v35);
5177 if ( v13->uAttributes & 2 ) 5181 if ( a3->uAttributes & 2 )
5178 {
5179 LABEL_77:
5180 v29 = 1; 5182 v29 = 1;
5181 goto LABEL_98; 5183 goto _continue_sprintf;
5182 }
5183 goto LABEL_98;
5184 } 5184 }
5185 if ( a5 != 4 ) 5185 if ( a5 != 4 )
5186 { 5186 {
5187 if ( a5 == 5 ) 5187 if ( a5 == 5 )
5188 { 5188 {
5189 v32 = *v26; 5189 v32 = *v26;
5190 v33 = v13->GetValue(); 5190 v33 = a3->GetValue();
5191 v29 = pPlayer->_4B81C3(v33, v32); 5191 v29 = pPlayer->_4B81C3(v33, v32);
5192 } 5192 }
5193 else 5193 else
5194 { 5194 {
5195 if ( a5 == 6 ) 5195 if ( a5 == 6 )
5196 { 5196 {
5197 v30 = *v26; 5197 v30 = *v26;
5198 v31 = v13->GetValue(); 5198 v31 = a3->GetValue();
5199 v29 = pPlayer->_4B8102(v31, v30) / 2; 5199 v29 = pPlayer->_4B8102(v31, v30) / 2;
5200 if ( v13->uAttributes & 2 ) 5200 if ( a3->uAttributes & 2 )
5201 v29 = 1; 5201 v29 = 1;
5202 LABEL_91: 5202 if (!v29)
5203 if ( v29 >= 1 ) 5203 v29 = 1;
5204 goto LABEL_98; 5204 goto _continue_sprintf;
5205 goto LABEL_77;
5206 } 5205 }
5207 } 5206 }
5208 LABEL_98: 5207 _continue_sprintf:
5209 sprintf(a1, "%lu", v29); 5208 sprintf(a1, "%lu", v29);
5210 v11 = a1; 5209 v11 = a1;
5211 goto LABEL_118; 5210 goto _continue_strcat;
5212 } 5211 }
5213 v34 = *v26; 5212 v34 = *v26;
5214 } 5213
5215 v48 = v34; 5214 v48 = v34;
5216 v29 = pPlayer->_4B8179(v48); 5215 v29 = pPlayer->_4B8179(v48);
5217 goto LABEL_98; 5216 goto _continue_sprintf;
5218 } 5217 }
5219 if ( v17 != 30 ) 5218
5220 { 5219 case 28:
5221 switch ( v17 )
5222 {
5223 case 31:
5224 v52 = pPlayers[1];
5225 break;
5226 case 32:
5227 v52 = pPlayers[2];
5228 break;
5229 case 33:
5230 v52 = pPlayers[3];
5231 break;
5232 default:
5233 if ( v17 != 34 )
5234 { 5220 {
5221 //v11 = (char *)p2DEvents_minus1__10[13 * (signed int)a4];
5222 v11 = (char *)p2DEvents[(signed int)a4 - 1].pProprieterTitle;
5223 goto _continue_strcat;
5224 }
5225
5226 case 29:
5227 {
5228 //v34 = p2DEvents_minus1__20[13 * (signed int)a4];
5229 v34 = p2DEvents[(signed int)a4 - 1].fPriceMultiplier;
5230 v48 = v34;
5231 v29 = pPlayer->_4B8179(v48);
5232 goto _continue_sprintf;
5233 }
5234
5235 case 30:
5236 {
5237 if ( !a6 )
5238 goto _continue_strcat;
5239 sub_493F79(&v57, *a6);
5240 v54 = v57.field_18;
5241 v53 = v57.field_C + 1;
5242 v50 = v57.field_14;
5243 sprintf(a1, pGlobalTXT_LocalizationStrings[378], aMonthNames[v50], v53, v54);
5244 v11 = a1;
5245 goto _continue_strcat;
5246 }
5247
5248 case 31:
5249 case 32:
5250 case 33:
5251 case 34:
5252 v52 = &pParty->pPlayers[v17 - 31];
5253 v11 = v52->pName;
5254 goto _continue_strcat;
5255
5256 default:
5235 if ( v17 <= 50 || v17 > 70 ) 5257 if ( v17 <= 50 || v17 > 70 )
5236 goto LABEL_108; 5258 goto _continue_strncpy;
5237 if ( v16 + 10 * (unsigned __int8)*v15 - 579 >= 20 ) 5259 if ( v17 - 51 >= 20 )
5238 goto LABEL_118; 5260 goto _continue_strcat;
5239 HIDWORD(v49) = pParty->field_3C.field_440[2 * v17 + 1]; 5261 HIDWORD(v49) = pParty->field_3C.field_440[2 * v17 + 1];
5240 LODWORD(v49) = pParty->field_3C.field_440[2 * v17]; 5262 LODWORD(v49) = pParty->field_3C.field_440[2 * v17];
5241 sub_493F79(&v56, v49); 5263 sub_493F79(&v56, v49);
5242 v54 = v56.field_18; 5264 v54 = v56.field_18;
5243 v53 = v56.field_C + 1; 5265 v53 = v56.field_C + 1;
5244 v50 = v56.field_14; 5266 v50 = v56.field_14;
5245 sprintf(a1, pGlobalTXT_LocalizationStrings[378], aMonthNames[v50], v53, v54); 5267 sprintf(a1, pGlobalTXT_LocalizationStrings[378], aMonthNames[v50], v53, v54);
5246 v11 = a1; 5268 v11 = a1;
5247 goto LABEL_118; 5269 goto _continue_strcat;
5248 } 5270 }
5249 v52 = pPlayers[4]; 5271 }
5250 break;
5251 }
5252 v11 = v52->pName;
5253 goto LABEL_118;
5254 }
5255 if ( !a6 )
5256 goto LABEL_118;
5257 sub_493F79(&v57, *a6);
5258 v54 = v57.field_18;
5259 v53 = v57.field_C + 1;
5260 v50 = v57.field_14;
5261 sprintf(a1, pGlobalTXT_LocalizationStrings[378], aMonthNames[v50], v53, v54);
5262 v11 = a1;
5263 goto LABEL_118;
5264 } 5272 }
5265 return pTmpBuf2; 5273 return pTmpBuf2;
5266 } 5274 }
5267 5275
5268 //----- (00495B39) -------------------------------------------------------- 5276 //----- (00495B39) --------------------------------------------------------
5615 if ( uClassType != PLAYER_CLASS_SORCERER ) 5623 if ( uClassType != PLAYER_CLASS_SORCERER )
5616 v80 = uColorWhite; 5624 v80 = uColorWhite;
5617 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[32]); 5625 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[32]);
5618 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 388, 2 * v128 + 417, v80, pClassNames[32], 0, 0, 0); 5626 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 388, 2 * v128 + 417, v80, pClassNames[32], 0, 0, 0);
5619 v85 = uColorTeal; 5627 v85 = uColorTeal;
5620 if ( uClassType != PLAYER_CLASS_SHOOTER ) 5628 if ( uClassType != PLAYER_CLASS_ARCHER )
5621 v85 = uColorWhite; 5629 v85 = uColorWhite;
5622 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[16]); 5630 pTextCenter = pFontCreate->AlignText_Center(65, pClassNames[16]);
5623 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 453, 417, v85, pClassNames[16], 0, 0, 0); 5631 pGUIWindow_CurrentMenu->DrawText(pFontCreate, pTextCenter + 453, 417, v85, pClassNames[16], 0, 0, 0);
5624 v89 = uColorTeal; 5632 v89 = uColorTeal;
5625 if ( uClassType != PLAYER_CLASS_MONK ) 5633 if ( uClassType != PLAYER_CLASS_MONK )
9413 else 9421 else
9414 { 9422 {
9415 if ( a1 == 13 ) 9423 if ( a1 == 13 )
9416 { 9424 {
9417 ptr_F8B1E8 = (char *)*(&pNPCStats->field_13A64 + 5 * v2->uProfession); 9425 ptr_F8B1E8 = (char *)*(&pNPCStats->field_13A64 + 5 * v2->uProfession);
9418 ptr_F8B1E8 = sub_495461((char *)ptr_F8B1E8, uActiveCharacter - 1, 0, 0, 0, 0); 9426 ptr_F8B1E8 = BuilDialogueString((char *)ptr_F8B1E8, uActiveCharacter - 1, 0, 0, 0, 0);
9419 sub_4B40E6(); 9427 sub_4B40E6();
9420 dialogue_show_profession_details = false; 9428 dialogue_show_profession_details = false;
9421 goto _return; 9429 goto _return;
9422 } 9430 }
9423 switch ( a1 ) 9431 switch ( a1 )
9487 if (dialogue_show_profession_details) 9495 if (dialogue_show_profession_details)
9488 v17 = pNPCStats->pProfessions[v2->uProfession - 1].pJoinText; 9496 v17 = pNPCStats->pProfessions[v2->uProfession - 1].pJoinText;
9489 else 9497 else
9490 v17 = pNPCStats->pProfessions[v2->uProfession - 1].pBenefits; 9498 v17 = pNPCStats->pProfessions[v2->uProfession - 1].pBenefits;
9491 ptr_F8B1E8 = v17; 9499 ptr_F8B1E8 = v17;
9492 v18 = sub_495461(v17, uActiveCharacter - 1, 0, 0, 0, 0); 9500 v18 = BuilDialogueString(v17, uActiveCharacter - 1, 0, 0, 0, 0);
9493 dialogue_show_profession_details = ~dialogue_show_profession_details; 9501 dialogue_show_profession_details = ~dialogue_show_profession_details;
9494 ptr_F8B1E8 = v18; 9502 ptr_F8B1E8 = v18;
9495 } 9503 }
9496 else 9504 else
9497 { 9505 {
9614 { 9622 {
9615 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u); 9623 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u);
9616 dialogue_show_profession_details = false; 9624 dialogue_show_profession_details = false;
9617 uDialogueType = 13; 9625 uDialogueType = 13;
9618 ptr_F8B1E8 = pNPCStats->pProfessions[v2->uProfession - 1].pJoinText; 9626 ptr_F8B1E8 = pNPCStats->pProfessions[v2->uProfession - 1].pJoinText;
9619 ptr_F8B1E8 = sub_495461((char *)ptr_F8B1E8, uActiveCharacter - 1, 0, 0, 0, 0); 9627 ptr_F8B1E8 = BuilDialogueString((char *)ptr_F8B1E8, uActiveCharacter - 1, 0, 0, 0, 0);
9620 if ( uActiveCharacter ) 9628 if ( uActiveCharacter )
9621 pPlayers[uActiveCharacter]->PlaySound(SPEECH_NotEnoughGold, 0); 9629 pPlayers[uActiveCharacter]->PlaySound(SPEECH_NotEnoughGold, 0);
9622 v19 = pGlobalTXT_LocalizationStrings[155]; 9630 v19 = pGlobalTXT_LocalizationStrings[155];
9623 goto LABEL_77; 9631 goto LABEL_77;
9624 } 9632 }
12257 v96 = 0; 12265 v96 = 0;
12258 v94 = 4; 12266 v94 = 4;
12259 v4 = (char *)&_this->pInventoryItems[result-1]; 12267 v4 = (char *)&_this->pInventoryItems[result-1];
12260 if ( v4[20] & 1 ) 12268 if ( v4[20] & 1 )
12261 { 12269 {
12262 v5 = sub_495461("%24", uActiveCharacter - 1, (ItemGen *)v4, (char *)ptr_507BC0->ptr_1C, 4, 0); 12270 v5 = BuilDialogueString("%24", uActiveCharacter - 1, (ItemGen *)v4, (char *)ptr_507BC0->ptr_1C, 4, 0);
12263 v97 = 3; 12271 v97 = 3;
12264 v95 = v5; 12272 v95 = v5;
12265 v92 = white; 12273 v92 = white;
12266 v6 = (212 - pFontArrus->CalcTextHeight(v5, &v112, 0, 0)) / 2 + 101; 12274 v6 = (212 - pFontArrus->CalcTextHeight(v5, &v112, 0, 0)) / 2 + 101;
12267 return (int)v112.DrawTitleText(pFontArrus, v3, v6, v92, v95, v97); 12275 return (int)v112.DrawTitleText(pFontArrus, v3, v6, v92, v95, v97);
12301 uPlayerID = uActiveCharacter - 1; 12309 uPlayerID = uActiveCharacter - 1;
12302 v13 = _this->_490EEE(v90, 3, v12, 3); 12310 v13 = _this->_490EEE(v90, 3, v12, 3);
12303 v9 = uPlayerID; 12311 v9 = uPlayerID;
12304 v10 = (char *)pMerchantsSellPhrases[v13]; 12312 v10 = (char *)pMerchantsSellPhrases[v13];
12305 LABEL_35: 12313 LABEL_35:
12306 v30 = sub_495461(v10, v9, v90, (char *)v93, v94, v96); 12314 v30 = BuilDialogueString(v10, v9, v90, (char *)v93, v94, v96);
12307 v97 = 3; 12315 v97 = 3;
12308 v95 = v30; 12316 v95 = v30;
12309 v92 = white; 12317 v92 = white;
12310 v91 = v3; 12318 v91 = v3;
12311 v89 = v3; 12319 v89 = v3;
13050 v17 = v1->_490EEE( 13058 v17 = v1->_490EEE(
13051 (ItemGen *)&pParty->pPlayers[1].uExpressionTimeLength + v13 + 12 * (int)v14, 13059 (ItemGen *)&pParty->pPlayers[1].uExpressionTimeLength + v13 + 12 * (int)v14,
13052 3, 13060 3,
13053 v16, 13061 v16,
13054 2); 13062 2);
13055 v18 = sub_495461((char *)pMerchantsBuyPhrases[v17], uPlayerID, v15, (char *)v14, 2, 0); 13063 v18 = BuilDialogueString((char *)pMerchantsBuyPhrases[v17], uPlayerID, v15, (char *)v14, 2, 0);
13056 v44 = 3; 13064 v44 = 3;
13057 v43 = v18; 13065 v43 = v18;
13058 v42 = v56; 13066 v42 = v56;
13059 v41 = 0; 13067 v41 = 0;
13060 v40 = 0; 13068 v40 = 0;