World of Might and Magic
0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
|
См. исходные тексты.
|
enum | HOUSE_DIALOGUE_MENU : int32_t {
HOUSE_DIALOGUE_NULL = 0,
HOUSE_DIALOGUE_MAIN = 1,
HOUSE_DIALOGUE_SHOP_BUY_STANDARD = 2,
HOUSE_DIALOGUE_SHOP_SELL = 3,
HOUSE_DIALOGUE_SHOP_IDENTIFY = 4,
HOUSE_DIALOGUE_SHOP_REPAIR = 5,
HOUSE_DIALOGUE_SHOP_6 = 6,
HOUSE_DIALOGUE_BANK_PUT_GOLD = 7,
HOUSE_DIALOGUE_BANK_GET_GOLD = 8,
HOUSE_DIALOGUE_9 = 9,
HOUSE_DIALOGUE_TEMPLE_HEAL = 10,
HOUSE_DIALOGUE_TEMPLE_DONATE = 11,
HOUSE_DIALOGUE_12 = 12,
HOUSE_DIALOGUE_13 = 13,
HOUSE_DIALOGUE_14 = 14,
HOUSE_DIALOGUE_TAVERN_REST = 15,
HOUSE_DIALOGUE_TAVERN_BUY_FOOD = 16,
HOUSE_DIALOGUE_TRAININGHALL_TRAIN = 17,
HOUSE_DIALOGUE_GUILD_BUY_BOOKS = 18,
HOUSE_DIALOGUE_36 = 36,
HOUSE_DIALOGUE_GUILD_LEARN_SKILL = 72,
HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT = 94,
HOUSE_DIALOGUE_SHOP_BUY_SPECIAL = 95,
HOUSE_DIALOGUE_LEARN_SKILLS = 96,
HOUSE_DIALOGUE_97 = 97,
HOUSE_DIALOGUE_98 = 98,
HOUSE_DIALOGUE_TOWNHALL_MESSAGE = 99,
HOUSE_DIALOGUE_TOWNHALL_PAY_FINE = 100,
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN = 101,
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RULES = 102,
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_VICTORY_CONDITIONS = 103,
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT = 104,
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1 = 105,
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_2 = 106,
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_3 = 107,
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_4 = 108,
HOUSE_DIALOGUE_OTHER = -1
} |
|
enum | HOUSE_ID {
HOUSE_SMITH_EMERALD_ISLE = 1,
HOUSE_ARMOURER_EMERALD_ISLE = 15,
HOUSE_MAGE_EMERALD_ISLE = 29,
HOUSE_MAGE_HARMONDALE = 30,
HOUSE_ALCHEMIST_EMERALD_ISLE = 42,
HOUSE_ALCHEMIST_HARMONDALE = 43,
HOUSE_STABLES_HARMONDALE = 54,
HOUSE_STABLES_STEADWICK = 55,
HOUSE_STABLES_TULAREAN_FOREST = 56,
HOUSE_STABLES_DEYJA = 57,
HOUSE_STABLES_BRACADA_DESERT = 58,
HOUSE_STABLES_TATALIA = 59,
HOUSE_STABLES_AVLEE = 60,
HOUSE_STABLES_61 = 61,
HOUSE_STABLES_62 = 62,
HOUSE_BOATS_EMERALD_ISLE = 63,
HOUSE_BOATS_ERATHIA = 64,
HOUSE_BOATS_TULAREAN_FOREST = 65,
HOUSE_BOATS_BRACADA_DESERT = 66,
HOUSE_BOATS_EVENMORN_ISLAND = 67,
HOUSE_BOATS_68 = 68,
HOUSE_BOATS_TATALIA = 69,
HOUSE_BOATS_AVLEE = 70,
HOUSE_BOATS_71 = 71,
HOUSE_BOATS_72 = 72,
HOUSE_BOATS_73 = 73,
HOUSE_TEMPLE_EMERALD_ISLE = 74,
HOUSE_TEMPLE_HARMONDALE = 75,
HOUSE_TRAINING_HALL_EMERALD_ISLE = 89,
HOUSE_TRAINING_HALL_HARMONDALE = 90,
HOUSE_TRAINING_HALL_91 = 91,
HOUSE_TRAINING_HALL_92 = 92,
HOUSE_TRAINING_HALL_93 = 93,
HOUSE_TRAINING_HALL_94 = 94,
HOUSE_TRAINING_HALL_95 = 95,
HOUSE_TOWNHALL_HARMONDALE = 102,
HOUSE_TAVERN_EMERALD_ISLE = 107,
HOUSE_BANK_HARMONDALE = 128,
HOUSE_FIRE_GUILD_INITIATE_EMERALD_ISLE = 139,
HOUSE_AIR_GUILD_INITIATE_EMERALD_ISLE = 143,
HOUSE_SPIRIT_GUILD_INITIATE_EMERALD_ISLE = 155,
HOUSE_BODY_GUILD_INITIATE_EMERALD_ISLE = 163,
HOUSE_BODY_GUILD_ERATHIA = 165,
HOUSE_DARK_GUILD_PIT = 170,
HOUSE_LORD_AND_JUDGE_EMERALD_ISLE = 186,
HOUSE_JAIL = 187,
HOUSE_JUDGE_HARMONDALE = 190,
HOUSE_224_EMERALD_ISLE = 224,
HOUSE_225_EMERALD_ISLE = 225,
HOUSE_238_EMERALD_ISLE = 238,
HOUSE_466_HARMONDALE = 466,
HOUSE_467_HARMONDALE = 467,
HOUSE_468_HARMONDALE = 468,
HOUSE_472_HARMONDALE = 472,
HOUSE_488_HARMONDALE = 488,
HOUSE_489_HARMONDALE = 489,
HOUSE_600 = 600,
HOUSE_601 = 601
} |
|
enum | HouseSoundID : unsigned __int32 { HouseSound_Greeting = 1,
HouseSound_NotEnoughMoney_TrainingSuccessful = 2,
HouseSound_Greeting_2 = 3,
HouseSound_Goodbye = 4
} |
|
◆ HOUSE_DIALOGUE_MENU
Элементы перечислений |
---|
HOUSE_DIALOGUE_NULL | |
HOUSE_DIALOGUE_MAIN | |
HOUSE_DIALOGUE_SHOP_BUY_STANDARD | |
HOUSE_DIALOGUE_SHOP_SELL | |
HOUSE_DIALOGUE_SHOP_IDENTIFY | |
HOUSE_DIALOGUE_SHOP_REPAIR | |
HOUSE_DIALOGUE_SHOP_6 | |
HOUSE_DIALOGUE_BANK_PUT_GOLD | |
HOUSE_DIALOGUE_BANK_GET_GOLD | |
HOUSE_DIALOGUE_9 | |
HOUSE_DIALOGUE_TEMPLE_HEAL | |
HOUSE_DIALOGUE_TEMPLE_DONATE | |
HOUSE_DIALOGUE_12 | |
HOUSE_DIALOGUE_13 | |
HOUSE_DIALOGUE_14 | |
HOUSE_DIALOGUE_TAVERN_REST | |
HOUSE_DIALOGUE_TAVERN_BUY_FOOD | |
HOUSE_DIALOGUE_TRAININGHALL_TRAIN | |
HOUSE_DIALOGUE_GUILD_BUY_BOOKS | |
HOUSE_DIALOGUE_36 | |
HOUSE_DIALOGUE_GUILD_LEARN_SKILL | |
HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT | |
HOUSE_DIALOGUE_SHOP_BUY_SPECIAL | |
HOUSE_DIALOGUE_LEARN_SKILLS | |
HOUSE_DIALOGUE_97 | |
HOUSE_DIALOGUE_98 | |
HOUSE_DIALOGUE_TOWNHALL_MESSAGE | |
HOUSE_DIALOGUE_TOWNHALL_PAY_FINE | |
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN | |
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RULES | |
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_VICTORY_CONDITIONS | |
HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT | |
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1 | |
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_2 | |
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_3 | |
HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_4 | |
HOUSE_DIALOGUE_OTHER | |
См. определение в файле UIHouses.h строка 6
◆ HOUSE_ID
Элементы перечислений |
---|
HOUSE_SMITH_EMERALD_ISLE | |
HOUSE_ARMOURER_EMERALD_ISLE | |
HOUSE_MAGE_EMERALD_ISLE | |
HOUSE_MAGE_HARMONDALE | |
HOUSE_ALCHEMIST_EMERALD_ISLE | |
HOUSE_ALCHEMIST_HARMONDALE | |
HOUSE_STABLES_HARMONDALE | |
HOUSE_STABLES_STEADWICK | |
HOUSE_STABLES_TULAREAN_FOREST | |
HOUSE_STABLES_DEYJA | |
HOUSE_STABLES_BRACADA_DESERT | |
HOUSE_STABLES_TATALIA | |
HOUSE_STABLES_AVLEE | |
HOUSE_STABLES_61 | |
HOUSE_STABLES_62 | |
HOUSE_BOATS_EMERALD_ISLE | |
HOUSE_BOATS_ERATHIA | |
HOUSE_BOATS_TULAREAN_FOREST | |
HOUSE_BOATS_BRACADA_DESERT | |
HOUSE_BOATS_EVENMORN_ISLAND | |
HOUSE_BOATS_68 | |
HOUSE_BOATS_TATALIA | |
HOUSE_BOATS_AVLEE | |
HOUSE_BOATS_71 | |
HOUSE_BOATS_72 | |
HOUSE_BOATS_73 | |
HOUSE_TEMPLE_EMERALD_ISLE | |
HOUSE_TEMPLE_HARMONDALE | |
HOUSE_TRAINING_HALL_EMERALD_ISLE | |
HOUSE_TRAINING_HALL_HARMONDALE | |
HOUSE_TRAINING_HALL_91 | |
HOUSE_TRAINING_HALL_92 | |
HOUSE_TRAINING_HALL_93 | |
HOUSE_TRAINING_HALL_94 | |
HOUSE_TRAINING_HALL_95 | |
HOUSE_TOWNHALL_HARMONDALE | |
HOUSE_TAVERN_EMERALD_ISLE | |
HOUSE_BANK_HARMONDALE | |
HOUSE_FIRE_GUILD_INITIATE_EMERALD_ISLE | |
HOUSE_AIR_GUILD_INITIATE_EMERALD_ISLE | |
HOUSE_SPIRIT_GUILD_INITIATE_EMERALD_ISLE | |
HOUSE_BODY_GUILD_INITIATE_EMERALD_ISLE | |
HOUSE_BODY_GUILD_ERATHIA | |
HOUSE_DARK_GUILD_PIT | |
HOUSE_LORD_AND_JUDGE_EMERALD_ISLE | |
HOUSE_JAIL | |
HOUSE_JUDGE_HARMONDALE | |
HOUSE_224_EMERALD_ISLE | |
HOUSE_225_EMERALD_ISLE | |
HOUSE_238_EMERALD_ISLE | |
HOUSE_466_HARMONDALE | |
HOUSE_467_HARMONDALE | |
HOUSE_468_HARMONDALE | |
HOUSE_472_HARMONDALE | |
HOUSE_488_HARMONDALE | |
HOUSE_489_HARMONDALE | |
HOUSE_600 | |
HOUSE_601 | |
См. определение в файле UIHouses.h строка 50
◆ HouseSoundID
Элементы перечислений |
---|
HouseSound_Greeting | |
HouseSound_NotEnoughMoney_TrainingSuccessful | |
HouseSound_Greeting_2 | |
HouseSound_Goodbye | |
См. определение в файле UIHouses.h строка 112
◆ HouseUI_CheckIfPlayerCanInteract()
bool HouseUI_CheckIfPlayerCanInteract |
( |
| ) |
|
См. определение в файле UIHouses.cpp строка 797
Перекрестные ссылки GUIFont::CalcTextHeight(), dword_F8B1E0, Localization::FormatString(), Localization::GetString(), localization, pDialogueWindow, pFontArrus, GUIWindow::pNumPresenceButton, pPlayers, pPrimaryWindow, uActiveCharacter, GUIWindow::uFrameX и ui_house_player_cant_interact_color.
Используется в AlchemyMagicShopWares(), ArmorShopWares(), GuildDialog(), ShopDialogIdentify(), ShopDialogLearn(), ShopDialogMain(), ShopDialogRepair(), ShopDialogSellEquip(), sub_4B6478(), TavernDialog(), TempleDialog(), TrainingDialog(), TravelByTransport(), UIShop_Buy_Identify_Repair() и WeaponShopWares().
◆ TrainingDialog()
void TrainingDialog |
( |
const char * |
s | ) |
|
См. определение в файле UIHouses.cpp строка 2933
2934 unsigned __int64 v5;
2945 int all_text_height;
2949 unsigned __int16 pTextColor;
2954 training_dialog_window.
uFrameX = 483;
2956 training_dialog_window.
uFrameZ = 334;
2969 if (v8 == 4) v8 = 3;
2972 v10 = (
signed __int64)(v9 *
2977 if (pPrice < v10 / 3) pPrice = v10 / 3;
2980 all_text_height = 0;
2993 i < pDialogueWindow->pNumPresenceButton +
2998 static String shop_option_str_container;
3003 shop_option_str_container =
3012 shop_option_str_container.c_str();
3017 shop_option_str_container =
3019 LSTR_XP_UNTIL_NEXT_LEVEL,
3023 shop_option_str_container =
3030 shop_option_str_container.c_str();
3040 (2 * (87 - (174 - all_text_height) / 2) - all_text_height) /
3042 (174 - all_text_height) / 2 / 2 + 138;
3048 i < pDialogueWindow->pStartingPosActiveItem +
3052 pButton->
uY = (174 - all_text_height) / 2 + v49;
3056 pButton->
uHeight = pTextHeight;
3057 pButton->
uW = pTextHeight + pButton->
uY - 1 + 6;
3059 pTextColor =
Color16(0xE1u, 0xCDu, 0x23u);
3061 pTextColor =
Color16(255, 255, 255);
3103 for (
uint _it = 1; _it < 4; ++_it) {
3109 max_level_in_party) {
3146 LSTR_XP_UNTIL_NEXT_LEVEL,
3181 v14 = (
signed __int64)(
p2DEvents[(
unsigned int)
3188 if (pPrice < v14 / 3) pPrice = v14 / 3;
3211 v73 = (
signed int)(149 - all_text_height) /
index;
3212 if (v73 > 32) v73 = 32;
3213 v19 = (
signed int)(149 -
index * v73 - all_text_height) / 2 -
3224 ->pActiveSkills[pButton->
msg_param - 36]) {
3229 pButton->
uY = v73 + v19;
3233 pButton->
uHeight = pTextHeight;
3234 pButton->
uW = pButton->
uY + pTextHeight - 1 + 6;
3235 v19 = pButton->
uY + pTextHeight - 1;
3236 pTextColor =
Color16(0xE1u, 0xCDu, 0x23u);
3238 pTextColor =
Color16(255, 255, 255);
3258 pFontArrus, 0, (174 - label_height) / 2 + 138,
Перекрестные ссылки _494820_training_time(), byte_4ED970_skill_learn_ability_by_class_table, GUIFont::CalcTextHeight(), Color16(), dialog_menu_id, GUIWindow::DrawTitleText(), _2devent::flt_24, Localization::FormatString(), _2devent::fPriceMultiplier, GameUI_StatusBar_OnEvent(), Localization::GetClassName(), GUIWindow::GetControl(), Party::GetFirstCanAct(), Party::GetGold(), Localization::GetSkillName(), Localization::GetString(), HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_TRAININGHALL_TRAIN, HOUSE_TRAINING_HALL_94, HOUSE_TRAINING_HALL_95, HOUSE_TRAINING_HALL_EMERALD_ISLE, HouseSound_NotEnoughMoney_TrainingSuccessful, HouseUI_CheckIfPlayerCanInteract(), LEVEL_Outdoor, localization, GUIButton::msg_param, p2DEvents, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, pFontArrus, player_levels, PlayHouseSound(), pMaxLevelPerTrainingHallType, pMessageQueue_50CBD0, pNPCTopics, GUIWindow::pNumPresenceButton, pOutdoor, pParty, pPlayers, pShopOptions, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, RestAndHeal(), OutdoorLocation::SetFog(), SPEECH_87, StringPrintf(), Party::TakeGold(), uActiveCharacter, Party::uCurrentHour, uCurrentlyLoadedLevelType, Party::uCurrentMinute, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, GUIButton::uHeight, UIMSG_Escape, GUIButton::uW, GUIButton::uY и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ JailDialog()
◆ MagicShopDialog()
См. определение в файле UIShops.cpp строка 827
Перекрестные ссылки __debugbreak(), AlchemyMagicShopWares(), BuildingType_MagicShop, dialog_menu_id, HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_SHOP_BUY_SPECIAL, HOUSE_DIALOGUE_SHOP_BUY_STANDARD, HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT, HOUSE_DIALOGUE_SHOP_IDENTIFY, HOUSE_DIALOGUE_SHOP_REPAIR, HOUSE_DIALOGUE_SHOP_SELL, ShopDialogDisplayEquip(), ShopDialogIdentify(), ShopDialogLearn(), ShopDialogMain(), ShopDialogRepair(), ShopDialogSellEquip(), GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ GuildDialog()
См. определение в файле UIGuilds.cpp строка 27
31 unsigned __int16 pTextColor;
44 int base_teach_price =
48 int pPrice = base_teach_price *
50 if (pPrice < base_teach_price / 3) pPrice = base_teach_price / 3;
75 i < pDialogueWindow->pNumPresenceButton +
110 (174 - pTextHeight) / 2 + 138,
111 Color16(0xFFu, 0xFFu, 0x9Bu), str, 3);
121 textspacings = (149 - all_text_height) / dialogopts;
122 if (textspacings > 32) {
126 textoffset = 162 - textspacings / 2;
129 i < pDialogueWindow->pNumPresenceButton +
135 pButton->
uY = textspacings + textoffset;
139 pButton->
uHeight = pTextHeight;
140 textoffset = pButton->
uY + pTextHeight - 1;
141 pButton->
uW = textoffset + 6;
142 pTextColor =
Color16(0xFFu, 0xFFu, 0x9Bu);
144 pTextColor =
Color16(0xFFu, 0xFFu, 0xFFu);
154 ->pActiveSkills[pButton->
msg_param - 36]) {
155 pButton->
uY = textspacings + textoffset;
159 pButton->
uHeight = pTextHeight;
160 textoffset = pButton->
uY + pTextHeight - 1;
161 pButton->
uW = textoffset + 6;
162 pTextColor =
Color16(0xFFu, 0xFFu, 0x9Bu);
164 pTextColor =
Color16(0xFFu, 0xFFu, 0xFFu);
183 for (pX = 32; pX < 452; pX += 70) {
188 render->DrawTextureAlphaNew(
189 pX / 640.0
f, 90 / 480.0
f,
196 render->DrawTextureAlphaNew(
197 pX / 640.0
f, 250 / 480.0
f,
206 for (
uint i = 0; i < 12; ++i) {
227 int testx = (pt.
x - 32) / 70;
228 if (testx >= 0 && testx < 6) {
238 testpos = 32 + 70 * testx - 420;
240 testpos = 32 + 70 * testx;
243 if (pt.
x >= testpos &&
256 ->SelectPhrasesTransaction(
266 Color16(0xFFu, 0xFFu, 0xFFu), str, 3);
Перекрестные ссылки _449B57_test_bit(), BuildDialogueString(), BuildingType_MagicShop, byte_4ED970_skill_learn_ability_by_class_table, GUIFont::CalcTextHeight(), Color16(), dialog_menu_id, GUIWindow::DrawShops_next_generation_time_string(), GUIWindow::DrawTitleText(), Localization::FormatString(), _2devent::fPriceMultiplier, GameUI_StatusBar_DrawImmediate(), GameUI_StatusBar_OnEvent(), Localization::GetClassName(), GUIWindow::GetControl(), Mouse::GetCursorPos(), Party::GetGold(), Party::GetPlayingTime(), Localization::GetSkillName(), Localization::GetString(), guild_mambership_flags, HOUSE_DIALOGUE_GUILD_BUY_BOOKS, HOUSE_DIALOGUE_MAIN, HouseSound_NotEnoughMoney_TrainingSuccessful, HouseUI_CheckIfPlayerCanInteract(), localization, GUIButton::msg_param, p2DEvents, GUIWindow::par1C, Party::PartyTimes, pAudioPlayer, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, pFontArrus, PlayHouseSound(), AudioPlayer::PlaySound(), pMerchantsBuyPhrases, pMessageQueue_50CBD0, pNPCTopics, GUIWindow::pNumPresenceButton, pParty, pPlayers, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, render, Engine_::IocContainer::ResolveMouse(), shop_ui_background, shop_ui_items_in_store, PartyTimeStruct::Shops_next_generation_time, SOUND_error, Party::SpellBooksInGuilds, Party::TakeGold(), uActiveCharacter, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, GUIButton::uHeight, UIMSG_Escape, ItemGen::uItemID, GUIButton::uW, GUIButton::uY, window_SpeakInHouse, Point::x и Point::y.
Используется в GUIWindow::HouseDialogManager().
◆ sub_4B6478()
См. определение в файле UIHouses.cpp строка 3266
3271 int all_text_height;
3274 unsigned __int16 pTextColor;
3291 v3 = (
signed __int64)((
double)v32 *
3296 if (pPrice <
v3 / 3) pPrice =
v3 / 3;
3300 ->_achieved_awards_bits,
3305 pFontArrus, 0, (212 - pTextHeight) / 2 + 101,
3311 all_text_height = 0;
3314 i < pDialogueWindow->pNumPresenceButton +
3341 (174 - pTextHeight) / 2 + 138,
3342 Color16(0xFFu, 0xFFu, 0x9Bu), str, 3);
3346 auto skill_price_label =
3351 v32 = (149 - all_text_height) /
index;
3352 if (v32 > 32) v32 = 32;
3353 index = (149 -
index * v32 - all_text_height) / 2 - v32 / 2 + 162;
3358 i < pDialogueWindow->pNumPresenceButton +
3366 ->pActiveSkills[pButton->
msg_param - 36]) {
3371 pButton->
uHeight = pTextHeight;
3372 pButton->
uW = pButton->
uY + pTextHeight - 1 + 6;
3373 index = pButton->
uY + pTextHeight - 1;
3374 pTextColor =
Color16(0xFFu, 0xFFu, 0x9Bu);
3376 pTextColor =
Color16(0xFFu, 0xFFu, 0xFFu);
Перекрестные ссылки _449B57_test_bit(), __debugbreak(), byte_4ED970_skill_learn_ability_by_class_table, GUIFont::CalcTextHeight(), Color16(), dialog_menu_id, GUIWindow::DrawTitleText(), Localization::FormatString(), _2devent::fPriceMultiplier, GameUI_StatusBar_OnEvent(), Localization::GetClassName(), GUIWindow::GetControl(), Party::GetGold(), Localization::GetSkillName(), Localization::GetString(), HOUSE_DIALOGUE_MAIN, HouseUI_CheckIfPlayerCanInteract(), localization, GUIButton::msg_param, p2DEvents, pAudioPlayer, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, pFontArrus, PlayHouseSound(), AudioPlayer::PlaySound(), pMessageQueue_50CBD0, pNPCTopics, GUIWindow::pNumPresenceButton, pParty, pPlayers, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, SOUND_error, Party::TakeGold(), uActiveCharacter, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, GUIButton::uHeight, UIMSG_Escape, _2devent::uType, GUIButton::uW, GUIButton::uY, window_SpeakInHouse и word_4F0754.
Используется в GUIWindow::HouseDialogManager().
◆ IsTravelAvailable()
bool IsTravelAvailable |
( |
int |
a1 | ) |
|
◆ TravelByTransport()
void TravelByTransport |
( |
| ) |
|
См. определение в файле UIHouses.cpp строка 1673
1681 int pRealTextHeight;
1686 char pTopicArray[5][100];
1687 int pPrimaryTextHeight;
1689 unsigned int pPrice;
1692 unsigned int pCurrentButton;
1707 if ((
signed int)pPrice < v4 / 3) pPrice = v4 / 3;
1711 strcpy(pTopicArray[4],
"");
1718 pPrimaryTextHeight = pRealTextHeight;
1729 if (schedule_id != 255) {
1732 if (pCurrentButton >= 6)
1739 if (schedule_id != 255 && v25 &&
1750 sprintf(pTopicArray[
index],
"\f%05d",
1753 sprintf(pTopicArray[
index],
"\f%05d",
1769 if (travel_time < 1) travel_time = 1;
1770 if (schedule_id != 255) {
1779 strcat(pTopicArray[
index], str.c_str());
1780 strcat(pTopicArray[
index],
"\n \n");
1781 pButton->
uY = pRealTextHeight;
1784 pButton->
uHeight = pTextHeight;
1785 pButton->
uW = pButton->
uY + pTextHeight - 1 + 6;
1790 strcpy(pTopicArray[
index],
"");
1800 if (pRealTextHeight != pPrimaryTextHeight) {
1806 pTopicArray[1], pTopicArray[2], pTopicArray[3],
1882 if (v12 < 1) v12 = 1;
1887 if (v15 < v14) v15 = v14;
Перекрестные ссылки _449B57_test_bit(), __debugbreak(), Party::_quest_bits, stru365_travel_info::arrival_rot_y, stru365_travel_info::arrival_x, stru365_travel_info::arrival_y, stru365_travel_info::arrival_z, BuildingType_Stables, GUIFont::CalcTextHeight(), CheckHiredNPCSpeciality(), Color16(), dialog_menu_id, GUIWindow::DrawTitleText(), dword_6BE364_game_settings_1, Explorer, Localization::FormatString(), _2devent::fPriceMultiplier, GAME_STATE_CHANGE_LOCATION, GameUI_StatusBar_OnEvent(), GUIWindow::GetControl(), Party::GetGold(), GUIFont::GetHeight(), Localization::GetString(), Horseman, HOUSE_BOATS_EMERALD_ISLE, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1, HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_4, HOUSE_STABLES_HARMONDALE, HouseDialogPressCloseBtn(), HouseSound_Greeting_2, HouseSound_NotEnoughMoney_TrainingSuccessful, HouseUI_CheckIfPlayerCanInteract(), localization, Navigator, OS_GetTime(), OS_Sleep(), p2DEvents, Party_Teleport_Cam_Pitch, Party_Teleport_Cam_Yaw, Party_Teleport_X_Pos, Party_Teleport_Y_Pos, Party_Teleport_Z_Pos, Party_Teleport_Z_Speed, pAudioPlayer, pCurrentMapName, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, MapInfo::pFilename, pFontArrus, pIndoorCameraD3D, MapStats::pInfos, Pirate, PlayHouseSound(), AudioPlayer::PlaySound(), pMapStats, pMessageQueue_50CBD0, MapInfo::pName, GUIWindow::pNumPresenceButton, pParty, pPlayers, stru365_travel_info::pSchedule, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, RestAndHeal(), Sailor, SaveGame(), SOUND_error, SPEECH_CarriageReady, SPEECH_SetSail, Party::sRotationX, IndoorCameraD3D::sRotationY, Party::sRotationY, Start_Party_Teleport_Flag, AudioPlayer::StopChannels(), StringPrintf(), Party::TakeGold(), transport_routes, transport_schedule, uActiveCharacter, Party::uCurrentDayOfMonth, Party::uFallStartY, Party::uFlags, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, uGameState, GUIButton::uHeight, UIMSG_Escape, stru365_travel_info::uMapInfoID, stru365_travel_info::uQuestBit, stru365_travel_info::uTravelTime, _2devent::uType, GUIButton::uW, GUIButton::uY, Party::vPosition и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ TempleDialog()
См. определение в файле UIHouses.cpp строка 2599
2602 unsigned __int16 pTextColor;
2606 unsigned __int8
index;
2608 unsigned int pCurrentItem;
2609 int all_text_height;
2629 static String shop_option_container;
2630 shop_option_container =
2638 all_text_height = 0;
2647 v64 = (174 - (
signed int)all_text_height) /
2649 if (v64 > 32) v64 = 32;
2652 (
signed int)all_text_height) /
2660 (
signed int)pCurrentItem <
2665 pButton->
uY = v64 + all_text_height;
2668 pButton->
uHeight = pTextHeight;
2669 pButton->
uW = pButton->
uY + pTextHeight - 1 + 6;
2670 all_text_height = pButton->
uW;
2671 pTextColor =
Color16(0xFFu, 0xFFu, 0x9Bu);
2673 pTextColor =
Color16(0xFFu, 0xFFu, 0xFFu);
2832 all_text_height = 0;
2839 v64 = (
signed int)(pCurrentItem *
2843 if (v64 < (
signed int)pCurrentItem / 3)
2844 v64 = (
signed int)pCurrentItem / 3;
2847 i < pDialogueWindow->pNumPresenceButton +
2865 v64 = (149 - (
signed int)all_text_height) /
2866 (
signed int)pCurrentItem;
2867 if (v64 > 32) v64 = 32;
2868 all_text_height = (
signed int)(149 - pCurrentItem * v64 -
2869 (
int)all_text_height) /
2877 i < pDialogueWindow->pNumPresenceButton +
2885 ->pActiveSkills[pButton->
msg_param - 36]) {
2890 pButton->
uY = v64 + all_text_height;
2895 pButton->
uHeight = pTextHeight;
2896 pButton->
uW = pButton->
uY + pTextHeight - 1 + 6;
2897 all_text_height = pButton->
uW;
2898 pTextColor =
Color16(0xFFu, 0xFFu, 0x9Bu);
2901 pTextColor =
Color16(0xFFu, 0xFFu, 0xFFu);
2926 pFontArrus, 0, (174 - pTextHeight) / 2 + 138,
2927 Color16(0xFFu, 0xFFu, 0x9Bu), str, 3);
Перекрестные ссылки _42777D_CastSpell_UseWand_ShootArrow(), OtherOverlayList::_4418B1(), byte_4ED970_skill_learn_ability_by_class_table, byte_F8B1EF, GUIFont::CalcTextHeight(), Color16(), Condition_Dead, Condition_Eradicated, Condition_Pertified, Condition_Zombie, OutdoorLocation::ddm, dialog_menu_id, IndoorLocation::dlv, GUIWindow::DrawTitleText(), _2devent::flt_24, Localization::FormatString(), _2devent::fPriceMultiplier, GameUI_ReloadPlayerPortraits(), GameUI_StatusBar_OnEvent(), Localization::GetClassName(), GUIWindow::GetControl(), Party::GetFirstCanAct(), Party::GetGold(), Party::GetPlayingTime(), Localization::GetSkillName(), Localization::GetString(), HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_TEMPLE_DONATE, HOUSE_DIALOGUE_TEMPLE_HEAL, HouseSound_NotEnoughMoney_TrainingSuccessful, HouseUI_CheckIfPlayerCanInteract(), LEVEL_Outdoor, localization, GUIButton::msg_param, p2DEvents, GUIWindow::par1C, pAudioPlayer, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, pFontArrus, pIndoor, PlayHouseSound(), AudioPlayer::PlaySound(), pMessageQueue_50CBD0, GUIWindow::pNumPresenceButton, pOtherOverlayList, pOutdoor, pParty, pPlayers, pShopOptions, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, SOUND_heal, SPEECH_82, SPEECH_83, SPELL_AIR_WIZARD_EYE, SPELL_BODY_PROTECTION_FROM_MAGIC, SPELL_LIGHT_DAY_OF_PROTECTION, SPELL_LIGHT_HOUR_OF_POWER, SPELL_SPIRIT_PRESERVATION, StringPrintf(), Party::TakeGold(), uActiveCharacter, Party::uCurrentDayOfMonth, uCurrentlyLoadedLevelType, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, GUIButton::uHeight, UIMSG_Escape, DDM_DLV_Header::uReputation, GUIButton::uW, GUIButton::uY и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ TownHallDialog()
См. определение в файле UIHouses.cpp строка 1915
1918 signed int pStringSum;
1923 unsigned __int16 pTextColor;
1929 townHall_window.
uFrameX = 483;
1931 townHall_window.
uFrameZ = 334;
1937 Color16(0xFFu, 0xFFu, 0x9Bu), fine_str, 3);
1951 for (
uint i = 0; i < pStringSum; ++i)
1954 v29 = (100 - pTextHeight) / pStringSum;
1955 v16 = 80 - pStringSum * ((100 - pTextHeight) / pStringSum);
1956 v17 = (v16 / 2) - v29 / 2 + 158;
1961 i < pDialogueWindow->pNumPresenceButton +
1965 pButton->
uY = v29 + v17;
1968 pButton->
uHeight = pTextHeight;
1969 v17 = pButton->
uY + pTextHeight - 1;
1970 pButton->
uW = v17 + 6;
1971 pTextColor =
Color16(0xFFu, 0xFFu, 0x9Bu);
1973 pTextColor =
Color16(0xFFu, 0xFFu, 0xFFu);
1988 "\f%05d%s\f%05d",
Color16(0xFFu, 0xFFu, 0x9Bu),
1991 Color16(0xFFu, 0xFFu, 0xFFu)),
2000 window.uFrameWidth, 13) +
2002 if (352 - pTextHeight < 8) {
2008 render->DrawTextureCustomHeight(8 / 640.0
f,
2009 (352 - pTextHeight) / 480.0
f,
2011 render->DrawTextureAlphaNew(
2013 window.DrawText(pOutString, 13, 354 - pTextHeight, 0,
2022 WINDOW_INPUT_IN_PROGRESS) {
2040 WINDOW_INPUT_CONFIRMED) {
2061 WINDOW_INPUT_CANCELLED) {
Перекрестные ссылки _591428_endcap, bountyHunting_monster_id_for_hunting, bountyHunting_text, GUIFont::CalcTextHeight(), Color16(), current_npc_text, dialog_menu_id, GUIWindow::DrawFlashingInputCursor(), GUIWindow::DrawTitleText(), GUIFont::FitTextInAWindow(), GUIWindow::GetControl(), Party::GetGold(), GUIFont::GetLineWidth(), Localization::GetString(), HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_TOWNHALL_MESSAGE, HOUSE_DIALOGUE_TOWNHALL_PAY_FINE, HouseSound_NotEnoughMoney_TrainingSuccessful, localization, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, pFontArrus, pFontCreate, MonsterStats::pInfos, pKeyActionMap, PlayHouseSound(), pMessageQueue_50CBD0, pMonsterStats, MonsterInfo::pName, GUIWindow::pNumPresenceButton, pParty, pPlayers, KeyboardActionMapping::pPressedKeysBuffer, pShopOptions, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, GUIWindow::receives_keyboard_input_2, render, SPEECH_81, StringPrintf(), Party::TakeGold(), uActiveCharacter, Party::uFine, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, GUIButton::uHeight, ui_leather_mm7, UIMSG_Escape, MonsterInfo::uLevel, GUIButton::uW, GUIButton::uY и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ BankDialog()
См. определение в файле UIHouses.cpp строка 2074
2089 pColorText =
Color16(0xFFu, 0xFFu, 0xFFu);
2093 pColorText =
Color16(0xFFu, 0xFFu, 0x9Bu);
2095 pColorText =
Color16(0xFFu, 0xFFu, 0xFFu);
2119 WINDOW_INPUT_CONFIRMED) {
2121 unsigned int takes_sum = entered_sum;
2152 WINDOW_INPUT_IN_PROGRESS) {
2172 unsigned int takes_sum = entered_sum;
Перекрестные ссылки Party::AddGold(), Color16(), dialog_menu_id, GUIWindow::DrawFlashingInputCursor(), GUIWindow::DrawTitleText(), Party::GetGold(), GUIFont::GetLineWidth(), Localization::GetString(), HOUSE_DIALOGUE_BANK_GET_GOLD, HOUSE_DIALOGUE_BANK_PUT_GOLD, HOUSE_DIALOGUE_MAIN, HouseSound_NotEnoughMoney_TrainingSuccessful, localization, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, pFontArrus, pKeyActionMap, PlayHouseSound(), pMessageQueue_50CBD0, pParty, pPlayers, KeyboardActionMapping::pPressedKeysBuffer, GUIWindow::ptr_1C, GUIWindow::receives_keyboard_input_2, SPEECH_81, StringPrintf(), Party::TakeGold(), uActiveCharacter, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, UIMSG_Escape, Party::uNumGoldInBank и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ TavernDialog()
См. определение в файле UIHouses.cpp строка 2200
2208 unsigned int pColorText;
2211 signed int pOptionsCount;
2217 unsigned int pTopic1Height;
2218 unsigned __int8 pTopic2Height;
2219 unsigned __int8 pTopic3Height;
2220 unsigned __int8 pTopic4Height = 0;
2222 int all_text_height;
2235 pPriceRoom = ((
v2 *
v2) / 10) *
2238 if (pPriceRoom < ((
v2 *
v2) / 10) / 3) pPriceRoom = ((
v2 *
v2) / 10) / 3;
2239 if (pPriceRoom <= 0) pPriceRoom = 1;
2241 pPriceFood = ((
v2 *
v2) *
v2 / 100) *
2243 if (pPriceFood < ((
v2 *
v2) *
v2 / 100) / 3)
2244 pPriceFood = ((
v2 *
v2) *
v2 / 100) / 3;
2245 if (pPriceFood <= 0) pPriceFood = 1;
2255 ?
Color16(0xFFu, 0xFFu, 0x9Bu)
2256 :
Color16(0xFFu, 0xFFu, 0xFFu)) +
2265 ?
Color16(0xFFu, 0xFFu, 0x9Bu)
2266 :
Color16(0xFFu, 0xFFu, 0xFFu)) +
2279 ?
Color16(0xFFu, 0xFFu, 0x9Bu)
2280 :
Color16(0xFFu, 0xFFu, 0xFFu)) +
2291 ?
Color16(0xFFu, 0xFFu, 0x9Bu)
2292 :
Color16(0xFFu, 0xFFu, 0xFFu)) +
2300 pItemNum < pDialogueWindow->pStartingPosActiveItem +
2305 pButton->
uHeight = pTopic1Height;
2307 pButton->
uW = pTopic1Height + 145 + 6;
2309 pButton->
uHeight = pTopic2Height;
2312 pButton->
uW = (pTopic1Height +
2314 pTopic2Height - 1 + 6;
2316 pButton->
uY = pTopic1Height + pTopic2Height +
2318 pButton->
uHeight = pTopic3Height;
2321 (pTopic1Height + pTopic2Height +
2325 pButton->
uHeight = pTopic4Height;
2326 pButton->
uY = pTopic1Height +
2328 pTopic4Height + pTopic2Height + 146;
2331 pTopic4Height + pTopic2Height + 146) +
2332 pTopic4Height - 1 + 6;
2337 StringPrintf(
"%s\n \n%s\n \n%s\n \n%s", topic1.c_str(),
2338 topic2.c_str(), topic3.c_str(),
2354 if (352 - pTextHeight < 8) {
2360 render->DrawTextureCustomHeight(8 / 640.0
f,
2361 (352 - pTextHeight) / 480.0f,
2363 render->DrawTextureAlphaNew(
2366 pOutString, 12, 354 - pTextHeight, 0,
2382 render->DrawTextureCustomHeight(8 / 640.0
f,
2383 (352 - pTextHeight) / 480.0f,
2385 render->DrawTextureAlphaNew(
2411 Color16(0xFFu, 0xFFu, 0x9Bu), pText, 3);
2440 v9 = (
signed __int64)(
p2DEvents[(
unsigned int)
2447 if (pPriceSkill < v9 / 3) pPriceSkill = v9 / 3;
2448 all_text_height = 0;
2450 i < pDialogueWindow->pStartingPosActiveItem +
2469 v91 = (149 - all_text_height) / pSkillCount;
2470 if ((149 - all_text_height) / pSkillCount > 32) v91 = 32;
2471 v54 = (149 - pSkillCount * v91 - all_text_height) / 2 -
2474 i < pDialogueWindow->pStartingPosActiveItem +
2482 ->pActiveSkills[pButton->
msg_param - 36]) {
2487 pButton->
uY = v91 + v54;
2491 pButton->
uHeight = pTextHeight;
2492 v54 = pTextHeight + pButton->
uY - 1;
2493 pButton->
uW = v54 + 6;
2494 pColorText =
Color16(0xFFu, 0xFFu, 0x9Bu);
2496 pColorText =
Color16(0xFFu, 0xFFu, 0xFFu);
2520 Color16(0xFFu, 0xFFu, 0x9Bu), str, 3);
2562 for (i = 0; i < pOptionsCount; ++i)
2565 all_text_height = (174 - all_text_height) / pOptionsCount;
2568 pOptionsCount * (174 - all_text_height) / pOptionsCount -
2571 (174 - all_text_height) / pOptionsCount / 2 + 138;
2574 pItemNum < pDialogueWindow->pNumPresenceButton +
2578 pButton->
uY = all_text_height + v54;
2581 pButton->
uHeight = pTextHeight;
2582 v54 = pButton->
uY + pTextHeight - 1;
2583 pButton->
uW = v54 + 6;
2584 pColorText =
Color16(0xFFu, 0xFFu, 0x9Bu);
2586 pColorText =
Color16(0xFFu, 0xFFu, 0xFFu);
Перекрестные ссылки _591428_endcap, ArcomageGame::bGameInProgress, byte_4ED970_skill_learn_ability_by_class_table, GUIFont::CalcTextHeight(), Color16(), dialog_menu_id, GUIWindow::DrawText(), GUIWindow::DrawTitleText(), GUIFont::FitTextInAWindow(), _2devent::flt_24, Localization::FormatString(), _2devent::fPriceMultiplier, game_viewport_width, GameUI_StatusBar_OnEvent(), Localization::GetClassName(), GUIWindow::GetControl(), Party::GetFirstCanAct(), Party::GetFood(), Party::GetGold(), GUIFont::GetHeight(), GetHouseGoodbyeSpeech(), Localization::GetSkillName(), Localization::GetString(), Party::HasItem(), HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_NULL, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RULES, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_VICTORY_CONDITIONS, HOUSE_DIALOGUE_TAVERN_BUY_FOOD, HOUSE_DIALOGUE_TAVERN_REST, HouseDialogPressCloseBtn(), HouseSound_Goodbye, HouseSound_Greeting_2, HouseSound_NotEnoughMoney_TrainingSuccessful, HouseUI_CheckIfPlayerCanInteract(), localization, GUIButton::msg_param, p2DEvents, GUIWindow::par1C, pArcomageGame, GUIWindow::pCurrentPosActiveItem, pDialogueWindow, pFontArrus, pFontCreate, PlayHouseSound(), pMediaPlayer, pMessageQueue_50CBD0, pNPCTopics, GUIWindow::pNumPresenceButton, pParty, pPlayers, pShopOptions, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, GUIWindow::Release(), render, Party::SetFood(), SPEECH_67, StringPrintf(), Party::TakeGold(), uActiveCharacter, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, ArcomageGame::uGameWinner, GUIButton::uHeight, ui_leather_mm7, UIMSG_Escape, UIMSG_RentRoom, MPlayer::Unload(), GUIButton::uW, GUIButton::uY и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ PlayHouseSound()
См. определение в файле UIHouses.cpp строка 1036
Перекрестные ссылки p2DEvents, pAnimatedRooms, pAudioPlayer и AudioPlayer::PlaySound().
Используется в BankDialog(), EnterHouse(), Application::Game::EventLoop(), GetHouseGoodbyeSpeech(), GuildDialog(), sub_4B6478(), TavernDialog(), TempleDialog(), TownHallDialog(), TrainingDialog(), TravelByTransport() и UIShop_Buy_Identify_Repair().
◆ WeaponShopDialog()
void WeaponShopDialog |
( |
| ) |
|
См. определение в файле UIShops.cpp строка 437
Перекрестные ссылки __debugbreak(), BuildingType_WeaponShop, dialog_menu_id, HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_SHOP_BUY_SPECIAL, HOUSE_DIALOGUE_SHOP_BUY_STANDARD, HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT, HOUSE_DIALOGUE_SHOP_IDENTIFY, HOUSE_DIALOGUE_SHOP_REPAIR, HOUSE_DIALOGUE_SHOP_SELL, ShopDialogDisplayEquip(), ShopDialogIdentify(), ShopDialogLearn(), ShopDialogMain(), ShopDialogRepair(), ShopDialogSellEquip(), GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, WeaponShopWares() и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ AlchemistDialog()
См. определение в файле UIShops.cpp строка 785
Перекрестные ссылки __debugbreak(), AlchemyMagicShopWares(), BuildingType_AlchemistShop, dialog_menu_id, HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_SHOP_BUY_SPECIAL, HOUSE_DIALOGUE_SHOP_BUY_STANDARD, HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT, HOUSE_DIALOGUE_SHOP_IDENTIFY, HOUSE_DIALOGUE_SHOP_SELL, ShopDialogDisplayEquip(), ShopDialogIdentify(), ShopDialogLearn(), ShopDialogMain(), ShopDialogSellEquip(), GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ ArmorShopDialog()
См. определение в файле UIShops.cpp строка 602
Перекрестные ссылки __debugbreak(), ArmorShopWares(), BuildingType_ArmorShop, dialog_menu_id, HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_SHOP_BUY_SPECIAL, HOUSE_DIALOGUE_SHOP_BUY_STANDARD, HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT, HOUSE_DIALOGUE_SHOP_IDENTIFY, HOUSE_DIALOGUE_SHOP_REPAIR, HOUSE_DIALOGUE_SHOP_SELL, ShopDialogDisplayEquip(), ShopDialogIdentify(), ShopDialogLearn(), ShopDialogMain(), ShopDialogRepair(), ShopDialogSellEquip(), GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ и window_SpeakInHouse.
Используется в GUIWindow::HouseDialogManager().
◆ SimpleHouseDialog()
void SimpleHouseDialog |
( |
| ) |
|
См. определение в файле UIHouses.cpp строка 3426
3434 signed int all_text_height;
3436 unsigned __int16 pTextColor;
3488 npc_name = pNPC->
pName;
3490 Color16(0x15u, 0x99u, 0xE9u), npc_name, 3);
3501 render->DrawTextureCustomHeight(
3515 render->DrawTextureAlphaNew(8 / 640.0
f, (347 -
h) / 480.0f,
3527 right_panel_window.
uFrameX = 483;
3529 right_panel_window.
uFrameZ = 334;
3621 v31,
Color16(0xFFu, 0xFFu, 0xFFu))
3623 100 * (
unsigned __int8)v29[8]);
3642 all_text_height = 0;
3644 i < pDialogueWindow->pStartingPosActiveItem +
3653 v36 = (174 - all_text_height) /
index;
3654 if (v36 > 32) v36 = 32;
3655 v40 = (174 - v36 *
index - all_text_height) / 2 - v36 / 2 + 138;
3657 i < pDialogueWindow->pNumPresenceButton +
3661 pButton->
uY = v36 + v40;
3664 pButton->
uHeight = pTextHeight;
3665 v40 = pButton->
uY + pTextHeight - 1;
3666 pButton->
uW = v40 + 6;
3667 pTextColor =
Color16(0xE1u, 0xCDu, 0x23u);
3669 pTextColor =
Color16(0xFFu, 0xFFu, 0xFFu);
3671 pTextColor, pButton->
sLabel, 3);
3675 w.uFrameWidth = 458;
3680 if (352 - pTextHeight < 8) {
3683 w.uFrameWidth, 13) +
3686 render->DrawTextureCustomHeight(8 / 640.0
f,
3687 (352 - pTextHeight) / 480.0
f,
3689 render->DrawTextureAlphaNew(8 / 640.0
f, (347 - pTextHeight) / 480.0
f,
3692 pTextFont, 13, 354 - pTextHeight, 0,
Перекрестные ссылки _4B254D_SkillMasteryTeacher(), _591428_endcap, bountyHunting_monster_id_for_hunting, bountyHunting_text, GUIFont::CalcTextHeight(), Color16(), contract_approved, ContractSelectText(), current_npc_text, GUIWindow::DrawText(), GUIWindow::DrawTitleText(), dword_591080, NPCData::evt_A, NPCData::evt_B, NPCData::evt_C, NPCData::evt_D, NPCData::evt_E, NPCData::evt_F, GUIFont::FitTextInAWindow(), Localization::FormatString(), game_viewport_width, GUIWindow::GetControl(), Localization::GetNpcProfessionName(), Localization::GetString(), NPCData::greet, HouseNPCData, localization, GUIButton::msg_param, GUIWindow::pCurrentPosActiveItem, pDialogueNPCCount, pDialogueWindow, pFontArrus, pFontCreate, NPCGreeting::pGreetings, MapStats::pInfos, MonsterStats::pInfos, ItemsTable::pItems, pItemsTable, pMapStats, pMonsterStats, MapInfo::pName, NPCData::pName, MonsterInfo::pName, NPCStats::pNPCGreetings, pNPCStats, pNPCTopics, GUIWindow::pNumPresenceButton, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, pTransitionStrings, render, GUIButton::sLabel, StringPrintf(), uDialogueType, NPCData::uFlags, GUIWindow::uFrameWidth, GUIWindow::uFrameX, GUIWindow::uFrameZ, GUIButton::uHeight, uHouse_ExitPic, ui_leather_mm7, uNumDialogueNPCPortraits, NPCData::uProfession, GUIButton::uW и GUIButton::uY.
Используется в GUIWindow::HouseDialogManager().
◆ OnSelectShopDialogueOption()
void OnSelectShopDialogueOption |
( |
signed int |
uMessageParam | ) |
|
См. определение в файле UIHouses.cpp строка 1047
1048 int experience_for_next_level;
1055 render->ClearZBuffer(0, 479);
1059 experience_for_next_level = 0;
1063 experience_for_next_level += i + 1;
1069 1000 * experience_for_next_level)
1077 { { ui_buttdesc2 } });
1100 { { ui_buttdesc2 } });
1136 for (
uint i = 0; i < 12; ++i) {
1143 ->SpellBooksInGuilds
1186 if ((
unsigned __int16)v24 < 115 ||
1187 (
unsigned __int16)v24 > 132) {
1188 if (((
unsigned __int16)v24 < 235 ||
1189 (
unsigned __int16)v24 > 252) &&
1190 ((
unsigned __int16)v24 < 133 ||
1191 (
unsigned __int16)v24 > 150) &&
1192 ((
unsigned __int16)v24 < 0x97u ||
1193 (
unsigned __int16)v24 > 0xBAu) &&
1194 ((
unsigned __int16)v24 < 0xBEu ||
1195 (
unsigned __int16)v24 > 0xC0u) &&
1196 ((
unsigned __int16)v24 < 0xC4u ||
1197 (
unsigned __int16)v24 > 0xC6u) &&
1198 ((
unsigned __int16)v24 < 0x2Bu ||
1199 (
unsigned __int16)v24 > 0x2Du) &&
1200 ((
unsigned __int16)v24 < 0xCDu ||
1201 (
unsigned __int16)v24 > 0xCFu) &&
1202 ((
unsigned __int16)v24 < 0x5Eu ||
1203 (
unsigned __int16)v24 > 0x60u) &&
1204 ((
unsigned __int16)v24 < 0xFDu ||
1205 (
unsigned __int16)v24 > 0xFFu) &&
1206 ((
unsigned __int16)v24 < 0x6Du ||
1207 (
unsigned __int16)v24 > 0x6Fu) &&
1208 ((
unsigned __int16)v24 < 0x61u ||
1209 (
unsigned __int16)v24 > 0x63u))
1214 102)] = rand() % 258 + 1;
1222 if ((
unsigned __int16)v24 < 115 ||
1223 (
unsigned __int16)v24 > 132) {
1224 if (((
unsigned __int16)v24 < 0xE8u ||
1225 (
unsigned __int16)v24 > 0xF9u) &&
1226 ((
unsigned __int16)v24 < 0x85u ||
1227 (
unsigned __int16)v24 > 0x96u) &&
1228 ((
unsigned __int16)v24 < 0x97u ||
1229 (
unsigned __int16)v24 > 0xBAu) &&
1230 ((
unsigned __int16)v24 < 0xBEu ||
1231 (
unsigned __int16)v24 > 0xC0u) &&
1232 ((
unsigned __int16)v24 < 0xC4u ||
1233 (
unsigned __int16)v24 > 0xC6u) &&
1234 ((
unsigned __int16)v24 < 0x2Bu ||
1235 (
unsigned __int16)v24 > 0x2Du) &&
1236 ((
unsigned __int16)v24 < 0x52u ||
1237 (
unsigned __int16)v24 > 0x54u) &&
1238 ((
unsigned __int16)v24 < 4 ||
1239 (
unsigned __int16)v24 > 6) &&
1240 ((
unsigned __int16)v24 < 0x37u ||
1241 (
unsigned __int16)v24 > 0x39u) &&
1242 ((
unsigned __int16)v24 < 0x3Au ||
1243 (
unsigned __int16)v24 > 0x3Cu) &&
1244 ((
unsigned __int16)v24 < 0x3Du ||
1245 (
unsigned __int16)v24 > 0x3Fu) &&
1246 ((
unsigned __int16)v24 < 0xFDu ||
1247 (
unsigned __int16)v24 > 0xFFu) &&
1248 ((
unsigned __int16)v24 < 0x61u ||
1249 (
unsigned __int16)v24 > 0x63u) &&
1250 ((
unsigned __int16)v24 < 0xCDu ||
1251 (
unsigned __int16)v24 > 0xCFu))
1256 102)] = rand() % 258 + 1;
1264 if ((
unsigned __int16)v24 < 0x73u ||
1265 (
unsigned __int16)v24 > 0x84u) {
1266 if (((
unsigned __int16)v24 < 0xE8u ||
1267 (
unsigned __int16)v24 > 0xF9u) &&
1268 ((
unsigned __int16)v24 < 0x85u ||
1269 (
unsigned __int16)v24 > 0x96u) &&
1270 ((
unsigned __int16)v24 < 0x97u ||
1271 (
unsigned __int16)v24 > 0xBAu) &&
1272 ((
unsigned __int16)v24 < 0xBEu ||
1273 (
unsigned __int16)v24 > 0xC0u) &&
1274 ((
unsigned __int16)v24 < 0xC4u ||
1275 (
unsigned __int16)v24 > 0xC6u) &&
1276 ((
unsigned __int16)v24 < 0x2Bu ||
1277 (
unsigned __int16)v24 > 0x2Du) &&
1278 ((
unsigned __int16)v24 < 0x31u ||
1279 (
unsigned __int16)v24 > 0x33u) &&
1280 ((
unsigned __int16)v24 < 0x34u ||
1281 (
unsigned __int16)v24 > 0x36u) &&
1282 ((
unsigned __int16)v24 < 0xFDu ||
1283 (
unsigned __int16)v24 > 0xFFu) &&
1284 ((
unsigned __int16)v24 < 0x61u ||
1285 (
unsigned __int16)v24 > 0x63u) &&
1286 ((
unsigned __int16)v24 < 0x1Cu ||
1287 (
unsigned __int16)v24 > 0x1Eu))
1292 102)] = rand() % 258 + 1;
1300 if ((
unsigned __int16)v24 < 0x73u ||
1301 (
unsigned __int16)v24 > 0x84u) {
1302 if (((
unsigned __int16)v24 < 0xE8u ||
1303 (
unsigned __int16)v24 > 0xF9u) &&
1304 ((
unsigned __int16)v24 < 0x85u ||
1305 (
unsigned __int16)v24 > 0x96u) &&
1306 ((
unsigned __int16)v24 < 0x97u ||
1307 (
unsigned __int16)v24 > 0xBAu) &&
1308 ((
unsigned __int16)v24 < 0xBEu ||
1309 (
unsigned __int16)v24 > 0xC0u) &&
1310 ((
unsigned __int16)v24 < 0xC4u ||
1311 (
unsigned __int16)v24 > 0xC6u) &&
1312 ((
unsigned __int16)v24 < 0x2Bu ||
1313 (
unsigned __int16)v24 > 0x2Du) &&
1314 ((
unsigned __int16)v24 < 0x5Eu ||
1315 (
unsigned __int16)v24 > 0x60u) &&
1316 ((
unsigned __int16)v24 < 0x43u ||
1317 (
unsigned __int16)v24 > 0x45u) &&
1318 ((
unsigned __int16)v24 < 0x4Fu ||
1319 (
unsigned __int16)v24 > 0x51u) &&
1320 ((
unsigned __int16)v24 < 0xC1u ||
1321 (
unsigned __int16)v24 > 0xC3u) &&
1322 ((
unsigned __int16)v24 < 0x13u ||
1323 (
unsigned __int16)v24 > 0x15u) &&
1324 ((
unsigned __int16)v24 < 0xFDu ||
1325 (
unsigned __int16)v24 > 0xFFu) &&
1326 ((
unsigned __int16)v24 < 0x61u ||
1327 (
unsigned __int16)v24 > 0x63u) &&
1328 ((
unsigned __int16)v24 < 0x6Au ||
1329 (
unsigned __int16)v24 > 0x6Cu))
1334 102)] = rand() % 258 + 1;
1342 if ((
unsigned __int16)v24 < 0x73u ||
1343 (
unsigned __int16)v24 > 0x84u) {
1344 if (((
unsigned __int16)v24 < 0xE8u ||
1345 (
unsigned __int16)v24 > 0xF9u) &&
1346 ((
unsigned __int16)v24 < 0x85u ||
1347 (
unsigned __int16)v24 > 0x96u) &&
1348 ((
unsigned __int16)v24 < 0x97u ||
1349 (
unsigned __int16)v24 > 0xBAu) &&
1350 ((
unsigned __int16)v24 < 0xBEu ||
1351 (
unsigned __int16)v24 > 0xC0u) &&
1352 ((
unsigned __int16)v24 < 0xC4u ||
1353 (
unsigned __int16)v24 > 0xC6u) &&
1354 ((
unsigned __int16)v24 < 0x2Bu ||
1355 (
unsigned __int16)v24 > 0x2Du) &&
1356 ((
unsigned __int16)v24 < 0x6Du ||
1357 (
unsigned __int16)v24 > 0x6Fu) &&
1358 ((
unsigned __int16)v24 < 0x46u ||
1359 (
unsigned __int16)v24 > 0x48u) &&
1360 ((
unsigned __int16)v24 < 0x100u ||
1361 (
unsigned __int16)v24 > 0x102u) &&
1362 ((
unsigned __int16)v24 < 0xD9u ||
1363 (
unsigned __int16)v24 > 0xDBu) &&
1364 ((
unsigned __int16)v24 < 0xC7u ||
1365 (
unsigned __int16)v24 > 0xC9u) &&
1366 ((
unsigned __int16)v24 < 0xE5u ||
1367 (
unsigned __int16)v24 > 0xE7u) &&
1368 ((
unsigned __int16)v24 < 0xDFu ||
1369 (
unsigned __int16)v24 > 0xE1u) &&
1370 ((
unsigned __int16)v24 < 0x5Bu ||
1371 (
unsigned __int16)v24 > 0x5Du) &&
1372 ((
unsigned __int16)v24 < 0x49u ||
1373 (
unsigned __int16)v24 > 0x4Bu) &&
1374 ((
unsigned __int16)v24 < 0xFDu ||
1375 (
unsigned __int16)v24 > 0xFFu) &&
1376 ((
unsigned __int16)v24 < 0x61u ||
1377 (
unsigned __int16)v24 > 0x63u) &&
1378 ((
unsigned __int16)v24 < 0x10u ||
1379 (
unsigned __int16)v24 > 0x12u))
1384 102)] = rand() % 258 + 1;
1416 for (
uint i = 0; i < 4; ++i)
1464 switch (uMessageParam) {
1546 ->StandartItemsInShops
1570 ->SpecialItemsInShops[(
unsigned int)
1598 ->SpecialItemsInShops
1632 (
signed __int64)(
p2DEvents[(
unsigned int)
1640 if (pPrice < v36 / 3) pPrice = v36 / 3;
1643 [uMessageParam - 36]) {
1645 ->pActiveSkills[uMessageParam - 36]) {
1662 ->pActiveSkills[uMessageParam - 36] = 1;
Перекрестные ссылки BuildingType_Boats, BuildingType_MindGuild, BuildingType_Stables, BuildingType_Temple, BuildingType_Training, GUIWindow::CreateButton(), dialog_menu_id, Localization::GetString(), HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_TRAININGHALL_TRAIN, HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1, HOUSE_STABLES_HARMONDALE, in_current_building_type, localization, pBtn_ExitCancel, pDialogueWindow, pMaxLevelPerTrainingHallType, GUIWindow::pNumPresenceButton, pParty, pPlayers, stru365_travel_info::pSchedule, GUIWindow::ptr_1C, GUIWindow::Release(), render, transport_routes, transport_schedule, uActiveCharacter, Party::uCurrentDayOfMonth, UIMSG_BuyInShop_Identify_Repair, UIMSG_Escape, WINDOW_Dialogue и window_SpeakInHouse.
Используется в Application::Game::EventLoop().
◆ PrepareHouse()
См. определение в файле UIHouses.cpp строка 978
986 memset(npc_id_arr, 0,
sizeof(npc_id_arr));
991 if (uExitMapID > 0) {
Перекрестные ссылки _449B57_test_bit(), Party::_quest_bits, _2devent::_quest_related, assets, dword_591080, AssetsManager::GetImage_ColorKey(), HouseNPCData, NPCData::Location2D, p2DEvents, pAnimatedRooms, pDialogueNPCPortraits, pHouse_ExitPictures, NPCStats::pNewNPCData, pNPCStats, pParty, StringPrintf(), _2devent::uAnimationID, _2devent::uExitMapID, _2devent::uExitPicID, NPCData::uFlags, uHouse_ExitPic, uNumDialogueNPCPortraits, NPCStats::uNumNewNPCs и NPCData::uPortraitID.
Используется в ClickNPCTopic() и EnterHouse().
◆ EnterHouse()
bool EnterHouse |
( |
enum HOUSE_ID |
uHouseID | ) |
|
См. определение в файле UIHouses.cpp строка 826
832 int am_pm_flag_close;
860 render->ClearZBuffer(0, 479);
862 if (((uCloseTime - 1 <= uOpenTime) &&
865 ((uCloseTime - 1 > uOpenTime) &&
869 am_pm_flag_close = 0;
870 if (uOpenTime > 12) {
874 if (uCloseTime > 12) {
876 am_pm_flag_close = 1;
907 (
signed __int16)
p2DEvents[186].uAnimationID;
917 for (
uint i = 0; i < 4; ++i) {
926 pContainer =
"evt02-b";
929 pContainer =
"evt02";
932 pContainer =
"evt02-c";
948 if ((
signed int)uHouseID < 139 || (
signed int)uHouseID > 172) {
950 (
signed int)uHouseID <= 73 &&
Перекрестные ссылки _449B57_test_bit(), PartyTimeStruct::_shop_ban_times, GameTime::AddYears(), Party::alignment, assets, ViewingParams::bRedrawGameUI, BuildingType_Throne_Room, byte_F8B1F0, current_npc_text, dword_5C35D4, dword_F8B1E4, GUIMessageQueue::Flush(), Localization::FormatString(), game_ui_dialogue_background, Application::GameOver_Loop(), GameUI_StatusBar_Clear(), GameUI_StatusBar_OnEvent(), Localization::GetAmPm(), Party::GetFirstCanAct(), AssetsManager::GetImage_Solid(), Party::GetPlayingTime(), Localization::GetString(), guild_mambership_flags, HOUSE_600, HOUSE_601, HOUSE_FIRE_GUILD_INITIATE_EMERALD_ISLE, HOUSE_JAIL, HOUSE_LORD_AND_JUDGE_EMERALD_ISLE, HOUSE_STABLES_HARMONDALE, HouseSound_Greeting, HouseSound_Greeting_2, in_current_building_type, IsTravelAvailable(), localization, MPlayer::OpenHouseMovie(), p2DEvents, pAnimatedRooms, PartyAlignment_Evil, PartyAlignment_Good, PartyAlignment_Neutral, Party::PartyTimes, pAudioPlayer, pDialogueNPCCount, pKeyActionMap, player_levels, PlayHouseSound(), pMediaPlayer, pMessageQueue_50CBD0, pParty, pPlayers, Party::pPlayers, PrepareHouse(), render, KeyboardActionMapping::ResetKeys(), KeyboardActionMapping::SetWindowInputStatus(), SPEECH_3, AudioPlayer::StopChannels(), uActiveCharacter, _2devent::uAnimationID, _2devent::uCloseTime, Party::uCurrentHour, uCurrentHouse_Animation, uDialogueType, Party::uFine, uNumDialogueNPCPortraits, Party::uNumPrisonTerms, _2devent::uOpenTime, VAR_Award и viewparams.
Используется в BackToHouseMenu() и EventProcessor().
◆ BackToHouseMenu()
См. определение в файле UIHouses.cpp строка 3991
4003 0, 0,
window->GetWidth(),
window->GetHeight(), 165,
"");
Перекрестные ссылки bGameoverLoop, Mouse::ClearPickedItem(), GUIWindow::CreateButton(), EnterHouse(), HOUSE_BODY_GUILD_ERATHIA, HouseDialogPressCloseBtn(), pAudioPlayer, AudioPlayer::PlaySound(), pMouse, pMovie_Track, pParty, GUIWindow::ptr_1C, GUIWindow::Release(), Engine_::IocContainer::ResolveMouse(), SOUND_Invalid, Party::uFlags, UIMSG_SelectCharacter и window_SpeakInHouse.
Используется в ClickNPCTopic(), Application::Game::EventLoop(), HouseDialogPressCloseBtn() и ArcomageGame::Loop().
◆ InitializaDialogueOptions_Tavern()
◆ InitializaDialogueOptions_Shops()
◆ InitializaDialogueOptions()
См. определение в файле UIHouses.cpp строка 442
617 Error(
"Invalid enumeration value: %u",
type);
Перекрестные ссылки GUIWindow::_41D08F_set_keyboard_control_group(), BuildingType_16, BuildingType_18, BuildingType_19, BuildingType_1A, BuildingType_24, BuildingType_AirGuild, BuildingType_AlchemistShop, BuildingType_ArmorShop, BuildingType_Bank, BuildingType_Boats, BuildingType_BodyGuild, BuildingType_DarkGuild, BuildingType_EarthGuild, BuildingType_ElementalGuild, BuildingType_FireGuild, BuildingType_House, BuildingType_Jail, BuildingType_LightGuild, BuildingType_MagicShop, BuildingType_MindGuild, BuildingType_SelfGuild, BuildingType_SpiritGuild, BuildingType_Stables, BuildingType_Tavern, BuildingType_Temple, BuildingType_Throne_Room, BuildingType_TownHall, BuildingType_Training, BuildingType_Unic, BuildingType_WaterGuild, BuildingType_WeaponShop, CreateButtonInColumn(), dword_F8B1E0, pDialogueWindow, GUIWindow::pNumPresenceButton, pParty, GUIWindow::ptr_1C, Party::uFine и window_SpeakInHouse.
Используется в HouseDialogPressCloseBtn().
◆ InitializeBuildingResidents()
void InitializeBuildingResidents |
( |
| ) |
|
См. определение в файле UIHouses.cpp строка 3715
3720 unsigned int temp_str_len;
3729 for (i = 0; i < 525; ++i) {
3730 test_string = strtok(NULL,
"\r") + 1;
3734 c = *(
unsigned char *)test_string;
3736 while ((
c !=
'\t') && (
c > 0)) {
3738 c = test_string[temp_str_len];
3740 tmp_pos = test_string + temp_str_len;
3741 if (*tmp_pos == 0) break_loop =
true;
3744 switch (decode_step) {
3747 if (!_strnicmp(test_string,
"wea", 3)) {
3751 if (!_strnicmp(test_string,
"arm", 3)) {
3755 if (!_strnicmp(test_string,
"mag", 3)) {
3759 if (!_strnicmp(test_string,
"alc", 3)) {
3763 if (!_strnicmp(test_string,
"sta", 3)) {
3767 if (!_strnicmp(test_string,
"boa", 3)) {
3771 if (!_strnicmp(test_string,
"tem", 3)) {
3775 if (!_strnicmp(test_string,
"tra", 3)) {
3779 if (!_strnicmp(test_string,
"tow", 3)) {
3784 if (!_strnicmp(test_string,
"tav", 3)) {
3788 if (!_strnicmp(test_string,
"ban", 3)) {
3792 if (!_strnicmp(test_string,
"fir", 3)) {
3796 if (!_strnicmp(test_string,
"air", 3)) {
3800 if (!_strnicmp(test_string,
"wat", 3)) {
3804 if (!_strnicmp(test_string,
"ear", 3)) {
3808 if (!_strnicmp(test_string,
"spi", 3)) {
3812 if (!_strnicmp(test_string,
"min", 3)) {
3816 if (!_strnicmp(test_string,
"bod", 3)) {
3820 if (!_strnicmp(test_string,
"lig", 3)) {
3824 if (!_strnicmp(test_string,
"dar", 3)) {
3828 if (!_strnicmp(test_string,
"ele",
3833 if (!_strnicmp(test_string,
"sel", 3)) {
3837 if (!_strnicmp(test_string,
"mir", 3)) {
3841 if (!_strnicmp(test_string,
"mer",
3906 test_string = tmp_pos + 1;
3907 }
while ((decode_step < 24) && !break_loop);
Перекрестные ссылки _2devent::_per, _2devent::_quest_related, _2devent::_rep, _2devent::_state, BuildingType_16, BuildingType_18, BuildingType_AirGuild, BuildingType_AlchemistShop, BuildingType_ArmorShop, BuildingType_Bank, BuildingType_Boats, BuildingType_BodyGuild, BuildingType_DarkGuild, BuildingType_EarthGuild, BuildingType_ElementalGuild, BuildingType_FireGuild, BuildingType_LightGuild, BuildingType_MagicShop, BuildingType_MindGuild, BuildingType_SelfGuild, BuildingType_SpiritGuild, BuildingType_Stables, BuildingType_Tavern, BuildingType_Temple, BuildingType_TownHall, BuildingType_Training, BuildingType_WaterGuild, BuildingType_WeaponShop, _2devent::field_14, _2devent::flt_24, _2devent::fPriceMultiplier, _2devent::generation_interval_days, LOD::File::LoadCompressedTexture(), p2DEvents, p2DEventsTXT_Raw, _2devent::pEnterText, pEvents_LOD, _2devent::pName, _2devent::pProprieterName, _2devent::pProprieterTitle, RemoveQuotes(), _2devent::uAnimationID, _2devent::uCloseTime, _2devent::uExitMapID, _2devent::uExitPicID, _2devent::uOpenTime и _2devent::uType.
Используется в ItemsTable::Initialize().
◆ HouseDialogPressCloseBtn()
int HouseDialogPressCloseBtn |
( |
| ) |
|
См. определение в файле UIHouses.cpp строка 3911
Перекрестные ссылки _4B4224_UpdateNPCTopics(), activeLevelDecoration, BackToHouseMenu(), byte_591180, GUIWindow::CreateButton(), current_npc_text, dialog_menu_id, GUIMessageQueue::Flush(), HOUSE_DIALOGUE_LEARN_SKILLS, HOUSE_DIALOGUE_MAIN, HOUSE_DIALOGUE_NULL, HOUSE_DIALOGUE_SHOP_BUY_SPECIAL, HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT, HOUSE_DIALOGUE_SHOP_IDENTIFY, HOUSE_DIALOGUE_SHOP_REPAIR, HOUSE_DIALOGUE_SHOP_SELL, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RULES, HOUSE_DIALOGUE_TAVERN_ARCOMAGE_VICTORY_CONDITIONS, HouseNPCPortraitsButtonsList, in_current_building_type, InitializaDialogueOptions(), InitializaDialogueOptions_Shops(), InitializaDialogueOptions_Tavern(), pBtn_ExitCancel, pDialogueNPCCount, pDialogueWindow, pKeyActionMap, pMessageQueue_50CBD0, pNPCPortraits_x, pNPCPortraits_y, Image::Release(), GUIWindow::Release(), KeyboardActionMapping::ResetKeys(), KeyboardActionMapping::SetWindowInputStatus(), shop_ui_background, UI_CreateEndConversationButton(), UIMSG_ClickHouseNPCPortrait, uNumDialogueNPCPortraits, GUIWindow::vButtons и window_SpeakInHouse.
Используется в BackToHouseMenu(), Application::Game::EventLoop(), EventProcessor(), TavernDialog() и TravelByTransport().
◆ uHouse_ExitPic
◆ dword_591080
◆ in_current_building_type
◆ dialog_menu_id
См. определение в файле UIHouses.cpp строка 50
Используется в AlchemistDialog(), ArmorShopDialog(), BankDialog(), ClickNPCTopic(), EventProcessor(), GameUI_OnPlayerPortraitLeftClick(), GuildDialog(), HouseDialogPressCloseBtn(), MagicShopDialog(), OnSelectShopDialogueOption(), ShowPopupShopItem(), sub_4B6478(), TavernDialog(), TempleDialog(), TownHallDialog(), TrainingDialog(), TravelByTransport(), UIShop_Buy_Identify_Repair() и WeaponShopDialog().
◆ _591428_endcap
class Image* _591428_endcap |
@ HOUSE_TRAINING_HALL_EMERALD_ISLE
int uNumDialogueNPCPortraits
unsigned __int16 uint16_t
@ HOUSE_DIALOGUE_TEMPLE_HEAL
void DrawText(GUIFont *font, int x, int y, unsigned short uFontColor, const char *str, bool present_time_transparency=false, int max_text_height=0, int uFontShadowColor=0)
unsigned int uNumBountiesCollected
@ HOUSE_STABLES_BRACADA_DESERT
void ShopDialogIdentify(GUIWindow dialogwin, BuildingType building)
void EnterText(int a2, int max_string_len, GUIWindow *pWindow)
const char * GetString(unsigned int index) const
char * RemoveQuotes(char *str)
unsigned int uCurrentMonth
GameTime & GetPlayingTime()
@ SPELL_SPIRIT_PRESERVATION
@ HOUSE_DIALOGUE_SHOP_BUY_SPECIAL
@ HOUSE_BOATS_TULAREAN_FOREST
Texture * GetImage_Solid(const String &name)
unsigned int uCurrentMinute
void AlchemyMagicShopWares(GUIWindow dialogwin, BuildingType building, bool special)
int Start_Party_Teleport_Flag
struct MonsterStats * pMonsterStats
@ HOUSE_ALCHEMIST_EMERALD_ISLE
std::array< struct NPCData *, 7 > HouseNPCData
static void SetFood(int amount)
@ HOUSE_DIALOGUE_TOWNHALL_MESSAGE
Image * shop_ui_background
ArcomageGame * pArcomageGame
std::array< std::array< char, 100 >, 6 > byte_591180
bool _449B57_test_bit(unsigned __int8 *a1, __int16 a2)
GUIButton * CreateButton(int x, int y, int width, int height, int a6, int a7, UIMessageType msg, unsigned int msg_param, uint8_t hotkey, const String &label, const std::vector< Image * > &textures=std::vector< Image * >())
std::array< GameTime, 85 > Shops_next_generation_time
HOUSE_DIALOGUE_MENU dialog_menu_id
void * LoadCompressedTexture(const String &pContainer, size_t *data_size=nullptr)
std::array< int, 4 > player_levels
@ SPELL_LIGHT_HOUR_OF_POWER
@ HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT
static std::array< const char *, 19 > _4F03B8_shop_background_names
int _4418B1(int a2, int a3, int a4, int a5)
@ UIMSG_ClickHouseNPCPortrait
const char * pProprieterTitle
@ SPELL_LIGHT_DAY_OF_PROTECTION
std::array< NPCTopic, 789 > pNPCTopics
@ HOUSE_DIALOGUE_GUILD_LEARN_SKILL
void PlaySound(SoundID eSoundID, int pid, unsigned int uNumRepeats, int x, int y, int a7)
@ HOUSE_DIALOGUE_TRAININGHALL_TRAIN
std::array< char *, 465 > pTransitionStrings
unsigned int game_viewport_width
std::array< int16_t, 6 > weapons_Ypos
@ HOUSE_DIALOGUE_LEARN_SKILLS
@ HOUSE_BOATS_EMERALD_ISLE
@ HOUSE_STABLES_TULAREAN_FOREST
std::array< const char *, 11 > pHouse_ExitPictures
@ HOUSE_TOWNHALL_HARMONDALE
unsigned __int8 _quest_bits[64]
Localization * localization
void SpellBookGenerator()
void GameUI_StatusBar_DrawImmediate(const String &str, int color)
unsigned int uCurrentHour
std::array< std::array< int, 6 >, 6 > pNPCPortraits_y
void FillAviableSkillsToTeach(enum BuildingType type)
void InitializaDialogueOptions(BuildingType type)
std::array< Player, 4 > pPlayers
std::array< std::array< int, 6 >, 6 > pNPCPortraits_x
@ HOUSE_STABLES_STEADWICK
void DrawTitleText(GUIFont *font, int horizontal_margin, int vertical_margin, unsigned __int16 uDefaultColor, const char *pInString, int line_spacing)
unsigned int GetLineWidth(const String &str)
@ HOUSE_TRAINING_HALL_HARMONDALE
GLubyte GLubyte GLubyte GLubyte w
void sub_421B2C_PlaceInInventory_or_DropPickedItem()
@ HOUSE_SMITH_EMERALD_ISLE
unsigned int GetHeight() const
@ HOUSE_AIR_GUILD_INITIATE_EMERALD_ISLE
std::array< GameTime, 10 > bountyHunting_next_generation_time
void PrepareHouse(HOUSE_ID house)
GUIButton * HouseNPCPortraitsButtonsList[6]
NZIArray< struct Player *, 5 > pPlayers
@ HOUSE_TEMPLE_HARMONDALE
const char * GetSkillName(unsigned int index) const
int receives_keyboard_input_2
GLfloat GLfloat GLfloat GLfloat h
@ HOUSE_MAGE_EMERALD_ISLE
unsigned int _494820_training_time(unsigned int a1)
@ HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1
PartyTimeStruct PartyTimes
@ HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_3
struct MapStats * pMapStats
int pStartingPosActiveItem
std::array< const char *, 4 > pShopOptions
std::vector< GUIButton * > vButtons
void _42777D_CastSpell_UseWand_ShootArrow(SPELL_TYPE spell, unsigned int uPlayerID, unsigned int a4, __int16 flags, int a6)
void _41D08F_set_keyboard_control_group(int num_buttons, int a3, int a4, int a5)
const char * ContractSelectText(int pEventCode)
@ HOUSE_DIALOGUE_BANK_PUT_GOLD
struct ItemsTable * pItemsTable
void PartyFindsGold(unsigned int uNumGold, int _1_dont_share_with_followers___2_the_same_but_without_a_message__else_normal)
void OpenHouseMovie(const std::string &pMovieName, bool bLoop)
@ HOUSE_TEMPLE_EMERALD_ISLE
BuildingType in_current_building_type
@ BuildingType_WeaponShop
@ HOUSE_ARMOURER_EMERALD_ISLE
@ BuildingType_LightGuild
void ShopDialogSellEquip(GUIWindow dialogwin, BuildingType building)
GUIWindow * window_SpeakInHouse
@ HOUSE_BOATS_EVENMORN_ISLAND
LevelDecoration * activeLevelDecoration
int Party_Teleport_Cam_Pitch
std::array< const stru159, 196 > pAnimatedRooms
stru365_travel_info transport_schedule[35]
int pCurrentPosActiveItem
@ HOUSE_DIALOGUE_GUILD_BUY_BOOKS
@ HOUSE_TAVERN_EMERALD_ISLE
@ HOUSE_SPIRIT_GUILD_INITIATE_EMERALD_ISLE
@ HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_2
void ShopDialogLearn(GUIWindow dialogwin)
NPCGreeting pNPCGreetings[205]
struct ViewingParams * viewparams
GLuint GLsizei const GLchar * label
unsigned int OS_GetTime()
void GetHouseGoodbyeSpeech()
@ HOUSE_FIRE_GUILD_INITIATE_EMERALD_ISLE
void GameUI_StatusBar_Clear()
Texture * GetImage_ColorKey(const String &name, uint16_t colorkey)
char pPressedKeysBuffer[257]
void ShopDialogMain(GUIWindow dialogwin)
unsigned int ui_house_player_cant_interact_color
static Mouse * ResolveMouse()
struct DDM_DLV_Header dlv
static void TakeGold(int amount)
std::array< char, 777 > byte_F8B1EF
void StopChannels(int uStartChannel, int uEndChannel)
unsigned int CalcTextHeight(const String &str, unsigned int width, int x_offset, bool return_on_carriage=false)
@ HOUSE_DIALOGUE_TAVERN_REST
int Party_Teleport_Cam_Yaw
@ BuildingType_EarthGuild
int uCurrentHouse_Animation
EGLSurface EGLNativeWindowType * window
void GameUI_ReloadPlayerPortraits(int player_id, int face_id)
@ HOUSE_DIALOGUE_TOWNHALL_PAY_FINE
std::array< unsigned short, 6 > pMaxLevelPerTrainingHallType
@ HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_4
std::array< Image *, 12 > shop_ui_items_in_store
std::array< char, 4 > byte_F8B1F0
@ HOUSE_ALCHEMIST_HARMONDALE
void _4B4224_UpdateNPCTopics(int _this)
void PlayHouseSound(unsigned int uHouseID, HouseSoundID sound)
@ HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN
@ UIMSG_BuyInShop_Identify_Repair
unsigned char transport_routes[20][4]
std::array< std::array< ItemGen, 12 >, 53 > StandartItemsInShops
void SetWindowInputStatus(int a2)
const char * GetAmPm(unsigned int index) const
LODFile_IconsBitmaps * pEvents_LOD
int16_t bountyHunting_monster_id_for_hunting
struct DDM_DLV_Header ddm
bool HouseUI_CheckIfPlayerCanInteract()
void DrawFlashingInputCursor(int uX, int uY, GUIFont *a2)
@ BuildingType_SpiritGuild
String BuildDialogueString(const char *lpsz, unsigned __int8 uPlayerID, ItemGen *a3, char *a4, int a5, GameTime *a6)
unsigned int uNumGoldInBank
void RestAndHeal(int minutes)
std::array< class Image *, 6 > pDialogueNPCPortraits
bool HasItem(unsigned int uItemID)
@ HOUSE_DIALOGUE_SHOP_SELL
unsigned int uCurrentDayOfMonth
@ GAME_STATE_CHANGE_LOCATION
@ HOUSE_STABLES_HARMONDALE
unsigned int uDialogueType
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
struct OtherOverlayList * pOtherOverlayList
@ HOUSE_BODY_GUILD_INITIATE_EMERALD_ISLE
int Party_Teleport_Z_Speed
int HouseDialogPressCloseBtn()
void ArmorShopWares(GUIWindow dialogwin, bool special)
struct KeyboardActionMapping * pKeyActionMap
@ BuildingType_AlchemistShop
GLfloat GLfloat GLfloat v2
@ HOUSE_LORD_AND_JUDGE_EMERALD_ISLE
unsigned int uActiveCharacter
GLfloat GLfloat GLfloat GLfloat v3
String FormatString(unsigned int index,...) const
void __cdecl __debugbreak(void)
String FitTextInAWindow(const String &inString, unsigned int width, int uX, bool return_on_carriage=false)
struct NPCStats * pNPCStats
bool EnterHouse(enum HOUSE_ID uHouseID)
void GameUI_StatusBar_OnEvent(const String &str, unsigned int num_seconds)
const char * GetNpcProfessionName(unsigned int index) const
void GenerateSpecialShopItems()
unsigned char pSchedule[7]
std::array< GameTime, 53 > _shop_ban_times
int dword_6BE364_game_settings_1
static GameTime FromDays(int days)
@ HouseSound_NotEnoughMoney_TrainingSuccessful
void GenerateStandartShopItems()
void DrawShops_next_generation_time_string(GameTime time)
bool IsTravelAvailable(int a1)
const char * pProprieterName
Image * game_ui_dialogue_background
@ HOUSE_DIALOGUE_TEMPLE_DONATE
LEVEL_TYPE uCurrentlyLoadedLevelType
std::array< const char *, 7 > pMerchantsBuyPhrases
@ HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT
GUIButton * GetControl(unsigned int uID)
GUIWindow * pPrimaryWindow
std::array< int, 32 > guild_mambership_flags
bool CheckHiredNPCSpeciality(unsigned int uProfession)
@ HOUSE_BOATS_BRACADA_DESERT
@ BuildingType_Throne_Room
@ HOUSE_DIALOGUE_SHOP_BUY_STANDARD
AudioPlayer * pAudioPlayer
const char * GetClassName(unsigned int index) const
@ HOUSE_DIALOGUE_BANK_GET_GOLD
std::array< const char, 5 > uItemsAmountPerShopType
String _4B254D_SkillMasteryTeacher(int trainerInfo)
struct GUIMessageQueue * pMessageQueue_50CBD0
@ HOUSE_DIALOGUE_SHOP_REPAIR
GUIWindow * pDialogueWindow
uint16_t Color16(uint32_t r, uint32_t g, uint32_t b)
OutdoorLocation * pOutdoor
void ShopDialogDisplayEquip(GUIWindow dialogwin, BuildingType building=BuildingType_WeaponShop)
void WeaponShopWares(GUIWindow dialogwin, bool special)
void ShopDialogRepair(GUIWindow dialogwin, BuildingType building)
@ BuildingType_ElementalGuild
@ HOUSE_DIALOGUE_TAVERN_BUY_FOOD
unsigned int uCurrentYear
IndoorCameraD3D * pIndoorCameraD3D
std::array< std::array< ItemGen, 12 >, 32 > SpellBooksInGuilds
String StringPrintf(const char *fmt,...)
static void AddGold(int amount)
@ HOUSE_DIALOGUE_TAVERN_ARCOMAGE_VICTORY_CONDITIONS
int16_t generation_interval_days
std::array< std::array< ItemGen, 12 >, 53 > SpecialItemsInShops
void InitializaDialogueOptions_Shops(BuildingType type)
@ HOUSE_DIALOGUE_SHOP_IDENTIFY
std::array< std::array< char, 37 >, 36 > byte_4ED970_skill_learn_ability_by_class_table
void InitializaDialogueOptions_Tavern(BuildingType type)
const char * bountyHunting_text
std::array< __int16, 5 > monster_for_hunting_killed
std::array< int16_t, 49 > word_4F0754
std::array< __int16, 5 > monster_id_for_hunting
NZIArray< ItemDesc, 800 > pItems
void SaveGame(bool IsAutoSAve, bool NotSaveWorld)
@ SPELL_BODY_PROTECTION_FROM_MAGIC
@ HOUSE_BODY_GUILD_ERATHIA
@ BuildingType_WaterGuild
@ HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RULES
std::shared_ptr< IRender > render