comparison mm7_2.cpp @ 473:7f1b00901cf7

Skill learning menu in shops
author Gloval
date Tue, 26 Feb 2013 02:09:56 +0400
parents c43f156a95c9
children 442afd6c34a4
comparison
equal deleted inserted replaced
471:c43f156a95c9 473:7f1b00901cf7
3755 return; 3755 return;
3756 pRenderer->ClearZBuffer(0, 479); 3756 pRenderer->ClearZBuffer(0, 479);
3757 //v3 = dword_F8B198; 3757 //v3 = dword_F8B198;
3758 if ( dword_F8B19C != 1 ) 3758 if ( dword_F8B19C != 1 )
3759 goto LABEL_13; 3759 goto LABEL_13;
3760 if ( dword_F8B198 == 30 ) 3760 if ( in_current_bilding_type == 30 )
3761 { 3761 {
3762 if ( uMessageParam == 17 ) 3762 if ( uMessageParam == 17 )
3763 { 3763 {
3764 v4 = 0; 3764 v4 = 0;
3765 v5 = 0; 3765 v5 = 0;
3776 return; 3776 return;
3777 } 3777 }
3778 goto LABEL_9; 3778 goto LABEL_9;
3779 } 3779 }
3780 v8 = window_SpeakInHouse; 3780 v8 = window_SpeakInHouse;
3781 if ( (dword_F8B198 == 27 || dword_F8B198 == 28) 3781 if ( (in_current_bilding_type == 27 || in_current_bilding_type == 28)
3782 && (v1 = 0, *(&byte_4F09B1[32 * (unsigned __int8)*(&byte_4F0CCF[4 * (unsigned int)window_SpeakInHouse->ptr_1C] + uMessageParam)] + pParty->uDaysPlayed % 7)) 3782 && (v1 = 0, *(&byte_4F09B1[32 * (unsigned __int8)*(&byte_4F0CCF[4 * (unsigned int)window_SpeakInHouse->ptr_1C] + uMessageParam)] + pParty->uDaysPlayed % 7))
3783 || dword_F8B198 != 23 || uMessageParam != 10 ) 3783 || in_current_bilding_type != 23 || uMessageParam != 10 )
3784 { 3784 {
3785 LABEL_9: 3785 LABEL_9:
3786 pDialogueWindow->Release(); 3786 pDialogueWindow->Release();
3787 pDialogueWindow = GUIWindow::Create(0, 0, 640, 0x159u, WINDOW_MainMenu, v1, v1); 3787 pDialogueWindow = GUIWindow::Create(0, 0, 640, 0x159u, WINDOW_MainMenu, v1, v1);
3788 pBtn_ExitCancel = pDialogueWindow->CreateButton(526, 445, 75, 33, 1, v1, 0x71u, v1, v1, pGlobalTXT_LocalizationStrings[74],// "End Conversation" 3788 pBtn_ExitCancel = pDialogueWindow->CreateButton(526, 445, 75, 33, 1, v1, 0x71u, v1, v1, pGlobalTXT_LocalizationStrings[74],// "End Conversation"
3799 return; 3799 return;
3800 goto LABEL_10; 3800 goto LABEL_10;
3801 } 3801 }
3802 LABEL_11: 3802 LABEL_11:
3803 dword_F8B19C = uMessageParam; 3803 dword_F8B19C = uMessageParam;
3804 if ( dword_F8B198 < 19 ) 3804 if ( in_current_bilding_type < 19 )
3805 { 3805 {
3806 v9 = pIcons_LOD->LoadTexture(off_4F03B8[dword_F8B198], TEXTURE_16BIT_PALETTE); 3806 v9 = pIcons_LOD->LoadTexture(off_4F03B8[in_current_bilding_type], TEXTURE_16BIT_PALETTE);
3807 //v3 = dword_F8B198; 3807 //v3 = dword_F8B198;
3808 dword_F8B164 = &pIcons_LOD->pTextures[v9]; 3808 dword_F8B164 = &pIcons_LOD->pTextures[v9];
3809 LABEL_13: 3809 LABEL_13:
3810 v8 = window_SpeakInHouse; 3810 v8 = window_SpeakInHouse;
3811 } 3811 }
3812 if ( dword_F8B198 > 21 ) 3812 if ( in_current_bilding_type > 21 )
3813 { 3813 {
3814 if ( dword_F8B198 == 22 ) 3814 if ( in_current_bilding_type == 22 )
3815 { 3815 {
3816 if ( dword_F8B19C >= 7 && dword_F8B19C <= 8 ) 3816 if ( dword_F8B19C >= 7 && dword_F8B19C <= 8 )
3817 pKeyActionMap->EnterText(1, 10, v8); 3817 pKeyActionMap->EnterText(1, 10, v8);
3818 return; 3818 return;
3819 } 3819 }
3820 if ( dword_F8B198 != 23 && dword_F8B198 != 30 ) 3820 if ( in_current_bilding_type != 23 && in_current_bilding_type != 30 )
3821 return; 3821 return;
3822 } 3822 }
3823 else 3823 else
3824 { 3824 {
3825 if ( dword_F8B198 != 21 ) 3825 if ( in_current_bilding_type != 21 )
3826 { 3826 {
3827 if ( dword_F8B198 <= (signed int)v1 ) 3827 if ( in_current_bilding_type <= (signed int)v1 )
3828 return; 3828 return;
3829 if ( dword_F8B198 > 4 ) 3829 if ( in_current_bilding_type > 4 )
3830 { 3830 {
3831 if ( dword_F8B198 <= 16 ) 3831 if ( in_current_bilding_type <= 16 )
3832 { 3832 {
3833 if ( (signed __int64)__PAIR__( 3833 if ( (signed __int64)__PAIR__(
3834 *(int *)&stru_AA1058[3].pSounds[8 * (unsigned int)v8->ptr_1C + 44472], 3834 *(int *)&stru_AA1058[3].pSounds[8 * (unsigned int)v8->ptr_1C + 44472],
3835 *(int *)&stru_AA1058[3].pSounds[8 * (unsigned int)v8->ptr_1C + 44468]) >= (signed __int64)pParty->uTimePlayed ) 3835 *(int *)&stru_AA1058[3].pSounds[8 * (unsigned int)v8->ptr_1C + 44468]) >= (signed __int64)pParty->uTimePlayed )
3836 { 3836 {
3862 *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44468] = v31; 3862 *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44468] = v31;
3863 *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44472] = HIDWORD(v31); 3863 *(int *)&stru_AA1058[3].pSounds[8 * (int)v30 + 44472] = HIDWORD(v31);
3864 } 3864 }
3865 return; 3865 return;
3866 } 3866 }
3867 if ( dword_F8B198 != 17 ) 3867 if ( in_current_bilding_type != 17 )
3868 return; 3868 return;
3869 if ( uMessageParam == 99 ) 3869 if ( uMessageParam == 99 )
3870 { 3870 {
3871 v10 = (int)((char *)v8->ptr_1C - 102); 3871 v10 = (int)((char *)v8->ptr_1C - 102);
3872 v56 = v10; 3872 v56 = v10;
4078 switch ( uMessageParam ) 4078 switch ( uMessageParam )
4079 { 4079 {
4080 case 96: 4080 case 96:
4081 pDialogueWindow->eWindowType = WINDOW_MainMenu; 4081 pDialogueWindow->eWindowType = WINDOW_MainMenu;
4082 UI_CreateEndConversationButton(); 4082 UI_CreateEndConversationButton();
4083 sub_4B3703(dword_F8B198); 4083 FillAviableSkillsToTeach(in_current_bilding_type);
4084 break; 4084 break;
4085 case 101: 4085 case 101:
4086 pDialogueWindow->eWindowType = WINDOW_MainMenu; 4086 pDialogueWindow->eWindowType = WINDOW_MainMenu;
4087 UI_CreateEndConversationButton(); 4087 UI_CreateEndConversationButton();
4088 sub_4B3A72(dword_F8B198); 4088 sub_4B3A72(in_current_bilding_type);
4089 break; 4089 break;
4090 case 102: 4090 case 102:
4091 dword_F8B19C = 102; 4091 dword_F8B19C = 102;
4092 break; 4092 break;
4093 case 103: 4093 case 103:
4148 if ( !*(short *)v38 ) 4148 if ( !*(short *)v38 )
4149 { 4149 {
4150 if ( pParty->uNumGold < v37 ) 4150 if ( pParty->uNumGold < v37 )
4151 { 4151 {
4152 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u); 4152 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u);
4153 if ( dword_F8B198 == 30 || dword_F8B198 == 21 ) 4153 if ( in_current_bilding_type == 30 || in_current_bilding_type == 21 )
4154 v39 = 4; 4154 v39 = 4;
4155 else 4155 else
4156 v39 = 2; 4156 v39 = 2;
4157 HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, v39); 4157 HousePlaySomeSound((unsigned int)window_SpeakInHouse->ptr_1C, v39);
4158 } 4158 }
4170 { 4170 {
4171 if ( uMessageParam == 94 ) 4171 if ( uMessageParam == 94 )
4172 { 4172 {
4173 pDialogueWindow->eWindowType = WINDOW_MainMenu; 4173 pDialogueWindow->eWindowType = WINDOW_MainMenu;
4174 UI_CreateEndConversationButton(); 4174 UI_CreateEndConversationButton();
4175 sub_4B3AD4(dword_F8B198); 4175 sub_4B3AD4(in_current_bilding_type);
4176 } 4176 }
4177 } 4177 }
4178 } 4178 }
4179 return; 4179 return;
4180 } 4180 }
4220 ++v43; 4220 ++v43;
4221 } 4221 }
4222 //while ( v43 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ); 4222 //while ( v43 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] );
4223 while ( v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ); 4223 while ( v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] );
4224 } 4224 }
4225 if ( dword_F8B198 == 1 ) 4225 if ( in_current_bilding_type == 1 )
4226 { 4226 {
4227 v47 = v8->ptr_1C; 4227 v47 = v8->ptr_1C;
4228 v48 = 0; 4228 v48 = 0;
4229 //if ( _4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ) 4229 //if ( _4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] )
4230 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ) 4230 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] )
4265 ++v43; 4265 ++v43;
4266 } 4266 }
4267 //while ( v43 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ); 4267 //while ( v43 < (unsigned __int8)_4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] );
4268 while ( v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ); 4268 while ( v43 < (unsigned __int8)uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] );
4269 } 4269 }
4270 if ( dword_F8B198 == 1 ) 4270 if ( in_current_bilding_type == 1 )
4271 { 4271 {
4272 v52 = v8->ptr_1C; 4272 v52 = v8->ptr_1C;
4273 v53 = 0; 4273 v53 = 0;
4274 //if ( _4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] ) 4274 //if ( _4F063C_smthn_by_2da_uType[p2DEvents_minus1___00[26 * (unsigned int)v8->ptr_1C]] )
4275 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] ) 4275 if ( uItemsAmountPerShopType[p2DEvents[(unsigned int)v8->ptr_1C - 1].uType] )
4334 { 4334 {
4335 if ( v0 == 3 || v0 == 5 || v0 == 4 ) 4335 if ( v0 == 3 || v0 == 5 || v0 == 4 )
4336 { 4336 {
4337 UI_CreateEndConversationButton(); 4337 UI_CreateEndConversationButton();
4338 dword_F8B19C = 94; 4338 dword_F8B19C = 94;
4339 sub_4B3AD4(dword_F8B198); 4339 sub_4B3AD4(in_current_bilding_type);
4340 } 4340 }
4341 else 4341 else
4342 { 4342 {
4343 if ( v0 != 102 && v0 != 103 && v0 != 104 ) 4343 if ( v0 != 102 && v0 != 103 && v0 != 104 )
4344 { 4344 {
4345 pVideoPlayer->_4BF5B2(); 4345 pVideoPlayer->_4BF5B2();
4346 LABEL_28: 4346 LABEL_28:
4347 dword_F8B19C = 1; 4347 dword_F8B19C = 1;
4348 sub_4B3B42(dword_F8B198); 4348 sub_4B3B42(in_current_bilding_type);
4349 return 1; 4349 return 1;
4350 } 4350 }
4351 pVideoPlayer->_4BF5B2(); 4351 pVideoPlayer->_4BF5B2();
4352 UI_CreateEndConversationButton(); 4352 UI_CreateEndConversationButton();
4353 dword_F8B19C = 101; 4353 dword_F8B19C = 101;
4354 sub_4B3A72(dword_F8B198); 4354 sub_4B3A72(in_current_bilding_type);
4355 } 4355 }
4356 return 1; 4356 return 1;
4357 } 4357 }
4358 pVideoPlayer->_4BF5B2(); 4358 pVideoPlayer->_4BF5B2();
4359 UI_CreateEndConversationButton(); 4359 UI_CreateEndConversationButton();
4512 { 4512 {
4513 if ( pParty->uNumGold < v44 ) 4513 if ( pParty->uNumGold < v44 )
4514 { 4514 {
4515 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u);// "You don't have enough gold" 4515 ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u);// "You don't have enough gold"
4516 v13 = window_SpeakInHouse->ptr_1C; 4516 v13 = window_SpeakInHouse->ptr_1C;
4517 if ( dword_F8B198 == 30 ) 4517 if ( in_current_bilding_type == 30 )
4518 v55 = 4; 4518 v55 = 4;
4519 else 4519 else
4520 v55 = 2; 4520 v55 = 2;
4521 goto LABEL_84; 4521 goto LABEL_84;
4522 } 4522 }