Mercurial > mm7
diff mm7_5.cpp @ 710:735dab8d3c9a
Town portal screen + misc gui const replacements
author | Nomad |
---|---|
date | Thu, 21 Mar 2013 20:30:17 +0200 |
parents | af08fc9e29c8 |
children | e7c86528a2b3 |
line wrap: on
line diff
--- a/mm7_5.cpp Thu Mar 21 12:37:49 2013 +0200 +++ b/mm7_5.cpp Thu Mar 21 20:30:17 2013 +0200 @@ -214,7 +214,7 @@ enum WindowType pWindowType2; // [sp-8h] [bp-604h]@121 const char *v146; // [sp-8h] [bp-604h]@449 unsigned int v147; // [sp-8h] [bp-604h]@550 - int v148; // [sp-4h] [bp-600h]@56 + //int v148; // [sp-4h] [bp-600h]@56 GUIButton *pButton2; // [sp-4h] [bp-600h]@59 const char *v150; // [sp-4h] [bp-600h]@86 unsigned int v151; // [sp-4h] [bp-600h]@107 @@ -228,7 +228,7 @@ __int16 v159; // [sp-4h] [bp-600h]@550 int v160; // [sp-4h] [bp-600h]@599 const char *v161; // [sp-4h] [bp-600h]@637 - int v162; // [sp+0h] [bp-5FCh]@56 + //int v162; // [sp+0h] [bp-5FCh]@56 int v163; // [sp+0h] [bp-5FCh]@59 Texture *pTexture; // [sp+0h] [bp-5FCh]@86 int v165; // [sp+0h] [bp-5FCh]@107 @@ -461,25 +461,25 @@ pIcons_LOD->_4114F2(); pGUIWindow_CurrentMenu->Release(); pCurrentScreen = SCREEN_OPTIONS; - pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, (WindowType)8, 0, 0); + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_8, 0, 0); continue; case UIMSG_ArrowUp: --pSaveListPosition; if ( pSaveListPosition < 0 ) pSaveListPosition = 0; - GUIWindow::Create(215, 199, 17, 17, (WindowType)90, (int)pBtnArrowUp, 0); + GUIWindow::Create(215, 199, 17, 17, WINDOW_5A, (int)pBtnArrowUp, 0); continue; case UIMSG_DownArrow: ++pSaveListPosition; if ( pSaveListPosition >= uMessageParam ) pSaveListPosition = uMessageParam - 1; - GUIWindow::Create(215, 323, 17, 17, (WindowType)90, (int)pBtnDownArrow, 0); + GUIWindow::Create(215, 323, 17, 17, WINDOW_5A, (int)pBtnDownArrow, 0); continue; case UIMSG_Cancel: - GUIWindow::Create(350, 302, 106, 42, (WindowType)96, (int)pBtnCancel, 0); + GUIWindow::Create(350, 302, 106, 42, WINDOW_60, (int)pBtnCancel, 0); continue; case UIMSG_LoadSlot: - GUIWindow::Create(241, 302, 106, 42, (WindowType)94, (int)pBtnLoadSlot, 0); + GUIWindow::Create(241, 302, 106, 42, WINDOW_5E, (int)pBtnLoadSlot, 0); continue; case UIMSG_SelectLoadSlot: if ( pGUIWindow_CurrentMenu->field_40 == v0 ) @@ -763,7 +763,7 @@ } v19 = (double)(signed int)uGammaPos * 0.1 + 0.6; pGame->pGammaController->Initialize(v19); - GUIWindow::Create(21, 161, 0, 0, (WindowType)90, (int)pBtn_SliderLeft, v0); + GUIWindow::Create(21, 161, 0, 0, WINDOW_5A, (int)pBtn_SliderLeft, v0); pAudioPlayer->PlaySound((SoundID)21, 0, 0, -1, 0, 0, 0, 0); continue; } @@ -774,7 +774,7 @@ { v21 = (double)(signed int)uGammaPos * 0.1 + 0.6; pGame->pGammaController->Initialize(v21); - GUIWindow::Create(213, 161, 0, 0, (WindowType)90, (int)pBtn_SliderRight, v0); + GUIWindow::Create(213, 161, 0, 0, WINDOW_5A, (int)pBtn_SliderRight, v0); pAudioPlayer->PlaySound((SoundID)21, 0, 0, -1, 0, 0, 0, 0); continue; } @@ -803,7 +803,7 @@ --uMusicVolimeMultiplier; if ( (char)uMusicVolimeMultiplier < 1 ) uMusicVolimeMultiplier = 0; - GUIWindow::Create(243, 0xD8u, 0, 0, (enum WindowType)90, (int)pBtn_SliderLeft, v0); + GUIWindow::Create(243, 0xD8u, 0, 0, WINDOW_5A, (int)pBtn_SliderLeft, v0); if ( uMusicVolimeMultiplier ) pAudioPlayer->PlaySound(SOUND_Bell, -1, 0, -1, 0, 0, pSoundVolumeLevels[(char)uMusicVolimeMultiplier] * 64.0f, 0); pAudioPlayer->SetMusicVolume(pSoundVolumeLevels[(char)uMusicVolimeMultiplier] * 64.0f); @@ -814,7 +814,7 @@ ++uMusicVolimeMultiplier; if ( (char)uMusicVolimeMultiplier > 9 ) uMusicVolimeMultiplier = 9; - GUIWindow::Create(435, 0xD8u, 0, 0, (enum WindowType)90, (int)pBtn_SliderRight, v0); + GUIWindow::Create(435, 0xD8u, 0, 0, WINDOW_5A, (int)pBtn_SliderRight, v0); if ( uMusicVolimeMultiplier ) pAudioPlayer->PlaySound(SOUND_Bell, -1, 0, -1, 0, 0, pSoundVolumeLevels[(char)uMusicVolimeMultiplier] * 64.0f, 0); pAudioPlayer->SetMusicVolume(pSoundVolumeLevels[(char)uMusicVolimeMultiplier] * 64.0f); @@ -833,7 +833,7 @@ --uSoundVolumeMultiplier; if ( (char)uSoundVolumeMultiplier < 1 ) uSoundVolumeMultiplier = 0; - GUIWindow::Create(243, 162, 0, 0, (enum WindowType)90, (int)pBtn_SliderLeft, v0); + GUIWindow::Create(243, 162, 0, 0, WINDOW_5A, (int)pBtn_SliderLeft, v0); pAudioPlayer->SetMasterVolume(pSoundVolumeLevels[uSoundVolumeMultiplier] * 128.0f); pAudioPlayer->PlaySound((SoundID)218, -1, 0, -1, 0, 0, 0, 0); continue; @@ -846,7 +846,7 @@ v168 = v0; v24 = 435; v154 = (int)pBtn_SliderRight; - GUIWindow::Create(v24, 0xA2u, 0, 0, (enum WindowType)90, v154, v168); + GUIWindow::Create(v24, 0xA2u, 0, 0, WINDOW_5A, v154, v168); pAudioPlayer->SetMasterVolume(pSoundVolumeLevels[uSoundVolumeMultiplier] * 128.0f); pAudioPlayer->PlaySound((SoundID)218, -1, 0, -1, 0, 0, 0, 0); continue; @@ -875,7 +875,7 @@ --uVoicesVolumeMultiplier; if ( (char)uVoicesVolumeMultiplier < 1 ) uVoicesVolumeMultiplier = 0; - GUIWindow::Create(243, 270, 0, 0, (enum WindowType)90, (int)pBtn_SliderLeft, v0); + GUIWindow::Create(243, 270, 0, 0, WINDOW_5A, (int)pBtn_SliderLeft, v0); if ( !uVoicesVolumeMultiplier ) continue; pAudioPlayer->PlaySound((SoundID)5788, -1, 0, -1, 0, 0, pSoundVolumeLevels[uVoicesVolumeMultiplier] * 128.0f, 0); @@ -886,7 +886,7 @@ ++uVoicesVolumeMultiplier; if ( (char)uVoicesVolumeMultiplier > 8 ) uVoicesVolumeMultiplier = 9; - GUIWindow::Create(435, 270, 0, 0, (enum WindowType)90, (int)pBtn_SliderRight, v0); + GUIWindow::Create(435, 270, 0, 0, WINDOW_5A, (int)pBtn_SliderRight, v0); if ( !uVoicesVolumeMultiplier ) continue; pAudioPlayer->PlaySound((SoundID)5788, -1, 0, -1, 0, 0, pSoundVolumeLevels[uVoicesVolumeMultiplier] * 128.0f, 0); @@ -943,7 +943,7 @@ pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640u, 480u, WINDOW_Book, uMessage, 0); - pBooksWindow = GUIWindow::Create(493u, 355u, 0, 0, (enum WindowType)99, (int)pBtn_Quests, 0); + pBooksWindow = GUIWindow::Create(493u, 355u, 0, 0, WINDOW_63, (int)pBtn_Quests, 0); bFlashQuestBook = 0; continue; case UIMSG_OpenAutonotes: @@ -954,7 +954,7 @@ pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640u, 480u, WINDOW_Book, uMessage, 0); - pBooksWindow = GUIWindow::Create(527u, 353u, 0, 0, (enum WindowType)99, (int)pBtn_Autonotes, 0); + pBooksWindow = GUIWindow::Create(527u, 353u, 0, 0, WINDOW_63, (int)pBtn_Autonotes, 0); bFlashAutonotesBook = 0; continue; case UIMSG_OpenMapBook: @@ -977,7 +977,7 @@ pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_Book, uMessage, 0); - pBooksWindow = GUIWindow::Create(570, 354, 0, 0, (enum WindowType)99, (int)pBtn_Calendar, 0); + pBooksWindow = GUIWindow::Create(570, 354, 0, 0, WINDOW_63, (int)pBtn_Calendar, 0); continue; case UIMSG_OpenHistoryBook: if ( pMessageQueue_50CBD0->uNumMessages ) @@ -987,7 +987,7 @@ pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_Book, uMessage, 0); - pBooksWindow = GUIWindow::Create(0x258u, 0x169u, 0, 0, (enum WindowType)99, (int)pBtn_History, 0); + pBooksWindow = GUIWindow::Create(0x258u, 0x169u, 0, 0, WINDOW_63, (int)pBtn_History, 0); bFlashHistoryBook = 0; continue; case UIMSG_Escape:// нажатие Escape and return to game @@ -1496,14 +1496,14 @@ if ( !pGUIWindow_Settings )//Draw Menu { dword_6BE138 = -1; - GUIWindow::Create(0x25Au, 0x1C2u, 0, 0, (enum WindowType)90, (int)pBtn_GameSettings, v0); + GUIWindow::Create(0x25Au, 0x1C2u, 0, 0, WINDOW_5A, (int)pBtn_GameSettings, v0); pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); ++pIcons_LOD->uTexturePacksCount; pCurrentScreen = v0; if ( !pIcons_LOD->uNumPrevLoadedFiles ) pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; - pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, (enum WindowType)3, 0, 0); + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_3, 0, 0); uTextureID_Options = pIcons_LOD->LoadTexture("options", TEXTURE_16BIT_PALETTE); uTextureID_New1 = pIcons_LOD->LoadTexture("new1", TEXTURE_16BIT_PALETTE); uTextureID_Load1 = pIcons_LOD->LoadTexture("load1", TEXTURE_16BIT_PALETTE); @@ -1513,22 +1513,22 @@ uTextureID_Quit1 = pIcons_LOD->LoadTexture("quit1", TEXTURE_16BIT_PALETTE); pBtn_NewGame = pGUIWindow_CurrentMenu->CreateButton(0x13u, 0x9Bu, 0xD6u, 0x28u, v0, 0, 0x7Cu, 0, 0x4Eu, pGlobalTXT_LocalizationStrings[614],// "New Game" - (Texture *)(uTextureID_New1 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_New1] : 0), 0); + pIcons_LOD->GetTexture(uTextureID_New1), 0); pBtn_SaveGame = pGUIWindow_CurrentMenu->CreateButton(0x13u, 0xD1u, 0xD6u, 0x28u, v0, 0, 0x7Eu, 0, 0x53u, pGlobalTXT_LocalizationStrings[615],// "Save Game" - (Texture *)(uTextureID_Save1 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_Save1] : 0), 0); + pIcons_LOD->GetTexture(uTextureID_Save1), 0); pBtn_LoadGame = pGUIWindow_CurrentMenu->CreateButton(19, 263, 0xD6u, 0x28u, v0, 0, 0x7Du, 0, 0x4Cu, pGlobalTXT_LocalizationStrings[616],// "Load Game" - (Texture *)(uTextureID_Load1 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_Load1] : 0), 0); + pIcons_LOD->GetTexture(uTextureID_Load1), 0); pBtn_GameControls = pGUIWindow_CurrentMenu->CreateButton(241, 155, 214, 40, v0, 0, 0x7Fu, 0, 0x43u, pGlobalTXT_LocalizationStrings[617],// ""Sound, Keyboard, Game Options:"" - (Texture *)(uTextureID_Controls1 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_Controls1] : 0), 0); + pIcons_LOD->GetTexture(uTextureID_Controls1), 0); pBtn_QuitGame = pGUIWindow_CurrentMenu->CreateButton(241, 209, 214, 40, v0, 0, 0x84u, 0, 0x51u, pGlobalTXT_LocalizationStrings[618],// "Quit" - (Texture *)(uTextureID_Quit1 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_Quit1] : 0), 0); + pIcons_LOD->GetTexture(uTextureID_Quit1), 0); pBtn_Resume = pGUIWindow_CurrentMenu->CreateButton(241, 263, 214, 40, v0, 0, 0x7Bu, 0, 0x52u, pGlobalTXT_LocalizationStrings[619],// "Return to Game" - (Texture *)(uTextureID_Resume1 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_Resume1] : 0), 0); + pIcons_LOD->GetTexture(uTextureID_Resume1), 0); pGUIWindow_CurrentMenu->_41D08F(6, v0, 0, 0); viewparams->field_48 = v0; stru_506E40.Release(); @@ -1551,7 +1551,7 @@ case UIMSG_ScrollNPCPanel://Right and Left button for NPCPanel if ( uMessageParam ) { - GUIWindow::Create(626, 179, 0, 0, (enum WindowType)90, (int)pBtn_NPCRight, 0); + GUIWindow::Create(626, 179, 0, 0, WINDOW_5A, (int)pBtn_NPCRight, 0); v37 = (pParty->pHirelings[0].pName != 0) + (pParty->pHirelings[1].pName != 0) + (unsigned __int8)pParty->field_70A - 2; if ( (unsigned __int8)pParty->field_709 < v37 ) { @@ -1562,7 +1562,7 @@ } else { - GUIWindow::Create(469, 179, 0, 0, (enum WindowType)90, (int)pBtn_NPCLeft, 0); + GUIWindow::Create(469, 179, 0, 0, WINDOW_5A, (int)pBtn_NPCLeft, 0); if ( pParty->field_709 ) { --pParty->field_709; @@ -1929,23 +1929,17 @@ }*/ pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, v0, 0); continue; - case UIMSG_C3: + + case UIMSG_OnCastTownPortal: pAudioPlayer->StopChannels(-1, -1); - v162 = uMessageParam; - v148 = 195; - //goto LABEL_438; - pWindowType = (WindowType)9; - pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, pWindowType, v148, v162); - continue; + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_Book, WINDOW_TownPortal, uMessageParam); + continue; + case UIMSG_B1: pAudioPlayer->StopChannels(-1, -1); - v162 = 0; - v148 = 177; -//LABEL_438: - pWindowType = (WindowType)9; -//LABEL_439: - pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, pWindowType, v148, v162); - continue; + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_Book, 117, 0); + continue; + case UIMSG_B2: v165 = 0; v151 = 0; @@ -2138,7 +2132,7 @@ if ( v67 ) *((int *)v67 + 17) = v0; else - pParty->pPlayers[(unsigned __int8)byte_50C0C0].CanCastSpell(0x14u); + pParty->pPlayers[(unsigned __int8)town_portal_caster_id].CanCastSpell(0x14u); //LABEL_434: /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) { @@ -2458,7 +2452,7 @@ v0 = 1; continue; } - ptr_507BC8 = GUIWindow::Create(0, 0, 640, 480, (enum WindowType)104, uMessageParam, 0); + ptr_507BC8 = GUIWindow::Create(0, 0, 640, 480, WINDOW_68, uMessageParam, 0); pCurrentScreen = SCREEN_19; pEventTimer->Pause(); continue; @@ -2543,7 +2537,7 @@ pAudioPlayer->PlaySound((SoundID)27, 0, 0, -1, 0, 0, 0, 0); continue; } - GUIWindow::Create(pButton_RestUI_Wait5Minutes->uX, pButton_RestUI_Wait5Minutes->uY, 0, 0, (enum WindowType)90, + GUIWindow::Create(pButton_RestUI_Wait5Minutes->uX, pButton_RestUI_Wait5Minutes->uY, 0, 0, WINDOW_5A, (int)pButton_RestUI_Wait5Minutes, (int)pGlobalTXT_LocalizationStrings[238]);// "Wait 5 Minutes" dword_506F14 = v0; _506F18_num_hours_to_sleep = 5; @@ -2557,7 +2551,7 @@ pAudioPlayer->PlaySound((SoundID)27, 0, 0, -1, 0, 0, 0, 0); continue; } - GUIWindow::Create(pButton_RestUI_Wait1Hour->uX, pButton_RestUI_Wait1Hour->uY, 0, 0, (enum WindowType)90, + GUIWindow::Create(pButton_RestUI_Wait1Hour->uX, pButton_RestUI_Wait1Hour->uY, 0, 0, WINDOW_5A, (int)pButton_RestUI_Wait1Hour, (int)pGlobalTXT_LocalizationStrings[239]);// "Wait 1 Hour" dword_506F14 = v0; _506F18_num_hours_to_sleep = 60; @@ -2735,7 +2729,7 @@ pAudioPlayer->PlaySound((SoundID)27, 0, 0, -1, 0, 0, 0, 0); continue; } - GUIWindow::Create(pButton_RestUI_WaitUntilDawn->uX, pButton_RestUI_WaitUntilDawn->uY, 0, 0, (enum WindowType)90, + GUIWindow::Create(pButton_RestUI_WaitUntilDawn->uX, pButton_RestUI_WaitUntilDawn->uY, 0, 0, WINDOW_5A, (int)pButton_RestUI_WaitUntilDawn, (int)pGlobalTXT_LocalizationStrings[237]);// "Wait until Dawn" v97 = sub_494820(pParty->uCurrentHour); dword_506F14 = v0; @@ -2783,7 +2777,7 @@ v0 = 1; continue; case UIMSG_58: - GUIWindow::Create(pBtn_InstallRemoveSpell->uX, pBtn_InstallRemoveSpell->uY, 0, 0, (enum WindowType)90, (int)pBtn_InstallRemoveSpell, 0); + GUIWindow::Create(pBtn_InstallRemoveSpell->uX, pBtn_InstallRemoveSpell->uY, 0, 0, WINDOW_5A, (int)pBtn_InstallRemoveSpell, 0); if ( !uActiveCharacter ) continue; pPlayer10 = pPlayers[uActiveCharacter]; @@ -2962,10 +2956,10 @@ if ( !pCurrentScreen ) //goto LABEL_693; { - GUIWindow::Create(0x1DCu, 0x1C2u, 0, 0, (enum WindowType)90, (int)pBtn_CastSpell, 0); + GUIWindow::Create(0x1DCu, 0x1C2u, 0, 0, WINDOW_5A, (int)pBtn_CastSpell, 0); pCurrentScreen = SCREEN_SPELL_BOOK; pEventTimer->Pause(); - pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, (enum WindowType)18, 0, 0); + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_SpellBook, 0, 0); pAudioPlayer->PlaySound((SoundID)48, 0, 0, -1, 0, 0, 0, 0); viewparams->field_48 = v0; continue; @@ -2977,10 +2971,10 @@ { pGUIWindow_CurrentMenu->Release(); //LABEL_693: - GUIWindow::Create(0x1DCu, 0x1C2u, 0, 0, (enum WindowType)90, (int)pBtn_CastSpell, 0); + GUIWindow::Create(0x1DCu, 0x1C2u, 0, 0, WINDOW_5A, (int)pBtn_CastSpell, 0); pCurrentScreen = SCREEN_SPELL_BOOK; pEventTimer->Pause(); - pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, (enum WindowType)18, 0, 0); + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_SpellBook, 0, 0); pAudioPlayer->PlaySound((SoundID)48, 0, 0, -1, 0, 0, 0, 0); viewparams->field_48 = v0; continue; @@ -3001,7 +2995,7 @@ pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); pCurrentScreen = SCREEN_QUICK_REFERENCE; - pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, (enum WindowType)12, 5, 0); + pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_QuickReference, 5, 0); papredoll_dbrds[2] = pIcons_LOD->LoadTexture("BUTTEXI1", TEXTURE_16BIT_PALETTE); pBtn_ExitCancel = pGUIWindow_CurrentMenu->CreateButton(0x187u, 0x13Cu, 0x4Bu, 0x21u, v0, 0, 0x71u, 0, 0, pGlobalTXT_LocalizationStrings[79],// "Exit" @@ -3038,12 +3032,12 @@ dword_50651C = -1; continue; case UIMSG_A9: - GUIWindow::Create(pBtn_Up->uX, pBtn_Up->uY, 0, 0, (WindowType)(WINDOW_HouseInterior|0x42), (int)pBtn_Up, 0); + GUIWindow::Create(pBtn_Up->uX, pBtn_Up->uY, 0, 0, WINDOW_5B, (int)pBtn_Up, 0); //LABEL_707: dword_506548 = v0; continue; case UIMSG_AA: - GUIWindow::Create(pBtn_Down->uX, pBtn_Down->uY, 0, 0, (WindowType)(WINDOW_HouseInterior|0x42), (int)pBtn_Down, 0); + GUIWindow::Create(pBtn_Down->uX, pBtn_Down->uY, 0, 0, WINDOW_5B, (int)pBtn_Down, 0); //LABEL_709: dword_506544 = v0; continue; @@ -10179,7 +10173,7 @@ if ( pIcons_LOD->dword_011BA4 && pTex->uDecompressedSize ) v3 = pTex->UnzipPalette(); else - v3 = pTex->pLevelOfDetail0; + v3 = pTex->pLevelOfDetail0_prolly_alpha_mask; v12 = v3; v4 = v3; v5 = v9; @@ -10227,7 +10221,7 @@ if ( pIcons_LOD->dword_011BA4 && a2->uDecompressedSize ) v4 = a2->UnzipPalette(); else - v4 = a2->pLevelOfDetail0; + v4 = a2->pLevelOfDetail0_prolly_alpha_mask; v5 = v7; do { @@ -10482,30 +10476,44 @@ //----- (00411150) -------------------------------------------------------- -char *__cdecl DrawTownPortalScreen() -{ - signed int v0; // edi@1 - __int16 v1; // dx@8 - POINT *v2; // edi@17 +void DrawTownPortalScreen() +{ + //signed int v0; // edi@1 + //__int16 v1; // dx@8 + //POINT *v2; // edi@17 int v3; // edi@17 - __int16 v4; // dx@24 + //__int16 v4; // dx@24 GUIWindow v6; // [sp+Ch] [bp-64h]@1 - POINT v7; // [sp+60h] [bp-10h]@17 + //POINT v7; // [sp+60h] [bp-10h]@17 POINT a2; // [sp+68h] [bp-8h]@17 pRenderer->ClearZBuffer(0, 479); - pRenderer->DrawTextureTransparent(8u, 8u, pTexture_CurrentBook); - pRenderer->DrawTextureTransparent( - 0x1D7u, - 0x1BDu, - (Texture *)(uExitCancelTextureId != -1 ? (int)&pIcons_LOD->pTextures[uExitCancelTextureId] : 0)); + pRenderer->DrawTextureTransparent(8, 8, pTexture_CurrentBook); + pRenderer->DrawTextureTransparent(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId)); + v6.uFrameX = 8; v6.uFrameY = 8; v6.uFrameWidth = 460; v6.uFrameHeight = 344; v6.uFrameZ = 467; v6.uFrameW = 351; - v0 = 0; + + 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 ) @@ -10542,7 +10550,7 @@ goto LABEL_14; } LABEL_15: - pRenderer->_4A612A( + pRenderer->DrawMaskToZBuffer( pTownPortalBook_xs[v0], pTownPortalBook_ys[v0], *(&pTexture_TownPortalHarmn + v0), @@ -10550,18 +10558,33 @@ LABEL_16: ++v0; } - while ( v0 < 6 ); - v2 = pMouse->GetCursorPos(&a2); - v3 = pRenderer->pActiveZBuffer[v2->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v7)->y]] & 0xFFFF; - if ( !v3 ) // Town Portal - return v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u); + 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; - return v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u); + v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u); // "Town Portal" + return; } if ( v3 == 2 ) { @@ -10590,7 +10613,7 @@ } LABEL_31: pRenderer->DrawTextureIndexed(word_4E1D3A[v3], pTownPortalBook_xs[v3 + 5], *(&pTex_tab_an_6b__zoom_on + v3)); - return v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u); + v6.DrawTitleText(pBook2Font, 0, 22u, 0, pGlobalTXT_LocalizationStrings[10], 3u);*/ } // 4E1D3A: using guessed type __int16 word_4E1D3A[];