Mercurial > mm7
comparison UI/UIHouses.cpp @ 1589:f408fbf3d9cc
m
author | Ritor1 |
---|---|
date | Wed, 11 Sep 2013 09:23:41 +0600 |
parents | e6ac4919b22c |
children | 5792fdafe2f5 |
comparison
equal
deleted
inserted
replaced
1588:e6ac4919b22c | 1589:f408fbf3d9cc |
---|---|
87 | 87 |
88 unsigned char transport_routes[20][4] = | 88 unsigned char transport_routes[20][4] = |
89 { | 89 { |
90 { 0, 1, 1, 34}, // HOUSE_STABLES_HARMONDALE | 90 { 0, 1, 1, 34}, // HOUSE_STABLES_HARMONDALE |
91 { 2, 3, 4, 5}, // HOUSE_STABLES_STEADWICK | 91 { 2, 3, 4, 5}, // HOUSE_STABLES_STEADWICK |
92 { 6, 7, 8, 8}, // HOUSE_STABLES_56 | 92 { 6, 7, 8, 8}, // HOUSE_STABLES_TULAREAN_FOREST |
93 { 9, 10, 10, 10}, // HOUSE_STABLES_57 | 93 { 9, 10, 10, 10}, // HOUSE_STABLES_DEYJA |
94 { 11, 11, 12, 12}, // HOUSE_STABLES_58 | 94 { 11, 11, 12, 12}, // HOUSE_STABLES_58 |
95 { 13, 13, 13, 13}, // HOUSE_STABLES_59 | 95 { 13, 13, 13, 13}, // HOUSE_STABLES_59 |
96 { 14, 14, 15, 15}, // HOUSE_STABLES_60 | 96 { 14, 14, 15, 15}, // HOUSE_STABLES_60 |
97 {255, 255, 255, 255}, // HOUSE_STABLES_61 | 97 {255, 255, 255, 255}, // HOUSE_STABLES_61 |
98 {255, 255, 255, 255}, // HOUSE_STABLES_62 | 98 {255, 255, 255, 255}, // HOUSE_STABLES_62 |
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 | 991 GUIWindow *v8; // esi@10 |
992 //int v11; // edi@31 | |
993 int v16; // eax@32 | 992 int v16; // eax@32 |
994 int v17; // eax@33 | 993 int v17; // eax@33 |
995 int v18; // eax@34 | 994 int v18; // eax@34 |
996 int v19; // eax@35 | 995 int v19; // eax@35 |
997 __int16 v20; // ax@37 | 996 __int16 v20; // ax@37 |
1909 } | 1908 } |
1910 //----- (004B6943) -------------------------------------------------------- | 1909 //----- (004B6943) -------------------------------------------------------- |
1911 void TravelByTransport() | 1910 void TravelByTransport() |
1912 { | 1911 { |
1913 signed int v4; // ebx@1 | 1912 signed int v4; // ebx@1 |
1914 stru365_travel_info *v5; // esi@7 | 1913 stru365_travel_info *pTravel; // esi@7 |
1915 int v11; // ecx@12 | |
1916 signed int v12; // esi@13 | 1914 signed int v12; // esi@13 |
1917 signed int v13; // edi@14 | 1915 signed int v13; // edi@14 |
1918 DWORD v14; // eax@26 | 1916 DWORD v14; // eax@26 |
1919 DWORD v15; // edi@26 | 1917 DWORD v15; // edi@26 |
1920 //GUIWindow *v16; // ebx@36 | 1918 int pTextHeight; // eax@36 |
1921 int v17; // esi@36 | 1919 int pRealTextHeight; // esi@36 |
1922 int v18; // eax@36 | 1920 int schedule_id; // esi@39 |
1923 int v19; // ecx@36 | 1921 GUIButton *pButton; // ebx@39 |
1924 int v20; // esi@36 | |
1925 int v21; // eax@36 | |
1926 void *v22; // eax@39 | |
1927 int v23; // esi@39 | |
1928 GUIButton *v24; // ebx@39 | |
1929 signed int v25; // eax@41 | 1922 signed int v25; // eax@41 |
1930 char *v28; // eax@62 | |
1931 int v29; // eax@62 | |
1932 unsigned int v30; // ecx@62 | 1923 unsigned int v30; // ecx@62 |
1933 char *v31; // eax@63 | 1924 MapInfo pMap; // [sp-3Ch] [bp-2CCh]@62 |
1934 MapInfo v32; // [sp-3Ch] [bp-2CCh]@62 | 1925 char pTopicArray[5][100]; // [sp+14h] [bp-27Ch]@37 |
1935 char v48[5][100]; // [sp+14h] [bp-27Ch]@37 | 1926 GUIWindow travel_window; // [sp+208h] [bp-88h]@1 |
1936 GUIWindow v53; // [sp+208h] [bp-88h]@1 | 1927 int pPrimaryTextHeight; // [sp+260h] [bp-30h]@36 |
1937 int v54; // [sp+25Ch] [bp-34h]@36 | 1928 //unsigned int v60; // [sp+274h] [bp-1Ch]@36 |
1938 int v55; // [sp+260h] [bp-30h]@36 | 1929 int index; // [sp+27Ch] [bp-14h]@36 |
1939 unsigned int v60; // [sp+274h] [bp-1Ch]@36 | 1930 //char *a1; // [sp+284h] [bp-Ch]@37 |
1940 int v62; // [sp+27Ch] [bp-14h]@36 | 1931 unsigned int pPrice; // [sp+288h] [bp-8h]@1 |
1941 int v63; // [sp+280h] [bp-10h]@14 | 1932 int travel_time; // [sp+28Ch] [bp-4h]@48 |
1942 char *a1; // [sp+284h] [bp-Ch]@37 | 1933 enum PlayerSpeech pSpeech; |
1943 unsigned int s1; // [sp+288h] [bp-8h]@1 | 1934 unsigned int pCurrentButton; |
1944 int v66; // [sp+28Ch] [bp-4h]@48 | 1935 |
1945 | 1936 memcpy(&travel_window, window_SpeakInHouse, sizeof(travel_window)); |
1946 memcpy(&v53, window_SpeakInHouse, sizeof(v53)); | 1937 travel_window.uFrameX = 483; |
1947 v53.uFrameX = 483; | 1938 travel_window.uFrameWidth = 148; |
1948 v53.uFrameWidth = 148; | 1939 travel_window.uFrameZ = 334; |
1949 v53.uFrameZ = 334; | |
1950 | 1940 |
1951 v4 = p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType == BuildingType_Stables ? 25 : 50; | 1941 v4 = p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].uType == BuildingType_Stables ? 25 : 50; |
1952 v4 *= p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier; | 1942 v4 *= p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier; |
1953 | 1943 |
1954 s1 = v4 * (100 - pPlayers[uActiveCharacter]->GetMerchant()) / 100; | 1944 pPrice = v4 * (100 - pPlayers[uActiveCharacter]->GetMerchant()) / 100; |
1955 if ( (signed int)s1 < v4 / 3 ) | 1945 if ( (signed int)pPrice < v4 / 3 ) |
1956 s1 = v4 / 3; | 1946 pPrice = v4 / 3; |
1957 if ( dialog_menu_id == HOUSE_DIALOGUE_MAIN) | 1947 if ( dialog_menu_id == HOUSE_DIALOGUE_MAIN) |
1958 { | 1948 { |
1959 if ( HouseUI_CheckIfPlayerCanInteract() ) | 1949 if ( HouseUI_CheckIfPlayerCanInteract() ) |
1960 { | 1950 { |
1961 v62 = 0; | 1951 index = 0; |
1962 v17 = LOBYTE(pFontArrus->uFontHeight) - 3; | 1952 strcpy(pTopicArray[4], ""); |
1963 v54 = v17; | 1953 sprintfex(pTmpBuf2.data(), pGlobalTXT_LocalizationStrings[405], pPrice); // Price: %lu gold |
1964 strcpy(v48[4], ""); | 1954 pTextHeight = pFontArrus->CalcTextHeight(pTmpBuf2.data(), &travel_window, 0, 0); |
1965 sprintfex(pTmpBuf2.data(), pGlobalTXT_LocalizationStrings[405], s1); // Price: %lu gold | 1955 pRealTextHeight = pTextHeight + (LOBYTE(pFontArrus->uFontHeight) - 3) + 146; |
1966 v18 = pFontArrus->CalcTextHeight(pTmpBuf2.data(), &v53, 0, 0); | 1956 pPrimaryTextHeight = pRealTextHeight; |
1967 v19 = pDialogueWindow->pNumPresenceButton; | 1957 pCurrentButton = 2; |
1968 v20 = v18 + v17 + 146; | 1958 for ( uint i = pDialogueWindow->pStartingPosActiveItem; i < (unsigned int)(pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem); ++i ) |
1969 v21 = pDialogueWindow->pStartingPosActiveItem; | 1959 { |
1970 v63 = v20; | 1960 schedule_id = transport_routes[(unsigned int)window_SpeakInHouse->ptr_1C - HOUSE_STABLES_HARMONDALE][index]; |
1971 v55 = v20; | 1961 pButton = pDialogueWindow->GetControl(i); |
1972 v60 = v21; | 1962 |
1973 if ( v21 >= v21 + v19 ) | 1963 if (schedule_id != 255) |
1974 goto LABEL_71; | 1964 { |
1975 s1 = 2; | 1965 if (schedule_id >= 25) |
1976 a1 = (char *)v48; | |
1977 while ( 1 ) | |
1978 { | |
1979 int v47 = v60; | |
1980 v22 = window_SpeakInHouse->ptr_1C; | |
1981 v23 = transport_routes[(unsigned int)v22 - HOUSE_STABLES_HARMONDALE][v62]; | |
1982 //v23 = (unsigned __int8)*(&_4F0D38_TravelInfo[4 * (unsigned int)v22] + v62); // negindex. actual address is around + 0x36 | |
1983 //v61 = (Player *)(unsigned __int8)*(&_4F0D38_TravelInfo[4 * (unsigned int)v22] + v62); // + 0x3F for sea travels, less for land | |
1984 v24 = pDialogueWindow->GetControl(v60); | |
1985 | |
1986 if (v23 != 255) | |
1987 { | |
1988 if (v23 >= 25) | |
1989 Log::Warning(L"Transport UI: scedule overflow"); | 1966 Log::Warning(L"Transport UI: scedule overflow"); |
1990 if (s1 >= 6) | 1967 if ( pCurrentButton >= 6 ) |
1991 v25 = true; | 1968 v25 = true; |
1992 else | 1969 else |
1993 v25 = transport_schedule[v23].pSchedule[pParty->uDaysPlayed % 7]; | 1970 v25 = transport_schedule[schedule_id].pSchedule[pParty->uDaysPlayed % 7]; |
1994 } | 1971 } |
1995 | 1972 |
1996 if (v23 != 255 && v25 && (!transport_schedule[v23].uQuestBit || _449B57_test_bit(pParty->_quest_bits, transport_schedule[v23].uQuestBit)) ) | 1973 if (schedule_id != 255 && v25 && (!transport_schedule[schedule_id].uQuestBit |
1997 { | 1974 || _449B57_test_bit(pParty->_quest_bits, transport_schedule[schedule_id].uQuestBit)) ) |
1998 //v58 = v23; | 1975 { |
1999 if ( pDialogueWindow->pCurrentPosActiveItem == s1 ) | 1976 //get color for current string(определение цвета текущей строки)------------ |
2000 sprintf(a1, "\f%05d", TargetColor(255, 255, 155)); | 1977 if ( pDialogueWindow->pCurrentPosActiveItem == pCurrentButton ) |
2001 else | 1978 sprintf(pTopicArray[index], "\f%05d", TargetColor(255, 255, 155)); |
2002 sprintf(a1, "\f%05d", TargetColor(255, 255, 255)); | 1979 else |
2003 | 1980 sprintf(pTopicArray[index], "\f%05d", TargetColor(255, 255, 255)); |
2004 //v32.uRedbookTrackID = v27; | 1981 //hired NPC premium(премия наёмного НПС)---------------------------------- |
2005 v66 = transport_schedule[v23].uTravelTime; | 1982 travel_time = transport_schedule[schedule_id].uTravelTime; |
2006 if ( (unsigned int)window_SpeakInHouse->ptr_1C >= HOUSE_BOATS_63 ) | 1983 if ( (unsigned int)window_SpeakInHouse->ptr_1C >= HOUSE_BOATS_63 ) |
2007 { | 1984 { |
2008 if ( CheckHiredNPCSpeciality(Sailor) ) | 1985 if ( CheckHiredNPCSpeciality(Sailor) ) |
2009 v66 -= 2; | 1986 travel_time -= 2; |
2010 if ( CheckHiredNPCSpeciality(Navigator) ) | 1987 if ( CheckHiredNPCSpeciality(Navigator) ) |
2011 v66 -= 3; | 1988 travel_time -= 3; |
2012 if ( CheckHiredNPCSpeciality(Pirate) ) | 1989 if ( CheckHiredNPCSpeciality(Pirate) ) |
2013 v66 -= 2; | 1990 travel_time -= 2; |
2014 } | 1991 } |
2015 else | 1992 else |
2016 { | 1993 { |
2017 if ( CheckHiredNPCSpeciality(Horseman) ) | 1994 if ( CheckHiredNPCSpeciality(Horseman) ) |
2018 v66 -= 2; | 1995 travel_time -= 2; |
2019 } | 1996 } |
2020 if ( CheckHiredNPCSpeciality(Explorer) ) | 1997 if ( CheckHiredNPCSpeciality(Explorer) ) |
2021 --v66; | 1998 --travel_time; |
2022 if ( v66 < 1 ) | 1999 |
2023 v66 = 1; | 2000 if ( travel_time < 1 ) |
2024 if ( v23 != 255 ) | 2001 travel_time = 1; |
2025 { | 2002 if ( schedule_id != 255 ) |
2026 memcpy(&v32, &pMapStats->pInfos[transport_schedule[v23].uMapInfoID], 0x44u); | 2003 { |
2027 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[404], // Time - %d days, destination %s | 2004 memcpy(&pMap, &pMapStats->pInfos[transport_schedule[schedule_id].uMapInfoID], 0x44u); |
2028 v66, v32.pName); | 2005 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[404], travel_time, pMap.pName); // Time - %d days, destination %s |
2029 strcat(a1, pTmpBuf.data()); | 2006 strcat(pTopicArray[index], pTmpBuf.data()); |
2030 v28 = a1; | 2007 strcat(pTopicArray[index], "\n \n"); |
2031 a1 += 100; | 2008 pButton->uY = pRealTextHeight; |
2032 ++v62; | 2009 pTextHeight = pFontArrus->CalcTextHeight(pTmpBuf.data(), &travel_window, 0, 0); |
2033 ++s1; | 2010 v30 = pButton->uY; |
2034 strcat(v28, "\n \n"); | 2011 pButton->uHeight = pTextHeight; |
2035 v24->uY = v63; | 2012 pButton->uW = v30 + pTextHeight - 1; |
2036 v29 = pFontArrus->CalcTextHeight(pTmpBuf.data(), &v53, 0, 0); | 2013 pRealTextHeight += (LOBYTE(pFontArrus->uFontHeight) - 3) + pTextHeight; |
2037 v30 = v24->uY; | |
2038 v24->uHeight = v29; | |
2039 //v2 = 255; | |
2040 v24->uW = v30 + v29 - 1; | |
2041 v63 += v54 + v29; | |
2042 } | 2014 } |
2043 } | 2015 } |
2044 else | 2016 else |
2045 { | 2017 { |
2046 v31 = a1; | 2018 strcpy(pTopicArray[index], ""); |
2047 ++v62; | 2019 if ( pButton ) |
2048 ++s1; | 2020 { |
2049 a1 += 100; | 2021 pButton->uW = 0; |
2050 strcpy(v31, ""); | 2022 pButton->uHeight = 0; |
2051 if ( v24 ) | 2023 pButton->uY = 0; |
2052 { | 2024 } |
2053 v24->uW = 0; | 2025 } |
2054 v24->uHeight = 0; | 2026 ++index; |
2055 v24->uY = 0; | 2027 ++pCurrentButton; |
2056 } | 2028 } |
2057 } | 2029 if ( pRealTextHeight != pPrimaryTextHeight ) |
2058 ++v60; | 2030 { |
2059 if ( (signed int)v60 >= pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem ) | 2031 sprintf(pTmpBuf.data(), "%s\n \n%s%s%s%s%s", pTmpBuf2.data(), pTopicArray[0], pTopicArray[1], pTopicArray[2], pTopicArray[3], pTopicArray[4]); |
2060 break; | 2032 travel_window.DrawTitleText(pFontArrus, 0, 146, 0, pTmpBuf.data(), 3); |
2061 //v16 = v59; | |
2062 } | |
2063 if ( v63 != v55 ) | |
2064 { | |
2065 /*v47[1] = &Dest; | |
2066 v47[0] = &v51; | |
2067 v46 = &v50; | |
2068 v45 = (unsigned int)&v49; | |
2069 v44 = &v48; | |
2070 v43 = pTmpBuf2.data();*/ | |
2071 sprintf(pTmpBuf.data(), "%s\n \n%s%s%s%s%s", pTmpBuf2.data(), v48[0], v48[1], v48[2], v48[3], v48[4]); | |
2072 v53.DrawTitleText(pFontArrus, 0, 0x92u, 0, pTmpBuf.data(), 3u); | |
2073 } | 2033 } |
2074 else | 2034 else |
2075 { | 2035 { |
2076 LABEL_71: | 2036 travel_window.DrawTitleText(pFontArrus, 0, (174 - pFontArrus->CalcTextHeight(pGlobalTXT_LocalizationStrings[561], &travel_window, 0, 0)) / 2 + 138,//"Извините, приходите в другой день" |
2077 v53.DrawTitleText(pFontArrus, 0, (174 - pFontArrus->CalcTextHeight(pGlobalTXT_LocalizationStrings[561], &v53, 0, 0)) / 2 + 138,//"Извините, приходите в другой день" | |
2078 TargetColor(255, 255, 255), pGlobalTXT_LocalizationStrings[561], 3); | 2037 TargetColor(255, 255, 255), pGlobalTXT_LocalizationStrings[561], 3); |
2079 pAudioPlayer->StopChannels(-1, -1); | 2038 pAudioPlayer->StopChannels(-1, -1); |
2080 } | 2039 } |
2081 } | 2040 } |
2082 } | 2041 } |
2083 else | 2042 else//после нажатия топика |
2084 { | 2043 { |
2085 if ( dialog_menu_id >= HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1 && dialog_menu_id <= HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_4 ) | 2044 if ( dialog_menu_id >= HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1 && dialog_menu_id <= HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_4 ) |
2086 { | 2045 { |
2087 if ( pParty->uNumGold < s1 ) | 2046 if ( pParty->uNumGold < pPrice ) |
2088 { | 2047 { |
2089 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u); | 2048 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2);//"У вас не хватает золота" |
2090 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_Greeting_2); | 2049 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_Greeting_2); |
2091 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); | 2050 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); |
2092 return; | 2051 return; |
2093 } | 2052 } |
2094 | 2053 |
2095 Party::TakeGold(s1); | 2054 Party::TakeGold(pPrice); |
2096 | 2055 |
2097 v5 = &transport_schedule[transport_routes[(unsigned int)window_SpeakInHouse->ptr_1C - HOUSE_STABLES_HARMONDALE][dialog_menu_id - HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1]]; | 2056 pTravel = &transport_schedule[transport_routes[(unsigned int)window_SpeakInHouse->ptr_1C - HOUSE_STABLES_HARMONDALE][dialog_menu_id - HOUSE_DIALOGUE_TRANSPORT_SCHEDULE_1]]; |
2098 if ( v5->pSchedule[pParty->uDaysPlayed % 7] ) | 2057 if ( pTravel->pSchedule[pParty->uDaysPlayed % 7] ) |
2099 { | 2058 { |
2100 if ( _stricmp(pCurrentMapName, pMapStats->pInfos[v5->uMapInfoID].pFilename) ) | 2059 if ( _stricmp(pCurrentMapName, pMapStats->pInfos[pTravel->uMapInfoID].pFilename) ) |
2101 { | 2060 { |
2102 SaveGame(1, 0); | 2061 SaveGame(1, 0); |
2103 strcpy(pCurrentMapName, pMapStats->pInfos[v5->uMapInfoID].pFilename); | 2062 strcpy(pCurrentMapName, pMapStats->pInfos[pTravel->uMapInfoID].pFilename); |
2104 | 2063 |
2105 dword_6BE364_game_settings_1 |= 1u; | 2064 dword_6BE364_game_settings_1 |= 1u; |
2106 _5B65B8_npcdata_hiword_house_or_other = 0; | 2065 _5B65B8_npcdata_hiword_house_or_other = 0; |
2107 dword_5B65BC = 0; | 2066 dword_5B65BC = 0; |
2108 _5B65B4_npcdata_loword_house_or_other = v5->arrival_rot_y; | 2067 _5B65B4_npcdata_loword_house_or_other = pTravel->arrival_rot_y; |
2109 v11 = *((int *)v5 + 3); | |
2110 uGameState = GAME_STATE_2; | 2068 uGameState = GAME_STATE_2; |
2111 _5B65A8_npcdata_uflags_or_other = v11; | 2069 _5B65A8_npcdata_uflags_or_other = pTravel->arrival_x; |
2112 _5B65AC_npcdata_fame_or_other = v5->arrival_y; | 2070 _5B65AC_npcdata_fame_or_other = pTravel->arrival_y; |
2113 _5B65B0_npcdata_rep_or_other = v5->arrival_z; | 2071 _5B65B0_npcdata_rep_or_other = pTravel->arrival_z; |
2114 dword_5B65C0 = v11 | v5->arrival_y | v5->arrival_z | v5->arrival_rot_y; | 2072 dword_5B65C0 = pTravel->arrival_x | pTravel->arrival_y | pTravel->arrival_z | pTravel->arrival_rot_y; |
2115 } | 2073 } |
2116 else | 2074 else |
2117 { | 2075 { |
2118 pIndoorCamera->sRotationY = 0; | 2076 pIndoorCamera->sRotationY = 0; |
2119 pParty->uFlags |= 2u; | 2077 pParty->uFlags |= 2u; |
2120 pParty->vPosition.x = v5->arrival_x; | 2078 pParty->vPosition.x = pTravel->arrival_x; |
2121 pParty->vPosition.y = v5->arrival_y; | 2079 pParty->vPosition.y = pTravel->arrival_y; |
2122 pParty->vPosition.z = v5->arrival_z; | 2080 pParty->vPosition.z = pTravel->arrival_z; |
2123 pParty->uFallStartY = pParty->vPosition.z; | 2081 pParty->uFallStartY = pParty->vPosition.z; |
2124 pParty->sRotationX = 0; | 2082 pParty->sRotationX = 0; |
2125 pParty->sRotationY = v5->arrival_rot_y; | 2083 pParty->sRotationY = pTravel->arrival_rot_y; |
2126 } | 2084 } |
2127 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); | 2085 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); |
2128 v12 = v5->uTravelTime; | 2086 v12 = pTravel->uTravelTime; |
2129 int _v47; | |
2130 if ( (signed int)window_SpeakInHouse->ptr_1C >= 63 ) | 2087 if ( (signed int)window_SpeakInHouse->ptr_1C >= 63 ) |
2131 { | 2088 { |
2132 v63 = SPEECH_SetSail; | 2089 pSpeech = SPEECH_SetSail; |
2133 v13 = 2500; | 2090 v13 = 2500; |
2134 if ( CheckHiredNPCSpeciality(Sailor) ) | 2091 if ( CheckHiredNPCSpeciality(Sailor) ) |
2135 v12 -= 2; | 2092 v12 -= 2; |
2136 if ( CheckHiredNPCSpeciality(Navigator) ) | 2093 if ( CheckHiredNPCSpeciality(Navigator) ) |
2137 v12 -= 3; | 2094 v12 -= 3; |
2138 //_v47 = 45; | |
2139 if ( CheckHiredNPCSpeciality(Pirate) ) | 2095 if ( CheckHiredNPCSpeciality(Pirate) ) |
2140 v12 -= 2; | 2096 v12 -= 2; |
2141 } | 2097 } |
2142 else | 2098 else |
2143 { | 2099 { |
2144 v63 = SPEECH_CarriageReady; | 2100 pSpeech = SPEECH_CarriageReady; |
2145 v13 = 1500; | 2101 v13 = 1500; |
2146 //_v47 = 35; | |
2147 if ( CheckHiredNPCSpeciality(Horseman) ) | 2102 if ( CheckHiredNPCSpeciality(Horseman) ) |
2148 v12 -= 2; | 2103 v12 -= 2; |
2149 } | 2104 } |
2150 if ( CheckHiredNPCSpeciality(Explorer) ) | 2105 if ( CheckHiredNPCSpeciality(Explorer) ) |
2151 --v12; | 2106 --v12; |
2152 if ( v12 < 1 ) | 2107 if ( v12 < 1 ) |
2153 v12 = 1; | 2108 v12 = 1; |
2154 RestAndHeal(1440 * v12); | 2109 RestAndHeal(1440 * v12); |
2155 pPlayers[uActiveCharacter]->PlaySound((PlayerSpeech)v63, 0); | 2110 pPlayers[uActiveCharacter]->PlaySound(pSpeech, 0); |
2156 v14 = GetTickCount(); | 2111 v14 = GetTickCount(); |
2157 v15 = v14 + v13; | 2112 v15 = v14 + v13; |
2158 if ( v15 < v14 ) | 2113 if ( v15 < v14 ) |
2159 v15 = v14; | 2114 v15 = v14; |
2160 while ( GetTickCount() < v15 ) | 2115 while ( GetTickCount() < v15 ) |