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 {