Mercurial > mm7
diff mm7_5.cpp @ 1048:d36681a9e4f8
Слияние
author | Ritor1 |
---|---|
date | Thu, 23 May 2013 11:17:01 +0600 |
parents | d3f4c6584ada 682ba1c83fd3 |
children | 05c62d166182 |
line wrap: on
line diff
--- a/mm7_5.cpp Thu May 23 11:16:46 2013 +0600 +++ b/mm7_5.cpp Thu May 23 11:17:01 2013 +0600 @@ -275,7 +275,7 @@ memset(&actor, 0, 0x344u); dword_5B65D0_dialogue_actor_npc_id = bDialogueUI_InitializeActor_NPC_ID; actor.sNPC_ID = bDialogueUI_InitializeActor_NPC_ID; - actor.InitializeDialogue(0); + GameUI_InitializeDialogue(&actor, false); bDialogueUI_InitializeActor_NPC_ID = 0; } if ( pMessageQueue_50CBD0->uNumMessages ) @@ -306,7 +306,7 @@ dword_5B65D0_dialogue_actor_npc_id = pActors[uMessageParam].sNPC_ID; pActor = &pActors[uMessageParam]; //goto _actor_init_dlg; - pActor->InitializeDialogue(1); + GameUI_InitializeDialogue(pActor, true); continue; case UIMSG_StartHireling1Dialogue: case UIMSG_StartHireling2Dialogue: @@ -359,7 +359,7 @@ memset(&actor, 0, 0x344u); actor.sNPC_ID += -1 - (unsigned __int8)pParty->field_709 - hireling_idx; pActor = &actor; - pActor->InitializeDialogue(1); + GameUI_InitializeDialogue(&actor, true); } } continue; @@ -406,7 +406,7 @@ pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; pGUIWindow_CurrentMenu->Release(); pCurrentScreen = SCREEN_LOADGAME; - GameUI_DrawLoadMenu(1); + LoadUI_Load(1); continue; case UIMSG_Quit: if ( dword_6BE138 == 132 || uMessageParam ) @@ -457,8 +457,8 @@ GUIWindow::Create(241, 302, 106, 42, WINDOW_SaveLoadBtn, (int)pBtnLoadSlot, 0); continue; case UIMSG_SelectLoadSlot: - if ( pGUIWindow_CurrentMenu->field_40 == 1 ) - pKeyActionMap->_459ED1(0); + if ( pGUIWindow_CurrentMenu->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS) + pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_NONE); if ( pCurrentScreen != SCREEN_SAVEGAME || uLoadGameUI_SelectedSlot != pSaveListPosition + uMessageParam ) { v10 = pSaveListPosition + uMessageParam; @@ -466,23 +466,6 @@ { pMessageQueue_50CBD0->AddMessage(UIMSG_SaveLoadBtn, 0, 0); pMessageQueue_50CBD0->AddMessage(UIMSG_LoadGame, 0, 0); - /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) - { - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = UIMSG_SaveLoadBtn; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0; - *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0; - //v11 = pMessageQueue_50CBD0->uNumMessages + 1; - //v13 = pMessageQueue_50CBD0->uNumMessages + 1 > 40; - //v12 = (signed int)pMessageQueue_50CBD0->uNumMessages - 39 < 0; - ++pMessageQueue_50CBD0->uNumMessages; - if ( v12 ^ v13 ) - { - pMessageQueue_50CBD0->pMessages[v11].eType = UIMSG_LoadGame; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0; - *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0; - ++pMessageQueue_50CBD0->uNumMessages; - } - }*/ } uLoadGameUI_SelectedSlot = v10; dword_6BE138 = v10; @@ -504,9 +487,9 @@ stru_506E40.Release(); continue; case UIMSG_SaveGame: - if ( pGUIWindow_CurrentMenu->field_40 == 1 ) - { - pKeyActionMap->_459ED1(0); + if ( pGUIWindow_CurrentMenu->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS) + { + pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_NONE); strcpy((char *)&pSavegameHeader[uLoadGameUI_SelectedSlot], (const char *)pKeyActionMap->pPressedKeysBuffer); } DoSavegame(uLoadGameUI_SelectedSlot); @@ -515,7 +498,7 @@ case UIMSG_Game_OpenSaveGameDialog: pGUIWindow_CurrentMenu->Release(); pCurrentScreen = SCREEN_SAVEGAME; - GameUI_DrawSaveMenu(); + SaveUI_Load(); continue; case UIMSG_Game_OpenOptionsDialog://Open if ( pMessageQueue_50CBD0->uNumMessages ) @@ -624,16 +607,16 @@ pGUIWindow_CurrentMenu->CreateButton(350u, 224u, 70u, 0x13u, 1, 0, UIMSG_ChangeKeyButton, 0xBu, 0, "", 0); pGUIWindow_CurrentMenu->CreateButton(350u, 243u, 70u, 0x13u, 1, 0, UIMSG_ChangeKeyButton, 0xCu, 0, "", 0); pGUIWindow_CurrentMenu->CreateButton(350u, 262u, 70u, 0x13u, 1, 0, UIMSG_ChangeKeyButton, 0xDu, 0, "", 0); - dword_506E68 = -1; + uGameMenuUI_CurentlySelectedKeyIdx = -1; KeyboardPageNum = 1; - memset(KeyButtonFlagChangesArray, 0, sizeof(KeyButtonFlagChangesArray)); + memset(GameMenuUI_InvaligKeyBindingsFlags, 0, sizeof(GameMenuUI_InvaligKeyBindingsFlags)); //*(_WORD *)KeyButtonArray[28] = 0; memcpy(pPrevVirtualCidesMapping, pKeyActionMap->pVirtualKeyCodesMapping, 0x78u); //v1 = ""; //v0 = 1; continue; case UIMSG_ChangeKeyButton: - if ( dword_506E68 != -1 ) + if ( uGameMenuUI_CurentlySelectedKeyIdx != -1 ) { pAudioPlayer->PlaySound((SoundID)27, 0, 0, -1, 0, 0, 0, 0); continue; @@ -641,7 +624,7 @@ v14 = uMessageParam; if ( KeyboardPageNum != 1 ) v14 = uMessageParam + 14; - dword_506E68 = v14; + uGameMenuUI_CurentlySelectedKeyIdx = v14; pKeyActionMap->EnterText(0, 1, pGUIWindow_CurrentMenu); continue; case UIMSG_ResetKeyMapping: @@ -669,7 +652,7 @@ v18 = uAction++; v13 = uAction > 28; v12 = uAction - 28 < 0; - KeyButtonFlagChangesArray[v18] = 0; + GameMenuUI_InvaligKeyBindingsFlags[v18] = 0; } while ( v12 ^ v13 ); pAudioPlayer->PlaySound((SoundID)219, 0, 0, -1, 0, 0, 0, 0); @@ -1199,22 +1182,25 @@ WriteWindowsRegistryInt("GammaPos", uGammaPos); stru_506E40.Release(); break; + case SCREEN_KEYBOARD_OPTIONS://Return to game v197 = 1; v32 = 0; - while ( KeyButtonFlagChangesArray[v32] != 1 ) + while ( !GameMenuUI_InvaligKeyBindingsFlags[v32]) { ++v32; if ( v32 >= 28 ) { thisb = (signed int)&uTextureID_Optkb; + assert(false && "Invalid condition values"); do { if ( *(int *)thisb ) pIcons_LOD->pTextures[*(int *)thisb].Release(); thisb += 4; } - while ( thisb < (signed int)&dword_507C08 ); + while ( thisb < (signed int)0x00507C08 ); + memset(&uTextureID_Optkb, 0, 0x14u); pIcons_LOD->SyncLoadedFilesCount(); uAction = 0; @@ -1341,7 +1327,7 @@ pGUIWindow_CurrentMenu = 0; pEventTimer->Resume(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; pIcons_LOD->_4355F7(); continue; case SCREEN_INPUT_BLV://click escape @@ -1352,34 +1338,34 @@ { pParty->field_709 = 0; LOBYTE(pNPCStats->pNewNPCData[dword_5B65CC].uFlags) &= 0x7Fu; - Party__CountHirelings(); - viewparams->bRedrawGameUI = 1; + pParty->CountHirelings(); + viewparams->bRedrawGameUI = true; dword_5B65CC = 0; } DialogueEnding(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; continue; case SCREEN_NPC_DIALOGUE://click escape if ( dword_5B65CC ) { pParty->field_709 = 0; LOBYTE(pNPCStats->pNewNPCData[dword_5B65CC].uFlags) &= 0x7Fu; - Party__CountHirelings(); - viewparams->bRedrawGameUI = 1; + pParty->CountHirelings(); + viewparams->bRedrawGameUI = true; dword_5B65CC = 0; } //goto LABEL_317; DialogueEnding(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; continue; case SCREEN_BRANCHLESS_NPC_DIALOG://click escape memset(GameUI_Footer_TimedString, 0, 0xC8u); sub_4452BB(); DialogueEnding(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; continue; case SCREEN_CHANGE_LOCATION://click escape if ( pParty->vPosition.x < -22528 ) @@ -1392,7 +1378,7 @@ pParty->vPosition.y = 22528; DialogueEnding(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; continue; case SCREEN_VIDEO: pVideoPlayer->Unload(); @@ -1425,7 +1411,7 @@ pGUIWindow_CurrentMenu = 0; pEventTimer->Resume(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; pIcons_LOD->_4355F7(); continue; default: @@ -1481,7 +1467,7 @@ pGUIWindow_CurrentMenu = 0; pEventTimer->Resume(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; pIcons_LOD->_4355F7(); continue; } @@ -1513,7 +1499,7 @@ pGUIWindow_CurrentMenu = 0; pEventTimer->Resume(); pCurrentScreen = SCREEN_GAME; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; pIcons_LOD->_4355F7(); continue; } @@ -1523,10 +1509,12 @@ GUIWindow::Create(0x25Au, 0x1C2u, 0, 0, WINDOW_PressedButton2, (int)pBtn_GameSettings, 1); pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); + pCurrentScreen = SCREEN_MENU; + ++pIcons_LOD->uTexturePacksCount; - pCurrentScreen = 1; if ( !pIcons_LOD->uNumPrevLoadedFiles ) pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_OptionsButtons, 0, 0); uTextureID_Options = pIcons_LOD->LoadTexture("options", TEXTURE_16BIT_PALETTE); uTextureID_New1 = pIcons_LOD->LoadTexture("new1", TEXTURE_16BIT_PALETTE); @@ -1662,12 +1650,12 @@ pVideoPlayer->Unload(); DialogueEnding(); start_event_seq_number = 0; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; continue; case UIMSG_CycleCharacters: v39 = GetAsyncKeyState(VK_SHIFT); uActiveCharacter = CycleCharacter(v39); - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; continue; case UIMSG_OnTravelByFoot: if ( pMessageQueue_50CBD0->uNumMessages ) @@ -2490,7 +2478,7 @@ continue; case UIMSG_RentRoom: dword_506F14 = 2; - RestUI_Initialize(); + RestUI_Load(); v86 = 60 * (_494820_training_time(pParty->uCurrentHour) + 1) - pParty->uCurrentMinute; _506F18_num_hours_to_sleep = v86; if ( uMessageParam == 111 || uMessageParam == 114 || uMessageParam == 116 ) @@ -2531,7 +2519,7 @@ } if ( !(pParty->uFlags & 0x88) ) { - RestUI_Initialize(); + RestUI_Load(); continue; } if ( pParty->bTurnBasedModeOn == 1 ) @@ -3459,8 +3447,8 @@ break; case UIMSG_SelectLoadSlot: //main menu save/load wnd clicking on savegame lines - if (pGUIWindow_CurrentMenu->field_40 == 1) - pKeyActionMap->_459ED1(0); + if (pGUIWindow_CurrentMenu->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS) + pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_NONE); if ( pCurrentScreen != SCREEN_SAVEGAME || uLoadGameUI_SelectedSlot != pParam + pSaveListPosition ) { //load clicked line @@ -4755,7 +4743,7 @@ && (SHIDWORD(pMonster->pActorBuffs[20].uExpireTime) > (signed int)v41 || LODWORD(pMonster->pActorBuffs[20].uExpireTime) > v41) && uDamageAmount != v41 ) - player->ReceiveDamage(uDamageAmount, a2); + player->ReceiveDamage(uDamageAmount, (DAMAGE_TYPE)a2); v50 = 24; v59 = 20 * v61 / (signed int)pMonster->pMonsterInfo.uHP; if ( (player->_48EA46_calc_special_bonus_by_items(24) || hit_will_stun != v41) @@ -5007,7 +4995,7 @@ LABEL_43: if ( !(dword_6BE368_debug_settings_2 & 0x10) ) { - v24 = v6->ReceiveDamage(v77, v22); + v24 = v6->ReceiveDamage(v77, (DAMAGE_TYPE)v22); if ( SHIDWORD(v6->pPlayerBuffs[10].uExpireTime) >= 0 && (SHIDWORD(v6->pPlayerBuffs[10].uExpireTime) > 0 || LODWORD(v6->pPlayerBuffs[10].uExpireTime)) ) { @@ -5070,7 +5058,7 @@ if ( !pParty->bTurnBasedModeOn ) { v35 = v6->GetActualEndurance(); - v36 = (double)(20 - v6->_48EA1B_get_static_effect(v35)) * flt_6BE3A4_debug_recmod1 * 2.133333333333333; + v36 = (double)(20 - v6->GetParameterBonus(v35)) * flt_6BE3A4_debug_recmod1 * 2.133333333333333; v6->SetRecoveryTime((signed __int64)v36); } if ( v77 ) @@ -5192,7 +5180,7 @@ LABEL_133: if ( !(dword_6BE368_debug_settings_2 & 0x10) ) { - v54 = v45->ReceiveDamage(v77, v50); + v54 = v45->ReceiveDamage(v77, (DAMAGE_TYPE)v50); if ( SHIDWORD(v45->pPlayerBuffs[10].uExpireTime) >= 0 ) { if ( SHIDWORD(v45->pPlayerBuffs[10].uExpireTime) > 0 || LODWORD(v45->pPlayerBuffs[10].uExpireTime) ) @@ -5258,7 +5246,7 @@ if ( !pParty->bTurnBasedModeOn ) { v65 = v45->GetActualEndurance(); - v66 = (double)(20 - v45->_48EA1B_get_static_effect(v65)) + v66 = (double)(20 - v45->GetParameterBonus(v65)) * flt_6BE3A4_debug_recmod1 * 2.133333333333333; v45->SetRecoveryTime((signed __int64)v66); @@ -5289,7 +5277,7 @@ v68 = pParty->pPlayers[uActorID].CalculateRangedDamageTo(0); v69 = 0; } - a4b->ReceiveDamage(v68, v69); + a4b->ReceiveDamage(v68, (DAMAGE_TYPE)v69); if ( v38 == OBJECT_Player && !qword_A750D8 ) { qword_A750D8 = 256i64; @@ -5399,10 +5387,7 @@ } else { - result = (flt_4E4A80[v2] - *(float *)&aAuthenticamd[4 * v2 + 12]) - * (v3 - flt_4E4A80[v2 + 4]) - / (flt_4E4A80[v2 + 5] - flt_4E4A80[v2 + 4]) - + flt_4E4A80[v2]; + result = (flt_4E4A80[v2] - flt_4E4A80[v2 - 3]) * (v3 - flt_4E4A80[v2 + 4]) / (flt_4E4A80[v2 + 5] - flt_4E4A80[v2 + 4]) + flt_4E4A80[v2]; } return result; } @@ -9751,149 +9736,6 @@ } -//----- (00411150) -------------------------------------------------------- -void DrawTownPortalScreen() -{ - //signed int v0; // edi@1 - //__int16 v1; // dx@8 - //POINT *v2; // edi@17 - int v3; // edi@17 - //__int16 v4; // dx@24 - GUIWindow v6; // [sp+Ch] [bp-64h]@1 - //POINT v7; // [sp+60h] [bp-10h]@17 - POINT a2; // [sp+68h] [bp-8h]@17 - - pRenderer->ClearZBuffer(0, 479); - pRenderer->DrawTextureTransparent(8, 8, pTexture_CurrentBook); - pRenderer->DrawTextureTransparent(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId)); - - v6.uFrameX = game_viewport_x; - v6.uFrameY = game_viewport_y; - v6.uFrameWidth = game_viewport_width; - v6.uFrameHeight = game_viewport_height; - v6.uFrameZ = game_viewport_z; - v6.uFrameW = game_viewport_w; - - const uint fountain_bits_lut[] = {PARTY_QUEST_FOUNTAIN_HARMONDALE, - PARTY_QUEST_FOUNTAIN_PIERPONT, - PARTY_QUEST_FOUNTAIN_NIGHON, - PARTY_QUEST_FOUNTAIN_EVENMORN_ISLE, - PARTY_QUEST_FOUNTAIN_CELESTIA, - PARTY_QUEST_FOUNTAIN_THE_PIT}; - for (uint i = 0; i < 6; ++i) - { - - if (_449B57_test_bit(pParty->_quest_bits, fountain_bits_lut[i])) - pRenderer->DrawMaskToZBuffer(pTownPortalBook_xs[i], - pTownPortalBook_ys[i], - pTexture_TownPortalIcons[i], i + 1); - } - -/* v0 = 0; - do - { - if ( !v0 ) - { - v1 = 206; -LABEL_14: - if ( !(unsigned __int16)_449B57_test_bit(pParty->_quest_bits, v1) ) - goto LABEL_16; - goto LABEL_15; - } - if ( v0 == 1 ) - { - v1 = 208; - goto LABEL_14; - } - if ( v0 == 2 ) - { - v1 = 207; - goto LABEL_14; - } - if ( v0 == 3 ) - { - v1 = 211; - goto LABEL_14; - } - if ( v0 == 4 ) - { - v1 = 209; - goto LABEL_14; - } - if ( v0 == 5 ) - { - v1 = 210; - goto LABEL_14; - } -LABEL_15: - pRenderer->DrawMaskToZBuffer( - pTownPortalBook_xs[v0], - pTownPortalBook_ys[v0], - *(&pTexture_TownPortalHarmn + v0), - v0 + 1); -LABEL_16: - ++v0; - } - while ( v0 < 6 );*/ - - pMouse->GetCursorPos(&a2); - //v2 = pMouse->GetCursorPos(&a2); - v3 = pRenderer->pActiveZBuffer[a2.x + pSRZBufferLineOffsets[a2.y]] & 0xFFFF; - - if (v3) - { - if (_449B57_test_bit(pParty->_quest_bits, fountain_bits_lut[v3 - 1])) - pRenderer->DrawTextureIndexed(pTownPortalBook_xs[v3 - 1], pTownPortalBook_ys[v3 - 1], pTexture_TownPortalIcons[v3 - 1]); - } - v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u); - - -/* if ( !v3 ) // Town Portal - { - v6.DrawTitleText(pBook2Font, 0, 22, 0, pGlobalTXT_LocalizationStrings[10], 3); // "Town Portal" - return; - } - if ( v3 == 1 ) - { - v4 = 206; -LABEL_30: - if ( (unsigned __int16)_449B57_test_bit(pParty->_quest_bits, v4) ) - goto LABEL_31; - v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u); // "Town Portal" - return; - } - if ( v3 == 2 ) - { - v4 = 208; - goto LABEL_30; - } - if ( v3 == 3 ) - { - v4 = 207; - goto LABEL_30; - } - if ( v3 == 4 ) - { - v4 = 211; - goto LABEL_30; - } - if ( v3 == 5 ) - { - v4 = 209; - goto LABEL_30; - } - if ( v3 == 6 ) - { - v4 = 210; - goto LABEL_30; - } -LABEL_31: - pRenderer->DrawTextureIndexed(word_4E1D3A[v3], pTownPortalBook_xs[v3 + 5], *(&pTex_tab_an_6b__zoom_on + v3)); - v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u);*/ -} -// 4E1D3A: using guessed type __int16 word_4E1D3A[]; - - //----- (00413FF1) -------------------------------------------------------- void SetMonthNames() { @@ -9964,17 +9806,6 @@ - -//----- (004141CA) -------------------------------------------------------- -void ModalWindow(const char *pStr, int a4) -{ - pEventTimer->Pause(); - dword_506F0C[0] = pCurrentScreen; - ptr_507BDC = GUIWindow::Create(0, 0, 640, 480, WINDOW_FinalWindow, a4, (int)pStr); - pCurrentScreen = SCREEN_PRESS_ESCAPE_MESSAGE; -} -// 4E28F8: using guessed type int pCurrentScreen; - //----- (0041420D) -------------------------------------------------------- void __cdecl sub_41420D_press_esc() { @@ -9998,13 +9829,7 @@ v0 = ptr_507BDC; pMessageQueue_50CBD0->AddMessage((UIMessageType)(int)ptr_507BDC->ptr_1C, 0, 0); - /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) - { - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = (UIMessageType)(int)ptr_507BDC->ptr_1C; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0; - *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0; - ++pMessageQueue_50CBD0->uNumMessages; - }*/ + v0->Release(); ptr_507BDC = 0; pCurrentScreen = dword_506F0C[0]; @@ -10051,10 +9876,10 @@ //----- (004156F0) -------------------------------------------------------- -void __cdecl GUI_UpdateWindows() +void GUI_UpdateWindows() { GUIWindow *pWindow; // esi@4 - unsigned int pWindowType; // eax@4 + //unsigned int pWindowType; // eax@4 char *pHint; // edx@66 GUIButton *pButtonPtr_1C; // ebp@79 char *pHint1; // edx@80 @@ -10082,7 +9907,6 @@ for ( i = 1; i <= uNumVisibleWindows; ++i ) { pWindow = &pWindowList[pVisibleWindowsIdxs[i] - 1]; - pWindowType = pWindow->eWindowType; switch (pWindow->eWindowType) { case WINDOW_OptionsButtons: @@ -10099,7 +9923,7 @@ } case WINDOW_Options: { - DrawGameOptions(); + GameMenuUI_Options_Draw(); continue; } case WINDOW_Book: @@ -10109,7 +9933,7 @@ } case WINDOW_Dialogue: { - DrawDialogueUI(); + GameUI_DrawDialogue(); continue; } case WINDOW_QuickReference: @@ -10134,7 +9958,7 @@ } case WINDOW_GreetingNPC: { - DrawBranchlessDialogueUI(); + GameUI_DrawBranchlessDialogue(); continue; } case WINDOW_Chest: @@ -10154,12 +9978,12 @@ } case WINDOW_SaveLoadButtons: { - sub_4606FE(); + SaveUI_Draw(); continue; } case WINDOW_MainMenu_Load: { - GameUI_MainMenu_DrawLoad(); + LoadUI_Draw(); continue; } case WINDOW_HouseInterior: @@ -10208,7 +10032,7 @@ case WINDOW_50: { v27 = TargetColor(255, 255, 255); - if ( ptr_507BD0->field_40 == 1 ) + if ( ptr_507BD0->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS) { ptr_507BD0->DrawMessageBox(0); ptr_507BD0->DrawText(pFontCreate, 30, 40, v27, (const char *)pKeyActionMap->pPressedKeysBuffer, 0, 0, 0); @@ -10216,19 +10040,19 @@ ptr_507BD0->DrawFlashingInputCursor(v31 + 30, 40, pFontCreate); continue; } - if ( ptr_507BD0->field_40 == 2 ) + if ( ptr_507BD0->receives_keyboard_input_2 == WINDOW_INPUT_CONFIRMED) { - pWindow->field_40 = 0; + pWindow->receives_keyboard_input_2 = WINDOW_INPUT_NONE; pMessageQueue_50CBD0->AddMessage((UIMessageType)(int)ptr_507BD0->ptr_1C, 0, 0); pEventTimer->Resume(); ptr_507BD0->Release(); - pCurrentScreen = 0; - viewparams->bRedrawGameUI = 1; + pCurrentScreen = SCREEN_GAME; + viewparams->bRedrawGameUI = true; continue; } - if ( ptr_507BD0->field_40 == 3 ) + if ( ptr_507BD0->receives_keyboard_input_2 == WINDOW_INPUT_CANCELLED) { - pWindow->field_40 = 0; + pWindow->receives_keyboard_input_2 = WINDOW_INPUT_NONE; pEventTimer->Resume(); ptr_507BD0->Release(); continue; @@ -10245,7 +10069,7 @@ pWindow->Release(); pEventTimer->Resume(); pCurrentScreen = 0; - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; v26 = atoi((const char *)pKeyActionMap->pPressedKeysBuffer); if ( v26 > 0 ) { @@ -10422,7 +10246,7 @@ pButton = (GUIButton *)pWindow->ptr_1C; pRenderer->DrawTextureIndexed(pWindow->uFrameY, pWindow->uFrameX, pButton->pTextures[0]); - viewparams->bRedrawGameUI = 1; + viewparams->bRedrawGameUI = true; continue; } case WINDOW_CharacterWindow_Inventory: @@ -10469,7 +10293,7 @@ } //----- (00416196) -------------------------------------------------------- -void __cdecl identify_item() +void identify_item() { Player *v0; // esi@2 POINT *v1; // edi@2 @@ -10753,17 +10577,11 @@ { v0->RemoveItemAtInventoryIndex(v18); v26 = rand(); - v0->ReceiveDamage(v26 % 11 + 10, 0); + v0->ReceiveDamage(v26 % 11 + 10, DMGT_FIRE); pAudioPlayer->PlaySound(SOUND_8, 0, 0, -1, 0, 0, 0, 0); pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0); - /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) - { - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = UIMSG_Escape; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0; - *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0; - ++pMessageQueue_50CBD0->uNumMessages; - }*/ + v42 = (int *)&a2.y; v41 = (int *)&y.y; v40 = (int *)&pOut; @@ -10775,7 +10593,7 @@ { v0->RemoveItemAtInventoryIndex(v18); v25 = rand(); - v0->ReceiveDamage(v25 % 71 + 30, 0); + v0->ReceiveDamage(v25 % 71 + 30, DMGT_FIRE); v23 = 1; } else @@ -10784,7 +10602,7 @@ { v0->RemoveItemAtInventoryIndex(v18); v24 = rand(); - v0->ReceiveDamage(v24 % 201 + 50, 0); + v0->ReceiveDamage(v24 % 201 + 50, DMGT_FIRE); v23 = 5; } else @@ -10835,13 +10653,7 @@ pAudioPlayer->PlaySound(SOUND_8, 0, 0, -1, 0, 0, 0, 0); pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0); - /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) - { - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = UIMSG_Escape; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0; - *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0; - ++pMessageQueue_50CBD0->uNumMessages; - }*/ + v42 = (int *)&a2.y; v41 = (int *)&y.y; v40 = (int *)&pOut; @@ -10907,134 +10719,6 @@ } -//----- (00416B01) -------------------------------------------------------- -void __thiscall sub_416B01(void *_this)//PopupWindowForBenefitAndJoinText -{ - int v1; // edi@2 - int v2; // ecx@2 - NPCData *v3; // eax@2 - NPCData *v4; // esi@7 - NPCData *v5; // eax@16 - NPCData *v6; // esi@16 - const CHAR *v7; // eax@18 - unsigned int v8; // eax@25 - unsigned int v9; // eax@25 - const char *v10; // ST14_4@26 - char *v11; // esi@26 - const char *v12; // ST18_4@27 - unsigned __int16 v13; // ax@28 - char *v14; // eax@28 - GUIWindow a1; // [sp+Ch] [bp-60h]@23 - int a2; // [sp+60h] [bp-Ch]@16 - void *v17; // [sp+64h] [bp-8h]@1 - LPCSTR lpsz; // [sp+68h] [bp-4h]@6 - - v17 = _this; - if ( bNoNPCHiring != 1 ) - { - v1 = 0; - v2 = 0; - v3 = pParty->pHirelings; - /*do - { - if ( v3->pName ) - pTmpBuf[v1++] = v2; - ++v3; - ++v2; - } - while ( (signed int)v3 < (signed int)&pParty->pPickedItem );*/ - for (int i = 0; i < 2; ++i) - { - if (pParty->pHirelings[i].pName) - pTmpBuf[v1++] = i; - } - lpsz = 0; - if ( (signed int)pNPCStats->uNumNewNPCs > 0 ) - { - /*v4 = pNPCStats->pNewNPCData; - do - { - if ( v4->uFlags & 0x80 - && (!pParty->pHirelings[0].pName || strcmp(v4->pName, pParty->pHirelings[0].pName)) - && (!pParty->pHirelings[1].pName || strcmp(v4->pName, pParty->pHirelings[1].pName)) ) - pTmpBuf[v1++] = (char)lpsz + 2; - ++lpsz; - ++v4; - } - while ( (signed int)lpsz < (signed int)pNPCStats->uNumNewNPCs );*/ - for (int i = 0; i < pNPCStats->uNumNewNPCs; ++i) - { - if (pNPCStats->pNewNPCData[i].Hired()) - { - if (!pParty->pHirelings[0].pName || strcmp((char *)pNPCStats->pNewNPCData[i].pName, (char *)pParty->pHirelings[0].pName)) - { - if (!pParty->pHirelings[1].pName || strcmp((char *)pNPCStats->pNewNPCData[i].pName, (char *)pParty->pHirelings[1].pName)) - pTmpBuf[v1++] = i + 2; - } - } - } - } - if ( (signed int)((char *)v17 + (unsigned __int8)pParty->field_709) < v1 ) - { - sDialogue_SpeakingActorNPC_ID = -1 - (unsigned __int8)pParty->field_709 - (int)v17; - v5 = GetNewNPCData(sDialogue_SpeakingActorNPC_ID, (int)&a2); - v6 = v5; - if ( v5 ) - { - if ( a2 == 57 ) - v7 = pNPCTopics[512].pText; // Baby dragon - else - v7 = (const CHAR *)pNPCStats->pProfessions[v5->uProfession].pBenefits; - lpsz = v7; - if ( !v7 ) - { - lpsz = (LPCSTR)pNPCStats->pProfessions[v5->uProfession].pJoinText; - if ( !lpsz ) - lpsz = ""; - } - a1.Hint = 0; - a1.uFrameX = 38; - a1.uFrameY = 60; - a1.uFrameWidth = 276; - a1.uFrameZ = 313; - a1.uFrameHeight = pFontArrus->CalcTextHeight(lpsz, &a1, 0, 0) - + 2 * LOBYTE(pFontArrus->uFontHeight) - + 24; - if ( (signed int)a1.uFrameHeight < 130 ) - a1.uFrameHeight = 130; - a1.uFrameWidth = 400; - a1.uFrameZ = a1.uFrameX + 399; - a1.DrawMessageBox(0); - sprintf(pTmpBuf2, "NPC%03d", v6->uPortraitID); - v8 = pIcons_LOD->LoadTexture(pTmpBuf2, TEXTURE_16BIT_PALETTE); - pRenderer->DrawTextureIndexed( - a1.uFrameX + 22, - a1.uFrameY + 36, - (Texture *)(v8 != -1 ? &pIcons_LOD->pTextures[v8] : 0)); - v9 = v6->uProfession; - if ( v9 ) - { - v10 = v6->pName; - v11 = pTmpBuf; - sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[429], v10, aNPCProfessionNames[v9]); - } - else - { - v12 = v6->pName; - v11 = pTmpBuf; - strcpy(pTmpBuf, v12); - } - v13 = TargetColor(0xFFu, 0xFFu, 0x9Bu); - a1.DrawTitleText(pFontArrus, 0, 0xCu, v13, v11, 3u); - a1.uFrameWidth -= 24; - a1.uFrameZ = a1.uFrameX + a1.uFrameWidth - 1; - v14 = BuilDialogueString((char *)lpsz, uActiveCharacter - 1, 0, 0, 0, 0); - a1.DrawText(pFontArrus, 100, 36, 0, v14, 0, 0, 0); - } - } - } -} - @@ -11194,26 +10878,6 @@ } } -//----- (004178C4) -------------------------------------------------------- -void __cdecl sub_4178C4() -{ - if ( pArcomageGame->bGameInProgress == 1 ) - { - if (pAsyncMouse) - pArcomageGame->stru1.field_0 = 7; - } -} - -//----- (004178E1) -------------------------------------------------------- -void __cdecl sub_4178E1() -{ - if ( pArcomageGame->bGameInProgress == 1 ) - { - if (pAsyncMouse) - pArcomageGame->stru1.field_0 = 8; - } -} - //----- (004178FE) -------------------------------------------------------- unsigned int __fastcall UI_GetHealthManaStringColor(signed int a1, signed int a2) {