Mercurial > mm7
comparison UI/UIPopup.cpp @ 1705:a395359afc8f
MonsterPopup
author | Ritor1 |
---|---|
date | Mon, 23 Sep 2013 17:33:12 +0600 |
parents | 33c7cc2d48d5 |
children | 0f6cd60ca987 5863074ed9ba |
comparison
equal
deleted
inserted
replaced
1704:cc1d68c17e19 | 1705:a395359afc8f |
---|---|
105 } | 105 } |
106 | 106 |
107 //----- (0041D895) -------------------------------------------------------- | 107 //----- (0041D895) -------------------------------------------------------- |
108 void GameUI_DrawItemInfo( struct ItemGen* inspect_item ) | 108 void GameUI_DrawItemInfo( struct ItemGen* inspect_item ) |
109 { | 109 { |
110 unsigned int v2; // eax@3 | 110 unsigned int v2; // eax@3 |
111 const char *v28; // edi@69 | 111 const char *v28; // edi@69 |
112 int v34; // esi@81 | 112 int v34; // esi@81 |
113 char *pText; // [sp-14h] [bp-28Ch]@110 | 113 char *pText; // [sp-14h] [bp-28Ch]@110 |
114 char out_text[300]; // [sp+8h] [bp-270h]@40 | 114 char out_text[300]; // [sp+8h] [bp-270h]@40 |
115 char v65[120]; // [sp+134h] [bp-144h]@92 | 115 char v65[120]; // [sp+134h] [bp-144h]@92 |
116 stru351_summoned_item v67; | 116 stru351_summoned_item v67; |
117 int v77; // [sp+200h] [bp-78h]@12 | 117 int v77; // [sp+200h] [bp-78h]@12 |
118 int v78; // [sp+204h] [bp-74h]@5 | 118 int v78; // [sp+204h] [bp-74h]@5 |
119 GUIWindow iteminfo_window; // [sp+208h] [bp-70h]@2 | 119 GUIWindow iteminfo_window; // [sp+208h] [bp-70h]@2 |
120 POINT a2; // [sp+25Ch] [bp-1Ch]@2 | 120 POINT a2; // [sp+25Ch] [bp-1Ch]@2 |
121 int v81; // [sp+264h] [bp-14h]@5 | 121 int v81; // [sp+264h] [bp-14h]@5 |
122 PlayerSpeech v83; // [sp+26Ch] [bp-Ch]@18 | 122 PlayerSpeech v83; // [sp+26Ch] [bp-Ch]@18 |
123 char* v84; | 123 char* v84; |
124 int v85; | 124 int v85; |
125 char *Str; // [sp+270h] [bp-8h]@65 | 125 char *Str; // [sp+270h] [bp-8h]@65 |
126 | 126 |
127 if (!inspect_item->uItemID) | 127 if (!inspect_item->uItemID) |
128 return; | 128 return; |
129 iteminfo_window.Hint = 0; | 129 iteminfo_window.Hint = 0; |
130 iteminfo_window.uFrameWidth = 384; | 130 iteminfo_window.uFrameWidth = 384; |
151 if ( uActiveCharacter ) | 151 if ( uActiveCharacter ) |
152 { | 152 { |
153 //try to identify | 153 //try to identify |
154 if (!inspect_item->IsIdentified()) | 154 if (!inspect_item->IsIdentified()) |
155 { | 155 { |
156 //v11 = inspect_item; | |
157 if ( pPlayers[uActiveCharacter]->CanIdentify(inspect_item) == 1 ) | 156 if ( pPlayers[uActiveCharacter]->CanIdentify(inspect_item) == 1 ) |
158 inspect_item->SetIdentified(); | 157 inspect_item->SetIdentified(); |
159 v83 = SPEECH_9; | 158 v83 = SPEECH_9; |
160 if ( !inspect_item->IsIdentified() ) | 159 if ( !inspect_item->IsIdentified() ) |
161 ShowStatusBarString(pGlobalTXT_LocalizationStrings[446], 2);//"Identify Failed" | 160 ShowStatusBarString(pGlobalTXT_LocalizationStrings[446], 2);//"Identify Failed" |
330 iteminfo_window.uFrameZ = iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 1; | 329 iteminfo_window.uFrameZ = iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 1; |
331 iteminfo_window.DrawMessageBox(0); | 330 iteminfo_window.DrawMessageBox(0); |
332 pRenderer->SetTextureClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12, | 331 pRenderer->SetTextureClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12, |
333 iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 12, iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 12); | 332 iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 12, iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 12); |
334 iteminfo_window.uFrameWidth -= 12; | 333 iteminfo_window.uFrameWidth -= 12; |
335 //v32 = pIcons_LOD->LoadTexturePtr(pItemsTable->pItems[inspect_item->uItemID].pIconName, TEXTURE_16BIT_PALETTE)->uTextureHeight; | |
336 iteminfo_window.uFrameHeight -= 12; | 334 iteminfo_window.uFrameHeight -= 12; |
337 iteminfo_window.uFrameZ = iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 1; | 335 iteminfo_window.uFrameZ = iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 1; |
338 iteminfo_window.uFrameW = iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 1; | 336 iteminfo_window.uFrameW = iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 1; |
339 pRenderer->DrawTextureTransparent(iteminfo_window.uFrameX + v78, | 337 pRenderer->DrawTextureTransparent(iteminfo_window.uFrameX + v78, |
340 iteminfo_window.uFrameY + (signed int)(iteminfo_window.uFrameHeight - pIcons_LOD->LoadTexturePtr(pItemsTable->pItems[inspect_item->uItemID].pIconName, TEXTURE_16BIT_PALETTE)->uTextureHeight) / 2, | 338 iteminfo_window.uFrameY + (signed int)(iteminfo_window.uFrameHeight - pIcons_LOD->LoadTexturePtr(pItemsTable->pItems[inspect_item->uItemID].pIconName, TEXTURE_16BIT_PALETTE)->uTextureHeight) / 2, |
445 int v41; // edi@61 | 443 int v41; // edi@61 |
446 unsigned int v42; // eax@61 | 444 unsigned int v42; // eax@61 |
447 int v43; // eax@62 | 445 int v43; // eax@62 |
448 int v44; // eax@63 | 446 int v44; // eax@63 |
449 signed int v45; // edi@65 | 447 signed int v45; // edi@65 |
450 int v50; // edi@90 | 448 int pTextHeight; // edi@90 |
451 SpellBuff *v51; // eax@91 | |
452 char *v52; // ecx@98 | |
453 char *v53; // ecx@101 | |
454 char *v54; // ST0C_4@118 | |
455 unsigned int v55; // eax@118 | |
456 GUIFont *v56; // edi@124 | |
457 unsigned __int8 v57; // al@128 | |
458 int v58; // eax@132 | |
459 Actor *v59; // ecx@133 | |
460 unsigned __int8 v60; // dl@138 | |
461 char *v62; // eax@147 | |
462 int v63; // eax@152 | |
463 int v65; // eax@155 | |
464 const char *v67; // [sp-10h] [bp-1FCh]@125 | |
465 const char *v68; // [sp-10h] [bp-1FCh]@142 | |
466 char *v70; // [sp-Ch] [bp-1F8h]@125 | |
467 char *v71; // [sp-Ch] [bp-1F8h]@142 | |
468 char *v72; // [sp-8h] [bp-1F4h]@54 | |
469 int v73; // [sp-8h] [bp-1F4h]@79 | 449 int v73; // [sp-8h] [bp-1F4h]@79 |
470 int v75; // [sp-8h] [bp-1F4h]@125 | |
471 int v76; // [sp-8h] [bp-1F4h]@142 | |
472 size_t v77; // [sp-4h] [bp-1F0h]@54 | |
473 unsigned int v79; // [sp-4h] [bp-1F0h]@125 | |
474 char *v80; // [sp-4h] [bp-1F0h]@142 | |
475 char *v81; // [sp-4h] [bp-1F0h]@148 | |
476 DDBLTFX Dst; // [sp+Ch] [bp-1E0h]@18 | 450 DDBLTFX Dst; // [sp+Ch] [bp-1E0h]@18 |
477 DDSURFACEDESC2 pDesc; // [sp+70h] [bp-17Ch]@18 | 451 DDSURFACEDESC2 pDesc; // [sp+70h] [bp-17Ch]@18 |
478 RECT v84; // [sp+ECh] [bp-100h]@26 | 452 RECT v84; // [sp+ECh] [bp-100h]@26 |
479 char *v85[10]; // [sp+FCh] [bp-F0h]@145 | 453 char *string_name[10]; // [sp+FCh] [bp-F0h]@145 |
480 char *v95[11]; // [sp+124h] [bp-C8h]@127 | 454 char *content[11]; // [sp+124h] [bp-C8h]@127 |
481 RenderBillboardTransform_local0 v106; // [sp+150h] [bp-9Ch]@3 | 455 RenderBillboardTransform_local0 v106; // [sp+150h] [bp-9Ch]@3 |
482 unsigned int v107; // [sp+1A0h] [bp-4Ch]@18 | 456 unsigned int v107; // [sp+1A0h] [bp-4Ch]@18 |
483 unsigned __int16 *v108; // [sp+1A4h] [bp-48h]@34 | 457 unsigned __int16 *v108; // [sp+1A4h] [bp-48h]@34 |
484 unsigned int v109; // [sp+1A8h] [bp-44h]@32 | 458 unsigned int v109; // [sp+1A8h] [bp-44h]@32 |
485 LPVOID v110; // [sp+1ACh] [bp-40h]@28 | 459 LPVOID v110; // [sp+1ACh] [bp-40h]@28 |
486 int v112; // [sp+1B4h] [bp-38h]@3 | |
487 int v222; // [sp+1B8h] [bp-34h]@18 | |
488 unsigned __int8 v114; // [sp+1BFh] [bp-2Dh]@133 | |
489 int v115; // [sp+1C0h] [bp-2Ch]@3 | 460 int v115; // [sp+1C0h] [bp-2Ch]@3 |
490 unsigned int v116; // [sp+1C4h] [bp-28h]@18 | 461 bool normal_level; // [sp+1D0h] [bp-1Ch]@18 |
491 int i; // [sp+1C8h] [bp-24h]@18 | 462 bool expert_level; // [sp+1C4h] [bp-28h]@18 |
492 int v119; // [sp+1D0h] [bp-1Ch]@18 | 463 bool master_level; // [sp+1C8h] [bp-24h]@18 |
493 SpellBuff *v120; // [sp+1D4h] [bp-18h]@18 | 464 bool grandmaster_level; // [sp+1B4h] [bp-38h]@3 |
494 int v124; // [sp+1E4h] [bp-8h]@18 | 465 char *pText; // [sp+1D4h] [bp-18h]@18 |
466 int pTextColorID; // [sp+1E4h] [bp-8h]@18 | |
495 int a4; // [sp+1E8h] [bp-4h]@18 | 467 int a4; // [sp+1E8h] [bp-4h]@18 |
496 | 468 |
469 bool monster_full_informations = true; | |
497 static Actor pMonsterInfoUI_Doll; | 470 static Actor pMonsterInfoUI_Doll; |
498 /*if ( !(bMonsterInfoUI_bDollInitialized & 1) ) | 471 /*if ( !(bMonsterInfoUI_bDollInitialized & 1) ) |
499 { | 472 { |
500 bMonsterInfoUI_bDollInitialized |= 1u; | 473 bMonsterInfoUI_bDollInitialized |= 1u; |
501 Actor::Actor(&pMonsterInfoUI_Doll); | 474 Actor::Actor(&pMonsterInfoUI_Doll); |
561 Dst.dwFillColor = 0; | 534 Dst.dwFillColor = 0; |
562 memset(&pDesc, 0, 0x7Cu); | 535 memset(&pDesc, 0, 0x7Cu); |
563 pDesc.dwSize = 124; | 536 pDesc.dwSize = 124; |
564 pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface->GetSurfaceDesc(&pDesc); | 537 pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface->GetSurfaceDesc(&pDesc); |
565 v107 = 0; | 538 v107 = 0; |
566 i = 0; | 539 uint i = 0; |
567 int dst_x = v106.uScreenSpaceX + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaX - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferWidth / 2; | 540 int dst_x = v106.uScreenSpaceX + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaX - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferWidth / 2; |
568 int dst_y = v106.uScreenSpaceY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaY - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferHeight; | 541 int dst_y = v106.uScreenSpaceY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaY - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferHeight; |
569 uint dst_z = v106.uScreenSpaceX + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaX + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaWidth + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferWidth / 2 - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferWidth; | 542 uint dst_z = v106.uScreenSpaceX + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaX + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaWidth + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferWidth / 2 - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferWidth; |
570 uint dst_w = v106.uScreenSpaceY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaHeight - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferHeight; | 543 uint dst_w = v106.uScreenSpaceY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uAreaHeight - pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferHeight; |
571 if (dst_x < v106.uViewportX) | 544 if (dst_x < v106.uViewportX) |
598 pDesc.dwSize = 124; | 571 pDesc.dwSize = 124; |
599 if ( pRenderer->LockSurface_DDraw4(pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface, &pDesc, DDLOCK_WAIT)) | 572 if ( pRenderer->LockSurface_DDraw4(pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface, &pDesc, DDLOCK_WAIT)) |
600 { | 573 { |
601 v20 = (char *)dst_y; | 574 v20 = (char *)dst_y; |
602 v110 = pDesc.lpSurface; | 575 v110 = pDesc.lpSurface; |
603 //a2 = dst_y; | |
604 if (dst_y < dst_w) | 576 if (dst_y < dst_w) |
605 { | 577 { |
606 v21 = dst_x; | 578 v21 = dst_x; |
607 v22 = &pRenderer->pTargetSurface[dst_y * pRenderer->uTargetSurfacePitch + dst_x]; | 579 v22 = &pRenderer->pTargetSurface[dst_y * pRenderer->uTargetSurfacePitch + dst_x]; |
608 auto _v22_2 = v22; | 580 auto _v22_2 = v22; |
670 { | 642 { |
671 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, 0); | 643 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, 0); |
672 if ( v10->pHwSpriteIDs[0] >= 0 ) | 644 if ( v10->pHwSpriteIDs[0] >= 0 ) |
673 pSprites_LOD->pSpriteHeaders[v10->pHwSpriteIDs[0]].DrawSprite_sw(&v106, 0); | 645 pSprites_LOD->pSpriteHeaders[v10->pHwSpriteIDs[0]].DrawSprite_sw(&v106, 0); |
674 } | 646 } |
675 | 647 //name and profession |
676 if ( pActors[uActorID].sNPC_ID ) | 648 if ( pActors[uActorID].sNPC_ID ) |
677 { | 649 { |
678 if (GetNPCData(pActors[uActorID].sNPC_ID)->uProfession) | 650 if (GetNPCData(pActors[uActorID].sNPC_ID)->uProfession) |
679 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], GetNPCData(pActors[uActorID].sNPC_ID)->pName, aNPCProfessionNames[GetNPCData(pActors[uActorID].sNPC_ID)->uProfession]); // "%s the %s" / ^Pi[%s] %s | 651 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], GetNPCData(pActors[uActorID].sNPC_ID)->pName, aNPCProfessionNames[GetNPCData(pActors[uActorID].sNPC_ID)->uProfession]); // "%s the %s" / ^Pi[%s] %s |
680 else | 652 else |
681 { | 653 strncpy(pTmpBuf.data(), GetNPCData(pActors[uActorID].sNPC_ID)->pName, 2000); |
682 v77 = 2000; | |
683 v72 = GetNPCData(pActors[uActorID].sNPC_ID)->pName; | |
684 } | |
685 } | 654 } |
686 else | 655 else |
687 { | 656 { |
688 v77 = 2000; | |
689 if ( pActors[uActorID].dword_000334_unique_name ) | 657 if ( pActors[uActorID].dword_000334_unique_name ) |
690 v72 = pMonsterStats->pPlaceStrings[pActors[uActorID].dword_000334_unique_name]; | 658 strncpy(pTmpBuf.data(), pMonsterStats->pPlaceStrings[pActors[uActorID].dword_000334_unique_name], 2000); |
691 else | 659 else |
692 v72 = pMonsterStats->pInfos[pActors[uActorID].pMonsterInfo.uID].pName; | 660 strncpy(pTmpBuf.data(), pMonsterStats->pInfos[pActors[uActorID].pMonsterInfo.uID].pName, 2000); |
693 } | 661 } |
694 if(!pActors[uActorID].sNPC_ID || (pActors[uActorID].sNPC_ID && !GetNPCData(pActors[uActorID].sNPC_ID)->uProfession)) | |
695 strncpy(pTmpBuf.data(), v72, v77); | |
696 window->DrawTitleText(pFontComic, 0, 0xCu, TargetColor(0xFFu, 0xFFu, 0x9Bu), pTmpBuf.data(), 3); | 662 window->DrawTitleText(pFontComic, 0, 0xCu, TargetColor(0xFFu, 0xFFu, 0x9Bu), pTmpBuf.data(), 3); |
663 //health bar | |
697 Actor::DrawHealthBar(&pActors[uActorID], window); | 664 Actor::DrawHealthBar(&pActors[uActorID], window); |
698 v119 = 0; | 665 |
666 normal_level = 0; | |
667 expert_level = 0; | |
668 master_level = 0; | |
669 grandmaster_level = 0; | |
699 pMonsterInfoUI_Doll.uCurrentActionTime += pMiscTimer->uTimeElapsed; | 670 pMonsterInfoUI_Doll.uCurrentActionTime += pMiscTimer->uTimeElapsed; |
700 v115 = 0; | 671 v115 = 0; |
701 v116 = 0; | |
702 i = 0; | |
703 v112 = 0; | |
704 if ( !uActiveCharacter ) | 672 if ( !uActiveCharacter ) |
705 v45 = 1; | 673 v45 = 1; |
706 else | 674 else |
707 { | 675 { |
708 LOBYTE(v40) = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_MONSTER_ID); | 676 int i = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_MONSTER_ID); |
709 v120 = v40; | 677 if ( !i ) |
710 if ( !v40 ) | |
711 v45 = 1; | 678 v45 = 1; |
712 else | 679 else |
713 { | 680 { |
714 v41 = (unsigned __int8)v40 & 0x3F; | 681 v41 = (unsigned __int8)i & 0x3F; |
715 v42 = SkillToMastery((unsigned __int16)v40) - 1; | 682 v42 = SkillToMastery(i) - 1; |
716 if ( !v42 ) | 683 if ( !v42 )//not master |
717 { | 684 { |
718 if ( v41 + 10 >= pActors[uActorID].pMonsterInfo.uLevel ) | 685 if ( v41 + 10 >= pActors[uActorID].pMonsterInfo.uLevel ) |
719 { | 686 { |
720 v45 = 1; | 687 v45 = 1; |
721 v119 = 1; | 688 normal_level = 1; |
722 } | 689 } |
723 else | 690 else |
724 v45 = 1; | 691 v45 = 1; |
725 } | 692 } |
726 else | 693 else//he is master |
727 { | 694 { |
728 v43 = v42 - 1; | 695 v43 = v42 - 1; |
729 if ( !v43 ) | 696 if ( !v43 ) |
730 { | 697 { |
731 if ( 2 * v41 + 10 >= pActors[uActorID].pMonsterInfo.uLevel ) | 698 if ( 2 * v41 + 10 >= pActors[uActorID].pMonsterInfo.uLevel ) |
732 { | 699 { |
733 v45 = 1; | 700 v45 = 1; |
734 v119 = 1; | 701 normal_level = 1; |
735 v116 = 1; | 702 expert_level = 1; |
736 } | 703 } |
737 else | 704 else |
738 v45 = 1; | 705 v45 = 1; |
739 } | 706 } |
740 else | 707 else |
743 if ( !v44 ) | 710 if ( !v44 ) |
744 { | 711 { |
745 if ( 3 * v41 + 10 >= pActors[uActorID].pMonsterInfo.uLevel ) | 712 if ( 3 * v41 + 10 >= pActors[uActorID].pMonsterInfo.uLevel ) |
746 { | 713 { |
747 v45 = 1; | 714 v45 = 1; |
748 v119 = 1; | 715 normal_level = 1; |
749 v116 = 1; | 716 expert_level = 1; |
750 i = 1; | 717 master_level = 1; |
751 } | 718 } |
752 else | 719 else |
753 v45 = 1; | 720 v45 = 1; |
754 } | 721 } |
755 else | 722 else |
757 if ( v44 != 1 ) | 724 if ( v44 != 1 ) |
758 v45 = 1; | 725 v45 = 1; |
759 else | 726 else |
760 { | 727 { |
761 v45 = 1; | 728 v45 = 1; |
762 v119 = 1; | 729 normal_level = 1; |
763 v116 = 1; | 730 expert_level = 1; |
764 i = 1; | 731 master_level = 1; |
765 v112 = 1; | 732 grandmaster_level = 1; |
766 } | 733 } |
767 } | 734 } |
768 } | 735 } |
769 } | 736 } |
770 } | 737 } |
771 if ( pActors[uActorID].uAIState != Dead | 738 if ( pActors[uActorID].uAIState != Dead |
772 && pActors[uActorID].uAIState != Dying | 739 && pActors[uActorID].uAIState != Dying |
773 && !dword_507BF0_is_there_popup_onscreen && v120 ) | 740 && !dword_507BF0_is_there_popup_onscreen && i ) |
774 { | 741 { |
775 if ( v119 | v116 | i | (unsigned int)v112 ) | 742 if ( normal_level | expert_level | master_level | grandmaster_level ) |
776 { | 743 { |
777 if ( pActors[uActorID].pMonsterInfo.uLevel >= pPlayers[uActiveCharacter]->uLevel - 5 ) | 744 if ( pActors[uActorID].pMonsterInfo.uLevel >= pPlayers[uActiveCharacter]->uLevel - 5 ) |
778 v73 = SPEECH_105; | 745 v73 = SPEECH_105; |
779 else | 746 else |
780 v73 = SPEECH_104; | 747 v73 = SPEECH_104; |
783 v73 = SPEECH_106; | 750 v73 = SPEECH_106; |
784 pPlayers[uActiveCharacter]->PlaySound((PlayerSpeech)v73, 0); | 751 pPlayers[uActiveCharacter]->PlaySound((PlayerSpeech)v73, 0); |
785 } | 752 } |
786 } | 753 } |
787 | 754 |
788 for (uint i = 0; i < 4; ++i) | 755 if ( (signed int)SkillToMastery(pParty->pPlayers[uActiveCharacter].GetActualSkillLevel(PLAYER_SKILL_MONSTER_ID)) >= 3 ) |
789 { | 756 v115 = v45; |
790 v120 = (SpellBuff *)138; | 757 |
791 do | 758 if ( monster_full_informations == true ) |
792 { | 759 { |
793 if ( (signed int)SkillToMastery(pParty->pPlayers[i].GetActualSkillLevel(PLAYER_SKILL_MONSTER_ID)) >= 3 ) | 760 normal_level = 1;// |
794 v115 = v45; | 761 expert_level = 1;// |
795 v120 = (SpellBuff *)((char *)v120 - 1); | 762 master_level = 1;// |
796 } | 763 grandmaster_level = 1;// |
797 while ( v120 ); | 764 v115 = 1; |
798 } | 765 } |
799 | 766 |
800 window->DrawText(pFontSmallnum, 12, 196, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[631], 0, 0, 0); | 767 window->DrawText(pFontSmallnum, 12, 196, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[631], 0, 0, 0);//Effects |
801 if ( !v115 ) | 768 if ( !v115 ) |
802 window->DrawText(pFontSmallnum, 28, LOBYTE(pFontSmallnum->uFontHeight) + 193, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[630], 0, 0, 0); | 769 window->DrawText(pFontSmallnum, 28, LOBYTE(pFontSmallnum->uFontHeight) + 193, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[630], 0, 0, 0);//? |
803 else | 770 else |
804 { | 771 { |
805 a4 = 0; | 772 pText = ""; |
806 v51 = &pActors[uActorID].pActorBuffs[1]; | 773 pTextHeight = LOBYTE(pFontSmallnum->uFontHeight) + 193; |
807 v222 = 0; | 774 for ( uint i = 1; i <= 21; ++i ) |
808 v120 = &pActors[uActorID].pActorBuffs[1]; | 775 { |
809 do | 776 if ( pActors[uActorID].pActorBuffs[i].uExpireTime > 0 ) |
810 { | 777 { |
811 if ( (signed __int64)v51->uExpireTime > 0 ) | 778 switch ( i - 1 ) |
812 { | 779 { |
813 switch ( (int)v51 ) | 780 case 0: |
814 { | 781 pTextColorID = 60; |
815 case 0u: | 782 pText = pGlobalTXT_LocalizationStrings[591];//Charmed |
816 v124 = 60; | 783 break; |
817 a4 = (int)pGlobalTXT_LocalizationStrings[591]; | 784 case 1: |
818 break; | 785 pTextColorID = 82; |
819 case 1u: | 786 pText = pGlobalTXT_LocalizationStrings[649];//Summoned |
820 v124 = 82; | 787 break; |
821 a4 = (int)pGlobalTXT_LocalizationStrings[649]; | 788 case 2: |
822 break; | 789 pTextColorID = 92; |
823 case 2u: | 790 pText = pGlobalTXT_LocalizationStrings[592];//Shrunk |
824 v124 = 92; | 791 break; |
825 a4 = (int)pGlobalTXT_LocalizationStrings[592]; | 792 case 3: |
826 break; | 793 pTextColorID = 63; |
827 case 3u: | 794 pText = pGlobalTXT_LocalizationStrings[4];//Afraid |
828 v124 = 63; | 795 break; |
829 a4 = (int)pGlobalTXT_LocalizationStrings[4]; | 796 case 4: |
830 break; | 797 pText = pGlobalTXT_LocalizationStrings[220];//Stoned |
831 case 4u: | 798 pTextColorID = 81; |
832 v52 = pGlobalTXT_LocalizationStrings[220]; | 799 break; |
833 a4 = (int)v52; | 800 case 5: |
834 v124 = 81; | 801 pText = pGlobalTXT_LocalizationStrings[162];//Paralyzed |
835 break; | 802 pTextColorID = 81; |
836 case 5u: | 803 break; |
837 v52 = pGlobalTXT_LocalizationStrings[162]; | 804 case 6: |
838 a4 = (int)v52; | 805 pText = pGlobalTXT_LocalizationStrings[593];//Slowed |
839 v124 = 81; | 806 pTextColorID = 35; |
840 break; | 807 break; |
841 case 6u: | 808 case 8: |
842 v53 = pGlobalTXT_LocalizationStrings[593]; | 809 pText = pGlobalTXT_LocalizationStrings[608];//Berserk |
843 v124 = 35; | 810 pTextColorID = 62; |
844 a4 = (int)v53; | 811 break; |
845 break; | 812 case 7: |
846 case 8u: | 813 case 9: |
847 v53 = pGlobalTXT_LocalizationStrings[608]; | 814 pText = ""; |
848 v124 = 62; | 815 pTextColorID = 0; |
849 a4 = (int)v53; | 816 continue; |
850 break; | 817 case 10: |
851 case 7u: | 818 pTextColorID = 47; |
852 case 9u: | 819 pText = pGlobalTXT_LocalizationStrings[221];//Fate |
853 a4 = 0; | 820 break; |
854 v124 = 0; | 821 case 11: |
855 ++v51; | 822 pTextColorID = 66; |
856 v222 = v222 + 1; | 823 pText = pGlobalTXT_LocalizationStrings[607];//Enslaved |
857 v120 = v51; | 824 break; |
858 __debugbreak(); // fix condition | 825 case 12: |
859 continue; | 826 pTextColorID = 85; |
860 case 0xAu: | 827 pText = pGlobalTXT_LocalizationStrings[610];//Day of Protection |
861 v124 = 47; | 828 break; |
862 a4 = (int)pGlobalTXT_LocalizationStrings[221]; | 829 case 13: |
863 break; | 830 pTextColorID = 86; |
864 case 0xBu: | 831 pText = pGlobalTXT_LocalizationStrings[609];//Hour of Power |
865 v124 = 66; | 832 break; |
866 a4 = (int)pGlobalTXT_LocalizationStrings[607]; | 833 case 14: |
867 break; | 834 pTextColorID = 17; |
868 case 0xCu: | 835 pText = pGlobalTXT_LocalizationStrings[279];//Shield |
869 v124 = 85; | 836 break; |
870 a4 = (int)pGlobalTXT_LocalizationStrings[610]; | 837 case 15: |
871 break; | 838 pTextColorID = 38; |
872 case 0xDu: | 839 pText = pGlobalTXT_LocalizationStrings[442];//Stoneskin |
873 v124 = 86; | 840 break; |
874 a4 = (int)pGlobalTXT_LocalizationStrings[609]; | 841 case 16: |
875 break; | 842 pTextColorID = 46; |
876 case 0xEu: | 843 pText = pGlobalTXT_LocalizationStrings[443];//Bless |
877 v124 = 17; | 844 break; |
878 a4 = (int)pGlobalTXT_LocalizationStrings[279]; | 845 case 17: |
879 break; | 846 pTextColorID = 51; |
880 case 0xFu: | 847 pText = pGlobalTXT_LocalizationStrings[440];//Heroism |
881 v124 = 38; | 848 break; |
882 a4 = (int)pGlobalTXT_LocalizationStrings[442]; | 849 case 18: |
883 break; | 850 pTextColorID = 5; |
884 case 0x10u: | 851 pText = pGlobalTXT_LocalizationStrings[441];//Haste |
885 v124 = 46; | 852 break; |
886 a4 = (int)pGlobalTXT_LocalizationStrings[443]; | 853 case 19: |
887 break; | 854 pTextColorID = 95; |
888 case 0x11u: | 855 pText = pGlobalTXT_LocalizationStrings[229];//Pain Reflection |
889 v124 = 51; | 856 break; |
890 a4 = (int)pGlobalTXT_LocalizationStrings[440]; | 857 case 20: |
891 break; | 858 pTextColorID = 73; |
892 case 0x12u: | 859 pText = pGlobalTXT_LocalizationStrings[228];//Hammerhands |
893 v124 = 5; | 860 break; |
894 a4 = (int)pGlobalTXT_LocalizationStrings[441]; | 861 default: |
895 break; | 862 pText = ""; |
896 case 0x13u: | 863 break; |
897 v124 = 95; | 864 } |
898 a4 = (int)pGlobalTXT_LocalizationStrings[229]; | 865 if ( pText != "" ) |
899 break; | 866 { |
900 case 0x14u: | 867 window->DrawText(pFontSmallnum, 28, pTextHeight, GetSpellColor(pTextColorID), pText, 0, 0, 0); |
901 v124 = 73; | 868 pTextHeight = pTextHeight + *(char *)((int)pFontSmallnum + 5) - 3; |
902 a4 = (int)pGlobalTXT_LocalizationStrings[228]; | 869 } |
903 break; | 870 } |
904 default: | 871 } |
905 a4 = 0; | 872 if ( pText == "" ) |
906 break; | 873 window->DrawText(pFontSmallnum, 28, pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[153], 0, 0, 0);//Νες |
907 } | 874 } |
908 if ( a4 ) | 875 |
909 { | 876 if ( normal_level ) |
910 v54 = (char *)a4; | |
911 v55 = GetSpellColor(v124); | |
912 window->DrawText(pFontSmallnum, 28, LOBYTE(pFontSmallnum->uFontHeight) + 193, v55, v54, 0, 0, 0); | |
913 v50 = (LOBYTE(pFontSmallnum->uFontHeight) + 193) + *(char *)((int)pFontSmallnum + 5) - 3; | |
914 v51 = v120; | |
915 } | |
916 } | |
917 | |
918 ++v51; | |
919 v222 = v222 + 1; | |
920 v120 = v51; | |
921 | |
922 __debugbreak(); // fix condition | |
923 } | |
924 //while ( (signed int)((char *)&v222->lpVtbl + 1) < 22 ); | |
925 while (true); | |
926 | |
927 if ( !a4 ) | |
928 window->DrawText(pFontSmallnum, 28, v50, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[153], 0, 0, 0); | |
929 } | |
930 v56 = pFontSmallnum; | |
931 a4 = v106.uViewportY; | |
932 if ( v119 ) | |
933 { | 877 { |
934 sprintf(pTmpBuf.data(), "%s\f%05u\t100%d\n", pGlobalTXT_LocalizationStrings[108], 0, pActors[uActorID].pMonsterInfo.uHP); | 878 sprintf(pTmpBuf.data(), "%s\f%05u\t100%d\n", pGlobalTXT_LocalizationStrings[108], 0, pActors[uActorID].pMonsterInfo.uHP); |
935 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 879 window->DrawText(pFontSmallnum, 150, (int)v106.uViewportY, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
936 a4 = a4 + LOBYTE(v56->uFontHeight) - 3; | 880 pTextHeight = v106.uViewportY + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
937 v79 = pActors[uActorID].pMonsterInfo.uAC; | 881 sprintf(pTmpBuf.data(), "%s\f%05u\t100%d\n", pGlobalTXT_LocalizationStrings[12], 0, pActors[uActorID].pMonsterInfo.uAC);//Armor Class |
938 v75 = 0; | |
939 v70 = pGlobalTXT_LocalizationStrings[12]; | |
940 v67 = "%s\f%05u\t100%d\n"; | |
941 } | 882 } |
942 else | 883 else |
943 { | 884 { |
944 sprintf(pTmpBuf.data(), "%s\f%05u\t100%s\n", pGlobalTXT_LocalizationStrings[108], 0, pGlobalTXT_LocalizationStrings[630]); | 885 sprintf(pTmpBuf.data(), "%s\f%05u\t100%s\n", pGlobalTXT_LocalizationStrings[108], 0, pGlobalTXT_LocalizationStrings[630]);//? |
945 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 886 window->DrawText(pFontSmallnum, 150, (int)v106.uViewportY, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
946 v79 = (unsigned int)pGlobalTXT_LocalizationStrings[630]; | 887 pTextHeight = v106.uViewportY + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
947 v75 = 0; | 888 sprintf(pTmpBuf.data(), "%s\f%05u\t100%s\n", pGlobalTXT_LocalizationStrings[12], 0, (unsigned int)pGlobalTXT_LocalizationStrings[630]);//? |
948 v70 = pGlobalTXT_LocalizationStrings[12]; | 889 } |
949 a4 = a4 + LOBYTE(v56->uFontHeight) - 3; | 890 window->DrawText(pFontSmallnum, 150, pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
950 v67 = "%s\f%05u\t100%s\n"; | 891 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 6 + LOBYTE(pFontSmallnum->uFontHeight); |
951 } | 892 |
952 sprintf(pTmpBuf.data(), v67, v70, v75, v79); | 893 content[0] = pGlobalTXT_LocalizationStrings[87]; |
953 window->DrawText(v56, 150, a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 894 content[1] = pGlobalTXT_LocalizationStrings[6]; |
954 a4 = a4 + LOBYTE(v56->uFontHeight) - 6 + LOBYTE(v56->uFontHeight); | 895 content[2] = pGlobalTXT_LocalizationStrings[240]; |
955 v95[0] = pGlobalTXT_LocalizationStrings[87]; | 896 content[3] = pGlobalTXT_LocalizationStrings[70]; |
956 v95[1] = pGlobalTXT_LocalizationStrings[6]; | 897 content[4] = pGlobalTXT_LocalizationStrings[624]; |
957 v95[2] = pGlobalTXT_LocalizationStrings[240]; | 898 content[5] = pGlobalTXT_LocalizationStrings[138]; |
958 v95[3] = pGlobalTXT_LocalizationStrings[70]; | 899 content[6] = pGlobalTXT_LocalizationStrings[214]; |
959 v95[4] = pGlobalTXT_LocalizationStrings[624]; | 900 content[7] = pGlobalTXT_LocalizationStrings[142]; |
960 v95[5] = pGlobalTXT_LocalizationStrings[138]; | 901 content[8] = pGlobalTXT_LocalizationStrings[29]; |
961 v95[6] = pGlobalTXT_LocalizationStrings[214]; | 902 content[9] = pGlobalTXT_LocalizationStrings[133]; |
962 v95[7] = pGlobalTXT_LocalizationStrings[142]; | 903 content[10] = pGlobalTXT_LocalizationStrings[54]; |
963 v95[8] = pGlobalTXT_LocalizationStrings[29]; | 904 |
964 v95[9] = pGlobalTXT_LocalizationStrings[133]; | 905 if ( expert_level ) |
965 v95[10] = pGlobalTXT_LocalizationStrings[54]; | 906 { |
966 if ( v116 ) | 907 sprintf(pTmpBuf.data(), "%s\f%05u\t080%s\n", pGlobalTXT_LocalizationStrings[18], 0, content[pActors[uActorID].pMonsterInfo.uAttack1Type]);//Attack |
967 { | 908 window->DrawText(pFontSmallnum, 150, (int)pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
968 sprintf(pTmpBuf.data(), "%s\f%05u\t080%s\n", pGlobalTXT_LocalizationStrings[18], 0, v95[pActors[uActorID].pMonsterInfo.uAttack1Type]); | 909 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
969 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 910 if ( pActors[uActorID].pMonsterInfo.uAttack1DamageBonus ) |
970 a4 = a4 + LOBYTE(v56->uFontHeight) - 3; | |
971 v57 = pActors[uActorID].pMonsterInfo.uAttack1DamageBonus; | |
972 if ( v57 ) | |
973 sprintf(pTmpBuf.data(), "%s\f%05u\t080%dd%d+%d\n", pGlobalTXT_LocalizationStrings[53], | 911 sprintf(pTmpBuf.data(), "%s\f%05u\t080%dd%d+%d\n", pGlobalTXT_LocalizationStrings[53], |
974 0, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceRolls, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceSides, v57); | 912 0, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceRolls, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceSides, pActors[uActorID].pMonsterInfo.uAttack1DamageBonus); |
975 else | 913 else |
976 sprintf(pTmpBuf.data(), "%s\f%05u\t080%dd%d\n", pGlobalTXT_LocalizationStrings[53], | 914 sprintf(pTmpBuf.data(), "%s\f%05u\t080%dd%d\n", pGlobalTXT_LocalizationStrings[53], |
977 0, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceRolls, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceSides); | 915 0, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceRolls, pActors[uActorID].pMonsterInfo.uAttack1DamageDiceSides); |
978 } | 916 } |
979 else | 917 else |
980 { | 918 { |
981 sprintf(pTmpBuf.data(), "%s\f%05u\t080%s\n", pGlobalTXT_LocalizationStrings[18], 0, pGlobalTXT_LocalizationStrings[630]); | 919 sprintf(pTmpBuf.data(), "%s\f%05u\t080%s\n", pGlobalTXT_LocalizationStrings[18], 0, pGlobalTXT_LocalizationStrings[630]); |
982 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 920 window->DrawText(pFontSmallnum, 150, (int)pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
983 a4 = a4 + LOBYTE(v56->uFontHeight) - 3; | 921 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
984 sprintf(pTmpBuf.data(), "%s\f%05u\t080%s\n", pGlobalTXT_LocalizationStrings[53], 0, pGlobalTXT_LocalizationStrings[630]); | 922 sprintf(pTmpBuf.data(), "%s\f%05u\t080%s\n", pGlobalTXT_LocalizationStrings[53], 0, pGlobalTXT_LocalizationStrings[630]); |
985 } | 923 } |
986 window->DrawText(v56, 150, a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 924 window->DrawText(pFontSmallnum, 150, pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
987 v58 = LOBYTE(v56->uFontHeight); | 925 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 6 + LOBYTE(pFontSmallnum->uFontHeight); |
988 a4 = a4 + v58 - 6 + v58; | 926 |
989 if ( !i ) | 927 if ( !master_level ) |
990 { | 928 { |
991 v80 = pGlobalTXT_LocalizationStrings[630]; | 929 sprintf(pTmpBuf.data(), "%s\f%05u\t080%s\n", pGlobalTXT_LocalizationStrings[628], 0, pGlobalTXT_LocalizationStrings[630]);//"Spell" "?" |
992 v76 = 0; | 930 window->DrawText(pFontSmallnum, 150, (int)pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
993 v71 = pGlobalTXT_LocalizationStrings[628]; | 931 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
994 v68 = "%s\f%05u\t080%s\n"; | |
995 sprintf(pTmpBuf.data(), v68, v71, v76, v80); | |
996 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | |
997 v58 = LOBYTE(v56->uFontHeight); | |
998 a4 = a4 + v58 - 3; | |
999 } | 932 } |
1000 else | 933 else |
1001 { | 934 { |
1002 v120 = (SpellBuff *)pGlobalTXT_LocalizationStrings[628]; | 935 pText = pGlobalTXT_LocalizationStrings[628];//Spell |
1003 v59 = &pActors[uActorID]; | 936 if ( pActors[uActorID].pMonsterInfo.uSpell1ID && pActors[uActorID].pMonsterInfo.uSpell2ID ) |
1004 v114 = pActors[uActorID].pMonsterInfo.uSpell1ID; | 937 pText = pGlobalTXT_LocalizationStrings[629];//Spells |
1005 if ( v114 && pActors[uActorID].pMonsterInfo.uSpell2ID ) | 938 if ( pActors[uActorID].pMonsterInfo.uSpell1ID ) |
1006 v120 = (SpellBuff *)pGlobalTXT_LocalizationStrings[629]; | 939 { |
1007 if ( v114 ) | 940 sprintf(pTmpBuf.data(), "%s\f%05u\t070%s\n", pText, 0, pSpellStats->pInfos[pActors[uActorID].pMonsterInfo.uSpell1ID].pShortName); |
1008 { | 941 window->DrawText(pFontSmallnum, 150, (int)pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
1009 sprintf(pTmpBuf.data(), "%s\f%05u\t060%s\n", v120, 0, pSpellStats->pInfos[v114].pShortName); | 942 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
1010 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 943 } |
1011 v58 = LOBYTE(v56->uFontHeight); | 944 if ( pActors[uActorID].pMonsterInfo.uSpell2ID ) |
1012 a4 = a4 + v58 - 3; | 945 { |
1013 v59 = &pActors[uActorID]; | 946 sprintf(pTmpBuf.data(), "\f%05u\t070%s\n", 0, pSpellStats->pInfos[pActors[uActorID].pMonsterInfo.uSpell2ID].pShortName); |
1014 } | 947 window->DrawText(pFontSmallnum, 150, (int)pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
1015 v60 = v59->pMonsterInfo.uSpell2ID; | 948 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
1016 if ( v60 ) | 949 } |
1017 { | 950 if ( !pActors[uActorID].pMonsterInfo.uSpell1ID && !pActors[uActorID].pMonsterInfo.uSpell2ID ) |
1018 sprintf(pTmpBuf.data(), "\f%05u\t060%s\n", 0, pSpellStats->pInfos[v60].pShortName); | 951 { |
1019 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 952 sprintf(pTmpBuf.data(), "%s\f%05u\t070%s\n", pGlobalTXT_LocalizationStrings[628], 0, pGlobalTXT_LocalizationStrings[153]); |
1020 v58 = LOBYTE(v56->uFontHeight); | 953 window->DrawText(pFontSmallnum, 150, (int)pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
1021 a4 = a4 + v58 - 3; | 954 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
1022 v59 = &pActors[uActorID]; | 955 } |
1023 } | 956 } |
1024 if ( !v59->pMonsterInfo.uSpell1ID && !v59->pMonsterInfo.uSpell2ID ) | 957 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
1025 { | 958 window->DrawText(pFontSmallnum, 150, pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[626], 0, 0, 0);//Immune |
1026 v80 = pGlobalTXT_LocalizationStrings[153]; | 959 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
1027 v76 = 0; | 960 |
1028 v71 = pGlobalTXT_LocalizationStrings[628]; | 961 string_name[0] = pGlobalTXT_LocalizationStrings[87];//Fire |
1029 v68 = "%s\f%05u\t060%s\n"; | 962 string_name[1] = pGlobalTXT_LocalizationStrings[6];//Air |
1030 sprintf(pTmpBuf.data(), v68, v71, v76, v80); | 963 string_name[2] = pGlobalTXT_LocalizationStrings[240]; |
1031 window->DrawText(v56, 150, (int)a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 964 string_name[3] = pGlobalTXT_LocalizationStrings[70]; |
1032 v58 = LOBYTE(v56->uFontHeight); | 965 string_name[4] = pGlobalTXT_LocalizationStrings[142]; |
1033 a4 = a4 + v58 - 3; | 966 string_name[5] = pGlobalTXT_LocalizationStrings[214]; |
1034 } | 967 string_name[6] = pGlobalTXT_LocalizationStrings[29]; |
1035 } | 968 string_name[7] = pGlobalTXT_LocalizationStrings[133]; |
1036 a4 = a4 + v58 - 3; | 969 string_name[8] = pGlobalTXT_LocalizationStrings[54]; |
1037 window->DrawText(v56, 150, a4, TargetColor(0xE1u, 255, 0x9Bu), pGlobalTXT_LocalizationStrings[626], 0, 0, 0); | 970 string_name[9] = pGlobalTXT_LocalizationStrings[624]; |
1038 a4 = a4 + LOBYTE(v56->uFontHeight) - 3; | 971 |
1039 v85[0] = pGlobalTXT_LocalizationStrings[87]; | 972 content[0] = (char *)pActors[uActorID].pMonsterInfo.uResFire; |
1040 v85[1] = pGlobalTXT_LocalizationStrings[6]; | 973 content[1] = (char *)pActors[uActorID].pMonsterInfo.uResAir; |
1041 v85[2] = pGlobalTXT_LocalizationStrings[240]; | 974 content[2] = (char *)pActors[uActorID].pMonsterInfo.uResWater; |
1042 v85[3] = pGlobalTXT_LocalizationStrings[70]; | 975 content[3] = (char *)pActors[uActorID].pMonsterInfo.uResEarth; |
1043 v85[4] = pGlobalTXT_LocalizationStrings[142]; | 976 content[4] = (char *)pActors[uActorID].pMonsterInfo.uResMind; |
1044 v85[5] = pGlobalTXT_LocalizationStrings[214]; | 977 content[5] = (char *)pActors[uActorID].pMonsterInfo.uResSpirit; |
1045 v85[6] = pGlobalTXT_LocalizationStrings[29]; | 978 content[6] = (char *)pActors[uActorID].pMonsterInfo.uResBody; |
1046 v85[7] = pGlobalTXT_LocalizationStrings[133]; | 979 content[7] = (char *)pActors[uActorID].pMonsterInfo.uResLight; |
1047 v85[8] = pGlobalTXT_LocalizationStrings[54]; | 980 content[8] = (char *)pActors[uActorID].pMonsterInfo.uResPhysical; |
1048 v85[9] = pGlobalTXT_LocalizationStrings[624]; | 981 content[9] = (char *)pActors[uActorID].pMonsterInfo.uResDark; |
1049 v95[1] = (char *)pActors[uActorID].pMonsterInfo.uResFire; | 982 |
1050 v95[2] = (char *)pActors[uActorID].pMonsterInfo.uResAir; | 983 if ( grandmaster_level ) |
1051 v95[3] = (char *)pActors[uActorID].pMonsterInfo.uResWater; | 984 { |
1052 v95[4] = (char *)pActors[uActorID].pMonsterInfo.uResEarth; | 985 for ( uint i = 0; i < 10; i++ ) |
1053 v95[5] = (char *)pActors[uActorID].pMonsterInfo.uResMind; | 986 { |
1054 v95[6] = (char *)pActors[uActorID].pMonsterInfo.uResSpirit; | 987 if ( content[i] == (char *)200 ) |
1055 v95[7] = (char *)pActors[uActorID].pMonsterInfo.uResBody; | 988 { |
1056 v95[8] = (char *)pActors[uActorID].pMonsterInfo.uResLight; | 989 pText = pGlobalTXT_LocalizationStrings[625];//Immune |
1057 v95[9] = (char *)pActors[uActorID].pMonsterInfo.uResPhysical; | |
1058 v95[10] = (char *)pActors[uActorID].pMonsterInfo.uResDark; | |
1059 if ( v112 ) | |
1060 { | |
1061 v124 = 0; | |
1062 do | |
1063 { | |
1064 v62 = v95[v124+1]; | |
1065 if ( v62 == (char *)200 ) | |
1066 { | |
1067 v81 = pGlobalTXT_LocalizationStrings[625]; | |
1068 } | 990 } |
1069 else | 991 else |
1070 { | 992 { |
1071 if ( v62 ) | 993 if ( content[i] ) |
1072 v81 = pGlobalTXT_LocalizationStrings[627]; | 994 pText = pGlobalTXT_LocalizationStrings[627];//Resistant |
1073 else | 995 else |
1074 v81 = pGlobalTXT_LocalizationStrings[153]; | 996 pText = pGlobalTXT_LocalizationStrings[153];//None |
1075 } | 997 } |
1076 sprintf(pTmpBuf.data(), "%s\f%05u\t070%s\n", v85[v124], 0, v81); | 998 sprintf(pTmpBuf.data(), "%s\f%05u\t070%s\n", string_name[i], 0, pText); |
1077 window->DrawText(v56, 170, a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 999 window->DrawText(pFontSmallnum, 170, pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
1078 v63 = LOBYTE(v56->uFontHeight); | 1000 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
1079 v124 += 4; | 1001 } |
1080 a4 = a4 + v63 - 3; | |
1081 } | |
1082 while ( v124 < 40 ); | |
1083 } | 1002 } |
1084 else | 1003 else |
1085 { | 1004 { |
1086 i = 0; | 1005 for ( uint i = 0; i < 10; ++i ) |
1087 do | 1006 { |
1088 { | 1007 sprintf(pTmpBuf.data(), "%s\f%05u\t070%s\n", string_name[i], 0, pGlobalTXT_LocalizationStrings[630]); // "?" |
1089 sprintf(pTmpBuf.data(), "%s\f%05u\t070%s\n", v85[i], 0, pGlobalTXT_LocalizationStrings[630]); // "?" | 1008 window->DrawText(pFontSmallnum, 170, pTextHeight, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); |
1090 window->DrawText(v56, 170, a4, TargetColor(0xE1u, 255, 0x9Bu), pTmpBuf.data(), 0, 0, 0); | 1009 pTextHeight = pTextHeight + LOBYTE(pFontSmallnum->uFontHeight) - 3; |
1091 v65 = LOBYTE(v56->uFontHeight); | 1010 } |
1092 ++i; | |
1093 a4 = a4 + v65 - 3; | |
1094 } | |
1095 while ( i < 10 ); | |
1096 } | 1011 } |
1097 if ( (signed __int64)pParty->pPartyBuffs[PARTY_BUFF_DETECT_LIFE].uExpireTime > 0 ) | 1012 if ( (signed __int64)pParty->pPartyBuffs[PARTY_BUFF_DETECT_LIFE].uExpireTime > 0 ) |
1098 { | 1013 { |
1099 sprintf(pTmpBuf.data(), "%s: %d", pGlobalTXT_LocalizationStrings[650], pActors[uActorID].sCurrentHP); | 1014 sprintf(pTmpBuf.data(), "%s: %d", pGlobalTXT_LocalizationStrings[650], pActors[uActorID].sCurrentHP);//Current Hit Points |
1100 pFontSmallnum->GetLineWidth(pTmpBuf.data()); | 1015 pFontSmallnum->GetLineWidth(pTmpBuf.data()); |
1101 window->DrawTitleText(pFontSmallnum, 0, window->uFrameHeight - LOBYTE(pFontSmallnum->uFontHeight) - 12, 0, pTmpBuf.data(), 3); | 1016 window->DrawTitleText(pFontSmallnum, 0, window->uFrameHeight - LOBYTE(pFontSmallnum->uFontHeight) - 12, 0, pTmpBuf.data(), 3); |
1102 } | 1017 } |
1103 } | 1018 } |
1104 | 1019 |