Mercurial > mm7
comparison UI/UIHouses.cpp @ 1739:1776d4f033a7
WeaponShop cleared
author | Ritor1 |
---|---|
date | Fri, 27 Sep 2013 15:19:32 +0600 |
parents | 8251e59fd7c1 |
children | 19684d4bbe9a |
comparison
equal
deleted
inserted
replaced
1735:873ac151c38d | 1739:1776d4f033a7 |
---|---|
986 | 986 |
987 //----- (004BCACC) -------------------------------------------------------- | 987 //----- (004BCACC) -------------------------------------------------------- |
988 void __fastcall OnSelectShopDialogueOption(signed int uMessageParam) | 988 void __fastcall OnSelectShopDialogueOption(signed int uMessageParam) |
989 { | 989 { |
990 int experience_for_next_level; // eax@5 | 990 int experience_for_next_level; // eax@5 |
991 GUIWindow *v8; // esi@10 | |
992 int v16; // eax@32 | 991 int v16; // eax@32 |
993 int v17; // eax@33 | |
994 int v18; // eax@34 | |
995 int v19; // eax@35 | |
996 __int16 v20; // ax@37 | |
997 __int16 v21; // ax@76 | |
998 __int16 v22; // ax@107 | |
999 __int16 v23; // ax@132 | |
1000 __int16 v24; // ax@163 | 992 __int16 v24; // ax@163 |
1001 unsigned int v34; // eax@211 | |
1002 signed int v36; // esi@227 | 993 signed int v36; // esi@227 |
1003 int v37; // ecx@227 | 994 int pPrice; // ecx@227 |
1004 int v38; // esi@230 | |
1005 int v39; // edx@235 | |
1006 int v40; // edi@243 | |
1007 unsigned __int64 v41; // qax@243 | |
1008 signed int v43; // edi@244 | |
1009 int v44; // edx@244 | |
1010 int v45; // eax@246 | |
1011 unsigned int v46; // eax@247 | |
1012 void *v47; // eax@250 | |
1013 signed int v48; // edi@250 | |
1014 int v49; // eax@252 | |
1015 int v50; // eax@256 | |
1016 unsigned int v51; // eax@257 | |
1017 void *v52; // eax@260 | |
1018 signed int v53; // edi@260 | |
1019 int v54; // eax@262 | |
1020 | 995 |
1021 if ( !pDialogueWindow->pNumPresenceButton ) | 996 if ( !pDialogueWindow->pNumPresenceButton ) |
1022 return; | 997 return; |
1023 pRenderer->ClearZBuffer(0, 479); | 998 pRenderer->ClearZBuffer(0, 479); |
1024 if ( dialog_menu_id != HOUSE_DIALOGUE_MAIN) | |
1025 v8 = window_SpeakInHouse; | |
1026 if (dialog_menu_id == HOUSE_DIALOGUE_MAIN) | 999 if (dialog_menu_id == HOUSE_DIALOGUE_MAIN) |
1027 { | 1000 { |
1028 if ( in_current_building_type == BuildingType_Training ) | 1001 if ( in_current_building_type == BuildingType_Training ) |
1029 { | 1002 { |
1030 if ( uMessageParam == HOUSE_DIALOGUE_TRAININGHALL_TRAIN ) | 1003 if ( uMessageParam == HOUSE_DIALOGUE_TRAININGHALL_TRAIN ) |
1042 pDialogueWindow->Release(); | 1015 pDialogueWindow->Release(); |
1043 pDialogueWindow = GUIWindow::Create(0, 0, 640, 345, WINDOW_MainMenu, 0, 0); | 1016 pDialogueWindow = GUIWindow::Create(0, 0, 640, 345, WINDOW_MainMenu, 0, 0); |
1044 pBtn_ExitCancel = pDialogueWindow->CreateButton(526, 445, 75, 33, 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[74],// "End Conversation" | 1017 pBtn_ExitCancel = pDialogueWindow->CreateButton(526, 445, 75, 33, 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[74],// "End Conversation" |
1045 pIcons_LOD->GetTexture(uTextureID_BUTTDESC2), 0); | 1018 pIcons_LOD->GetTexture(uTextureID_BUTTDESC2), 0); |
1046 pDialogueWindow->CreateButton(8, 8, 450, 320, 1, 0, UIMSG_BuyInShop_Identify_Repair, 0, 0, "", nullptr); | 1019 pDialogueWindow->CreateButton(8, 8, 450, 320, 1, 0, UIMSG_BuyInShop_Identify_Repair, 0, 0, "", nullptr); |
1047 v8 = window_SpeakInHouse; | |
1048 } | 1020 } |
1049 if ( in_current_building_type != BuildingType_Training ) | 1021 if ( in_current_building_type != BuildingType_Training ) |
1050 { | 1022 { |
1051 v8 = window_SpeakInHouse; | |
1052 if ((in_current_building_type == BuildingType_Stables || in_current_building_type == BuildingType_Boats) && | 1023 if ((in_current_building_type == BuildingType_Stables || in_current_building_type == BuildingType_Boats) && |
1053 transport_schedule[transport_routes[(unsigned int)window_SpeakInHouse->ptr_1C - HOUSE_STABLES_HARMONDALE][uMessageParam - HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1]].pSchedule[pParty->uDaysPlayed % 7] | 1024 transport_schedule[transport_routes[(unsigned int)window_SpeakInHouse->ptr_1C - HOUSE_STABLES_HARMONDALE][uMessageParam - HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1]].pSchedule[pParty->uDaysPlayed % 7] |
1054 || in_current_building_type != BuildingType_Temple || uMessageParam != BuildingType_MindGuild ) | 1025 || in_current_building_type != BuildingType_Temple || uMessageParam != BuildingType_MindGuild ) |
1055 { | 1026 { |
1056 pDialogueWindow->Release(); | 1027 pDialogueWindow->Release(); |
1057 pDialogueWindow = GUIWindow::Create(0, 0, 640, 345, WINDOW_MainMenu, 0, 0); | 1028 pDialogueWindow = GUIWindow::Create(0, 0, 640, 345, WINDOW_MainMenu, 0, 0); |
1058 pBtn_ExitCancel = pDialogueWindow->CreateButton(526, 445, 75, 33, 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[74],// "End Conversation" | 1029 pBtn_ExitCancel = pDialogueWindow->CreateButton(526, 445, 75, 33, 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[74],// "End Conversation" |
1059 pIcons_LOD->GetTexture(uTextureID_BUTTDESC2), 0); | 1030 pIcons_LOD->GetTexture(uTextureID_BUTTDESC2), 0); |
1060 pDialogueWindow->CreateButton(8, 8, 450, 320, 1, 0, UIMSG_BuyInShop_Identify_Repair, 0, 0, "", nullptr); | 1031 pDialogueWindow->CreateButton(8, 8, 450, 320, 1, 0, UIMSG_BuyInShop_Identify_Repair, 0, 0, "", nullptr); |
1061 v8 = window_SpeakInHouse; | |
1062 } | 1032 } |
1063 else if (uActiveCharacter) | 1033 else if (uActiveCharacter) |
1064 { | 1034 { |
1065 if ( !pPlayers[uActiveCharacter]->IsPlayerHealableByTemple() ) | 1035 if ( !pPlayers[uActiveCharacter]->IsPlayerHealableByTemple() ) |
1066 return; | 1036 return; |
1067 v8 = window_SpeakInHouse; | |
1068 } | 1037 } |
1069 } | 1038 } |
1070 dialog_menu_id = (HOUSE_DIALOGUE_MENU)uMessageParam; | 1039 dialog_menu_id = (HOUSE_DIALOGUE_MENU)uMessageParam; |
1071 if ( in_current_building_type < BuildingType_19 ) | 1040 if ( in_current_building_type < BuildingType_19 ) |
1072 { | |
1073 ShopTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(off_4F03B8[(int)in_current_building_type], TEXTURE_16BIT_PALETTE)]; | 1041 ShopTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(off_4F03B8[(int)in_current_building_type], TEXTURE_16BIT_PALETTE)]; |
1074 v8 = window_SpeakInHouse; | |
1075 } | |
1076 } | 1042 } |
1077 | 1043 |
1078 //NEW | 1044 //NEW |
1079 switch (in_current_building_type) | 1045 switch (in_current_building_type) |
1080 { | 1046 { |
1093 { | 1059 { |
1094 if ( pParty->field_3C.Shops_next_generation_time[window_SpeakInHouse->par1C] >= (signed __int64)pParty->uTimePlayed ) | 1060 if ( pParty->field_3C.Shops_next_generation_time[window_SpeakInHouse->par1C] >= (signed __int64)pParty->uTimePlayed ) |
1095 { | 1061 { |
1096 for ( uint i = 0; i < 12; ++i ) | 1062 for ( uint i = 0; i < 12; ++i ) |
1097 { | 1063 { |
1098 if ( pParty->SpellBooksInGuilds[v8->par1C-139][i].uItemID ) | 1064 if ( pParty->SpellBooksInGuilds[window_SpeakInHouse->par1C - 139][i].uItemID ) |
1099 { | 1065 ItemsInShopTexture[i] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(pParty->SpellBooksInGuilds[window_SpeakInHouse->par1C - 139][i].GetIconName(), TEXTURE_16BIT_PALETTE)]; |
1100 v34 = pIcons_LOD->LoadTexture(pParty->SpellBooksInGuilds[v8->par1C-139][i].GetIconName(), TEXTURE_16BIT_PALETTE); | |
1101 v8 = window_SpeakInHouse; | |
1102 ItemsInShopTexture[i] = &pIcons_LOD->pTextures[v34]; | |
1103 } | |
1104 } | 1066 } |
1105 } | 1067 } |
1106 else//generation new books | 1068 else//generation new books |
1107 { | 1069 { |
1108 SpellBookGenerator(); | 1070 SpellBookGenerator(); |
1113 } | 1075 } |
1114 case BuildingType_TownHall: | 1076 case BuildingType_TownHall: |
1115 { | 1077 { |
1116 if ( uMessageParam == HOUSE_DIALOGUE_TOWNHALL_MESSAGE ) | 1078 if ( uMessageParam == HOUSE_DIALOGUE_TOWNHALL_MESSAGE ) |
1117 { | 1079 { |
1118 if ( pParty->field_3C.bountyHunting_next_generation_time[(int)((char *)v8->ptr_1C - 102)] < (signed __int64)pParty->uTimePlayed )//new generation | 1080 if ( pParty->field_3C.bountyHunting_next_generation_time[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] < (signed __int64)pParty->uTimePlayed )//new generation |
1119 { | 1081 { |
1120 pParty->monster_for_hunting_killed[(int)((char *)v8->ptr_1C - 102)] = false; | 1082 pParty->monster_for_hunting_killed[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = false; |
1121 pParty->field_3C.bountyHunting_next_generation_time[(int)((char *)v8->ptr_1C - 102)] = (signed __int64)((double)(309657600 * (pParty->uCurrentMonth + 12i64 * pParty->uCurrentYear - 14015)) * 0.033333335); | 1083 pParty->field_3C.bountyHunting_next_generation_time[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = (signed __int64)((double)(309657600 * (pParty->uCurrentMonth + 12i64 * pParty->uCurrentYear - 14015)) * 0.033333335); |
1122 pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] = rand() % 258 + 1; | 1084 pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = rand() % 258 + 1; |
1123 v16 = (int)((char *)window_SpeakInHouse->ptr_1C - 102); | 1085 v16 = (int)((char *)window_SpeakInHouse->ptr_1C - 102); |
1124 if ( !v16 ) | 1086 if ( !v16 ) |
1125 { | 1087 { |
1126 while ( 1 ) | 1088 while ( 1 ) |
1127 { | 1089 { |
1128 v24 = pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]; | 1090 v24 = pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]; |
1129 if ( (unsigned __int16)v24 < 115 || (unsigned __int16)v24 > 132 ) | 1091 if ( (unsigned __int16)v24 < 115 || (unsigned __int16)v24 > 132 ) |
1130 { | 1092 { |
1131 if ( ((unsigned __int16)v24 < 235 || (unsigned __int16)v24 > 252) | 1093 if ( ((unsigned __int16)v24 < 235 || (unsigned __int16)v24 > 252) |
1132 && ((unsigned __int16)v24 < 133 || (unsigned __int16)v24 > 150) | 1094 && ((unsigned __int16)v24 < 133 || (unsigned __int16)v24 > 150) |
1133 && ((unsigned __int16)v24 < 0x97u || (unsigned __int16)v24 > 0xBAu) | 1095 && ((unsigned __int16)v24 < 0x97u || (unsigned __int16)v24 > 0xBAu) |
1139 && ((unsigned __int16)v24 < 0xFDu || (unsigned __int16)v24 > 0xFFu) | 1101 && ((unsigned __int16)v24 < 0xFDu || (unsigned __int16)v24 > 0xFFu) |
1140 && ((unsigned __int16)v24 < 0x6Du || (unsigned __int16)v24 > 0x6Fu) | 1102 && ((unsigned __int16)v24 < 0x6Du || (unsigned __int16)v24 > 0x6Fu) |
1141 && ((unsigned __int16)v24 < 0x61u || (unsigned __int16)v24 > 0x63u) ) | 1103 && ((unsigned __int16)v24 < 0x61u || (unsigned __int16)v24 > 0x63u) ) |
1142 break; | 1104 break; |
1143 } | 1105 } |
1144 pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] = rand() % 258 + 1; | 1106 pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = rand() % 258 + 1; |
1145 } | 1107 } |
1146 } | 1108 } |
1147 if ( v16 == 1 ) | 1109 if ( v16 == 1 ) |
1148 { | 1110 { |
1149 while ( 1 ) | 1111 while ( 1 ) |
1150 { | 1112 { |
1151 v23 = pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]; | 1113 v24 = pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]; |
1152 if ( (unsigned __int16)v23 < 115 || (unsigned __int16)v23 > 132 ) | 1114 if ( (unsigned __int16)v24 < 115 || (unsigned __int16)v24 > 132 ) |
1153 { | 1115 { |
1154 if ( ((unsigned __int16)v23 < 0xE8u || (unsigned __int16)v23 > 0xF9u) | 1116 if ( ((unsigned __int16)v24 < 0xE8u || (unsigned __int16)v24 > 0xF9u) |
1155 && ((unsigned __int16)v23 < 0x85u || (unsigned __int16)v23 > 0x96u) | 1117 && ((unsigned __int16)v24 < 0x85u || (unsigned __int16)v24 > 0x96u) |
1156 && ((unsigned __int16)v23 < 0x97u || (unsigned __int16)v23 > 0xBAu) | 1118 && ((unsigned __int16)v24 < 0x97u || (unsigned __int16)v24 > 0xBAu) |
1157 && ((unsigned __int16)v23 < 0xBEu || (unsigned __int16)v23 > 0xC0u) | 1119 && ((unsigned __int16)v24 < 0xBEu || (unsigned __int16)v24 > 0xC0u) |
1158 && ((unsigned __int16)v23 < 0xC4u || (unsigned __int16)v23 > 0xC6u) | 1120 && ((unsigned __int16)v24 < 0xC4u || (unsigned __int16)v24 > 0xC6u) |
1159 && ((unsigned __int16)v23 < 0x2Bu || (unsigned __int16)v23 > 0x2Du) | 1121 && ((unsigned __int16)v24 < 0x2Bu || (unsigned __int16)v24 > 0x2Du) |
1160 && ((unsigned __int16)v23 < 0x52u || (unsigned __int16)v23 > 0x54u) | 1122 && ((unsigned __int16)v24 < 0x52u || (unsigned __int16)v24 > 0x54u) |
1161 && ((unsigned __int16)v23 < 4 || (unsigned __int16)v23 > 6) | 1123 && ((unsigned __int16)v24 < 4 || (unsigned __int16)v24 > 6) |
1162 && ((unsigned __int16)v23 < 0x37u || (unsigned __int16)v23 > 0x39u) | 1124 && ((unsigned __int16)v24 < 0x37u || (unsigned __int16)v24 > 0x39u) |
1163 && ((unsigned __int16)v23 < 0x3Au || (unsigned __int16)v23 > 0x3Cu) | 1125 && ((unsigned __int16)v24 < 0x3Au || (unsigned __int16)v24 > 0x3Cu) |
1164 && ((unsigned __int16)v23 < 0x3Du || (unsigned __int16)v23 > 0x3Fu) | 1126 && ((unsigned __int16)v24 < 0x3Du || (unsigned __int16)v24 > 0x3Fu) |
1165 && ((unsigned __int16)v23 < 0xFDu || (unsigned __int16)v23 > 0xFFu) | 1127 && ((unsigned __int16)v24 < 0xFDu || (unsigned __int16)v24 > 0xFFu) |
1166 && ((unsigned __int16)v23 < 0x61u || (unsigned __int16)v23 > 0x63u) | 1128 && ((unsigned __int16)v24 < 0x61u || (unsigned __int16)v24 > 0x63u) |
1167 && ((unsigned __int16)v23 < 0xCDu || (unsigned __int16)v23 > 0xCFu) ) | 1129 && ((unsigned __int16)v24 < 0xCDu || (unsigned __int16)v24 > 0xCFu) ) |
1168 break; | 1130 break; |
1169 } | 1131 } |
1170 pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] = rand() % 258 + 1; | 1132 pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = rand() % 258 + 1; |
1171 } | 1133 } |
1172 } | 1134 } |
1173 if ( v16 == 2 ) | 1135 if ( v16 == 2 ) |
1174 { | 1136 { |
1175 while ( 1 ) | 1137 while ( 1 ) |
1176 { | 1138 { |
1177 v22 = pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]; | 1139 v24 = pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]; |
1178 if ( (unsigned __int16)v22 < 0x73u || (unsigned __int16)v22 > 0x84u ) | 1140 if ( (unsigned __int16)v24 < 0x73u || (unsigned __int16)v24 > 0x84u ) |
1179 { | 1141 { |
1180 if ( ((unsigned __int16)v22 < 0xE8u || (unsigned __int16)v22 > 0xF9u) | 1142 if ( ((unsigned __int16)v24 < 0xE8u || (unsigned __int16)v24 > 0xF9u) |
1181 && ((unsigned __int16)v22 < 0x85u || (unsigned __int16)v22 > 0x96u) | 1143 && ((unsigned __int16)v24 < 0x85u || (unsigned __int16)v24 > 0x96u) |
1182 && ((unsigned __int16)v22 < 0x97u || (unsigned __int16)v22 > 0xBAu) | 1144 && ((unsigned __int16)v24 < 0x97u || (unsigned __int16)v24 > 0xBAu) |
1183 && ((unsigned __int16)v22 < 0xBEu || (unsigned __int16)v22 > 0xC0u) | 1145 && ((unsigned __int16)v24 < 0xBEu || (unsigned __int16)v24 > 0xC0u) |
1184 && ((unsigned __int16)v22 < 0xC4u || (unsigned __int16)v22 > 0xC6u) | 1146 && ((unsigned __int16)v24 < 0xC4u || (unsigned __int16)v24 > 0xC6u) |
1185 && ((unsigned __int16)v22 < 0x2Bu || (unsigned __int16)v22 > 0x2Du) | 1147 && ((unsigned __int16)v24 < 0x2Bu || (unsigned __int16)v24 > 0x2Du) |
1186 && ((unsigned __int16)v22 < 0x31u || (unsigned __int16)v22 > 0x33u) | 1148 && ((unsigned __int16)v24 < 0x31u || (unsigned __int16)v24 > 0x33u) |
1187 && ((unsigned __int16)v22 < 0x34u || (unsigned __int16)v22 > 0x36u) | 1149 && ((unsigned __int16)v24 < 0x34u || (unsigned __int16)v24 > 0x36u) |
1188 && ((unsigned __int16)v22 < 0xFDu || (unsigned __int16)v22 > 0xFFu) | 1150 && ((unsigned __int16)v24 < 0xFDu || (unsigned __int16)v24 > 0xFFu) |
1189 && ((unsigned __int16)v22 < 0x61u || (unsigned __int16)v22 > 0x63u) | 1151 && ((unsigned __int16)v24 < 0x61u || (unsigned __int16)v24 > 0x63u) |
1190 && ((unsigned __int16)v22 < 0x1Cu || (unsigned __int16)v22 > 0x1Eu) ) | 1152 && ((unsigned __int16)v24 < 0x1Cu || (unsigned __int16)v24 > 0x1Eu) ) |
1191 break; | 1153 break; |
1192 } | 1154 } |
1193 pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] = rand() % 258 + 1; | 1155 pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = rand() % 258 + 1; |
1194 } | 1156 } |
1195 } | 1157 } |
1196 if ( v16 == 3 ) | 1158 if ( v16 == 3 ) |
1197 { | 1159 { |
1198 while ( 1 ) | 1160 while ( 1 ) |
1199 { | 1161 { |
1200 v21 = pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]; | 1162 v24 = pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]; |
1201 if ( (unsigned __int16)v21 < 0x73u || (unsigned __int16)v21 > 0x84u ) | 1163 if ( (unsigned __int16)v24 < 0x73u || (unsigned __int16)v24 > 0x84u ) |
1202 { | 1164 { |
1203 if ( ((unsigned __int16)v21 < 0xE8u || (unsigned __int16)v21 > 0xF9u) | 1165 if ( ((unsigned __int16)v24 < 0xE8u || (unsigned __int16)v24 > 0xF9u) |
1204 && ((unsigned __int16)v21 < 0x85u || (unsigned __int16)v21 > 0x96u) | 1166 && ((unsigned __int16)v24 < 0x85u || (unsigned __int16)v24 > 0x96u) |
1205 && ((unsigned __int16)v21 < 0x97u || (unsigned __int16)v21 > 0xBAu) | 1167 && ((unsigned __int16)v24 < 0x97u || (unsigned __int16)v24 > 0xBAu) |
1206 && ((unsigned __int16)v21 < 0xBEu || (unsigned __int16)v21 > 0xC0u) | 1168 && ((unsigned __int16)v24 < 0xBEu || (unsigned __int16)v24 > 0xC0u) |
1207 && ((unsigned __int16)v21 < 0xC4u || (unsigned __int16)v21 > 0xC6u) | 1169 && ((unsigned __int16)v24 < 0xC4u || (unsigned __int16)v24 > 0xC6u) |
1208 && ((unsigned __int16)v21 < 0x2Bu || (unsigned __int16)v21 > 0x2Du) | 1170 && ((unsigned __int16)v24 < 0x2Bu || (unsigned __int16)v24 > 0x2Du) |
1209 && ((unsigned __int16)v21 < 0x5Eu || (unsigned __int16)v21 > 0x60u) | 1171 && ((unsigned __int16)v24 < 0x5Eu || (unsigned __int16)v24 > 0x60u) |
1210 && ((unsigned __int16)v21 < 0x43u || (unsigned __int16)v21 > 0x45u) | 1172 && ((unsigned __int16)v24 < 0x43u || (unsigned __int16)v24 > 0x45u) |
1211 && ((unsigned __int16)v21 < 0x4Fu || (unsigned __int16)v21 > 0x51u) | 1173 && ((unsigned __int16)v24 < 0x4Fu || (unsigned __int16)v24 > 0x51u) |
1212 && ((unsigned __int16)v21 < 0xC1u || (unsigned __int16)v21 > 0xC3u) | 1174 && ((unsigned __int16)v24 < 0xC1u || (unsigned __int16)v24 > 0xC3u) |
1213 && ((unsigned __int16)v21 < 0x13u || (unsigned __int16)v21 > 0x15u) | 1175 && ((unsigned __int16)v24 < 0x13u || (unsigned __int16)v24 > 0x15u) |
1214 && ((unsigned __int16)v21 < 0xFDu || (unsigned __int16)v21 > 0xFFu) | 1176 && ((unsigned __int16)v24 < 0xFDu || (unsigned __int16)v24 > 0xFFu) |
1215 && ((unsigned __int16)v21 < 0x61u || (unsigned __int16)v21 > 0x63u) | 1177 && ((unsigned __int16)v24 < 0x61u || (unsigned __int16)v24 > 0x63u) |
1216 && ((unsigned __int16)v21 < 0x6Au || (unsigned __int16)v21 > 0x6Cu) ) | 1178 && ((unsigned __int16)v24 < 0x6Au || (unsigned __int16)v24 > 0x6Cu) ) |
1217 break; | 1179 break; |
1218 } | 1180 } |
1219 pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] = rand() % 258 + 1; | 1181 pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = rand() % 258 + 1; |
1220 } | 1182 } |
1221 } | 1183 } |
1222 if ( v16 == 4 ) | 1184 if ( v16 == 4 ) |
1223 { | 1185 { |
1224 while ( 1 ) | 1186 while ( 1 ) |
1225 { | 1187 { |
1226 v20 = pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]; | 1188 v24 = pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]; |
1227 if ( (unsigned __int16)v20 < 0x73u || (unsigned __int16)v20 > 0x84u ) | 1189 if ( (unsigned __int16)v24 < 0x73u || (unsigned __int16)v24 > 0x84u ) |
1228 { | 1190 { |
1229 if ( ((unsigned __int16)v20 < 0xE8u || (unsigned __int16)v20 > 0xF9u) | 1191 if ( ((unsigned __int16)v24 < 0xE8u || (unsigned __int16)v24 > 0xF9u) |
1230 && ((unsigned __int16)v20 < 0x85u || (unsigned __int16)v20 > 0x96u) | 1192 && ((unsigned __int16)v24 < 0x85u || (unsigned __int16)v24 > 0x96u) |
1231 && ((unsigned __int16)v20 < 0x97u || (unsigned __int16)v20 > 0xBAu) | 1193 && ((unsigned __int16)v24 < 0x97u || (unsigned __int16)v24 > 0xBAu) |
1232 && ((unsigned __int16)v20 < 0xBEu || (unsigned __int16)v20 > 0xC0u) | 1194 && ((unsigned __int16)v24 < 0xBEu || (unsigned __int16)v24 > 0xC0u) |
1233 && ((unsigned __int16)v20 < 0xC4u || (unsigned __int16)v20 > 0xC6u) | 1195 && ((unsigned __int16)v24 < 0xC4u || (unsigned __int16)v24 > 0xC6u) |
1234 && ((unsigned __int16)v20 < 0x2Bu || (unsigned __int16)v20 > 0x2Du) | 1196 && ((unsigned __int16)v24 < 0x2Bu || (unsigned __int16)v24 > 0x2Du) |
1235 && ((unsigned __int16)v20 < 0x6Du || (unsigned __int16)v20 > 0x6Fu) | 1197 && ((unsigned __int16)v24 < 0x6Du || (unsigned __int16)v24 > 0x6Fu) |
1236 && ((unsigned __int16)v20 < 0x46u || (unsigned __int16)v20 > 0x48u) | 1198 && ((unsigned __int16)v24 < 0x46u || (unsigned __int16)v24 > 0x48u) |
1237 && ((unsigned __int16)v20 < 0x100u || (unsigned __int16)v20 > 0x102u) | 1199 && ((unsigned __int16)v24 < 0x100u || (unsigned __int16)v24 > 0x102u) |
1238 && ((unsigned __int16)v20 < 0xD9u || (unsigned __int16)v20 > 0xDBu) | 1200 && ((unsigned __int16)v24 < 0xD9u || (unsigned __int16)v24 > 0xDBu) |
1239 && ((unsigned __int16)v20 < 0xC7u || (unsigned __int16)v20 > 0xC9u) | 1201 && ((unsigned __int16)v24 < 0xC7u || (unsigned __int16)v24 > 0xC9u) |
1240 && ((unsigned __int16)v20 < 0xE5u || (unsigned __int16)v20 > 0xE7u) | 1202 && ((unsigned __int16)v24 < 0xE5u || (unsigned __int16)v24 > 0xE7u) |
1241 && ((unsigned __int16)v20 < 0xDFu || (unsigned __int16)v20 > 0xE1u) | 1203 && ((unsigned __int16)v24 < 0xDFu || (unsigned __int16)v24 > 0xE1u) |
1242 && ((unsigned __int16)v20 < 0x5Bu || (unsigned __int16)v20 > 0x5Du) | 1204 && ((unsigned __int16)v24 < 0x5Bu || (unsigned __int16)v24 > 0x5Du) |
1243 && ((unsigned __int16)v20 < 0x49u || (unsigned __int16)v20 > 0x4Bu) | 1205 && ((unsigned __int16)v24 < 0x49u || (unsigned __int16)v24 > 0x4Bu) |
1244 && ((unsigned __int16)v20 < 0xFDu || (unsigned __int16)v20 > 0xFFu) | 1206 && ((unsigned __int16)v24 < 0xFDu || (unsigned __int16)v24 > 0xFFu) |
1245 && ((unsigned __int16)v20 < 0x61u || (unsigned __int16)v20 > 0x63u) | 1207 && ((unsigned __int16)v24 < 0x61u || (unsigned __int16)v24 > 0x63u) |
1246 && ((unsigned __int16)v20 < 0x10u || (unsigned __int16)v20 > 0x12u) ) | 1208 && ((unsigned __int16)v24 < 0x10u || (unsigned __int16)v24 > 0x12u) ) |
1247 break; | 1209 break; |
1248 } | 1210 } |
1249 pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] = rand() % 258 + 1; | 1211 pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = rand() % 258 + 1; |
1250 } | 1212 } |
1251 } | 1213 } |
1252 } | 1214 } |
1253 bountyHunting_monster_id_for_hunting = pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]; | 1215 bountyHunting_monster_id_for_hunting = pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]; |
1254 if ( !pParty->monster_for_hunting_killed[(int)((char *)v8->ptr_1C - 102)] ) | 1216 if ( !pParty->monster_for_hunting_killed[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] ) |
1255 { | 1217 { |
1256 bountyHunting_text = pNPCTopics[351].pText;//" ýòîì ìåñÿöó íàçíà÷åíà íàãðàäà çà ãîëîâó %s..." | 1218 bountyHunting_text = pNPCTopics[351].pText;//" ýòîì ìåñÿöó íàçíà÷åíà íàãðàäà çà ãîëîâó %s..." |
1257 if ( !pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] ) | 1219 if ( !pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] ) |
1258 bountyHunting_text = pNPCTopics[353].pText;//"Êîå êòî óæå ïðèõîäèë â ýòîì ìåñÿöå çà íàãðàäîé" | 1220 bountyHunting_text = pNPCTopics[353].pText;//"Êîå êòî óæå ïðèõîäèë â ýòîì ìåñÿöå çà íàãðàäîé" |
1259 } | 1221 } |
1260 else | 1222 else |
1261 { | 1223 { |
1262 if ( pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] > 0 )//get prize | 1224 if ( pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] > 0 )//get prize |
1263 { | 1225 { |
1264 party_finds_gold(100 * pMonsterStats->pInfos[(unsigned __int16)pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]].uLevel, 0); | 1226 party_finds_gold(100 * pMonsterStats->pInfos[(unsigned __int16)pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]].uLevel, 0); |
1265 for ( uint i = 0; i < 4; ++i ) | 1227 for ( uint i = 0; i < 4; ++i ) |
1266 pParty->pPlayers[i].SetVariable(VAR_Award, 86); | 1228 pParty->pPlayers[i].SetVariable(VAR_Award, 86); |
1267 pParty->uNumBountiesCollected += 100 * pMonsterStats->pInfos[pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)]].uLevel; | 1229 pParty->uNumBountiesCollected += 100 * pMonsterStats->pInfos[pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)]].uLevel; |
1268 pParty->monster_id_for_hunting[(int)((char *)v8->ptr_1C - 102)] = 0; | 1230 pParty->monster_id_for_hunting[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = 0; |
1269 pParty->monster_for_hunting_killed[(int)((char *)v8->ptr_1C - 102)] = false; | 1231 pParty->monster_for_hunting_killed[(int)((char *)window_SpeakInHouse->ptr_1C - 102)] = false; |
1270 } | 1232 } |
1271 bountyHunting_text = pNPCTopics[352].pText;//"Ïîçäðàâëÿþ! Âû óñïåøíî..." | 1233 bountyHunting_text = pNPCTopics[352].pText;//"Ïîçäðàâëÿþ! Âû óñïåøíî..." |
1272 } | 1234 } |
1273 } | 1235 } |
1274 else if ( uMessageParam == HOUSE_DIALOGUE_TOWNHALL_PAY_FINE ) | 1236 else if ( uMessageParam == HOUSE_DIALOGUE_TOWNHALL_PAY_FINE ) |
1275 pKeyActionMap->EnterText(1, 10, v8); | 1237 pKeyActionMap->EnterText(1, 10, window_SpeakInHouse); |
1276 break; | 1238 break; |
1277 } | 1239 } |
1278 case BuildingType_Bank: | 1240 case BuildingType_Bank: |
1279 { | 1241 { |
1280 if ( dialog_menu_id >= 7 && dialog_menu_id <= 8 ) | 1242 if ( dialog_menu_id >= 7 && dialog_menu_id <= 8 ) |
1281 pKeyActionMap->EnterText(1, 10, v8); | 1243 pKeyActionMap->EnterText(1, 10, window_SpeakInHouse); |
1282 return; | 1244 return; |
1283 break; | 1245 break; |
1284 } | 1246 } |
1285 case BuildingType_WeaponShop: | 1247 case BuildingType_WeaponShop: |
1286 case BuildingType_ArmorShop: | 1248 case BuildingType_ArmorShop: |
1297 return; | 1259 return; |
1298 break; | 1260 break; |
1299 } | 1261 } |
1300 } | 1262 } |
1301 | 1263 |
1302 /* | |
1303 if ( in_current_building_type > BuildingType_Tavern ) | |
1304 { | |
1305 if ( in_current_building_type == BuildingType_Bank ) | |
1306 { | |
1307 if ( dialog_menu_id >= 7 && dialog_menu_id <= 8 ) | |
1308 pKeyActionMap->EnterText(1, 10, v8); | |
1309 return; | |
1310 } | |
1311 if ( in_current_building_type != BuildingType_Temple && in_current_building_type != BuildingType_Training ) | |
1312 return; | |
1313 } | |
1314 //else | |
1315 if ( in_current_building_type < BuildingType_Tavern ) | |
1316 { | |
1317 if (in_current_building_type <= 0) | |
1318 return; | |
1319 if ( in_current_building_type > BuildingType_AlchemistShop ) | |
1320 { | |
1321 if ( in_current_building_type <= BuildingType_16 ) | |
1322 { | |
1323 if ( (signed __int64)__PAIR__( | |
1324 *(int *)&stru_AA1058[3].pSounds[8 * (unsigned int)v8->ptr_1C + 44472], | |
1325 *(int *)&stru_AA1058[3].pSounds[8 * (unsigned int)v8->ptr_1C + 44468]) >= (signed __int64)pParty->uTimePlayed ) | |
1326 { | |
1327 v32 = 0; | |
1328 do | |
1329 { | |
1330 //v33 = *(&pParty->pPlayers[1].pInstalledBeacons[0].field_18 + 9 * (v32 + 12 * (unsigned int)v8->ptr_1C)); | |
1331 v33 = pParty->SpellBooksInGuilds[v8->par1C-139][v32].uItemID; | |
1332 if ( v33 ) | |
1333 { | |
1334 v34 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v33].pIconName, TEXTURE_16BIT_PALETTE); | |
1335 v8 = window_SpeakInHouse; | |
1336 ItemsInShopTexture[v32] = &pIcons_LOD->pTextures[v34]; | |
1337 } | |
1338 ++v32; | |
1339 } | |
1340 while ( v32 < 12 ); | |
1341 } | |
1342 else | |
1343 { | |
1344 SpellBookGenerator(); | |
1345 v30 = window_SpeakInHouse->ptr_1C; | |
1346 v31 = pParty->uTimePlayed | |
1347 + (signed __int64)((double)(0xA8C000 | |
1348 //* (signed int)p2DEvents_minus1[26 * (unsigned int)ptr_507BC0->ptr_1C]) | |
1349 * (signed int)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].field_1C) | |
1350 * 0.033333335); | |
1351 *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44468] = v31; | |
1352 *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44472] = HIDWORD(v31); | |
1353 } | |
1354 return; | |
1355 } | |
1356 if ( in_current_building_type != BuildingType_TownHall ) | |
1357 return; | |
1358 if ( in_current_building_type == BuildingType_TownHall ) | |
1359 { | |
1360 if ( uMessageParam == 99 ) | |
1361 { | |
1362 v10 = (int)((char *)v8->ptr_1C - 102); | |
1363 v56 = v10; | |
1364 v11 = 8 * v10 + 11325428; | |
1365 if ( (signed __int64)__PAIR__(pParty->field_3C.field_0[2 * v10 + 1], pParty->field_3C.field_0[2 * v10]) >= (signed __int64)pParty->uTimePlayed ) | |
1366 { | |
1367 v13 = 0; | |
1368 } | |
1369 else | |
1370 { | |
1371 v12 = v10; | |
1372 v13 = 0; | |
1373 pParty->field_75A[v12] = 0; | |
1374 *(_QWORD *)v11 = (signed __int64)((double)(309657600 * (pParty->uCurrentMonth + 12i64 * pParty->uCurrentYear - 14015)) * 0.033333335); | |
1375 v14 = rand() % 258; | |
1376 v15 = window_SpeakInHouse; | |
1377 pParty->field_750[v12] = v14 + 1; | |
1378 v16 = (int)((char *)v15->ptr_1C - 102); | |
1379 if ( v16 ) | |
1380 { | |
1381 v17 = v16 - 1; | |
1382 if ( v17 ) | |
1383 { | |
1384 v18 = v17 - 1; | |
1385 if ( v18 ) | |
1386 { | |
1387 v19 = v18 - 1; | |
1388 if ( v19 ) | |
1389 { | |
1390 if ( v19 == 1 ) | |
1391 { | |
1392 while ( 1 ) | |
1393 { | |
1394 v20 = pParty->field_750[v12]; | |
1395 if ( (unsigned __int16)v20 < 0x73u || (unsigned __int16)v20 > 0x84u ) | |
1396 { | |
1397 if ( ((unsigned __int16)v20 < 0xE8u || (unsigned __int16)v20 > 0xF9u) | |
1398 && ((unsigned __int16)v20 < 0x85u || (unsigned __int16)v20 > 0x96u) | |
1399 && ((unsigned __int16)v20 < 0x97u || (unsigned __int16)v20 > 0xBAu) | |
1400 && ((unsigned __int16)v20 < 0xBEu || (unsigned __int16)v20 > 0xC0u) | |
1401 && ((unsigned __int16)v20 < 0xC4u || (unsigned __int16)v20 > 0xC6u) | |
1402 && ((unsigned __int16)v20 < 0x2Bu || (unsigned __int16)v20 > 0x2Du) | |
1403 && ((unsigned __int16)v20 < 0x6Du || (unsigned __int16)v20 > 0x6Fu) | |
1404 && ((unsigned __int16)v20 < 0x46u || (unsigned __int16)v20 > 0x48u) | |
1405 && ((unsigned __int16)v20 < 0x100u || (unsigned __int16)v20 > 0x102u) | |
1406 && ((unsigned __int16)v20 < 0xD9u || (unsigned __int16)v20 > 0xDBu) | |
1407 && ((unsigned __int16)v20 < 0xC7u || (unsigned __int16)v20 > 0xC9u) | |
1408 && ((unsigned __int16)v20 < 0xE5u || (unsigned __int16)v20 > 0xE7u) | |
1409 && ((unsigned __int16)v20 < 0xDFu || (unsigned __int16)v20 > 0xE1u) | |
1410 && ((unsigned __int16)v20 < 0x5Bu || (unsigned __int16)v20 > 0x5Du) | |
1411 && ((unsigned __int16)v20 < 0x49u || (unsigned __int16)v20 > 0x4Bu) | |
1412 && ((unsigned __int16)v20 < 0xFDu || (unsigned __int16)v20 > 0xFFu) | |
1413 && ((unsigned __int16)v20 < 0x61u || (unsigned __int16)v20 > 0x63u) | |
1414 && ((unsigned __int16)v20 < 0x10u || (unsigned __int16)v20 > 0x12u) ) | |
1415 break; | |
1416 } | |
1417 pParty->field_750[v12] = rand() % 258 + 1; | |
1418 } | |
1419 } | |
1420 } | |
1421 else | |
1422 { | |
1423 while ( 1 ) | |
1424 { | |
1425 v21 = pParty->field_750[v12]; | |
1426 if ( (unsigned __int16)v21 < 0x73u || (unsigned __int16)v21 > 0x84u ) | |
1427 { | |
1428 if ( ((unsigned __int16)v21 < 0xE8u || (unsigned __int16)v21 > 0xF9u) | |
1429 && ((unsigned __int16)v21 < 0x85u || (unsigned __int16)v21 > 0x96u) | |
1430 && ((unsigned __int16)v21 < 0x97u || (unsigned __int16)v21 > 0xBAu) | |
1431 && ((unsigned __int16)v21 < 0xBEu || (unsigned __int16)v21 > 0xC0u) | |
1432 && ((unsigned __int16)v21 < 0xC4u || (unsigned __int16)v21 > 0xC6u) | |
1433 && ((unsigned __int16)v21 < 0x2Bu || (unsigned __int16)v21 > 0x2Du) | |
1434 && ((unsigned __int16)v21 < 0x5Eu || (unsigned __int16)v21 > 0x60u) | |
1435 && ((unsigned __int16)v21 < 0x43u || (unsigned __int16)v21 > 0x45u) | |
1436 && ((unsigned __int16)v21 < 0x4Fu || (unsigned __int16)v21 > 0x51u) | |
1437 && ((unsigned __int16)v21 < 0xC1u || (unsigned __int16)v21 > 0xC3u) | |
1438 && ((unsigned __int16)v21 < 0x13u || (unsigned __int16)v21 > 0x15u) | |
1439 && ((unsigned __int16)v21 < 0xFDu || (unsigned __int16)v21 > 0xFFu) | |
1440 && ((unsigned __int16)v21 < 0x61u || (unsigned __int16)v21 > 0x63u) | |
1441 && ((unsigned __int16)v21 < 0x6Au || (unsigned __int16)v21 > 0x6Cu) ) | |
1442 break; | |
1443 } | |
1444 pParty->field_750[v12] = rand() % 258 + 1; | |
1445 } | |
1446 } | |
1447 } | |
1448 else | |
1449 { | |
1450 while ( 1 ) | |
1451 { | |
1452 v22 = pParty->field_750[v12]; | |
1453 if ( (unsigned __int16)v22 < 0x73u || (unsigned __int16)v22 > 0x84u ) | |
1454 { | |
1455 if ( ((unsigned __int16)v22 < 0xE8u || (unsigned __int16)v22 > 0xF9u) | |
1456 && ((unsigned __int16)v22 < 0x85u || (unsigned __int16)v22 > 0x96u) | |
1457 && ((unsigned __int16)v22 < 0x97u || (unsigned __int16)v22 > 0xBAu) | |
1458 && ((unsigned __int16)v22 < 0xBEu || (unsigned __int16)v22 > 0xC0u) | |
1459 && ((unsigned __int16)v22 < 0xC4u || (unsigned __int16)v22 > 0xC6u) | |
1460 && ((unsigned __int16)v22 < 0x2Bu || (unsigned __int16)v22 > 0x2Du) | |
1461 && ((unsigned __int16)v22 < 0x31u || (unsigned __int16)v22 > 0x33u) | |
1462 && ((unsigned __int16)v22 < 0x34u || (unsigned __int16)v22 > 0x36u) | |
1463 && ((unsigned __int16)v22 < 0xFDu || (unsigned __int16)v22 > 0xFFu) | |
1464 && ((unsigned __int16)v22 < 0x61u || (unsigned __int16)v22 > 0x63u) | |
1465 && ((unsigned __int16)v22 < 0x1Cu || (unsigned __int16)v22 > 0x1Eu) ) | |
1466 break; | |
1467 } | |
1468 pParty->field_750[v12] = rand() % 258 + 1; | |
1469 } | |
1470 } | |
1471 } | |
1472 else | |
1473 { | |
1474 while ( 1 ) | |
1475 { | |
1476 v23 = pParty->field_750[v12]; | |
1477 if ( (unsigned __int16)v23 < 0x73u || (unsigned __int16)v23 > 0x84u ) | |
1478 { | |
1479 if ( ((unsigned __int16)v23 < 0xE8u || (unsigned __int16)v23 > 0xF9u) | |
1480 && ((unsigned __int16)v23 < 0x85u || (unsigned __int16)v23 > 0x96u) | |
1481 && ((unsigned __int16)v23 < 0x97u || (unsigned __int16)v23 > 0xBAu) | |
1482 && ((unsigned __int16)v23 < 0xBEu || (unsigned __int16)v23 > 0xC0u) | |
1483 && ((unsigned __int16)v23 < 0xC4u || (unsigned __int16)v23 > 0xC6u) | |
1484 && ((unsigned __int16)v23 < 0x2Bu || (unsigned __int16)v23 > 0x2Du) | |
1485 && ((unsigned __int16)v23 < 0x52u || (unsigned __int16)v23 > 0x54u) | |
1486 && ((unsigned __int16)v23 < 4u || (unsigned __int16)v23 > 6u) | |
1487 && ((unsigned __int16)v23 < 0x37u || (unsigned __int16)v23 > 0x39u) | |
1488 && ((unsigned __int16)v23 < 0x3Au || (unsigned __int16)v23 > 0x3Cu) | |
1489 && ((unsigned __int16)v23 < 0x3Du || (unsigned __int16)v23 > 0x3Fu) | |
1490 && ((unsigned __int16)v23 < 0xFDu || (unsigned __int16)v23 > 0xFFu) | |
1491 && ((unsigned __int16)v23 < 0x61u || (unsigned __int16)v23 > 0x63u) | |
1492 && ((unsigned __int16)v23 < 0xCDu || (unsigned __int16)v23 > 0xCFu) ) | |
1493 break; | |
1494 } | |
1495 pParty->field_750[v12] = rand() % 258 + 1; | |
1496 } | |
1497 } | |
1498 } | |
1499 else | |
1500 { | |
1501 while ( 1 ) | |
1502 { | |
1503 v24 = pParty->field_750[v12]; | |
1504 if ( (unsigned __int16)v24 < 0x73u || (unsigned __int16)v24 > 0x84u ) | |
1505 { | |
1506 if ( ((unsigned __int16)v24 < 0xEBu || (unsigned __int16)v24 > 0xFCu) | |
1507 && ((unsigned __int16)v24 < 0x85u || (unsigned __int16)v24 > 0x96u) | |
1508 && ((unsigned __int16)v24 < 0x97u || (unsigned __int16)v24 > 0xBAu) | |
1509 && ((unsigned __int16)v24 < 0xBEu || (unsigned __int16)v24 > 0xC0u) | |
1510 && ((unsigned __int16)v24 < 0xC4u || (unsigned __int16)v24 > 0xC6u) | |
1511 && ((unsigned __int16)v24 < 0x2Bu || (unsigned __int16)v24 > 0x2Du) | |
1512 && ((unsigned __int16)v24 < 0xCDu || (unsigned __int16)v24 > 0xCFu) | |
1513 && ((unsigned __int16)v24 < 0x5Eu || (unsigned __int16)v24 > 0x60u) | |
1514 && ((unsigned __int16)v24 < 0xFDu || (unsigned __int16)v24 > 0xFFu) | |
1515 && ((unsigned __int16)v24 < 0x6Du || (unsigned __int16)v24 > 0x6Fu) | |
1516 && ((unsigned __int16)v24 < 0x61u || (unsigned __int16)v24 > 0x63u) ) | |
1517 break; | |
1518 } | |
1519 pParty->field_750[v12] = rand() % 258 + 1; | |
1520 } | |
1521 } | |
1522 v10 = v56; | |
1523 } | |
1524 v25 = v10; | |
1525 v26 = pParty->field_750[v25]; | |
1526 v27 = pParty->field_75A[v25] == v13; | |
1527 bountyHunting_monster_id_for_hunting = pParty->field_750[v25]; | |
1528 if ( v27 ) | |
1529 { | |
1530 //v1 = 0; | |
1531 v27 = v26 == v13; | |
1532 v29 = (int)pNPCTopics[351].pText; | |
1533 if ( v27 ) | |
1534 v29 = (int)pNPCTopics[353].pText; | |
1535 bountyHunting_text = (char *)v29; | |
1536 } | |
1537 else | |
1538 { | |
1539 if ( v26 != v13 ) | |
1540 { | |
1541 party_finds_gold(100 * pMonsterStats->pInfos[(unsigned __int16)v26].uLevel, 0); | |
1542 v28 = pParty->pPlayers; | |
1543 do | |
1544 { | |
1545 v28->SetVariable(VAR_Award, 86); | |
1546 ++v28; | |
1547 } | |
1548 while ( (signed int)v28 < (signed int)pParty->pHirelings ); | |
1549 pParty->uNumBountiesCollected += 100 * pMonsterStats->pInfos[pParty->field_750[v25]].uLevel; | |
1550 pParty->field_750[v25] = v13; | |
1551 pParty->field_75A[v25] = v13; | |
1552 } | |
1553 //v1 = 0; | |
1554 bountyHunting_text = pNPCTopics[352].pText; | |
1555 } | |
1556 } | |
1557 else if ( uMessageParam == 100 ) | |
1558 { | |
1559 pKeyActionMap->EnterText(1, 10, v8); | |
1560 } | |
1561 } | |
1562 } | |
1563 } | |
1564 */ | |
1565 | |
1566 | |
1567 //LABEL_196: | |
1568 switch ( uMessageParam ) | 1264 switch ( uMessageParam ) |
1569 { | 1265 { |
1570 case HOUSE_DIALOGUE_LEARN_SKILLS: | 1266 case HOUSE_DIALOGUE_LEARN_SKILLS: |
1571 { | 1267 { |
1572 pDialogueWindow->eWindowType = WINDOW_MainMenu; | 1268 pDialogueWindow->eWindowType = WINDOW_MainMenu; |
1587 dialog_menu_id = (HOUSE_DIALOGUE_MENU)uMessageParam; | 1283 dialog_menu_id = (HOUSE_DIALOGUE_MENU)uMessageParam; |
1588 break; | 1284 break; |
1589 } | 1285 } |
1590 case HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT: | 1286 case HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT: |
1591 { | 1287 { |
1592 /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) | |
1593 { | |
1594 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = UIMSG_PlayArcomage; | |
1595 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = v1; | |
1596 *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = v1; | |
1597 ++pMessageQueue_50CBD0->uNumMessages; | |
1598 }*/ | |
1599 pMessageQueue_50CBD0->AddMessage(UIMSG_PlayArcomage, 0, 0); | 1288 pMessageQueue_50CBD0->AddMessage(UIMSG_PlayArcomage, 0, 0); |
1600 dialog_menu_id = HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT; | 1289 dialog_menu_id = HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT; |
1601 break; | 1290 break; |
1602 } | 1291 } |
1603 case HOUSE_DIALOGUE_SHOP_BUY_STANDARD: | 1292 case HOUSE_DIALOGUE_SHOP_BUY_STANDARD: |
1604 case HOUSE_DIALOGUE_SHOP_BUY_SPECIAL: | 1293 case HOUSE_DIALOGUE_SHOP_BUY_SPECIAL: |
1605 { | 1294 { |
1606 if ( pParty->field_3C.Shops_next_generation_time[(unsigned int)v8->ptr_1C] < (signed __int64)pParty->uTimePlayed ) | 1295 if ( pParty->field_3C.Shops_next_generation_time[(unsigned int)window_SpeakInHouse->ptr_1C] < (signed __int64)pParty->uTimePlayed ) |
1607 { | 1296 { |
1608 GenerateStandartShopItems(); | 1297 GenerateStandartShopItems(); |
1609 GenerateSpecialShopItems(); | 1298 GenerateSpecialShopItems(); |
1610 pParty->field_3C.Shops_next_generation_time[window_SpeakInHouse->par1C] = pParty->uTimePlayed + (signed __int64)((double)(11059200 * (signed int)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].field_1C) * 0.033333335); | 1299 pParty->field_3C.Shops_next_generation_time[window_SpeakInHouse->par1C] = pParty->uTimePlayed + (signed __int64)((double)(11059200 * (signed int)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].field_1C) * 0.033333335); |
1611 } | 1300 } |
1612 if ( uMessageParam == HOUSE_DIALOGUE_SHOP_BUY_STANDARD ) | 1301 if ( uMessageParam == HOUSE_DIALOGUE_SHOP_BUY_STANDARD ) |
1613 { | 1302 { |
1614 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) | 1303 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) |
1615 { | 1304 { |
1616 for ( v43 = 0; v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType]; ++v43 ) | 1305 for ( uint i = 0; i < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType]; ++i ) |
1617 { | 1306 { |
1618 if ( pParty->StandartItemsInShops[(int)window_SpeakInHouse->ptr_1C][v43].uItemID ) | 1307 if ( pParty->StandartItemsInShops[(int)window_SpeakInHouse->ptr_1C][i].uItemID ) |
1308 ItemsInShopTexture[i] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(pParty->StandartItemsInShops[(int)window_SpeakInHouse->ptr_1C][i].GetIconName(), TEXTURE_16BIT_PALETTE)]; | |
1309 } | |
1310 } | |
1311 if ( in_current_building_type == BuildingType_WeaponShop ) | |
1312 { | |
1313 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) | |
1314 { | |
1315 for ( uint i = 0; i < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType]; ++i ) | |
1619 { | 1316 { |
1620 v46 = pIcons_LOD->LoadTexture(pParty->StandartItemsInShops[(int)window_SpeakInHouse->ptr_1C][v43].GetIconName(), TEXTURE_16BIT_PALETTE); | 1317 if ( pParty->StandartItemsInShops[(int)window_SpeakInHouse->ptr_1C][i].uItemID) |
1621 ItemsInShopTexture[v43] = &pIcons_LOD->pTextures[v46]; | 1318 weapons_Ypos[i] = rand() % (300 - ItemsInShopTexture[i]->uTextureHeight); |
1622 } | 1319 } |
1623 } | 1320 } |
1624 } | 1321 } |
1322 } | |
1323 if ( uMessageParam == HOUSE_DIALOGUE_SHOP_BUY_SPECIAL ) | |
1324 { | |
1325 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) | |
1326 { | |
1327 for ( uint i = 0; i < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType]; ++i ) | |
1328 { | |
1329 if ( pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][i].uItemID ) | |
1330 ItemsInShopTexture[i] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][i].GetIconName(), TEXTURE_16BIT_PALETTE)]; | |
1331 } | |
1332 } | |
1625 if ( in_current_building_type == BuildingType_WeaponShop ) | 1333 if ( in_current_building_type == BuildingType_WeaponShop ) |
1626 { | 1334 { |
1627 v48 = 0; | |
1628 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) | 1335 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) |
1629 { | 1336 { |
1630 do | 1337 for ( uint i = 0; i < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType]; ++i ) |
1631 { | 1338 { |
1632 if ( pParty->StandartItemsInShops[(int)window_SpeakInHouse->ptr_1C][v48].uItemID) | 1339 if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][i].uItemID) |
1633 word_F8B158[v48] = rand() % (300 - ItemsInShopTexture[v48]->uTextureHeight); | 1340 weapons_Ypos[i] = rand() % (300 - ItemsInShopTexture[i]->uTextureHeight); |
1634 ++v48; | |
1635 } | |
1636 while ( v48 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ); | |
1637 } | 1341 } |
1638 } | 1342 } |
1639 } | 1343 } |
1640 if ( uMessageParam == HOUSE_DIALOGUE_SHOP_BUY_SPECIAL ) | 1344 } |
1641 { | 1345 break; |
1642 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) | |
1643 { | |
1644 for ( v43 = 0; v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType]; ++v43 ) | |
1645 { | |
1646 if ( pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][(signed int)v43].uItemID ) | |
1647 { | |
1648 v51 = pIcons_LOD->LoadTexture(pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][(signed int)v43].GetIconName(), TEXTURE_16BIT_PALETTE); | |
1649 ItemsInShopTexture[v43] = &pIcons_LOD->pTextures[v51]; | |
1650 } | |
1651 } | |
1652 } | |
1653 if ( in_current_building_type == BuildingType_WeaponShop ) | |
1654 { | |
1655 v53 = 0; | |
1656 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType] ) | |
1657 { | |
1658 do | |
1659 { | |
1660 if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v53].uItemID) | |
1661 word_F8B158[v53] = rand() % (300 - ItemsInShopTexture[v53]->uTextureHeight); | |
1662 ++v53; | |
1663 } | |
1664 while ( v53 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType ] ); | |
1665 } | |
1666 } | |
1667 } | |
1668 break; | |
1669 } | 1346 } |
1670 case HOUSE_DIALOGUE_SHOP_SELL: | 1347 case HOUSE_DIALOGUE_SHOP_SELL: |
1671 case HOUSE_DIALOGUE_SHOP_IDENTIFY: | 1348 case HOUSE_DIALOGUE_SHOP_IDENTIFY: |
1672 case HOUSE_DIALOGUE_SHOP_REPAIR: | 1349 case HOUSE_DIALOGUE_SHOP_REPAIR: |
1673 { | 1350 { |
1684 } | 1361 } |
1685 default: | 1362 default: |
1686 { | 1363 { |
1687 if( uMessageParam >= HOUSE_DIALOGUE_36 && uMessageParam <= HOUSE_DIALOGUE_GUILD_LEARN_SKILL ) | 1364 if( uMessageParam >= HOUSE_DIALOGUE_36 && uMessageParam <= HOUSE_DIALOGUE_GUILD_LEARN_SKILL ) |
1688 { | 1365 { |
1689 v36 = (signed __int64)(p2DEvents[(unsigned int)v8->ptr_1C - 1].flt_24 * 500.0); | 1366 v36 = (signed __int64)(p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].flt_24 * 500.0); |
1690 v37 = v36 * (100 - pPlayers[uActiveCharacter]->GetMerchant()) / 100; | 1367 pPrice = v36 * (100 - pPlayers[uActiveCharacter]->GetMerchant()) / 100; |
1691 if ( v37 < v36 / 3 ) | 1368 if ( pPrice < v36 / 3 ) |
1692 v37 = v36 / 3; | 1369 pPrice = v36 / 3; |
1693 //if (false) | 1370 if(byte_4ED970_skill_learn_ability_by_class_table[pPlayers[uActiveCharacter]->classType][uMessageParam - 36]) |
1694 if(byte_4ED970_skill_learn_ability_by_class_table[pPlayers[uActiveCharacter]->classType][uMessageParam-36]) | 1371 { |
1695 //if ( *(&byte_4ED94C[37 * v35->uClass] + v55) ) | |
1696 { | |
1697 //v38 = (int)(&pPlayers[uActiveCharacter]->uIntelligence + uMessageParam); | |
1698 if ( !pPlayers[uActiveCharacter]->pActiveSkills[uMessageParam - 36] ) | 1372 if ( !pPlayers[uActiveCharacter]->pActiveSkills[uMessageParam - 36] ) |
1699 { | 1373 { |
1700 if ( pParty->uNumGold < v37 ) | 1374 if ( pParty->uNumGold < pPrice ) |
1701 { | 1375 { |
1702 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2); | 1376 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2); |
1703 if ( in_current_building_type == BuildingType_Training || in_current_building_type == BuildingType_Tavern ) | 1377 if ( in_current_building_type == BuildingType_Training || in_current_building_type == BuildingType_Tavern ) |
1704 v39 = 4; | 1378 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_Goodbye); |
1705 else | 1379 else |
1706 v39 = 2; | 1380 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); |
1707 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, (HouseSoundID)v39); | |
1708 } | 1381 } |
1709 else | 1382 else |
1710 { | 1383 { |
1711 Party::TakeGold(v37); | 1384 Party::TakeGold(pPrice); |
1712 dword_F8B1E4 = 1; | 1385 dword_F8B1E4 = 1; |
1713 pPlayers[uActiveCharacter]->pActiveSkills[uMessageParam - 36] = 1; | 1386 pPlayers[uActiveCharacter]->pActiveSkills[uMessageParam - 36] = 1; |
1714 pPlayers[uActiveCharacter]->PlaySound(SPEECH_78, 0); | 1387 pPlayers[uActiveCharacter]->PlaySound(SPEECH_78, 0); |
1715 } | 1388 } |
1716 } | 1389 } |
1717 } | 1390 } |
1718 } | 1391 } |
1719 break; | 1392 break; |
1720 } | 1393 } |
1721 } | 1394 } |
1722 /* | |
1723 if ( uMessageParam != 95 && uMessageParam != 2 ) | |
1724 { | |
1725 if ( uMessageParam == 3 ) | |
1726 { | |
1727 dialog_menu_id = 3; | |
1728 } | |
1729 else | |
1730 { | |
1731 if ( uMessageParam == 4 ) | |
1732 { | |
1733 dialog_menu_id = 4; | |
1734 } | |
1735 else | |
1736 { | |
1737 if ( uMessageParam != 5 ) | |
1738 { | |
1739 if ( uMessageParam > 35 ) | |
1740 { | |
1741 if ( uMessageParam <= 72 ) | |
1742 { | |
1743 v35 = pPlayers[uActiveCharacter]; | |
1744 //v36 = (signed __int64)(*(float *)&p2DEvents_minus1__24[13 * (unsigned int)v8->ptr_1C] * 500.0); | |
1745 v36 = (signed __int64)(p2DEvents[(unsigned int)v8->ptr_1C - 1].flt_24 * 500.0); | |
1746 v37 = v36 * (100 - pPlayers[uActiveCharacter]->GetMerchant()) / 100; | |
1747 if ( v37 < v36 / 3 ) | |
1748 v37 = v36 / 3; | |
1749 | |
1750 __debugbreak(); | |
1751 //pSkillAvailabilityPerClass[8 + v58->uClass][4 + v23] | |
1752 // or | |
1753 //byte_4ED970_skill_learn_ability_by_class_table[v58->uClass][v23 - 36] | |
1754 // or | |
1755 //byte_4ED970_skill_learn_ability_by_class_table[v58->uClass - 1][v23 + 1] | |
1756 | |
1757 if (false) | |
1758 //if ( *(&byte_4ED94C[37 * v35->uClass] + v55) ) | |
1759 { | |
1760 v38 = (int)(&v35->uIntelligence + uMessageParam); | |
1761 if ( !*(short *)v38 ) | |
1762 { | |
1763 if ( pParty->uNumGold < v37 ) | |
1764 { | |
1765 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u); | |
1766 if ( in_current_building_type == BuildingType_Training || in_current_building_type == BuildingType_Tavern ) | |
1767 v39 = 4; | |
1768 else | |
1769 v39 = 2; | |
1770 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, v39); | |
1771 } | |
1772 else | |
1773 { | |
1774 Party::TakeGold(v37); | |
1775 dword_F8B1E4 = 1; | |
1776 *(short *)v38 = 1; | |
1777 v35->PlaySound(SPEECH_78, 0); | |
1778 } | |
1779 } | |
1780 } | |
1781 } | |
1782 else | |
1783 { | |
1784 if ( uMessageParam == 94 ) | |
1785 { | |
1786 pDialogueWindow->eWindowType = WINDOW_MainMenu; | |
1787 UI_CreateEndConversationButton(); | |
1788 InitializaDialogueOptions_Shops(in_current_building_type); | |
1789 } | |
1790 } | |
1791 } | |
1792 return; | |
1793 } | |
1794 dialog_menu_id = 5; | |
1795 } | |
1796 } | |
1797 sub_421B2C_PlaceInInventory_or_DropPickedItem(); | |
1798 return; | |
1799 } | |
1800 if ( pParty->field_3C.Shops_next_generation_time[(unsigned int)v8->ptr_1C] < (signed __int64)pParty->uTimePlayed ) | |
1801 { | |
1802 GenerateStandartShopItems(); | |
1803 GenerateSpecialShopItems(); | |
1804 v8 = window_SpeakInHouse; | |
1805 v40 = window_SpeakInHouse->par1C; | |
1806 //v3 = dword_F8B198; | |
1807 v41 = pParty->uTimePlayed | |
1808 //+ (signed __int64)((double)(11059200 * (signed int)p2DEvents_minus1[26 * (unsigned int)ptr_507BC0->ptr_1C]) | |
1809 + (signed __int64)((double)(11059200 * (signed int)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].field_1C) | |
1810 * 0.033333335); | |
1811 pParty->field_3C.Shops_next_generation_time[v40] = v41; | |
1812 | |
1813 } | |
1814 v42 = v8->ptr_1C; | |
1815 v43 = 0; | |
1816 //v44 = p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]; | |
1817 v44 = p2DEvents[(unsigned int)v8->ptr_1C - 1].uType; | |
1818 if ( uMessageParam == 2 ) | |
1819 { | |
1820 if ( uItemsAmountPerShopType[v44] ) | |
1821 { | |
1822 do | |
1823 { | |
1824 v45 = pParty->StandartItemsInShops[(int)v42][v43].uItemID; | |
1825 if ( v45 ) | |
1826 { | |
1827 v46 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v45].pIconName, TEXTURE_16BIT_PALETTE); | |
1828 //v3 = dword_F8B198; | |
1829 v8 = window_SpeakInHouse; | |
1830 ItemsInShopTexture[v43] = &pIcons_LOD->pTextures[v46]; | |
1831 } | |
1832 v42 = v8->ptr_1C; | |
1833 ++v43; | |
1834 } | |
1835 //while ( v43 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ); | |
1836 while ( v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ); | |
1837 } | |
1838 if ( in_current_building_type == BuildingType_WeaponShop ) | |
1839 { | |
1840 v47 = v8->ptr_1C; | |
1841 v48 = 0; | |
1842 //if ( _4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ) | |
1843 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ) | |
1844 { | |
1845 do | |
1846 { | |
1847 // if ( pParty->field_777C[9 * (v48 + 12 * (int)v47)] ) | |
1848 if ( pParty->StandartItemsInShops[(int)v47][v48].uItemID); | |
1849 { | |
1850 v49 = rand(); | |
1851 v8 = window_SpeakInHouse; | |
1852 word_F8B158[v48] = v49 % (300 - ItemsInShopTexture[v48]->uTextureHeight); | |
1853 } | |
1854 v47 = v8->ptr_1C; | |
1855 ++v48; | |
1856 } | |
1857 //while ( v48 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ); | |
1858 while ( v48 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ); | |
1859 } | |
1860 } | |
1861 } | |
1862 if ( uMessageParam == 95 ) | |
1863 { | |
1864 if ( uItemsAmountPerShopType[v44] ) | |
1865 { | |
1866 do | |
1867 { | |
1868 //v50 = pParty->field_C59C[9 * (v43 + 12 * (int)v42) + 724]; | |
1869 v50=pParty->SpecialItemsInShops[(unsigned int)v42][(signed int)v43].uItemID; | |
1870 if ( v50 ) | |
1871 { | |
1872 v51 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v50].pIconName, TEXTURE_16BIT_PALETTE); | |
1873 //v3 = dword_F8B198; | |
1874 v8 = window_SpeakInHouse; | |
1875 ItemsInShopTexture[v43] = &pIcons_LOD->pTextures[v51]; | |
1876 } | |
1877 v42 = v8->ptr_1C; | |
1878 ++v43; | |
1879 } | |
1880 //while ( v43 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ); | |
1881 while ( v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ); | |
1882 } | |
1883 if ( in_current_building_type == BuildingType_WeaponShop ) | |
1884 { | |
1885 v52 = v8->ptr_1C; | |
1886 v53 = 0; | |
1887 //if ( _4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ) | |
1888 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ) | |
1889 { | |
1890 do | |
1891 { | |
1892 // if ( pParty->field_C59C[9 * (v53 + 12 * (int)v52) + 724] ) | |
1893 if (pParty->SpecialItemsInShops[(unsigned int)v52][v53].uItemID) | |
1894 { | |
1895 v54 = rand(); | |
1896 v8 = window_SpeakInHouse; | |
1897 word_F8B158[v53] = v54 % (300 - ItemsInShopTexture[v53]->uTextureHeight); | |
1898 } | |
1899 v52 = v8->ptr_1C; | |
1900 ++v53; | |
1901 } | |
1902 //while ( v53 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ); | |
1903 while ( v53 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType ] ); | |
1904 } | |
1905 } | |
1906 } | |
1907 */ | |
1908 } | 1395 } |
1909 //----- (004B6943) -------------------------------------------------------- | 1396 //----- (004B6943) -------------------------------------------------------- |
1910 void TravelByTransport() | 1397 void TravelByTransport() |
1911 { | 1398 { |
1912 signed int v4; // ebx@1 | 1399 signed int v4; // ebx@1 |