comparison UI/UiGame.cpp @ 2225:080fd5a5433d

Merge
author Grumpy7
date Wed, 19 Feb 2014 22:30:39 +0100
parents c2eeeb991a87 3f375342de12
children 10c909eb6766
comparison
equal deleted inserted replaced
2224:c2eeeb991a87 2225:080fd5a5433d
306 } 306 }
307 } 307 }
308 } 308 }
309 if (sDialogue_SpeakingActorNPC_ID < 0) 309 if (sDialogue_SpeakingActorNPC_ID < 0)
310 v9 = 4; 310 v9 = 4;
311 pDialogueWindow = GUIWindow::Create(0, 0, 640, 480, WINDOW_Dialogue, 3, 0);//pNumberContacts = 1, v9 = 0; pNumberContacts = 2, v9 = 3; 311 pDialogueWindow = GUIWindow::Create(0, 0, window->GetWidth(), window->GetHeight(), WINDOW_Dialogue, 3, 0);//pNumberContacts = 1, v9 = 0; pNumberContacts = 2, v9 = 3;
312 if (pNPCInfo->Hired() && !pNPCInfo->bHasUsedTheAbility) 312 if (pNPCInfo->Hired() && !pNPCInfo->bHasUsedTheAbility)
313 { 313 {
314 if (pNPCInfo->uProfession == 10 || //Healer 314 if (pNPCInfo->uProfession == 10 || //Healer
315 pNPCInfo->uProfession == 11 || //Expert Healer 315 pNPCInfo->uProfession == 11 || //Expert Healer
316 pNPCInfo->uProfession == 12 || //Master Healer 316 pNPCInfo->uProfession == 12 || //Master Healer
684 //----- (004443D5) -------------------------------------------------------- 684 //----- (004443D5) --------------------------------------------------------
685 const char *GameUI_GetMinimapHintText() 685 const char *GameUI_GetMinimapHintText()
686 { 686 {
687 double v3; // st7@1 687 double v3; // st7@1
688 int v7; // eax@4 688 int v7; // eax@4
689 ODMFace *pFace; // eax@6
690 const char *v14; // eax@8 689 const char *v14; // eax@8
691 char *result; // eax@12 690 char *result; // eax@12
692 unsigned int pMapID; // eax@14 691 unsigned int pMapID; // eax@14
693 int global_coord_X; // [sp+10h] [bp-1Ch]@1 692 int global_coord_X; // [sp+10h] [bp-1Ch]@1
694 int global_coord_Y; // [sp+14h] [bp-18h]@1 693 int global_coord_Y; // [sp+14h] [bp-18h]@1
718 { 717 {
719 if ( pOutdoor->pBModels[j].uNumFaces ) 718 if ( pOutdoor->pBModels[j].uNumFaces )
720 { 719 {
721 for ( uint i = 0; i < (uint)pOutdoor->pBModels[j].uNumFaces; ++i ) 720 for ( uint i = 0; i < (uint)pOutdoor->pBModels[j].uNumFaces; ++i )
722 { 721 {
723 pFace = &pOutdoor->pBModels[j].pFaces[i]; 722 if ( pOutdoor->pBModels[j].pFaces[i].sCogTriggeredID )
724 if ( pFace->sCogTriggeredID )
725 { 723 {
726 if ( !(BYTE2(pFace->uAttributes) & 0x10) ) 724 if ( !(pOutdoor->pBModels[j].pFaces[i].uAttributes & FACE_UNKNOW) )
727 { 725 {
728 v14 = GetEventHintString(pFace->sCogTriggeredID); 726 v14 = GetEventHintString(pOutdoor->pBModels[j].pFaces[i].sCogTriggeredID);
729 if ( v14 ) 727 if ( v14 )
730 { 728 {
731 if ( _stricmp(v14, "") ) 729 if ( _stricmp(v14, "") )
732 result = (char *)v14; 730 result = (char *)v14;
733 } 731 }
982 { 980 {
983 int text_y; // esi@2 981 int text_y; // esi@2
984 982
985 if ( uGameState != GAME_STATE_FINAL_WINDOW ) 983 if ( uGameState != GAME_STATE_FINAL_WINDOW )
986 { 984 {
987 text_y = sub_44100D() != 0 ? 381 : 322; 985 text_y = _44100D_should_alter_right_panel() != 0 ? 381 : 322;
988 sprintf(pTmpBuf.data(), "\r087%lu", pParty->uNumFoodRations); 986 sprintf(pTmpBuf.data(), "\r087%lu", pParty->uNumFoodRations);
989 pPrimaryWindow->DrawText(pFontSmallnum, 0, text_y, uGameUIFontMain, pTmpBuf.data(), 0, 0, uGameUIFontShadow); 987 pPrimaryWindow->DrawText(pFontSmallnum, 0, text_y, uGameUIFontMain, pTmpBuf.data(), 0, 0, uGameUIFontShadow);
990 sprintf(pTmpBuf.data(), "\r028%lu", pParty->uNumGold); 988 sprintf(pTmpBuf.data(), "\r028%lu", pParty->uNumGold);
991 pPrimaryWindow->DrawText(pFontSmallnum, 0, text_y, uGameUIFontMain, pTmpBuf.data(), 0, 0, uGameUIFontShadow); 989 pPrimaryWindow->DrawText(pFontSmallnum, 0, text_y, uGameUIFontMain, pTmpBuf.data(), 0, 0, uGameUIFontShadow);
992 } 990 }
1166 int interaction_distance_limit = 512; 1164 int interaction_distance_limit = 512;
1167 int monster_info_distance_limit = 5120; 1165 int monster_info_distance_limit = 5120;
1168 1166
1169 pMouse->uPointingObjectID = 0; 1167 pMouse->uPointingObjectID = 0;
1170 pMouse->GetClickPos(&pX, &pY); 1168 pMouse->GetClickPos(&pX, &pY);
1171 if ( pX < 0 || pX > 639 || pY < 0 || pY > 479 )//границы окна игры 1169 if ( pX < 0 || pX > window->GetWidth() - 1 || pY < 0 || pY > window->GetHeight() - 1 )//границы окна игры
1172 return; 1170 return;
1173 if ( pX <= 467 && pY <= 351 )//пределы основной области 1171 if ( pX <= 467 && pY <= 351 )//пределы основной области
1174 { 1172 {
1175 //окно(область) игры---------------------------------- 1173 //окно(область) игры----------------------------------
1176 if ( pCurrentScreen == SCREEN_GAME ) 1174 if ( pCurrentScreen == SCREEN_GAME )
1443 } 1441 }
1444 } 1442 }
1445 } 1443 }
1446 } 1444 }
1447 }//конец пределов основного экрана------------------------ 1445 }//конец пределов основного экрана------------------------
1448 if ( pX > 467 && pX <=639 && pY <= 479 )//пределы правой области 1446 if ( pX > 467 && pX <= window->GetWidth() - 1 && pY <= window->GetHeight() - 1 )//пределы правой области
1449 { 1447 {
1450 if ( pCurrentScreen == SCREEN_GAME ) 1448 if ( pCurrentScreen == SCREEN_GAME )
1451 { 1449 {
1452 pWindow = &pWindowList[0]; 1450 pWindow = &pWindowList[0];
1453 if ( (signed int)pX >= (signed int)pWindow->uFrameX && (signed int)pX <= (signed int)pWindow->uFrameZ 1451 if ( (signed int)pX >= (signed int)pWindow->uFrameX && (signed int)pX <= (signed int)pWindow->uFrameZ
1954 uNumBlueFacesInBLVMinimap = 0; 1952 uNumBlueFacesInBLVMinimap = 0;
1955 1953
1956 for (uint i = 0; i < (uint)pIndoor->pMapOutlines->uNumOutlines; ++i) 1954 for (uint i = 0; i < (uint)pIndoor->pMapOutlines->uNumOutlines; ++i)
1957 { 1955 {
1958 BLVMapOutline* pOutline = &pIndoor->pMapOutlines->pOutlines[i]; 1956 BLVMapOutline* pOutline = &pIndoor->pMapOutlines->pOutlines[i];
1959 BLVFace* pFace1 = pIndoor->pFaces + pOutline->uFace1ID; 1957 //BLVFace* pFace1 = &pIndoor->pFaces[pOutline->uFace1ID];
1960 BLVFace* pFace2 = pIndoor->pFaces + pOutline->uFace2ID; 1958 //BLVFace* pFace2 = &pIndoor->pFaces[pOutline->uFace2ID];
1961 if (pFace1->Visible() && pFace2->Visible()) 1959 if (pIndoor->pFaces[pOutline->uFace1ID].Visible() && pIndoor->pFaces[pOutline->uFace2ID].Visible())
1962 { 1960 {
1963 if ( pOutline->uFlags & 1 ) 1961 if ( pOutline->uFlags & 1 )
1964 { 1962 {
1965 if (bWizardEyeActive && uWizardEyeSkillLevel >= 3 && 1963 if (bWizardEyeActive && uWizardEyeSkillLevel >= 3 &&
1966 (pFace1->Clickable() || pFace2->Clickable()) && 1964 (pIndoor->pFaces[pOutline->uFace1ID].Clickable() || pIndoor->pFaces[pOutline->uFace2ID].Clickable()) &&
1967 (pIndoor->pFaceExtras[pFace1->uFaceExtraID].uEventID || pIndoor->pFaceExtras[pFace2->uFaceExtraID].uEventID)) 1965 (pIndoor->pFaceExtras[pIndoor->pFaces[pOutline->uFace1ID].uFaceExtraID].uEventID || pIndoor->pFaceExtras[pIndoor->pFaces[pOutline->uFace2ID].uFaceExtraID].uEventID))
1968 { 1966 {
1969 if (uNumBlueFacesInBLVMinimap < 49) 1967 if (uNumBlueFacesInBLVMinimap < 49)
1970 pBlueFacesInBLVMinimapIDs[uNumBlueFacesInBLVMinimap++] = i; 1968 pBlueFacesInBLVMinimapIDs[uNumBlueFacesInBLVMinimap++] = i;
1971 } 1969 }
1972 else 1970 else
1980 v15 = 100; 1978 v15 = 100;
1981 pRenderer->RasterLine2D(pX, pY, pZ, pW, viewparams->pPalette[-v15 + 200]); 1979 pRenderer->RasterLine2D(pX, pY, pZ, pW, viewparams->pPalette[-v15 + 200]);
1982 } 1980 }
1983 continue; 1981 continue;
1984 } 1982 }
1985 if (pFace1->uAttributes & 0x80 || pFace2->uAttributes & 0x80) 1983 if (pIndoor->pFaces[pOutline->uFace1ID].uAttributes & FACE_UNKNOW4 || pIndoor->pFaces[pOutline->uFace2ID].uAttributes & FACE_UNKNOW4)
1986 { 1984 {
1987 pOutline->uFlags = pOutline->uFlags | 1; 1985 pOutline->uFlags = pOutline->uFlags | 1;
1988 pIndoor->_visible_outlines[i >> 3] |= 1 << (7 - i % 8); 1986 pIndoor->_visible_outlines[i >> 3] |= 1 << (7 - i % 8);
1989 if (bWizardEyeActive && uWizardEyeSkillLevel >= 3 && 1987 if (bWizardEyeActive && uWizardEyeSkillLevel >= 3 &&
1990 (pFace1->Clickable() || pFace2->Clickable()) && 1988 (pIndoor->pFaces[pOutline->uFace1ID].Clickable() || pIndoor->pFaces[pOutline->uFace2ID].Clickable()) &&
1991 (pIndoor->pFaceExtras[pFace1->uFaceExtraID].uEventID || pIndoor->pFaceExtras[pFace2->uFaceExtraID].uEventID)) 1989 (pIndoor->pFaceExtras[pIndoor->pFaces[pOutline->uFace1ID].uFaceExtraID].uEventID || pIndoor->pFaceExtras[pIndoor->pFaces[pOutline->uFace2ID].uFaceExtraID].uEventID))
1992 { 1990 {
1993 if (uNumBlueFacesInBLVMinimap < 49) 1991 if (uNumBlueFacesInBLVMinimap < 49)
1994 pBlueFacesInBLVMinimapIDs[uNumBlueFacesInBLVMinimap++] = i; 1992 pBlueFacesInBLVMinimapIDs[uNumBlueFacesInBLVMinimap++] = i;
1995 } 1993 }
1996 else 1994 else