comparison mm7_5.cpp @ 1033:3a5c8df8381d

* UI cleans and moves * Deleted many junk global variables.
author Nomad
date Tue, 21 May 2013 23:44:51 +0200
parents f93d17337113
children 306ec23b37df 7f8be9f9769e
comparison
equal deleted inserted replaced
1031:f93d17337113 1033:3a5c8df8381d
273 { 273 {
274 //Actor::Actor(&actor); 274 //Actor::Actor(&actor);
275 memset(&actor, 0, 0x344u); 275 memset(&actor, 0, 0x344u);
276 dword_5B65D0_dialogue_actor_npc_id = bDialogueUI_InitializeActor_NPC_ID; 276 dword_5B65D0_dialogue_actor_npc_id = bDialogueUI_InitializeActor_NPC_ID;
277 actor.sNPC_ID = bDialogueUI_InitializeActor_NPC_ID; 277 actor.sNPC_ID = bDialogueUI_InitializeActor_NPC_ID;
278 actor.InitializeDialogue(0); 278 GameUI_InitializeDialogue(&actor, false);
279 bDialogueUI_InitializeActor_NPC_ID = 0; 279 bDialogueUI_InitializeActor_NPC_ID = 0;
280 } 280 }
281 if ( pMessageQueue_50CBD0->uNumMessages ) 281 if ( pMessageQueue_50CBD0->uNumMessages )
282 { 282 {
283 //v1 = ""; 283 //v1 = "";
304 if ( pMessageQueue_50CBD0->uNumMessages ) 304 if ( pMessageQueue_50CBD0->uNumMessages )
305 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; 305 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
306 dword_5B65D0_dialogue_actor_npc_id = pActors[uMessageParam].sNPC_ID; 306 dword_5B65D0_dialogue_actor_npc_id = pActors[uMessageParam].sNPC_ID;
307 pActor = &pActors[uMessageParam]; 307 pActor = &pActors[uMessageParam];
308 //goto _actor_init_dlg; 308 //goto _actor_init_dlg;
309 pActor->InitializeDialogue(1); 309 GameUI_InitializeDialogue(pActor, true);
310 continue; 310 continue;
311 case UIMSG_StartHireling1Dialogue: 311 case UIMSG_StartHireling1Dialogue:
312 case UIMSG_StartHireling2Dialogue: 312 case UIMSG_StartHireling2Dialogue:
313 { 313 {
314 if (bNoNPCHiring || pCurrentScreen) 314 if (bNoNPCHiring || pCurrentScreen)
357 { 357 {
358 //Actor::Actor(&actor); 358 //Actor::Actor(&actor);
359 memset(&actor, 0, 0x344u); 359 memset(&actor, 0, 0x344u);
360 actor.sNPC_ID += -1 - (unsigned __int8)pParty->field_709 - hireling_idx; 360 actor.sNPC_ID += -1 - (unsigned __int8)pParty->field_709 - hireling_idx;
361 pActor = &actor; 361 pActor = &actor;
362 pActor->InitializeDialogue(1); 362 GameUI_InitializeDialogue(&actor, true);
363 } 363 }
364 } 364 }
365 continue; 365 continue;
366 366
367 case UIMSG_BuyInShop_Identify_Repair: 367 case UIMSG_BuyInShop_Identify_Repair:
404 pIcons_LOD->_4114F2(); 404 pIcons_LOD->_4114F2();
405 if ( pMessageQueue_50CBD0->uNumMessages ) 405 if ( pMessageQueue_50CBD0->uNumMessages )
406 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; 406 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
407 pGUIWindow_CurrentMenu->Release(); 407 pGUIWindow_CurrentMenu->Release();
408 pCurrentScreen = SCREEN_LOADGAME; 408 pCurrentScreen = SCREEN_LOADGAME;
409 GameUI_DrawLoadMenu(1); 409 LoadUI_Load(1);
410 continue; 410 continue;
411 case UIMSG_Quit: 411 case UIMSG_Quit:
412 if ( dword_6BE138 == 132 || uMessageParam ) 412 if ( dword_6BE138 == 132 || uMessageParam )
413 { 413 {
414 pIcons_LOD->SyncLoadedFilesCount(); 414 pIcons_LOD->SyncLoadedFilesCount();
513 stru_506E40.Release(); 513 stru_506E40.Release();
514 continue; 514 continue;
515 case UIMSG_Game_OpenSaveGameDialog: 515 case UIMSG_Game_OpenSaveGameDialog:
516 pGUIWindow_CurrentMenu->Release(); 516 pGUIWindow_CurrentMenu->Release();
517 pCurrentScreen = SCREEN_SAVEGAME; 517 pCurrentScreen = SCREEN_SAVEGAME;
518 GameUI_DrawSaveMenu(); 518 SaveUI_Load();
519 continue; 519 continue;
520 case UIMSG_Game_OpenOptionsDialog://Open 520 case UIMSG_Game_OpenOptionsDialog://Open
521 if ( pMessageQueue_50CBD0->uNumMessages ) 521 if ( pMessageQueue_50CBD0->uNumMessages )
522 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; 522 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
523 pGUIWindow_CurrentMenu->Release(); 523 pGUIWindow_CurrentMenu->Release();
2491 dword_506F14 = 1; 2491 dword_506F14 = 1;
2492 _506F18_num_hours_to_sleep = 60; 2492 _506F18_num_hours_to_sleep = 60;
2493 continue; 2493 continue;
2494 case UIMSG_RentRoom: 2494 case UIMSG_RentRoom:
2495 dword_506F14 = 2; 2495 dword_506F14 = 2;
2496 RestUI_Initialize(); 2496 RestUI_Load();
2497 v86 = 60 * (_494820_training_time(pParty->uCurrentHour) + 1) - pParty->uCurrentMinute; 2497 v86 = 60 * (_494820_training_time(pParty->uCurrentHour) + 1) - pParty->uCurrentMinute;
2498 _506F18_num_hours_to_sleep = v86; 2498 _506F18_num_hours_to_sleep = v86;
2499 if ( uMessageParam == 111 || uMessageParam == 114 || uMessageParam == 116 ) 2499 if ( uMessageParam == 111 || uMessageParam == 114 || uMessageParam == 116 )
2500 _506F18_num_hours_to_sleep = v86 + 720; 2500 _506F18_num_hours_to_sleep = v86 + 720;
2501 dword_506F14 = 2; 2501 dword_506F14 = 2;
2532 ShowStatusBarString(pGlobalTXT_LocalizationStrings[478], 2);// "You can't rest in turn-based mode!" 2532 ShowStatusBarString(pGlobalTXT_LocalizationStrings[478], 2);// "You can't rest in turn-based mode!"
2533 continue; 2533 continue;
2534 } 2534 }
2535 if ( !(pParty->uFlags & 0x88) ) 2535 if ( !(pParty->uFlags & 0x88) )
2536 { 2536 {
2537 RestUI_Initialize(); 2537 RestUI_Load();
2538 continue; 2538 continue;
2539 } 2539 }
2540 if ( pParty->bTurnBasedModeOn == 1 ) 2540 if ( pParty->bTurnBasedModeOn == 1 )
2541 { 2541 {
2542 ShowStatusBarString(pGlobalTXT_LocalizationStrings[478], 2);// "You can't rest in turn-based mode!" 2542 ShowStatusBarString(pGlobalTXT_LocalizationStrings[478], 2);// "You can't rest in turn-based mode!"
5414 else 5414 else
5415 result = flt_4E4A80[0]; 5415 result = flt_4E4A80[0];
5416 } 5416 }
5417 else 5417 else
5418 { 5418 {
5419 result = (flt_4E4A80[v2] - *(float *)&aAuthenticamd[4 * v2 + 12]) 5419 result = (flt_4E4A80[v2] - flt_4E4A80[v2 - 3]) * (v3 - flt_4E4A80[v2 + 4]) / (flt_4E4A80[v2 + 5] - flt_4E4A80[v2 + 4]) + flt_4E4A80[v2];
5420 * (v3 - flt_4E4A80[v2 + 4])
5421 / (flt_4E4A80[v2 + 5] - flt_4E4A80[v2 + 4])
5422 + flt_4E4A80[v2];
5423 } 5420 }
5424 return result; 5421 return result;
5425 } 5422 }
5426 5423
5427 //----- (0043AFE3) -------------------------------------------------------- 5424 //----- (0043AFE3) --------------------------------------------------------
10069 10066
10070 //----- (004156F0) -------------------------------------------------------- 10067 //----- (004156F0) --------------------------------------------------------
10071 void GUI_UpdateWindows() 10068 void GUI_UpdateWindows()
10072 { 10069 {
10073 GUIWindow *pWindow; // esi@4 10070 GUIWindow *pWindow; // esi@4
10074 unsigned int pWindowType; // eax@4 10071 //unsigned int pWindowType; // eax@4
10075 char *pHint; // edx@66 10072 char *pHint; // edx@66
10076 GUIButton *pButtonPtr_1C; // ebp@79 10073 GUIButton *pButtonPtr_1C; // ebp@79
10077 char *pHint1; // edx@80 10074 char *pHint1; // edx@80
10078 int v26; // eax@98 10075 int v26; // eax@98
10079 unsigned int v27; // ebp@106 10076 unsigned int v27; // ebp@106
10097 UI_OnKeyDown(VK_NEXT); 10094 UI_OnKeyDown(VK_NEXT);
10098 10095
10099 for ( i = 1; i <= uNumVisibleWindows; ++i ) 10096 for ( i = 1; i <= uNumVisibleWindows; ++i )
10100 { 10097 {
10101 pWindow = &pWindowList[pVisibleWindowsIdxs[i] - 1]; 10098 pWindow = &pWindowList[pVisibleWindowsIdxs[i] - 1];
10102 pWindowType = pWindow->eWindowType;
10103 switch (pWindow->eWindowType) 10099 switch (pWindow->eWindowType)
10104 { 10100 {
10105 case WINDOW_OptionsButtons: 10101 case WINDOW_OptionsButtons:
10106 { 10102 {
10107 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_Y, 10103 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_Y,
10124 BookUI_Draw((WindowType)(int)pWindow->ptr_1C); 10120 BookUI_Draw((WindowType)(int)pWindow->ptr_1C);
10125 continue; 10121 continue;
10126 } 10122 }
10127 case WINDOW_Dialogue: 10123 case WINDOW_Dialogue:
10128 { 10124 {
10129 DrawDialogueUI(); 10125 GameUI_DrawDialogue();
10130 continue; 10126 continue;
10131 } 10127 }
10132 case WINDOW_QuickReference: 10128 case WINDOW_QuickReference:
10133 { 10129 {
10134 GameUI_QuickRef_Draw(); 10130 GameUI_QuickRef_Draw();
10149 DrawSpellBookContent(pPlayers[uActiveCharacter]); 10145 DrawSpellBookContent(pPlayers[uActiveCharacter]);
10150 continue; 10146 continue;
10151 } 10147 }
10152 case WINDOW_GreetingNPC: 10148 case WINDOW_GreetingNPC:
10153 { 10149 {
10154 DrawBranchlessDialogueUI(); 10150 GameUI_DrawBranchlessDialogue();
10155 continue; 10151 continue;
10156 } 10152 }
10157 case WINDOW_Chest: 10153 case WINDOW_Chest:
10158 { 10154 {
10159 if ( pCurrentScreen == SCREEN_CHEST ) 10155 if ( pCurrentScreen == SCREEN_CHEST )
10169 } 10165 }
10170 continue; 10166 continue;
10171 } 10167 }
10172 case WINDOW_SaveLoadButtons: 10168 case WINDOW_SaveLoadButtons:
10173 { 10169 {
10174 sub_4606FE(); 10170 SaveUI_Draw();
10175 continue; 10171 continue;
10176 } 10172 }
10177 case WINDOW_MainMenu_Load: 10173 case WINDOW_MainMenu_Load:
10178 { 10174 {
10179 GameUI_MainMenu_DrawLoad(); 10175 LoadUI_Draw();
10180 continue; 10176 continue;
10181 } 10177 }
10182 case WINDOW_HouseInterior: 10178 case WINDOW_HouseInterior:
10183 { 10179 {
10184 pWindowList[pVisibleWindowsIdxs[i] - 1].HouseDialogManager(); 10180 pWindowList[pVisibleWindowsIdxs[i] - 1].HouseDialogManager();
10437 case WINDOW_BooksWindow: 10433 case WINDOW_BooksWindow:
10438 { 10434 {
10439 pButton = (GUIButton *)pWindow->ptr_1C; 10435 pButton = (GUIButton *)pWindow->ptr_1C;
10440 pRenderer->DrawTextureIndexed(pWindow->uFrameY, 10436 pRenderer->DrawTextureIndexed(pWindow->uFrameY,
10441 pWindow->uFrameX, pButton->pTextures[0]); 10437 pWindow->uFrameX, pButton->pTextures[0]);
10442 viewparams->bRedrawGameUI = 1; 10438 viewparams->bRedrawGameUI = true;
10443 continue; 10439 continue;
10444 } 10440 }
10445 case WINDOW_CharacterWindow_Inventory: 10441 case WINDOW_CharacterWindow_Inventory:
10446 { 10442 {
10447 pWindow->DrawMessageBox(0); 10443 pWindow->DrawMessageBox(0);
10484 if ( sub_4637E0_is_there_popup_onscreen() ) 10480 if ( sub_4637E0_is_there_popup_onscreen() )
10485 sub_416D62_ShowPopupWindow_MonsterRecord_ItemInfo_etcsub_416D62(0); 10481 sub_416D62_ShowPopupWindow_MonsterRecord_ItemInfo_etcsub_416D62(0);
10486 } 10482 }
10487 10483
10488 //----- (00416196) -------------------------------------------------------- 10484 //----- (00416196) --------------------------------------------------------
10489 void __cdecl identify_item() 10485 void identify_item()
10490 { 10486 {
10491 Player *v0; // esi@2 10487 Player *v0; // esi@2
10492 POINT *v1; // edi@2 10488 POINT *v1; // edi@2
10493 signed int v2; // ecx@5 10489 signed int v2; // ecx@5
10494 signed int v3; // eax@5 10490 signed int v3; // eax@5
10772 v26 = rand(); 10768 v26 = rand();
10773 v0->ReceiveDamage(v26 % 11 + 10, 0); 10769 v0->ReceiveDamage(v26 % 11 + 10, 0);
10774 pAudioPlayer->PlaySound(SOUND_8, 0, 0, -1, 0, 0, 0, 0); 10770 pAudioPlayer->PlaySound(SOUND_8, 0, 0, -1, 0, 0, 0, 0);
10775 10771
10776 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0); 10772 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0);
10777 /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) 10773
10778 {
10779 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = UIMSG_Escape;
10780 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0;
10781 *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0;
10782 ++pMessageQueue_50CBD0->uNumMessages;
10783 }*/
10784 v42 = (int *)&a2.y; 10774 v42 = (int *)&a2.y;
10785 v41 = (int *)&y.y; 10775 v41 = (int *)&y.y;
10786 v40 = (int *)&pOut; 10776 v40 = (int *)&pOut;
10787 v39.z = pParty->vPosition.z + pParty->sEyelevel; 10777 v39.z = pParty->vPosition.z + pParty->sEyelevel;
10788 } 10778 }
10850 } 10840 }
10851 v0->ItemsEnchant(v23); 10841 v0->ItemsEnchant(v23);
10852 pAudioPlayer->PlaySound(SOUND_8, 0, 0, -1, 0, 0, 0, 0); 10842 pAudioPlayer->PlaySound(SOUND_8, 0, 0, -1, 0, 0, 0, 0);
10853 10843
10854 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0); 10844 pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0);
10855 /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) 10845
10856 {
10857 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = UIMSG_Escape;
10858 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0;
10859 *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0;
10860 ++pMessageQueue_50CBD0->uNumMessages;
10861 }*/
10862 v42 = (int *)&a2.y; 10846 v42 = (int *)&a2.y;
10863 v41 = (int *)&y.y; 10847 v41 = (int *)&y.y;
10864 v40 = (int *)&pOut; 10848 v40 = (int *)&pOut;
10865 v39.z = pParty->vPosition.z + pParty->sEyelevel; 10849 v39.z = pParty->vPosition.z + pParty->sEyelevel;
10866 } 10850 }
10923 } 10907 }
10924 } 10908 }
10925 10909
10926 10910
10927 //----- (00416B01) -------------------------------------------------------- 10911 //----- (00416B01) --------------------------------------------------------
10928 void __thiscall sub_416B01(void *_this)//PopupWindowForBenefitAndJoinText 10912 void GameUI_DrawNPCPopup(void *_this)//PopupWindowForBenefitAndJoinText
10929 { 10913 {
10930 int v1; // edi@2 10914 int v1; // edi@2
10931 int v2; // ecx@2 10915 int v2; // ecx@2
10932 NPCData *v3; // eax@2 10916 NPCData *v3; // eax@2
10933 NPCData *v4; // esi@7 10917 NPCData *v4; // esi@7