Mercurial > mm7
comparison UI/UIHouses.cpp @ 1588:e6ac4919b22c
Слияние
author | Ritor1 |
---|---|
date | Mon, 09 Sep 2013 09:13:40 +0600 |
parents | b42e6f35e03d 6d759814a817 |
children | f408fbf3d9cc |
comparison
equal
deleted
inserted
replaced
1587:b42e6f35e03d | 1588:e6ac4919b22c |
---|---|
556 case BuildingType_House: | 556 case BuildingType_House: |
557 case BuildingType_Jail: | 557 case BuildingType_Jail: |
558 break; | 558 break; |
559 | 559 |
560 default: | 560 default: |
561 assert(false && "Invalid enumeration value"); | 561 Error("Invalid enumeration value: %u", type); |
562 } | 562 } |
563 | 563 |
564 /* if ( a1 > 13 ) | 564 /* if ( a1 > 13 ) |
565 { | 565 { |
566 if ( a1 > 22 ) | 566 if ( a1 > 22 ) |
865 } | 865 } |
866 ++pIcons_LOD->uTexturePacksCount; | 866 ++pIcons_LOD->uTexturePacksCount; |
867 if ( !pIcons_LOD->uNumPrevLoadedFiles ) | 867 if ( !pIcons_LOD->uNumPrevLoadedFiles ) |
868 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; | 868 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; |
869 switch (pParty->alignment) | 869 switch (pParty->alignment) |
870 { | 870 { |
871 case PartyAlignment_Good: sprintf(pContainer, "evt%02d-b", const_2()); break; | 871 case PartyAlignment_Good: sprintf(pContainer, "evt%02d-b", const_2()); break; |
872 case PartyAlignment_Neutral: sprintf(pContainer, "evt%02d", const_2()); break; | 872 case PartyAlignment_Neutral: sprintf(pContainer, "evt%02d", const_2()); break; |
873 case PartyAlignment_Evil: sprintf(pContainer, "evt%02d-c", const_2()); break; | 873 case PartyAlignment_Evil: sprintf(pContainer, "evt%02d-c", const_2()); break; |
874 default: assert(false); | 874 default: Error("Invalid alignment type: %u", pParty->alignment); |
875 } | 875 } |
876 | 876 |
877 v17 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | 877 v17 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
878 pDialogueNPCCount = 0; | 878 pDialogueNPCCount = 0; |
879 pTexture_Dialogue_Background = &pIcons_LOD->pTextures[v17]; | 879 pTexture_Dialogue_Background = &pIcons_LOD->pTextures[v17]; |
880 uTextureID_right_panel_loop = uTextureID_right_panel; | 880 uTextureID_right_panel_loop = uTextureID_right_panel; |
2319 } | 2319 } |
2320 | 2320 |
2321 //----- (004B7D7E) -------------------------------------------------------- | 2321 //----- (004B7D7E) -------------------------------------------------------- |
2322 void BankDialog() | 2322 void BankDialog() |
2323 { | 2323 { |
2324 GUIWindow *v0; // eax@4 | 2324 int entered_sum; // eax@19 |
2325 //int v1; // ecx@5 | 2325 unsigned int takes_sum; // esi@19 |
2326 int v2; // eax@6 | 2326 unsigned __int16 pColorText; // ax@27 |
2327 unsigned int v3; // esi@6 | 2327 GUIWindow bank_window; // [sp+Ch] [bp-5Ch]@1 |
2328 GUIFont *v4; // ST10_4@12 | 2328 |
2329 int v5; // eax@12 | 2329 memcpy(&bank_window, window_SpeakInHouse, sizeof(bank_window)); |
2330 int v6; // eax@19 | 2330 bank_window.uFrameX = 483; |
2331 unsigned int v7; // esi@19 | 2331 bank_window.uFrameWidth = 148; |
2332 unsigned __int16 v8; // ax@27 | 2332 bank_window.uFrameZ = 334; |
2333 unsigned __int16 v9; // ax@29 | 2333 sprintf(pTmpBuf.data(), "%s: %d", pGlobalTXT_LocalizationStrings[25], pParty->uNumGoldInBank);// |
2334 char *v10; // [sp-8h] [bp-70h]@11 | 2334 bank_window.DrawTitleText(pFontArrus, 0, 220, TargetColor(0xFFu, 0xFFu, 0x9Bu), pTmpBuf.data(), 3); |
2335 char *v11; // [sp-4h] [bp-6Ch]@11 | |
2336 GUIWindow _this; // [sp+Ch] [bp-5Ch]@1 | |
2337 __int16 v13[2]; // [sp+60h] [bp-8h]@1 | |
2338 __int16 v14[2]; // [sp+64h] [bp-4h]@1 | |
2339 | |
2340 memcpy(&_this, window_SpeakInHouse, sizeof(_this)); | |
2341 _this.uFrameX = 483; | |
2342 _this.uFrameWidth = 148; | |
2343 _this.uFrameZ = 334; | |
2344 *(int *)v13 = TargetColor(0xFFu, 0xFFu, 0xFFu); | |
2345 *(int *)v14 = TargetColor(0xFFu, 0xFFu, 0x9Bu); | |
2346 sprintf(pTmpBuf.data(), "%s: %d", pGlobalTXT_LocalizationStrings[25], pParty->uNumGoldInBank); | |
2347 _this.DrawTitleText(pFontArrus, 0, 0xDCu, v14[0], pTmpBuf.data(), 3u); | |
2348 switch(dialog_menu_id) | 2335 switch(dialog_menu_id) |
2349 { | 2336 { |
2350 case HOUSE_DIALOGUE_MAIN: | 2337 case HOUSE_DIALOGUE_MAIN: |
2351 { | 2338 { |
2352 v8 = v14[0]; | 2339 pColorText = TargetColor(0xFFu, 0xFFu, 0x9Bu); |
2353 if ( pDialogueWindow->pCurrentPosActiveItem != 2 ) | 2340 if ( pDialogueWindow->pCurrentPosActiveItem != 2 ) |
2354 v8 = v13[0]; | 2341 pColorText = TargetColor(0xFFu, 0xFFu, 0xFFu); |
2355 _this.DrawTitleText(pFontArrus, 0, 0x92u, v8, pGlobalTXT_LocalizationStrings[60], 3u); | 2342 bank_window.DrawTitleText(pFontArrus, 0, 146, pColorText, pGlobalTXT_LocalizationStrings[60], 3); |
2356 v9 = v14[0]; | 2343 pColorText = TargetColor(0xFFu, 0xFFu, 0x9Bu); |
2357 if ( pDialogueWindow->pCurrentPosActiveItem != 3 ) | 2344 if ( pDialogueWindow->pCurrentPosActiveItem != 3 ) |
2358 v9 = v13[0]; | 2345 pColorText = TargetColor(0xFFu, 0xFFu, 0xFFu); |
2359 _this.DrawTitleText(pFontArrus, 0, 0xB0u, v9, pGlobalTXT_LocalizationStrings[244], 3u); | 2346 bank_window.DrawTitleText(pFontArrus, 0, 176, pColorText, pGlobalTXT_LocalizationStrings[244], 3); |
2360 break; | 2347 break; |
2361 } | 2348 } |
2362 case HOUSE_DIALOGUE_BANK_7: | 2349 case HOUSE_DIALOGUE_BANK_PUT_GOLD: |
2363 { | 2350 { |
2364 v0 = window_SpeakInHouse; | 2351 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS) |
2365 if ( window_SpeakInHouse->receives_keyboard_input_2 != WINDOW_INPUT_IN_PROGRESS) | 2352 { |
2366 { | 2353 sprintf(pTmpBuf.data(), "%s\n%s", pGlobalTXT_LocalizationStrings[60], pGlobalTXT_LocalizationStrings[112]);//"" "?" |
2367 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_CONFIRMED) | 2354 bank_window.DrawTitleText(pFontArrus, 0, 146, TargetColor(0xFFu, 0xFFu, 0x9Bu), pTmpBuf.data(), 3); |
2368 { | 2355 bank_window.DrawTitleText(pFontArrus, 0, 186, TargetColor(0xFFu, 0xFFu, 0xFFu), (const char *)pKeyActionMap->pPressedKeysBuffer, 3); |
2369 v6 = atoi((const char *)pKeyActionMap->pPressedKeysBuffer); | 2356 bank_window.DrawFlashingInputCursor(pFontArrus->GetLineWidth((const char *)pKeyActionMap->pPressedKeysBuffer) / 2 + 80, 185, pFontArrus); |
2370 v7 = v6; | 2357 return; |
2371 if ( !v6 ) | 2358 } |
2372 { | 2359 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_CONFIRMED) |
2373 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); | 2360 { |
2374 return; | 2361 entered_sum = atoi((const char *)pKeyActionMap->pPressedKeysBuffer); |
2375 } | 2362 takes_sum = entered_sum; |
2376 if ( v6 > pParty->uNumGold ) | 2363 if ( !entered_sum ) |
2377 { | 2364 { |
2378 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); | 2365 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); |
2379 v7 = pParty->uNumGold; | 2366 return; |
2380 } | 2367 } |
2381 if ( v7 ) | 2368 if ( entered_sum > pParty->uNumGold ) |
2382 { | 2369 { |
2383 Party::TakeGold(v7); | 2370 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); |
2384 pParty->uNumGoldInBank += v7; | 2371 takes_sum = pParty->uNumGold; |
2385 if ( uActiveCharacter ) | 2372 } |
2386 pPlayers[uActiveCharacter]->PlaySound(SPEECH_81, 0); | 2373 if ( takes_sum ) |
2387 } | 2374 { |
2388 v0 = window_SpeakInHouse; | 2375 Party::TakeGold(takes_sum); |
2389 v0->receives_keyboard_input_2 = WINDOW_INPUT_NONE; | 2376 pParty->uNumGoldInBank += takes_sum; |
2390 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); | 2377 if ( uActiveCharacter ) |
2391 return; | 2378 pPlayers[uActiveCharacter]->PlaySound(SPEECH_81, 0); |
2392 } | 2379 } |
2393 if (window_SpeakInHouse->receives_keyboard_input_2 != WINDOW_INPUT_CANCELLED) | 2380 window_SpeakInHouse->receives_keyboard_input_2 = WINDOW_INPUT_NONE; |
2394 return; | 2381 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); |
2395 v0->receives_keyboard_input_2 = WINDOW_INPUT_NONE; | 2382 return; |
2396 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); | 2383 } |
2397 return; | 2384 if (window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_CANCELLED) |
2398 } | 2385 { |
2399 v11 = pGlobalTXT_LocalizationStrings[112]; | 2386 window_SpeakInHouse->receives_keyboard_input_2 = WINDOW_INPUT_NONE; |
2400 v10 = pGlobalTXT_LocalizationStrings[60]; | 2387 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); |
2401 sprintf(pTmpBuf.data(), "%s\n%s", v10, v11); | 2388 } |
2402 _this.DrawTitleText(pFontArrus, 0, 0x92u, v14[0], pTmpBuf.data(), 3u); | 2389 return; |
2403 _this.DrawTitleText(pFontArrus, 0, 0xBAu, v13[0], (const char *)pKeyActionMap->pPressedKeysBuffer, 3u); | 2390 } |
2404 v4 = pFontArrus; | 2391 case HOUSE_DIALOGUE_BANK_GET_GOLD: |
2405 v5 = pFontArrus->GetLineWidth((const char *)pKeyActionMap->pPressedKeysBuffer); | 2392 { |
2406 _this.DrawFlashingInputCursor(v5 / 2 + 80, 185, v4); | 2393 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS) |
2407 break; | 2394 { |
2408 } | 2395 sprintfex(pTmpBuf.data(), "%s\n%s", pGlobalTXT_LocalizationStrings[244], pGlobalTXT_LocalizationStrings[112]);//"" "?" |
2409 | 2396 bank_window.DrawTitleText(pFontArrus, 0, 146, TargetColor(0xFFu, 0xFFu, 0x9Bu), pTmpBuf.data(), 3); |
2410 case HOUSE_DIALOGUE_BANK_8: | 2397 bank_window.DrawTitleText(pFontArrus, 0, 186, TargetColor(0xFFu, 0xFFu, 0xFFu), (const char *)pKeyActionMap->pPressedKeysBuffer, 3); |
2411 { | 2398 bank_window.DrawFlashingInputCursor(pFontArrus->GetLineWidth((const char *)pKeyActionMap->pPressedKeysBuffer) / 2 + 80, 185, pFontArrus); |
2412 v0 = window_SpeakInHouse; | 2399 return; |
2413 if ( window_SpeakInHouse->receives_keyboard_input_2 != WINDOW_INPUT_IN_PROGRESS) | 2400 } |
2414 { | 2401 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_CONFIRMED) |
2415 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_CONFIRMED) | 2402 { |
2416 { | 2403 window_SpeakInHouse->receives_keyboard_input_2 = WINDOW_INPUT_NONE; |
2417 window_SpeakInHouse->receives_keyboard_input_2 = WINDOW_INPUT_NONE; | 2404 entered_sum = atoi((const char *)pKeyActionMap->pPressedKeysBuffer); |
2418 v2 = atoi((const char *)pKeyActionMap->pPressedKeysBuffer); | 2405 takes_sum = entered_sum; |
2419 v3 = v2; | 2406 if ( entered_sum ) |
2420 if ( v2 ) | 2407 { |
2421 { | 2408 if ( entered_sum > pParty->uNumGoldInBank ) |
2422 if ( v2 > pParty->uNumGoldInBank ) | 2409 { |
2423 { | 2410 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); |
2424 PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); | 2411 takes_sum = pParty->uNumGoldInBank; |
2425 v3 = pParty->uNumGoldInBank; | 2412 } |
2426 } | 2413 if ( takes_sum ) |
2427 if ( v3 ) | 2414 { |
2428 { | 2415 Party::SetGold(pParty->uNumGold + takes_sum); |
2429 Party::SetGold(pParty->uNumGold + v3); | 2416 pParty->uNumGoldInBank -= takes_sum; |
2430 pParty->uNumGoldInBank -= v3; | 2417 } |
2431 } | 2418 } |
2432 } | 2419 window_SpeakInHouse->receives_keyboard_input_2 = WINDOW_INPUT_NONE; |
2433 v0->receives_keyboard_input_2 = WINDOW_INPUT_NONE; | 2420 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); |
2434 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); | 2421 return; |
2435 return; | 2422 } |
2436 } | 2423 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_CANCELLED) |
2437 if ( window_SpeakInHouse->receives_keyboard_input_2 != WINDOW_INPUT_CANCELLED) | 2424 { |
2438 return; | 2425 window_SpeakInHouse->receives_keyboard_input_2 = WINDOW_INPUT_NONE; |
2439 v0->receives_keyboard_input_2 = WINDOW_INPUT_NONE; | 2426 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); |
2440 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); | 2427 } |
2441 return; | 2428 return; |
2442 } | 2429 } |
2443 v11 = pGlobalTXT_LocalizationStrings[112]; | 2430 default: |
2444 v10 = pGlobalTXT_LocalizationStrings[244]; | 2431 { |
2445 sprintfex(pTmpBuf.data(), "%s\n%s", v10, v11); | 2432 break; |
2446 _this.DrawTitleText(pFontArrus, 0, 0x92u, v14[0], pTmpBuf.data(), 3u); | 2433 } |
2447 _this.DrawTitleText(pFontArrus, 0, 0xBAu, v13[0], (const char *)pKeyActionMap->pPressedKeysBuffer, 3u); | |
2448 v4 = pFontArrus; | |
2449 v5 = pFontArrus->GetLineWidth((const char *)pKeyActionMap->pPressedKeysBuffer); | |
2450 _this.DrawFlashingInputCursor(v5 / 2 + 80, 185, v4); | |
2451 return; | |
2452 break; | |
2453 } | |
2454 | |
2455 default: | |
2456 { | |
2457 break; | |
2458 } | |
2459 } | 2434 } |
2460 } | 2435 } |
2461 // F8B19C: using guessed type int dword_F8B19C; | 2436 // F8B19C: using guessed type int dword_F8B19C; |
2462 | 2437 |
2463 //----- (004B8285) -------------------------------------------------------- | 2438 //----- (004B8285) -------------------------------------------------------- |
4039 v15 = ""; | 4014 v15 = ""; |
4040 v16 = (GUIButton *)pInString; | 4015 v16 = (GUIButton *)pInString; |
4041 goto LABEL_49; | 4016 goto LABEL_49; |
4042 } | 4017 } |
4043 if ( v28 != 10 ) | 4018 if ( v28 != 10 ) |
4044 goto LABEL_41; | 4019 { |
4020 v15 = ""; | |
4021 goto LABEL_49; | |
4022 } | |
4045 } | 4023 } |
4046 else | 4024 else |
4047 { | 4025 { |
4048 if ( v17 == 24 ) | 4026 if ( v17 == 24 ) |
4049 { | 4027 { |