annotate UI/UiGame.cpp @ 2115:90cc547a7927

Fixing hireling prices
author Grumpy7
date Mon, 23 Dec 2013 15:17:50 +0100
parents 0db53678ff48
children 92511cd8fcdb
rev   line source
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1 #ifdef _MSC_VER
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2 #define _CRT_SECURE_NO_WARNINGS
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
3 #endif
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
4
1299
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
5 #include "..\Texture.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
6 #include "..\MM7.h"
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
7
1299
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
8 #include "..\Mouse.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
9 #include "..\Keyboard.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
10 #include "..\mm7_data.h"
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
11
1299
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
12 #include "..\Vis.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
13 #include "..\MapInfo.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
14 #include "..\Game.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
15 #include "..\GUIWindow.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
16 #include "..\GUIFont.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
17 #include "..\Party.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
18 #include "..\AudioPlayer.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
19 #include "..\Outdoor.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
20 #include "..\LOD.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
21 #include "..\Actor.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
22 #include "..\Viewport.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
23 #include "..\SpriteObject.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
24 #include "..\ObjectList.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
25 #include "..\DecorationList.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
26 #include "..\PlayerFrameTable.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
27 #include "..\stru123.h"
2044
28cb79ae2f6f Time.h rename
Ritor1
parents: 2037
diff changeset
28 #include "..\Timer.h"
1299
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
29 #include "..\IconFrameTable.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
30 #include "..\TurnEngine.h"
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
31 #include "..\texts.h"
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
32 #include "UIHouses.h"
1299
8c2f689b5f0b folder UI
Ritor1
parents: 1298
diff changeset
33 #include "..\BSPModel.h"
2073
38bf1c70fc70 some text rendering fix
Gloval
parents: 2070
diff changeset
34 #include "..\OurMath.h"
1828
35c1e4ff6ba7 party_finds_gold to Party::PartyFindsGold, cleaned up, moved Level/Decoration.h reference out of Indoor.h
Grumpy7
parents: 1827
diff changeset
35 #include "..\Level/Decoration.h"
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
36
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
37
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
38 int uTextureID_GameUI_CharSelectionFrame; // 50C98C
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
39
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
40 //----- (00421D00) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
41 void __fastcall GameUI_OnPlayerPortraitLeftClick(unsigned int uPlayerID)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
42 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
43 Player* player = &pParty->pPlayers[uPlayerID - 1];
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
44 if (pParty->pPickedItem.uItemID)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
45 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
46 if (int slot = player->AddItem(-1, pParty->pPickedItem.uItemID))
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
47 {
1384
b51332ab228f changed a few member variables in Player to slightly less confusing names
Grumpy7
parents: 1362
diff changeset
48 memcpy(&player->pInventoryItemList[slot-1], &pParty->pPickedItem, 0x24u);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
49 viewparams->bRedrawGameUI = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
50 pMouse->RemoveHoldingItem();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
51 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
52 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
53
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
54 if (!player->CanAct())
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
55 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
56 player = pPlayers[uActiveCharacter];
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
57 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
58 if( player->CanAct() || !pPlayers[uActiveCharacter]->CanAct() )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
59 player->PlaySound(SPEECH_NoRoom, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
60 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
61
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
62 if (pCurrentScreen == SCREEN_GAME)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
63 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
64 viewparams->bRedrawGameUI = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
65 if ( uActiveCharacter != uPlayerID )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
66 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
67 if ( pPlayers[uPlayerID]->uTimeToRecovery )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
68 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
69
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
70 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
71 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
72 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
73 pGUIWindow_CurrentMenu = CharacterUI_Initialize(7);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
74 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
75 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
76 if ( pCurrentScreen == SCREEN_SPELL_BOOK )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
77 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
78 if ( pCurrentScreen == SCREEN_CHEST )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
79 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
80 viewparams->bRedrawGameUI = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
81 if ( uActiveCharacter == uPlayerID )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
82 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
83 pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
84 pCurrentScreen = SCREEN_CHEST_INVENTORY;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
85 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
86 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
87 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
88 if ( pPlayers[uPlayerID]->uTimeToRecovery )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
89 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
90 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
91 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
92 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
93 if ( pCurrentScreen != SCREEN_HOUSE )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
94 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
95 if ( pCurrentScreen == SCREEN_E )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
96 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
97 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
98 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
99 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
100 if ( pCurrentScreen != SCREEN_CHEST_INVENTORY )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
101 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
102 viewparams->bRedrawGameUI = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
103 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
104 if ( pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] == 102 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
105 FillAwardsData();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
106 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
107 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
108 viewparams->bRedrawGameUI = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
109 if ( uActiveCharacter == uPlayerID )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
110 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
111 pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
112 pCurrentScreen = SCREEN_CHEST_INVENTORY;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
113 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
114 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
115 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
116 if ( pPlayers[uPlayerID]->uTimeToRecovery )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
117 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
118 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
119 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
120 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
121 if ( window_SpeakInHouse->receives_keyboard_input_2 == WINDOW_INPUT_IN_PROGRESS)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
122 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
123 viewparams->bRedrawGameUI = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
124 if ( uActiveCharacter != uPlayerID )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
125 uActiveCharacter = uPlayerID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
126 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
127 if (dialog_menu_id == HOUSE_DIALOGUE_SHOP_BUY_STANDARD || dialog_menu_id == HOUSE_DIALOGUE_SHOP_6)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
128 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
129 __debugbreak(); // fix indexing
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
130 pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 103;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
131 pGUIWindow_CurrentMenu = CharacterUI_Initialize(14);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
132 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
133 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
134 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
135 // 4E28F8: using guessed type int pCurrentScreen;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
136 // F8B19C: using guessed type int dword_F8B19C;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
137
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
138 //----- (00416B01) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
139 void GameUI_DrawNPCPopup(void *_this)//PopupWindowForBenefitAndJoinText
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
140 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
141 int v1; // edi@2
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
142 NPCData *pNPC; // eax@16
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
143 const CHAR *pText; // eax@18
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
144 char *v11; // esi@26
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
145 GUIWindow popup_window; // [sp+Ch] [bp-60h]@23
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
146 int a2; // [sp+60h] [bp-Ch]@16
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
147 LPCSTR lpsz; // [sp+68h] [bp-4h]@6
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
148
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
149 if ( bNoNPCHiring != 1 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
150 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
151 v1 = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
152 /*do
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
153 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
154 if ( v3->pName )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
155 pTmpBuf[v1++] = v2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
156 ++v3;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
157 ++v2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
158 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
159 while ( (signed int)v3 < (signed int)&pParty->pPickedItem );*/
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
160 for (int i = 0; i < 2; ++i)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
161 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
162 if (pParty->pHirelings[i].pName)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
163 pTmpBuf[v1++] = i;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
164 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
165 lpsz = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
166 if ( (signed int)pNPCStats->uNumNewNPCs > 0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
167 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
168 /*v4 = pNPCStats->pNewNPCData;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
169 do
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
170 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
171 if ( v4->uFlags & 0x80
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
172 && (!pParty->pHirelings[0].pName || strcmp(v4->pName, pParty->pHirelings[0].pName))
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
173 && (!pParty->pHirelings[1].pName || strcmp(v4->pName, pParty->pHirelings[1].pName)) )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
174 pTmpBuf[v1++] = (char)lpsz + 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
175 ++lpsz;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
176 ++v4;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
177 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
178 while ( (signed int)lpsz < (signed int)pNPCStats->uNumNewNPCs );*/
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
179 for ( uint i = 0; i < pNPCStats->uNumNewNPCs; ++i )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
180 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
181 if (pNPCStats->pNewNPCData[i].Hired())
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
182 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
183 if (!pParty->pHirelings[0].pName || strcmp((char *)pNPCStats->pNewNPCData[i].pName, (char *)pParty->pHirelings[0].pName))
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
184 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
185 if (!pParty->pHirelings[1].pName || strcmp((char *)pNPCStats->pNewNPCData[i].pName, (char *)pParty->pHirelings[1].pName))
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
186 pTmpBuf[v1++] = i + 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
187 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
188 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
189 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
190 }
1793
4dee76d79c78 dword_5B65CC to npcIdToDismissAfterDialogue, Party::field_709 to Party::hirelingScrollPosition
Grumpy7
parents: 1758
diff changeset
191 if ( (signed int)((char *)_this + pParty->hirelingScrollPosition) < v1 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
192 {
1793
4dee76d79c78 dword_5B65CC to npcIdToDismissAfterDialogue, Party::field_709 to Party::hirelingScrollPosition
Grumpy7
parents: 1758
diff changeset
193 sDialogue_SpeakingActorNPC_ID = -1 - pParty->hirelingScrollPosition - (int)_this;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
194 pNPC = GetNewNPCData(sDialogue_SpeakingActorNPC_ID, &a2);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
195 if ( pNPC )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
196 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
197 if ( a2 == 57 )
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
198 pText = pNPCTopics[512].pText; // Baby dragon
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
199 else
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
200 pText = (const CHAR *)pNPCStats->pProfessions[pNPC->uProfession].pBenefits;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
201 lpsz = pText;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
202 if ( !pText )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
203 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
204 lpsz = (LPCSTR)pNPCStats->pProfessions[pNPC->uProfession].pJoinText;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
205 if ( !lpsz )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
206 lpsz = "";
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
207 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
208 popup_window.Hint = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
209 popup_window.uFrameX = 38;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
210 popup_window.uFrameY = 60;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
211 popup_window.uFrameWidth = 276;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
212 popup_window.uFrameZ = 313;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
213 popup_window.uFrameHeight = pFontArrus->CalcTextHeight(lpsz, &popup_window, 0, 0) + 2 * LOBYTE(pFontArrus->uFontHeight) + 24;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
214 if ( (signed int)popup_window.uFrameHeight < 130 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
215 popup_window.uFrameHeight = 130;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
216 popup_window.uFrameWidth = 400;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
217 popup_window.uFrameZ = popup_window.uFrameX + 399;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
218 popup_window.DrawMessageBox(0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
219 sprintfex(pTmpBuf2.data(), "NPC%03d", pNPC->uPortraitID);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
220 pRenderer->DrawTextureIndexed(popup_window.uFrameX + 22, popup_window.uFrameY + 36,
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
221 (Texture *)(pIcons_LOD->LoadTexture(pTmpBuf2.data(), TEXTURE_16BIT_PALETTE) != -1
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
222 ? &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(pTmpBuf2.data(), TEXTURE_16BIT_PALETTE)] : 0));
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
223 if ( pNPC->uProfession )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
224 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
225 v11 = pTmpBuf.data();
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
226 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], pNPC->pName, aNPCProfessionNames[pNPC->uProfession]);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
227 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
228 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
229 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
230 v11 = pTmpBuf.data();
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
231 strcpy(pTmpBuf.data(), pNPC->pName);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
232 }
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
233 popup_window.DrawTitleText(pFontArrus, 0, 12, Color16(0xFFu, 0xFFu, 0x9Bu), v11, 3);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
234 popup_window.uFrameWidth -= 24;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
235 popup_window.uFrameZ = popup_window.uFrameX + popup_window.uFrameWidth - 1;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
236 popup_window.DrawText(pFontArrus, 100, 36, 0, BuildDialogueString((char *)lpsz, uActiveCharacter - 1, 0, 0, 0, 0), 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
237 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
238 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
239 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
240 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
241
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
242 //----- (00445D4A) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
243 void GameUI_InitializeDialogue(Actor *actor, int bPlayerSaysHello)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
244 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
245 NPCData *pNPCInfo; // ebp@1
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
246 int v9; // esi@8
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
247 int pNumberContacts; // eax@11
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
248 char pContainer[32]; // [sp+14h] [bp-28h]@3
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
249
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
250 dword_A74CDC = -1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
251 dword_AE336C = -1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
252 pEventTimer->Pause();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
253 pMiscTimer->Pause();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
254 pAudioPlayer->StopChannels(-1, -1);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
255 uDialogueType = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
256 sDialogue_SpeakingActorNPC_ID = actor->sNPC_ID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
257 pDialogue_SpeakingActor = actor;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
258 pNPCInfo = GetNPCData(actor->sNPC_ID);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
259 if ( (pNPCInfo->uFlags & 3) != 2 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
260 pNPCInfo->uFlags = pNPCInfo->uFlags + 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
261
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
262 switch (pParty->alignment)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
263 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
264 case PartyAlignment_Good: sprintfex(pContainer, "evt%02d-b", const_2()); break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
265 case PartyAlignment_Neutral: sprintfex(pContainer, "evt%02d", const_2()); break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
266 case PartyAlignment_Evil: sprintfex(pContainer, "evt%02d-c", const_2()); break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
267 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
268
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
269 pDialogueNPCCount = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
270 uNumDialogueNPCPortraits = 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
271 pTexture_Dialogue_Background = pIcons_LOD->LoadTexturePtr(pContainer, TEXTURE_16BIT_PALETTE);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
272 sprintfex(pContainer, "npc%03u", pNPCInfo->uPortraitID);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
273 v9 = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
274 pDialogueNPCPortraits[0] = pIcons_LOD->LoadTexturePtr(pContainer, TEXTURE_16BIT_PALETTE);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
275 dword_591084 = areWeLoadingTexture;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
276 uTextureID_right_panel_loop = uTextureID_right_panel;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
277 if ( !pNPCInfo->Hired() && pNPCInfo->Location2D >= 0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
278 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
279 if ( (signed int)pParty->GetPartyFame() <= pNPCInfo->fame
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
280 || (pNumberContacts = pNPCInfo->uFlags & 0xFFFFFF7F, (pNumberContacts & 0x80000000u) != 0) )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
281 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
282 v9 = 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
283 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
284 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
285 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
286 if ( pNumberContacts > 1 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
287 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
288 if ( pNumberContacts == 2 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
289 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
290 v9 = 3;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
291 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
292 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
293 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
294 if ( pNumberContacts != 3 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
295 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
296 if ( pNumberContacts != 4 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
297 v9 = 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
298 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
299 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
300 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
301 v9 = 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
302 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
303 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
304 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
305 else if ( pNPCInfo->rep )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
306 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
307 v9 = 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
308 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
309 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
310 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
311 if (sDialogue_SpeakingActorNPC_ID < 0)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
312 v9 = 4;
2115
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
313 pDialogueWindow = GUIWindow::Create(0, 0, 640, 480, WINDOW_Dialogue, 3, 0);//pNumberContacts = 1, v9 = 0; pNumberContacts = 2, v9 = 3;
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
314 if (pNPCInfo->Hired() && !pNPCInfo->bHasUsedTheAbility)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
315 {
2115
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
316 if (pNPCInfo->uProfession == 10 || //Healer
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
317 pNPCInfo->uProfession == 11 || //Expert Healer
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
318 pNPCInfo->uProfession == 12 || //Master Healer
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
319 pNPCInfo->uProfession == 33 || //Cook
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
320 pNPCInfo->uProfession == 34 || //Chef
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
321 pNPCInfo->uProfession == 39 || //Wind Master
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
322 pNPCInfo->uProfession == 40 || //Water Master
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
323 pNPCInfo->uProfession == 41 || //Gate Master
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
324 pNPCInfo->uProfession == 42 || //Chaplain
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
325 pNPCInfo->uProfession == 43 || //Piper
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
326 pNPCInfo->uProfession == 52 //Fallen Wizard
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
327 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
328 {
2115
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
329 pDialogueWindow->CreateButton(480, 250, 140, LOBYTE(pFontArrus->uFontHeight) - 3, 1, 0, UIMSG_SelectNPCDialogueOption, 9, 0, "", 0);
90cc547a7927 Fixing hireling prices
Grumpy7
parents: 2102
diff changeset
330 pDialogueWindow->_41D08F_set_keyboard_control_group(4, 1, 0, 1);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
331 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
332 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
333
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
334 pDialogueWindow->CreateButton( 61, 424, 31, 40, 2, 94, UIMSG_SelectCharacter, 1, '1', "", 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
335 pDialogueWindow->CreateButton(177, 424, 31, 40, 2, 94, UIMSG_SelectCharacter, 2, '2', "", 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
336 pDialogueWindow->CreateButton(292, 424, 31, 40, 2, 94, UIMSG_SelectCharacter, 3, '3', "", 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
337 pDialogueWindow->CreateButton(407, 424, 31, 40, 2, 94, UIMSG_SelectCharacter, 4, '4', "", 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
338
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
339 if (bPlayerSaysHello && uActiveCharacter && !pNPCInfo->Hired())
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
340 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
341 if (pParty->uCurrentHour < 5 || pParty->uCurrentHour > 21)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
342 pPlayers[uActiveCharacter]->PlaySound(SPEECH_GoodEvening, 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
343 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
344 pPlayers[uActiveCharacter]->PlaySound(SPEECH_GoodDay, 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
345 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
346 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
347
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
348 //----- (00445350) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
349 void GameUI_DrawDialogue()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
350 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
351 NPCData *pNPC; // ebx@2
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
352 int pGreetType; // eax@2
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
353 int pTextHeight; // esi@39
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
354 GUIButton *pButton; // eax@43
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
355 int all_text_height; // ebx@93
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
356 signed int index; // esi@99
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
357 int v42; // edi@102
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
358 int v45;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
359 unsigned __int16 pTextColor; // ax@104
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
360 GUIWindow window; // [sp+ACh] [bp-68h]@42
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
361 GUIFont *pOutString; // [sp+10Ch] [bp-8h]@39
1838
211dfe2d8db1 changing global char* vars to const char* vars
Grumpy7
parents: 1828
diff changeset
362 const char *pInString=NULL; // [sp+110h] [bp-4h]@32
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
363
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
364 if ( !pDialogueWindow )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
365 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
366
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
367 // Window title(Çàãîëîâîê îêíà)----
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
368 memcpy(&window, pDialogueWindow, sizeof(window));
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
369 pNPC = GetNPCData(sDialogue_SpeakingActorNPC_ID);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
370 pGreetType = GetGreetType(sDialogue_SpeakingActorNPC_ID);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
371 window.uFrameWidth -= 10;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
372 window.uFrameZ -= 10;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
373 pRenderer->DrawTextureIndexed(477, 0, pTexture_Dialogue_Background);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
374 pRenderer->DrawTextureTransparent(468, 0, (Texture *)(uTextureID_right_panel_loop != -1 ? &pIcons_LOD->pTextures[uTextureID_right_panel_loop] : 0));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
375 pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0] - 4, pNPCPortraits_y[0][0] - 4, (Texture *)(uTextureID_50795C != -1 ? &pIcons_LOD->pTextures[uTextureID_50795C] : 0));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
376 pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0], pNPCPortraits_y[0][0], pDialogueNPCPortraits[0]);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
377
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
378 if (pNPC->uProfession)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
379 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
380 assert(pNPC->uProfession < sizeof(aNPCProfessionNames) / sizeof(*aNPCProfessionNames.data())); // sometimes buffer overflows; errors emerge both here and in dialogue text
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
381 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], pNPC->pName, aNPCProfessionNames[pNPC->uProfession]);//^Pi[%s] %s
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
382 }
1983
5cd26f2c6904 small fix
Ritor1
parents: 1980
diff changeset
383 else if (pNPC->pName)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
384 strcpy(pTmpBuf.data(), pNPC->pName);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
385
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
386 window.DrawTitleText(pFontArrus, 483, 112, ui_game_dialogue_npc_name_color, pTmpBuf.data(), 3);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
387 pParty->GetPartyFame();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
388
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
389 pInString = nullptr;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
390 switch (uDialogueType)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
391 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
392 case DIALOGUE_13:
1666
5302a9811767 MainMenuUI_Create() cleared
Ritor1
parents: 1662
diff changeset
393 pInString = BuildDialogueString(pNPCStats->pProfessions[pNPC->uProfession].pJoinText, uActiveCharacter - 1, 0, 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
394 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
395
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
396 case DIALOGUE_PROFESSION_DETAILS:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
397 {
1661
e1d1fe32c194 NPCTopics
Ritor1
parents: 1653
diff changeset
398 //auto prof = pNPCStats->pProfessions[pNPC->uProfession];
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
399
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
400 if (dialogue_show_profession_details)
1661
e1d1fe32c194 NPCTopics
Ritor1
parents: 1653
diff changeset
401 pInString = BuildDialogueString(pNPCStats->pProfessions[pNPC->uProfession].pBenefits, uActiveCharacter - 1, 0, 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
402 else if (pNPC->Hired())
1661
e1d1fe32c194 NPCTopics
Ritor1
parents: 1653
diff changeset
403 pInString = BuildDialogueString(pNPCStats->pProfessions[pNPC->uProfession].pDismissText, uActiveCharacter - 1, 0, 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
404 else
1661
e1d1fe32c194 NPCTopics
Ritor1
parents: 1653
diff changeset
405 pInString = BuildDialogueString(pNPCStats->pProfessions[pNPC->uProfession].pJoinText, uActiveCharacter - 1, 0, 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
406 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
407 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
408
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
409
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
410 case DIALOGUE_ARENA_WELCOME:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
411 pInString = pGlobalTXT_LocalizationStrings[574]; // "Welcome to the Arena of Life and Death. Remember, you are only allowed one arena combat per visit. To fight an arena battle, select the option that best describes your abilities and return to me- if you survive:"
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
412 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
413
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
414 case DIALOGUE_ARENA_FIGHT_NOT_OVER_YET:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
415 pInString = pGlobalTXT_LocalizationStrings[577]; //"Get back in there you wimps:"
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
416 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
417
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
418 case DIALOGUE_ARENA_REWARD:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
419 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[576], gold_transaction_amount);// "Congratulations on your win: here's your stuff: %u gold."
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
420 pInString = pTmpBuf.data();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
421 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
422
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
423 case DIALOGUE_ARENA_ALREADY_WON:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
424 pInString = pGlobalTXT_LocalizationStrings[582]; // "You already won this trip to the Arena:"
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
425 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
426
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
427 default:
2102
0db53678ff48 RasterLine2D, DIALOGUE_EVT_A etc.
Ritor1
parents: 2101
diff changeset
428 if (uDialogueType > DIALOGUE_18 && uDialogueType < DIALOGUE_EVT_E && !byte_5B0938[0])
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
429 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
430 pInString = (char *)current_npc_text;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
431 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
432 else if (pGreetType == 1)//QuestNPC_greet
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
433 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
434 if (pNPC->greet)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
435 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
436 if ((pNPC->uFlags & 3) == 2)
1655
a7eebb6ee7a2 Window Resize (change arguments to MM7_Initialize)
Nomad
parents: 1653
diff changeset
437 pInString = pNPCStats->pNPCGreetings[pNPC->greet].pGreeting2;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
438 else
1655
a7eebb6ee7a2 Window Resize (change arguments to MM7_Initialize)
Nomad
parents: 1653
diff changeset
439 pInString = pNPCStats->pNPCGreetings[pNPC->greet].pGreeting1;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
440 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
441 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
442 else if (pGreetType == 2)//HiredNPC_greet
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
443 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
444 NPCProfession* prof = &pNPCStats->pProfessions[pNPC->uProfession];
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
445
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
446 if (pNPC->Hired())
1410
38df78aba732 deleted stru220.h and stru220 (bezier terrain stuff)
Nomad
parents: 1407
diff changeset
447 pInString = BuildDialogueString(prof->pDismissText, uActiveCharacter - 1, 0, 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
448 else
1410
38df78aba732 deleted stru220.h and stru220 (bezier terrain stuff)
Nomad
parents: 1407
diff changeset
449 pInString = BuildDialogueString(prof->pJoinText, uActiveCharacter - 1, 0, 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
450 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
451 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
452 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
453
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
454 // Message window(Îêíî ñîîáùåíèÿ)----
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
455 if (pInString)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
456 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
457 window.uFrameWidth = game_viewport_width;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
458 window.uFrameZ = 452;
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
459 GUIFont* font = pFontArrus;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
460 pTextHeight = pFontArrus->CalcTextHeight(pInString, &window, 13, 0) + 7;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
461 if ( 352 - pTextHeight < 8 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
462 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
463 font = pFontCreate;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
464 pTextHeight = pFontCreate->CalcTextHeight(pInString, &window, 13, 0) + 7;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
465 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
466 if (uTextureID_Leather != -1)
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
467 pRenderer->GetLeather(8, 352 - pTextHeight, &pIcons_LOD->pTextures[uTextureID_Leather], pIcons_LOD->pTextures[uTextureID_Leather].uTextureHeight - pTextHeight);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
468 pRenderer->DrawTextureIndexed(8, 347 - pTextHeight, pTexture_591428);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
469 pDialogueWindow->DrawText(font, 13, 354 - pTextHeight, 0, FitTextInAWindow(pInString, font, &window, 13, 0), 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
470 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
471 // Right panel(Ïðàâàÿ ïàíåëü)-------
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
472 memcpy(&window, pDialogueWindow, sizeof(window));
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
473 window.uFrameX = 483;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
474 window.uFrameWidth = 148;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
475 window.uFrameZ = 334;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
476 for (int i = window.pStartingPosActiveItem; i < window.pStartingPosActiveItem + window.pNumPresenceButton; ++i)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
477 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
478 pButton = window.GetControl(i);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
479 if ( !pButton )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
480 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
481
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
482 if ( pButton->msg_param > 88 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
483 pButton->pButtonName[0] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
484 else if (pButton->msg_param == 88)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
485 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[581]); // Lord
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
486 else if (pButton->msg_param == 87)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
487 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[580]); // Knight
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
488 else if (pButton->msg_param == 86)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
489 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[579]); // Squire
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
490 else if (pButton->msg_param == 85)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
491 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[578]); // Page
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
492 else if (pButton->msg_param == 77)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
493 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[407]); // Details
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
494 else if (pButton->msg_param == 76)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
495 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
496 if (pNPC->Hired())
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
497 sprintf(pButton->pButtonName, (const char*)pGlobalTXT_LocalizationStrings[408], pNPC->pName); // Release %s
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
498 else
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
499 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[406]); // Hire
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
500 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
501 else if (pButton->msg_param == 24)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
502 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
503 __debugbreak(); // learn conditions of this event
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
504 if (!pNPC->evt_F)
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
505 {
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
506 pButton->pButtonName[0] = 0;
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
507 pButton->msg_param = 0;
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
508 }
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
509 else
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
510 strcpy(pButton->pButtonName, pNPCTopics[pNPC->evt_F].pTopic);
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
511 }
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
512 else if (pButton->msg_param == 9)
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
513 strcpy(pButton->pButtonName, GetProfessionActionText(pNPC->uProfession));
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
514 else if (pButton->msg_param == 19) // Scavenger Hunt
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
515 {
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
516 if (!pNPC->evt_A)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
517 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
518 pButton->pButtonName[0] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
519 pButton->msg_param = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
520 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
521 else
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
522 strcpy(pButton->pButtonName, pNPCTopics[pNPC->evt_A].pTopic);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
523 }
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
524 else if (pButton->msg_param == 20) // Scavenger Hunt
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
525 {
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
526 if (!pNPC->evt_B)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
527 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
528 pButton->pButtonName[0] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
529 pButton->msg_param = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
530 }
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
531 else strcpy(pButton->pButtonName, pNPCTopics[pNPC->evt_B].pTopic);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
532 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
533 else if (pButton->msg_param == 21)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
534 {
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
535 //__debugbreak(); // learn conditions of this event
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
536 if (!pNPC->evt_C)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
537 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
538 pButton->pButtonName[0] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
539 pButton->msg_param = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
540 }
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
541 else strcpy(pButton->pButtonName, pNPCTopics[pNPC->evt_C].pTopic);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
542 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
543 else if (pButton->msg_param == 22)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
544 {
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
545 //__debugbreak(); // learn conditions of this event
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
546 if (!pNPC->evt_D)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
547 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
548 pButton->pButtonName[0] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
549 pButton->msg_param = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
550 }
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
551 else strcpy(pButton->pButtonName, pNPCTopics[pNPC->evt_D].pTopic);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
552 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
553 else if (pButton->msg_param == 23)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
554 {
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
555 //__debugbreak(); // learn conditions of this event
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
556 if (!pNPC->evt_E)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
557 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
558 pButton->pButtonName[0] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
559 pButton->msg_param = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
560 }
1645
07fe868f0b44 Scavenger Hunt dialogue crash fix.
Nomad
parents: 1613
diff changeset
561 else strcpy(pButton->pButtonName, pNPCTopics[pNPC->evt_E].pTopic);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
562 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
563 else if (pButton->msg_param == 13)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
564 {
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
565 if (pNPC->Hired())
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
566 sprintf(pButton->pButtonName, pGlobalTXT_LocalizationStrings[408], pNPC->pName); // Release %s
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
567 else
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
568 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[122]); // Join
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
569 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
570 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
571 pButton->pButtonName[0] = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
572
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
573 if (pParty->field_7B5_in_arena_quest && pParty->field_7B5_in_arena_quest != -1)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
574 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
575 int num_dead_actors = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
576 pInString = 0;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
577 for ( uint i = 0; i < uNumActors; ++i )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
578 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
579 if (pActors[i].uAIState == Dead || pActors[i].uAIState == Removed || pActors[i].uAIState == Disabled)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
580 ++num_dead_actors;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
581 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
582 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
583 int sumonner_type = PID_TYPE(pActors[i].uSummonerID);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
584 if (sumonner_type == OBJECT_Player)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
585 ++num_dead_actors;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
586 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
587 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
588 if (num_dead_actors == uNumActors)
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
589 strcpy(pButton->pButtonName, pGlobalTXT_LocalizationStrings[658]); // Collect Prize
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
590 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
591 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
592
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
593 // Install Buttons(Óñòàíîâêà êíîïîê)--------
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
594 index = 0;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
595 all_text_height = 0;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
596 for ( int i = pDialogueWindow->pStartingPosActiveItem;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
597 i < pDialogueWindow->pStartingPosActiveItem + pDialogueWindow->pNumPresenceButton; ++i )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
598 {
1610
Ritor1
parents: 1545
diff changeset
599 pButton = pDialogueWindow->GetControl(i);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
600 if ( !pButton )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
601 break;
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
602 all_text_height += pFontArrus->CalcTextHeight(pButton->pButtonName, &window, 0, 0);
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
603 index++;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
604 }
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
605 if ( index )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
606 {
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
607 v45 = (174 - all_text_height) / index;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
608 if ( v45 > 32 )
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
609 v45 = 32;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
610 v42 = (174 - v45 * index - all_text_height)/ 2 - v45 / 2 + 138;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
611 for ( int i = pDialogueWindow->pStartingPosActiveItem;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
612 i < pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem; ++i )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
613 {
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
614 pButton = pDialogueWindow->GetControl(i);
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
615 if ( !pButton )
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
616 break;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
617 pButton->uY = (unsigned int)(v45 + v42);
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
618 pTextHeight = pFontArrus->CalcTextHeight(pButton->pButtonName, &window, 0, 0);
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
619 pButton->uHeight = pTextHeight;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
620 v42 = pButton->uY + pTextHeight - 1;
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
621 pButton->uW = v42;
2000
985fff9fb62d constructor functions
zipi
parents: 1983
diff changeset
622 pTextColor = ui_game_dialogue_option_normal_color;
985fff9fb62d constructor functions
zipi
parents: 1983
diff changeset
623 if ( pDialogueWindow->pCurrentPosActiveItem == i )
985fff9fb62d constructor functions
zipi
parents: 1983
diff changeset
624 pTextColor = ui_game_dialogue_option_highlight_color;
1672
f3986fd1a122 GameUI_DrawDialogue()
Ritor1
parents: 1666
diff changeset
625 window.DrawTitleText(pFontArrus, 0, pButton->uY, pTextColor, pButton->pButtonName, 3);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
626 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
627 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
628 pRenderer->DrawTextureIndexed(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
629 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
630
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
631 //----- (00444FBE) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
632 void GameUI_DrawBranchlessDialogue()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
633 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
634 int pTextHeight; // esi@4
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
635 char Str[200]; // [sp+Ch] [bp-120h]@12
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
636 GUIWindow BranchlessDlg_window; // [sp+D4h] [bp-58h]@4
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
637 GUIFont *pFont; // [sp+128h] [bp-4h]@1
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
638
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
639 pFont = pFontArrus;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
640 if ( current_npc_text && !byte_5B0938[0] )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
641 strcpy(byte_5B0938.data(), current_npc_text);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
642 BranchlessDlg_window.uFrameWidth = game_viewport_width;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
643 BranchlessDlg_window.uFrameZ = 452;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
644 pTextHeight = pFontArrus->CalcTextHeight(byte_5B0938.data(), &BranchlessDlg_window, 12, 0) + 7;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
645 if ( 352 - pTextHeight < 8 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
646 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
647 pFont = pFontCreate;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
648 pTextHeight = pFontCreate->CalcTextHeight(byte_5B0938.data(), &BranchlessDlg_window, 12, 0) + 7;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
649 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
650 pRenderer->GetLeather(8, 352 - pTextHeight, pIcons_LOD->GetTexture(uTextureID_Leather), pIcons_LOD->GetTexture(uTextureID_Leather)->uTextureHeight - pTextHeight);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
651 pRenderer->DrawTextureIndexed(8, 347 - pTextHeight, pTexture_591428);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
652 pGUIWindow2->DrawText(pFont, 12, 354 - pTextHeight, 0, FitTextInAWindow(byte_5B0938.data(), pFont, &BranchlessDlg_window, 12, 0), 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
653 pRenderer->DrawTextureRGB(0, 0x160u, pTexture_StatusBar);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
654 if ( pGUIWindow2->receives_keyboard_input_2 != WINDOW_INPUT_IN_PROGRESS)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
655 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
656 if ( pGUIWindow2->receives_keyboard_input_2 == WINDOW_INPUT_CONFIRMED)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
657 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
658 pGUIWindow2->receives_keyboard_input_2 = WINDOW_INPUT_NONE;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
659 strcpy(GameUI_Footer_TimedString.data(), (const char *)pKeyActionMap->pPressedKeysBuffer);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
660 sub_4452BB();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
661 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
662 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
663 if ( pGUIWindow2->receives_keyboard_input_2 != WINDOW_INPUT_CANCELLED)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
664 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
665 pGUIWindow2->receives_keyboard_input_2 = WINDOW_INPUT_NONE;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
666 memset(GameUI_Footer_TimedString.data(), 0, 0xC8u);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
667 sub_4452BB();
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
668 return;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
669 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
670 if ( pGUIWindow2->ptr_1C == (void *)26 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
671 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
672 sprintf(Str, "%s %s", GameUI_Footer_TimedString, pKeyActionMap->pPressedKeysBuffer);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
673 pGUIWindow2->DrawText(pFontLucida, 13, 357, 0, Str, 0, 0, 0);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
674 pGUIWindow2->DrawFlashingInputCursor(pFontLucida->GetLineWidth(Str) + 13, 357, pFontLucida);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
675 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
676 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
677 if ( pKeyActionMap->pPressedKeysBuffer[0] )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
678 {
1459
2ca62c9e7b3c Function names
Nomad
parents: 1458
diff changeset
679 pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_NONE);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
680 memset(GameUI_Footer_TimedString.data(), 0, 0xC8u);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
681 sub_4452BB();
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
682 return;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
683 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
684 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
685
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
686 //----- (004443D5) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
687 const char *GameUI_GetMinimapHintText()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
688 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
689 double v3; // st7@1
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
690 int v7; // eax@4
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
691 ODMFace *pFace; // eax@6
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
692 const char *v14; // eax@8
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
693 char *result; // eax@12
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
694 unsigned int pMapID; // eax@14
1722
Ritor1
parents: 1698
diff changeset
695 int global_coord_X; // [sp+10h] [bp-1Ch]@1
Ritor1
parents: 1698
diff changeset
696 int global_coord_Y; // [sp+14h] [bp-18h]@1
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
697 unsigned int pY; // [sp+1Ch] [bp-10h]@1
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
698 unsigned int pX; // [sp+28h] [bp-4h]@1
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
699
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
700 result = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
701 pMouse->GetClickPos(&pX, &pY);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
702 v3 = 1.0 / (float)((signed int)viewparams->uMinimapZoom * 0.000015258789);
1722
Ritor1
parents: 1698
diff changeset
703 global_coord_X = (signed __int64)((double)(pX - 557) * v3 + (double)pParty->vPosition.x);
Ritor1
parents: 1698
diff changeset
704 global_coord_Y = (signed __int64)((double)pParty->vPosition.y - (double)(pY - 74) * v3);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
705 if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor || pOutdoor->uNumBModels <= 0 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
706 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
707 pMapID = pMapStats->GetMapInfo(pCurrentMapName);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
708 if ( pMapID == 0 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
709 result = "No Maze Info for this maze on file!";
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
710 else
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
711 result = pMapStats->pInfos[pMapID].pName;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
712 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
713 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
714 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
715 for ( uint j = 0; j < (uint)pOutdoor->uNumBModels; ++j )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
716 {
1722
Ritor1
parents: 1698
diff changeset
717 v7 = int_get_vector_length(abs((signed)pOutdoor->pBModels[j].vBoundingCenter.x - global_coord_X),
Ritor1
parents: 1698
diff changeset
718 abs((signed)pOutdoor->pBModels[j].vBoundingCenter.y - global_coord_Y), 0);
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
719 if ( v7 < 2 * pOutdoor->pBModels[j].sBoundingRadius )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
720 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
721 if ( pOutdoor->pBModels[j].uNumFaces )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
722 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
723 for ( uint i = 0; i < (uint)pOutdoor->pBModels[j].uNumFaces; ++i )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
724 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
725 pFace = &pOutdoor->pBModels[j].pFaces[i];
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
726 if ( pFace->sCogTriggeredID )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
727 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
728 if ( !(BYTE2(pFace->uAttributes) & 0x10) )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
729 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
730 v14 = GetEventHintString(pFace->sCogTriggeredID);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
731 if ( v14 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
732 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
733 if ( _stricmp(v14, "") )
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
734 result = (char *)v14;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
735 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
736 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
737 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
738 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
739 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
740 if ( result )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
741 return result;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
742 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
743 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
744 pMapID = pMapStats->GetMapInfo(pCurrentMapName);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
745 if ( pMapID == 0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
746 result = "No Maze Info for this maze on file!";
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
747 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
748 result = pMapStats->pInfos[pMapID].pName;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
749 return result;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
750 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
751 return result;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
752 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
753
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
754 //----- (0041D3B7) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
755 void GameUI_CharacterQuickRecord_Draw(GUIWindow *window, Player *player)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
756 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
757 Texture *v13; // eax@6
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
758 PlayerFrame *v15; // eax@12
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
759 unsigned int pTextColor; // eax@15
1838
211dfe2d8db1 changing global char* vars to const char* vars
Grumpy7
parents: 1828
diff changeset
760 const char *v29; // eax@16
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
761 int v36; // esi@22
1838
211dfe2d8db1 changing global char* vars to const char* vars
Grumpy7
parents: 1828
diff changeset
762 const char *v39; // eax@24
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
763 signed int uFramesetID; // [sp+20h] [bp-8h]@9
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
764 int uFramesetIDa; // [sp+20h] [bp-8h]@18
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
765
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
766 uint numActivePlayerBuffs = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
767 for (uint i = 0; i < 24; ++i)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
768 if (player->pPlayerBuffs[i].uExpireTime > 0)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
769 ++numActivePlayerBuffs;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
770
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
771 window->uFrameHeight = ((pFontArrus->uFontHeight + 162) + ((numActivePlayerBuffs - 1) * pFontArrus->uFontHeight));
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
772 window->uFrameZ = window->uFrameWidth + window->uFrameX - 1;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
773 window->uFrameW = ((pFontArrus->uFontHeight + 162) + ((numActivePlayerBuffs - 1) * pFontArrus->uFontHeight)) + window->uFrameY - 1;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
774 window->DrawMessageBox(0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
775
1362
d6cf8ead9242 Condition checking functions slightly renamed, some final changes in Player::SetCondition
Grumpy7
parents: 1340
diff changeset
776 if (player->IsEradicated())
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
777 v13 = pTexture_PlayerFaceEradicated;
1362
d6cf8ead9242 Condition checking functions slightly renamed, some final changes in Player::SetCondition
Grumpy7
parents: 1340
diff changeset
778 else if (player->IsDead())
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
779 v13 = pTexture_PlayerFaceDead;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
780 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
781 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
782 uFramesetID = pPlayerFrameTable->GetFrameIdByExpression(player->expression);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
783 if ( !uFramesetID )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
784 uFramesetID = 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
785 if ( player->expression == CHARACTER_EXPRESSION_21)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
786 v15 = pPlayerFrameTable->GetFrameBy_y(&player->_expression21_frameset, &player->_expression21_animtime, pMiscTimer->uTimeElapsed);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
787 else
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
788 v15 = pPlayerFrameTable->GetFrameBy_x(uFramesetID, pMiscTimer->Time());
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
789 player->field_1AA2 = v15->uTextureID - 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
790 v13 = pTextures_PlayerFaces[(unsigned int)window->ptr_1C][v15->uTextureID - 1];
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
791 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
792
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
793 pRenderer->DrawTextureTransparent(window->uFrameX + 24, window->uFrameY + 24, v13);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
794
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
795 sprintfex(pTmpBuf.data(), "\f%05d", ui_character_header_text_color);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
796 sprintfex(pTmpBuf2.data(), pGlobalTXT_LocalizationStrings[429], player->pName, pClassNames[player->classType]); // "%s the %s"
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
797 strcat(pTmpBuf.data(), pTmpBuf2.data());
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
798 strcat(pTmpBuf.data(), "\f00000\n");
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
799
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
800 pTextColor = UI_GetHealthManaAndOtherQualitiesStringColor(player->sHealth, player->GetMaxHealth());
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
801 sprintfex(pTmpBuf2.data(), "%s : \f%05u%d\f00000 / %d\n", pGlobalTXT_LocalizationStrings[108], // "Hit Points"
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
802 pTextColor, player->sHealth, player->GetMaxHealth());
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
803 strcat(pTmpBuf.data(), pTmpBuf2.data());
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
804
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
805 pTextColor = UI_GetHealthManaAndOtherQualitiesStringColor(player->sMana, player->GetMaxMana());
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
806 sprintfex(pTmpBuf2.data(), "%s : \f%05u%d\f00000 / %d\n", pGlobalTXT_LocalizationStrings[212], // "Spell Points"
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
807 pTextColor, player->sMana, player->GetMaxMana());
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
808 strcat(pTmpBuf.data(), pTmpBuf2.data());
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
809
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
810 pTextColor = player->GetMajorConditionIdx();
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
811 sprintfex(pTmpBuf2.data(), "%s: \f%05d%s\f00000\n", pGlobalTXT_LocalizationStrings[47], // "Condition
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
812 GetConditionDrawColor(pTextColor), aCharacterConditionNames[pTextColor]);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
813 strcat(pTmpBuf.data(), pTmpBuf2.data());
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
814
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
815 if ( player->uQuickSpell )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
816 v29 = pSpellStats->pInfos[player->uQuickSpell].pShortName;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
817 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
818 v29 = pGlobalTXT_LocalizationStrings[153];
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
819 sprintfex(pTmpBuf2.data(), "%s: %s", pGlobalTXT_LocalizationStrings[172], v29); // "Quick Spell"
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
820 strcat(pTmpBuf.data(), pTmpBuf2.data());
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
821
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
822 window->DrawText(pFontArrus, 120, 22, 0, pTmpBuf.data(), 0, 0, 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
823
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
824 uFramesetIDa = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
825 for (uint i = 0; i < 24; ++i)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
826 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
827 SpellBuff* buff = &player->pPlayerBuffs[i];
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
828 if (buff->uExpireTime > 0)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
829 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
830 v36 = uFramesetIDa++ * pFontComic->uFontHeight + 134;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
831 window->DrawText(pFontComic, 52, v36, ui_game_character_record_playerbuff_colors[i], aSpellNames[20 + i], 0, 0, 0);
1758
24e756a50073 DrawBuff_remaind_time_string and DrawShops_next_generation_time_string fix and cleared
Ritor1
parents: 1736
diff changeset
832 DrawBuff_remaining_time_string(v36, window, buff->uExpireTime - pParty->uTimePlayed, pFontComic);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
833 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
834 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
835
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
836 v39 = "";
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
837 if ( uFramesetIDa == 0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
838 v39 = pGlobalTXT_LocalizationStrings[153]; // "None"
1393
28f87f5234a1 More hardcoded UI colors moved to varibables.
Nomad
parents: 1384
diff changeset
839 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[450], v39); // "Active Spells: %s"
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
840 window->DrawText(pFontArrus, 14, 114, 0, pTmpBuf.data(), 0, 0, 0);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
841 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
842
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
843 //----- (0041A57E) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
844 void GameUI_QuickRef_Draw()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
845 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
846 unsigned int pTextColor; // eax@7
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
847 unsigned int pX; // [sp+14h] [bp-18h]@2
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
848 unsigned int pY; // edi@9
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
849 int pSkillsCount; // ecx@27
1838
211dfe2d8db1 changing global char* vars to const char* vars
Grumpy7
parents: 1828
diff changeset
850 const char *pText; // eax@38
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
851 int pFontHeight; // [sp+18h] [bp-14h]@1
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
852
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
853 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("quikref", TEXTURE_16BIT_PALETTE));
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
854 pFontHeight = LOBYTE(pFontArrus->uFontHeight) + 1;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
855 for ( uint i = 0; i < 4; ++i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
856 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
857 Player* player = &pParty->pPlayers[i];
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
858 pX = 94 * i + 89;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
859 if ( i == 0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
860 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, 18, 0, pGlobalTXT_LocalizationStrings[149], 60, 0);//Name
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
861 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 94 * i + 89, 18, ui_character_header_text_color, player->pName, 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
862 if ( i == 0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
863 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, 47, 0, pGlobalTXT_LocalizationStrings[131], 60, 0); //Óðîâ.
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
864 sprintf(pTmpBuf.data(), "%lu", player->GetActualLevel());
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
865 if ( player->GetActualLevel() <= player->GetBaseLevel())
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
866 pTextColor = player->GetExperienceDisplayColor();
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
867 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
868 pTextColor = ui_character_bonus_text_color;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
869 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, 47, pTextColor, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
870 pY = pFontHeight + 47;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
871 if ( i == 0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
872 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pFontHeight + 47, 0, pGlobalTXT_LocalizationStrings[41], 60, 0);//Êëàññ
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
873 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pClassNames[player->classType], 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
874 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
875 if ( i == 0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
876 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[107], 60, 0);//Çäîð.
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
877 sprintf(pTmpBuf.data(), "%d", player->sHealth);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
878 pTextColor = UI_GetHealthManaAndOtherQualitiesStringColor(player->sHealth, player->GetMaxHealth());
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
879 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
880 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
881 if ( i == 0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
882 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[209], 60, 0);//Ìàíà
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
883 sprintf(pTmpBuf.data(), "%d", player->sMana);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
884 pTextColor = UI_GetHealthManaAndOtherQualitiesStringColor(player->sMana, player->GetMaxMana());
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
885 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
886 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
887 if ( i == 0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
888 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[0], 60, 0);//Êëàññ áðîíè
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
889 sprintf(pTmpBuf.data(), "%d", player->GetActualAC());
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
890 pTextColor = UI_GetHealthManaAndOtherQualitiesStringColor(player->GetActualAC(), player->GetBaseAC());
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
891 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
892 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
893 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
894 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[18], 60, 0);//Àòàêà
1684
f84b8b2a875c Fixing a few warnings in Players.cpp
Grumpy7
parents: 1672
diff changeset
895 sprintf(pTmpBuf.data(), "%+d", player->GetActualAttack(false));
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
896 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
897 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
898 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
899 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Ïîâð.
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
900 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, player->GetMeleeDamageString(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
901 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
902 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
903 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[203], 60, 0);// Ñòðåëÿòü
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
904 sprintf(pTmpBuf.data(), "%+d", player->GetRangedAttack());
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
905 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
906 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
907 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
908 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Ïîâð.
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
909 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, player->GetRangedDamageString(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
910 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
911 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
912 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[205], 60, 0);//Íàâûêè
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
913 pSkillsCount = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
914 for ( uint j = 0; j <= 36; ++j )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
915 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
916 if ( player->pActiveSkills[j] )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
917 ++pSkillsCount;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
918 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
919 sprintf(pTmpBuf.data(), "%lu", pSkillsCount);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
920 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
921 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
922 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
923 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[168], 60, 0);//Î÷êè
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
924 sprintf(pTmpBuf.data(), "%lu", player->uSkillPoints);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
925 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, player->uSkillPoints ? ui_character_bonus_text_color : ui_character_default_text_color, pTmpBuf.data(), 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
926 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
927 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
928 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[45], 60, 0);//Ñîñò.
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
929 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, pTextColor, aCharacterConditionNames[player->GetMajorConditionIdx()], 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
930 pY = pFontHeight + pY;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
931 if ( !i )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
932 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 22, pY, 0, pGlobalTXT_LocalizationStrings[170], 60, 0);//Á.Ïðèì.
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
933 if (player->uQuickSpell)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
934 pText = pSpellStats->pInfos[player->uQuickSpell].pShortName;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
935 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
936 pText = pGlobalTXT_LocalizationStrings[153];//Íåò
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
937 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, pX, pY, 0, pText, 84, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
938 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
939
1827
0c75c3e7e436 cleaned up part of party.cpp, renamed byte_AE3368 to playerAlreadyPicked + 3 vars after it, moved them to party.cpp, some player.cpp bugfixes
Grumpy7
parents: 1826
diff changeset
940 if ( pParty->GetPartyReputation() >= 0 )
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
941 {
1827
0c75c3e7e436 cleaned up part of party.cpp, renamed byte_AE3368 to playerAlreadyPicked + 3 vars after it, moved them to party.cpp, some player.cpp bugfixes
Grumpy7
parents: 1826
diff changeset
942 if ( pParty->GetPartyReputation() <= 5 )
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
943 pTextColor = ui_character_default_text_color;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
944 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
945 pTextColor = ui_character_bonus_text_color_neg;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
946 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
947 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
948 pTextColor = ui_character_bonus_text_color;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
949
1827
0c75c3e7e436 cleaned up part of party.cpp, renamed byte_AE3368 to playerAlreadyPicked + 3 vars after it, moved them to party.cpp, some player.cpp bugfixes
Grumpy7
parents: 1826
diff changeset
950 sprintf(pTmpBuf.data(), "%s: \f%05d%s\f00000", pGlobalTXT_LocalizationStrings[180], pTextColor, GetReputationString(pParty->GetPartyReputation()));//Reputation
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
951 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 22, 323, 0, pTmpBuf.data(), 0, 0, 0);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
952 sprintf(pTmpBuf.data(), "\r261%s: %d", pGlobalTXT_LocalizationStrings[84], pParty->GetPartyFame());// Fame Ñëàâà
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
953 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 0, 323, 0, pTmpBuf.data(), 0, 0, 0);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
954 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
955
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
956 //----- (0041AD6E) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
957 void GameUI_DrawRightPanelItems()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
958 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
959 if ( (unsigned long long)GameUI_RightPanel_BookFlashTimer > pParty->uTimePlayed )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
960 GameUI_RightPanel_BookFlashTimer = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
961
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
962 if ( pParty->uTimePlayed - GameUI_RightPanel_BookFlashTimer > 128 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
963 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
964 GameUI_RightPanel_BookFlashTimer = pParty->uTimePlayed;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
965
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
966 static bool byte_50697C = false; // 50697C
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
967 byte_50697C = !byte_50697C;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
968 if ( byte_50697C && pCurrentScreen != SCREEN_REST )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
969 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
970 if (bFlashQuestBook) pRenderer->DrawTextureTransparent(493, 355, pIcons_LOD->GetTexture(uTextureID_ib_td1_A));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
971 if (bFlashAutonotesBook) pRenderer->DrawTextureTransparent(527, 353, pIcons_LOD->GetTexture(uTextureID_ib_td2_A));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
972 if (bFlashHistoryBook) pRenderer->DrawTextureTransparent(600, 361, pIcons_LOD->GetTexture(uTextureID_ib_td5_A));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
973 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
974 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
975 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
976 pRenderer->DrawTextureRGB(468, 0, pTexture_RightFrame);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
977 GameUI_DrawHiredNPCs();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
978 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
979 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
980 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
981
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
982 //----- (0041AEBB) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
983 void GameUI_DrawFoodAndGold()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
984 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
985 int v2; // esi@2
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
986
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
987 if ( uGameState != GAME_STATE_FINAL_WINDOW )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
988 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
989 v2 = sub_44100D() != 0 ? 381 : 322;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
990 sprintf(pTmpBuf.data(), "\r087%lu", pParty->uNumFoodRations);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
991 pPrimaryWindow->DrawText(pFontSmallnum, 0, v2, uGameUIFontMain, pTmpBuf.data(), 0, 0, uGameUIFontShadow);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
992 sprintf(pTmpBuf.data(), "\r028%lu", pParty->uNumGold);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
993 pPrimaryWindow->DrawText(pFontSmallnum, 0, v2, uGameUIFontMain, pTmpBuf.data(), 0, 0, uGameUIFontShadow);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
994 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
995 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
996
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
997 //----- (0041B0C9) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
998 void GameUI_DrawLifeManaBars()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
999 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1000 double v3; // st7@3
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1001 double v7; // st7@25
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1002 Texture *pTextureHealth; // [sp-4h] [bp-30h]@10
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1003 Texture *pTextureMana; // [sp+Ch] [bp-20h]@1
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1004
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1005 pTextureMana = pIcons_LOD->GetTexture(uTextureID_BarBlue);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1006 for (uint i = 0; i < 4; ++i)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1007 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1008 if (pParty->pPlayers[i].sHealth > 0)
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1009 {
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1010 int v17 = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1011 if (i == 2 || i == 3)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1012 v17 = 2;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1013 v3 = (double)pParty->pPlayers[i].sHealth / (double)pParty->pPlayers[i].GetMaxHealth();
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1014 if( v3 > 0.5 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1015 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1016 if ( v3 > 1.0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1017 v3 = 1.0;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1018 pTextureHealth = pIcons_LOD->GetTexture(uTextureID_BarGreen);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1019 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1020 else if ( v3 > 0.25 )
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1021 pTextureHealth = pIcons_LOD->GetTexture(uTextureID_BarYellow);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1022 else if ( v3 > 0.0 )
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1023 pTextureHealth = pIcons_LOD->GetTexture(uTextureID_BarRed);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1024 if( v3 > 0.0 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1025 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1026 pRenderer->SetTextureClipRect(v17 + pHealthBarPos[i], (signed __int64)((1.0 - v3) * pTextureHealth->uTextureHeight) + 402,
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1027 v17 + pHealthBarPos[i] + pTextureHealth->uTextureWidth, pTextureHealth->uTextureHeight + 402);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1028 pRenderer->DrawTextureIndexed(v17 + pHealthBarPos[i], 402, pTextureHealth);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1029 pRenderer->ResetTextureClipRect();
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1030 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1031 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1032 if (pParty->pPlayers[i].sMana > 0)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1033 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1034 v7 = pParty->pPlayers[i].sMana / (double)pParty->pPlayers[i].GetMaxMana();
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1035 if ( v7 > 1.0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1036 v7 = 1.0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1037 int v17 = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1038 if (i == 2)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1039 v17 = 1;
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1040 pRenderer->SetTextureClipRect(v17 + pManaBarPos[i], (signed __int64)((1.0 - v7) * pTextureMana->uTextureHeight) + 402,
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1041 v17 + pManaBarPos[i] + pTextureMana->uTextureWidth, pTextureMana->uTextureHeight + 402);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1042 pRenderer->DrawTextureIndexed(v17 + pManaBarPos[i], 402, pTextureMana);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1043 pRenderer->ResetTextureClipRect();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1044 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1045 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1046 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1047
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1048 //----- (0041B3B6) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1049 void GameUI_DrawRightPanel()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1050 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1051 pRenderer->DrawTextureTransparent(pViewport->uViewportBR_X, 0, pIcons_LOD->GetTexture(uTextureID_right_panel));
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1052 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1053
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1054 //----- (0041B3E2) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1055 void GameUI_DrawRightPanelFrames()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1056 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1057 pRenderer->DrawTextureRGB(0, 0, pTexture_TopFrame);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1058 pRenderer->DrawTextureRGB(0, 8, pTexture_LeftFrame);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1059 pRenderer->DrawTextureRGB(468, 0, pTexture_RightFrame);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1060 pRenderer->DrawTextureRGB(0, 352, pTexture_BottomFrame);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1061 GameUI_DrawFoodAndGold();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1062 GameUI_DrawRightPanelItems();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1063 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1064
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1065 //----- (0041C047) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1066 void GameUI_Footer_2()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1067 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1068 char *v1; // edx@2
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1069 int v5; // eax@5
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1070
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1071 pRenderer->DrawTextureRGB(0, 352, pTexture_StatusBar);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1072 if (GameUI_Footer_TimeLeft)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1073 v1 = GameUI_Footer_TimedString.data();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1074 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1075 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1076 if (!pFooterString[0])
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1077 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1078 v1 = pFooterString.data();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1079 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1080
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1081 v5 = pFontLucida->AlignText_Center(450, v1);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1082 pPrimaryWindow->DrawText(pFontLucida, v5 + 11, 357, uGameUIFontMain, v1, 0, 0, uGameUIFontShadow);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1083 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1084
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1085 //----- (0041C0B8) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1086 void GameUI_SetFooterString(const char *pStr)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1087 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1088 const char *v1; // esi@1
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1089
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1090 v1 = pStr;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1091 if ( pStr && strcmp(pStr, "test") && !IsBadStringPtrA(pStr, 1) && (*v1 || GameUI_Footer_TimeLeft) )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1092 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1093 if ( GameUI_Footer_TimeLeft )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1094 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1095 for ( int i = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data()); i > 450; i = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data()) )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1096 GameUI_Footer_TimedString[strlen(GameUI_Footer_TimedString.data()) - 1] = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1097 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1098 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1099 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1100 strcpy(pFooterString.data(), v1);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1101 for ( int j = pFontLucida->GetLineWidth(pFooterString.data()); j > 450; j = pFontLucida->GetLineWidth(pFooterString.data()) )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1102 pFooterString[strlen(pFooterString.data()) - 1] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1103 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1104 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1105 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1106
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1107 //----- (0041C179) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1108 void GameUI_Footer()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1109 {
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1110 char *v1; // edi@5
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1111 int v2; // eax@5
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1112 int v6; // eax@9
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1113 char v9; // zf@12
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1114
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1115 if ( pFooterString[0] || GameUI_Footer_TimeLeft || bForceDrawFooter )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1116 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1117 pRenderer->DrawTextureRGB(0, 352, pTexture_StatusBar);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1118 if ( GameUI_Footer_TimeLeft )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1119 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1120 v1 = GameUI_Footer_TimedString.data();
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1121 v2 = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data());
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1122 while ( v2 > 450 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1123 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1124 GameUI_Footer_TimedString[strlen(GameUI_Footer_TimedString.data()) - 1] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1125 v2 = pFontLucida->GetLineWidth(GameUI_Footer_TimedString.data());
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1126 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1127 }
1496
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1128 else
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1129 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1130 v1 = pFooterString.data();
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1131 v6 = pFontLucida->GetLineWidth(pFooterString.data());
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1132 while ( v6 > 450 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1133 {
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1134 pFooterString[strlen(pFooterString.data()) - 1] = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1135 v6 = pFontLucida->GetLineWidth(pFooterString.data());
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1136 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1137 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1138 v9 = *v1 == 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1139 bForceDrawFooter = 0;
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1140 if ( !v9 )
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1141 pPrimaryWindow->DrawText(pFontLucida, pFontLucida->AlignText_Center(450, v1) + 11, 357, uGameUIFontMain, v1, 0, 0, uGameUIFontShadow);
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1142 }
ab6bf38b2940 UIGame.cpp cleaning(continue)
Ritor1
parents: 1487
diff changeset
1143 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1144 // 5C35BC: using guessed type int bForceDrawFooter;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1145 //----- (00420EFF) --------------------------------------------------------
1458
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
1146 void GameUI_WritePointedObjectStatusString()
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1147 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1148 int v1; // ebx@6
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1149 GUIWindow *pWindow; // edi@7
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1150 GUIButton *pButton; // ecx@11
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1151 int v7; // ecx@19
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1152 enum UIMessageType pMessageType1; // esi@24
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1153 int v14; // eax@41
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1154 ItemGen *pItemGen; // ecx@44
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1155 int v16; // ecx@46
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1156 signed int v18; // eax@55
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1157 signed int v18b;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1158 signed int v19; // ecx@63
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1159 const char *pText; // ecx@79
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1160 char *v28; // esi@82
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1161 enum UIMessageType pMessageType2; // esi@110
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1162 enum UIMessageType pMessageType3; // edx@117
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1163 char Str1[200]; // [sp+Ch] [bp-D4h]@129
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1164 unsigned int pX; // [sp+D4h] [bp-Ch]@1
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1165 unsigned int pY; // [sp+D8h] [bp-8h]@1
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1166 unsigned int v45; // [sp+DCh] [bp-4h]@21
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1167
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1168 int interaction_distance_limit = 512;
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1169 int monster_info_distance_limit = 5120;
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1170
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1171 pMouse->uPointingObjectID = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1172 pMouse->GetClickPos(&pX, &pY);
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1173 if ( pX < 0 || pX > 639 || pY < 0 || pY > 479 )//ãðàíèöû îêíà èãðû
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1174 return;
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1175 if ( pX <= 467 && pY <= 351 )//ïðåäåëû îñíîâíîé îáëàñòè
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1176 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1177 //îêíî(îáëàñòü) èãðû----------------------------------
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1178 if ( pCurrentScreen == SCREEN_GAME )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1179 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1180 if ( pRenderer->pRenderD3D ) // inlined mm8::4C1E01
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1181 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1182 v18 = pGame->pVisInstance->get_picked_object_zbuf_val();
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1183 if ( pX < (unsigned int)pViewport->uScreen_TL_X || pX > (unsigned int)pViewport->uScreen_BR_X
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1184 || pY < (unsigned int)pViewport->uScreen_TL_Y || pY > (unsigned int)pViewport->uScreen_BR_Y )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1185 v18 = -1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1186 if ( v18 == -1 )
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1187 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1188 pMouse->uPointingObjectID = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1189 if ( pMouse->uPointingObjectID == 0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1190 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1191 if ( uLastPointedObjectID != 0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1192 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1193 pFooterString[0] = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1194 bForceDrawFooter = 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1195 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1196 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1197 uLastPointedObjectID = pMouse->uPointingObjectID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1198 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1199 }
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1200 }
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1201 else
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1202 v18 = pRenderer->pActiveZBuffer[pX + pSRZBufferLineOffsets[pY]];
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1203 pMouse->uPointingObjectID = (unsigned __int16)v18;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1204 v19 = (signed)PID_ID(v18);
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1205 //For Items------------------------------------
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1206 if (PID_TYPE(v18) == OBJECT_Item)
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1207 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1208 if ( pObjectList->pObjects[pSpriteObjects[v19].uObjectDescID].uFlags & 0x10 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1209 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1210 pMouse->uPointingObjectID = 0;
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1211 pFooterString[0] = 0;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1212 bForceDrawFooter = 1;
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1213 uLastPointedObjectID = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1214 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1215 }
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1216 if ( HIWORD(v18) < interaction_distance_limit && !pParty->pPickedItem.uItemID )
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1217 {
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1218 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[470], pSpriteObjects[v19].stru_24.GetDisplayName());// "Get %s"
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1219 GameUI_SetFooterString(pTmpBuf.data());
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1220 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1221 }
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1222 GameUI_SetFooterString(pSpriteObjects[v19].stru_24.GetDisplayName());
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1223 if ( pMouse->uPointingObjectID == 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1224 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1225 if ( uLastPointedObjectID != 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1226 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1227 pFooterString[0] = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1228 bForceDrawFooter = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1229 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1230 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1231 uLastPointedObjectID = pMouse->uPointingObjectID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1232 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1233 }
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1234 //For Decorations----------------------------------
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1235 if (PID_TYPE(v18) == OBJECT_Decoration)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1236 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1237 if ( !pLevelDecorations[v19].uEventID )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1238 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1239 if ( pLevelDecorations[v19].IsInteractive() )
2026
23ef3589440f History book fix
Ritor1
parents: 2021
diff changeset
1240 pText = pNPCTopics[stru_5E4C90_MapPersistVars._decor_events[pLevelDecorations[v19]._idx_in_stru123 - 75] + 380].pTopic;//-379
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1241 else
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1242 pText = pDecorationList->pDecorations[pLevelDecorations[v19].uDecorationDescID].field_20;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1243 GameUI_SetFooterString(pText);
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1244 }
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1245 else
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1246 {
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1247 if ( GetEventHintString(pLevelDecorations[v19].uEventID) )
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1248 GameUI_SetFooterString(GetEventHintString(pLevelDecorations[v19].uEventID));
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1249 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1250 if ( pMouse->uPointingObjectID == 0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1251 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1252 if ( uLastPointedObjectID != 0 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1253 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1254 pFooterString[0] = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1255 bForceDrawFooter = 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1256 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1257 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1258 uLastPointedObjectID = pMouse->uPointingObjectID;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1259 return;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1260 }
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1261 //For 3D Model-------------------------------------
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1262 if (PID_TYPE(v18) == OBJECT_BModel)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1263 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1264 if ( HIWORD(v18) < interaction_distance_limit )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1265 {
2092
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1266 if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor)
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1267 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1268 v18b = (signed int)(unsigned __int16)v18 >> 9;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1269 if ( !pOutdoor->pBModels[v18b].pFaces[v19 & 0x3F].sCogTriggeredID
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1270 || !GetEventHintString(pOutdoor->pBModels[v18b].pFaces[v19 & 0x3F].sCogTriggeredID) )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1271 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1272 pMouse->uPointingObjectID = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1273 pFooterString[0] = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1274 bForceDrawFooter = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1275 uLastPointedObjectID = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1276 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1277 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1278 GameUI_SetFooterString(GetEventHintString(pOutdoor->pBModels[v18b].pFaces[v19 & 0x3F].sCogTriggeredID));
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1279 if ( pMouse->uPointingObjectID == 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1280 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1281 if ( uLastPointedObjectID != 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1282 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1283 pFooterString[0] = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1284 bForceDrawFooter = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1285 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1286 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1287 uLastPointedObjectID = pMouse->uPointingObjectID;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1288 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1289 }
2092
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1290 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor)
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1291 {
2092
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1292 if ( pIndoor->pFaces[v19].uAttributes & FACE_INDICATE )
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1293 {
2092
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1294 if ( !pIndoor->pFaceExtras[pIndoor->pFaces[v19].uFaceExtraID].uEventID
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1295 || !GetEventHintString(pIndoor->pFaceExtras[pIndoor->pFaces[v19].uFaceExtraID].uEventID) )
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1296 {
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1297 pMouse->uPointingObjectID = 0;
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1298 pFooterString[0] = 0;
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1299 bForceDrawFooter = 1;
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1300 uLastPointedObjectID = 0;
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1301 return;
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1302 }
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1303 GameUI_SetFooterString(GetEventHintString(pIndoor->pFaceExtras[pIndoor->pFaces[v19].uFaceExtraID].uEventID));
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1304 if ( pMouse->uPointingObjectID == 0 )
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1305 {
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1306 if ( uLastPointedObjectID != 0 )
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1307 {
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1308 pFooterString[0] = 0;
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1309 bForceDrawFooter = 1;
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1310 }
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1311 }
a869b0376b48 enums and BLV_UpdateDoors()
Ritor1
parents: 2073
diff changeset
1312 uLastPointedObjectID = pMouse->uPointingObjectID;
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1313 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1314 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1315 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1316 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1317 pMouse->uPointingObjectID = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1318 pFooterString[0] = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1319 bForceDrawFooter = 1;
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1320 uLastPointedObjectID = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1321 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1322 }
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1323 if (PID_TYPE(v18) == OBJECT_Actor && HIWORD(v18) < monster_info_distance_limit )
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1324 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1325 if ( pActors[v19].dword_000334_unique_name )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1326 pText = pMonsterStats->pPlaceStrings[pActors[v19].dword_000334_unique_name];
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1327 else
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1328 pText = pMonsterStats->pInfos[pActors[v19].pMonsterInfo.uID].pName;
2021
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1329 strncpy(pTmpBuf.data(), pText, 2000);
b60eaf28bf0c monster_info_distance_limit
Ritor1
parents: 2020
diff changeset
1330 GameUI_SetFooterString(pTmpBuf.data());
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1331 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1332 if ( pMouse->uPointingObjectID == 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1333 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1334 if ( uLastPointedObjectID != 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1335 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1336 pFooterString[0] = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1337 bForceDrawFooter = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1338 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1339 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1340 uLastPointedObjectID = pMouse->uPointingObjectID;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1341 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1342 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1343 //îêíî(îáëàñòü) ÿùèêà-------------------------------------------
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1344 if ( pCurrentScreen == SCREEN_CHEST )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1345 {
2018
4c3e8ec07d12 ChestUI_WritePointedObjectStatusString() fix
Ritor1
parents: 2017
diff changeset
1346 ChestUI_WritePointedObjectStatusString();
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1347 if ( pMouse->uPointingObjectID == 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1348 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1349 if ( uLastPointedObjectID != 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1350 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1351 pFooterString[0] = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1352 bForceDrawFooter = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1353 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1354 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1355 uLastPointedObjectID = pMouse->uPointingObjectID;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1356 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1357 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1358 //îêíî(îáëàñòü) ìàãàçèíà-----------------------------------------
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1359 if ( pCurrentScreen == SCREEN_HOUSE )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1360 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1361 v16 = pRenderer->pActiveZBuffer[pX + pSRZBufferLineOffsets[pY]];
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1362 if ( v16 != 0 && v16 != -65536 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1363 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1364 if ( dialog_menu_id == HOUSE_DIALOGUE_SHOP_BUY_STANDARD )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1365 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1366 pItemGen = &pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v16-1];
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1367 GameUI_SetFooterString(pItemGen->GetDisplayName());
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1368 uLastPointedObjectID = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1369 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1370 if ( dialog_menu_id == HOUSE_DIALOGUE_SHOP_BUY_SPECIAL )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1371 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1372 pItemGen = &pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][v16-1];
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1373 GameUI_SetFooterString(pItemGen->GetDisplayName());
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1374 uLastPointedObjectID = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1375 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1376 if ( dialog_menu_id == HOUSE_DIALOGUE_SHOP_SELL )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1377 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1378 pItemGen = &pPlayers[uActiveCharacter]->pInventoryItemList[v16-1];
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1379 GameUI_SetFooterString(pItemGen->GetDisplayName());
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1380 uLastPointedObjectID = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1381 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1382 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1383 if ( pMouse->uPointingObjectID == 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1384 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1385 if ( uLastPointedObjectID != 0 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1386 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1387 pFooterString[0] = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1388 bForceDrawFooter = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1389 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1390 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1391 uLastPointedObjectID = pMouse->uPointingObjectID;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1392 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1393 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1394 //-----------------------------------------
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1395 for ( v1 = uNumVisibleWindows; v1 >= 0; --v1 ) // some other fullscreen ui
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1396 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1397 pWindow = &pWindowList[pVisibleWindowsIdxs[v1] - 1];
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1398 if ( (signed int)pX >= (signed int)pWindow->uFrameX && (signed int)pX <= (signed int)pWindow->uFrameZ
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1399 && (signed int)pY >= (signed int)pWindow->uFrameY && (signed int)pY <= (signed int)pWindow->uFrameW )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1400 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1401 for ( pButton = pWindow->pControlsHead; ; pButton = pButton->pNext )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1402 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1403 if ( !pButton )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1404 break;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1405 switch ( pButton->uButtonType )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1406 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1407 case 1://for dialogue window
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1408 if ( (signed int)pX >= (signed int)pButton->uX && (signed int)pX <= (signed int)pButton->uZ
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1409 && (signed int)pY >= (signed int)pButton->uY && (signed int)pY <= (signed int)pButton->uW )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1410 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1411 pMessageType1 = (UIMessageType)pButton->field_1C;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1412 if ( pMessageType1 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1413 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1414 GameUI_SetFooterString(pButton->pButtonName);
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1415 uLastPointedObjectID = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1416 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1417 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1418 break;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1419 case 2:
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1420 if ( pX >= pButton->uX && pX <= pButton->uZ
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1421 && pY >= pButton->uY && pY <= pButton->uW )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1422 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1423 pMessageType1 = (UIMessageType)pButton->field_1C;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1424 if ( pMessageType1 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1425 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1426 GameUI_SetFooterString(pButton->pButtonName);
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1427 uLastPointedObjectID = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1428 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1429 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1430 break;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1431 case 3:// click on skill
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1432 if ( pX >= pButton->uX && pX <= pButton->uZ
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1433 && pY >= pButton->uY && pY <= pButton->uW )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1434 {
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1435 v7 = (LOBYTE(pPlayers[uActiveCharacter]->pActiveSkills[pButton->msg_param]) & 0x3F) + 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1436 if ( pPlayers[uActiveCharacter]->uSkillPoints < v7 )
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1437 sprintf(Str1, pGlobalTXT_LocalizationStrings[469], v7 - pPlayers[uActiveCharacter]->uSkillPoints);// "You need %d more Skill Points to advance here"
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1438 else
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1439 sprintf(Str1, pGlobalTXT_LocalizationStrings[468], v7);// "Clicking here will spend %d Skill Points"
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1440 GameUI_SetFooterString(Str1);
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1441 uLastPointedObjectID = 1;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1442 return;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1443 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1444 break;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1445 }
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1446 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1447 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1448 }
2019
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1449 }//êîíåö ïðåäåëîâ îñíîâíîãî ýêðàíà------------------------
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1450 if ( pX > 467 && pX <=639 && pY <= 479 )//ïðåäåëû ïðàâîé îáëàñòè
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1451 {
2019
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1452 if ( pCurrentScreen == SCREEN_GAME )
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1453 {
2019
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1454 pWindow = &pWindowList[0];
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1455 if ( (signed int)pX >= (signed int)pWindow->uFrameX && (signed int)pX <= (signed int)pWindow->uFrameZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1456 && (signed int)pY >= (signed int)pWindow->uFrameY && (signed int)pY <= (signed int)pWindow->uFrameW )
2012
f39f27b08908 WritePointedObjectStatusString(continue)
Ritor1
parents: 2010
diff changeset
1457 {
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1458 for ( pButton = pWindow->pControlsHead; ; pButton = pButton->pNext )
2012
f39f27b08908 WritePointedObjectStatusString(continue)
Ritor1
parents: 2010
diff changeset
1459 {
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1460 if ( !pButton )
2012
f39f27b08908 WritePointedObjectStatusString(continue)
Ritor1
parents: 2010
diff changeset
1461 break;
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1462 switch ( pButton->uButtonType )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1463 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1464 case 1://for dialogue window
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1465 if ( (signed int)pX >= (signed int)pButton->uX && (signed int)pX <= (signed int)pButton->uZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1466 && (signed int)pY >= (signed int)pButton->uY && (signed int)pY <= (signed int)pButton->uW )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1467 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1468 pMessageType1 = (UIMessageType)pButton->field_1C;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1469 if ( pMessageType1 )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1470 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1471 GameUI_SetFooterString(pButton->pButtonName);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1472 uLastPointedObjectID = 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1473 return;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1474 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1475 break;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1476 case 2:
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1477 if ( pX >= pButton->uX && pX <= pButton->uZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1478 && pY >= pButton->uY && pY <= pButton->uW )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1479 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1480 pMessageType1 = (UIMessageType)pButton->field_1C;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1481 if ( pMessageType1 )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1482 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1483 GameUI_SetFooterString(pButton->pButtonName);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1484 uLastPointedObjectID = 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1485 return;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1486 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1487 break;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1488 case 3:// click on skill
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1489 if ( pX >= pButton->uX && pX <= pButton->uZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1490 && pY >= pButton->uY && pY <= pButton->uW )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1491 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1492 v7 = (LOBYTE(pPlayers[uActiveCharacter]->pActiveSkills[pButton->msg_param]) & 0x3F) + 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1493 if ( pPlayers[uActiveCharacter]->uSkillPoints < v7 )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1494 sprintf(Str1, pGlobalTXT_LocalizationStrings[469], v7 - pPlayers[uActiveCharacter]->uSkillPoints);// "You need %d more Skill Points to advance here"
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1495 else
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1496 sprintf(Str1, pGlobalTXT_LocalizationStrings[468], v7);// "Clicking here will spend %d Skill Points"
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1497 GameUI_SetFooterString(Str1);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1498 uLastPointedObjectID = 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1499 return;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1500 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1501 break;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1502 }
2012
f39f27b08908 WritePointedObjectStatusString(continue)
Ritor1
parents: 2010
diff changeset
1503 }
f39f27b08908 WritePointedObjectStatusString(continue)
Ritor1
parents: 2010
diff changeset
1504 }
f39f27b08908 WritePointedObjectStatusString(continue)
Ritor1
parents: 2010
diff changeset
1505 }
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1506 else
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1507 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1508 for ( v1 = uNumVisibleWindows; v1 > 0; --v1 )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1509 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1510 pWindow = &pWindowList[pVisibleWindowsIdxs[v1] - 1];
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1511 if ( (signed int)pX >= (signed int)pWindow->uFrameX && (signed int)pX <= (signed int)pWindow->uFrameZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1512 && (signed int)pY >= (signed int)pWindow->uFrameY && (signed int)pY <= (signed int)pWindow->uFrameW )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1513 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1514 for ( pButton = pWindow->pControlsHead; ; pButton = pButton->pNext )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1515 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1516 if ( !pButton )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1517 break;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1518 switch ( pButton->uButtonType )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1519 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1520 case 1://for dialogue window
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1521 if ( (signed int)pX >= (signed int)pButton->uX && (signed int)pX <= (signed int)pButton->uZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1522 && (signed int)pY >= (signed int)pButton->uY && (signed int)pY <= (signed int)pButton->uW )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1523 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1524 pMessageType1 = (UIMessageType)pButton->field_1C;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1525 if ( pMessageType1 )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1526 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1527 GameUI_SetFooterString(pButton->pButtonName);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1528 uLastPointedObjectID = 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1529 return;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1530 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1531 break;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1532 case 2:
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1533 if ( pX >= pButton->uX && pX <= pButton->uZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1534 && pY >= pButton->uY && pY <= pButton->uW )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1535 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1536 pMessageType1 = (UIMessageType)pButton->field_1C;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1537 if ( pMessageType1 )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1538 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1539 GameUI_SetFooterString(pButton->pButtonName);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1540 uLastPointedObjectID = 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1541 return;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1542 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1543 break;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1544 case 3:// click on skill
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1545 if ( pX >= pButton->uX && pX <= pButton->uZ
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1546 && pY >= pButton->uY && pY <= pButton->uW )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1547 {
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1548 v7 = (LOBYTE(pPlayers[uActiveCharacter]->pActiveSkills[pButton->msg_param]) & 0x3F) + 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1549 if ( pPlayers[uActiveCharacter]->uSkillPoints < v7 )
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1550 sprintf(Str1, pGlobalTXT_LocalizationStrings[469], v7 - pPlayers[uActiveCharacter]->uSkillPoints);// "You need %d more Skill Points to advance here"
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1551 else
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1552 sprintf(Str1, pGlobalTXT_LocalizationStrings[468], v7);// "Clicking here will spend %d Skill Points"
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1553 GameUI_SetFooterString(Str1);
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1554 uLastPointedObjectID = 1;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1555 return;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1556 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1557 break;
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1558 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1559 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1560 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1561 }
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1562 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1563 }
2019
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1564 if ( pX <= 467 && pY > 351 && pY <= 479 )//ïðåäåëû íèæíåé îáëàñòè
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1565 {
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1566 pWindow = &pWindowList[0];
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1567 if ( (signed int)pX >= (signed int)pWindow->uFrameX && (signed int)pX <= (signed int)pWindow->uFrameZ
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1568 && (signed int)pY >= (signed int)pWindow->uFrameY && (signed int)pY <= (signed int)pWindow->uFrameW )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1569 {
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1570 for ( pButton = pWindow->pControlsHead; ; pButton = pButton->pNext )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1571 {
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1572 if ( !pButton )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1573 break;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1574 switch ( pButton->uButtonType )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1575 {
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1576 case 1://for dialogue window
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1577 if ( (signed int)pX >= (signed int)pButton->uX && (signed int)pX <= (signed int)pButton->uZ
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1578 && (signed int)pY >= (signed int)pButton->uY && (signed int)pY <= (signed int)pButton->uW )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1579 {
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1580 pMessageType1 = (UIMessageType)pButton->field_1C;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1581 if ( pMessageType1 )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1582 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1583 GameUI_SetFooterString(pButton->pButtonName);
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1584 uLastPointedObjectID = 1;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1585 return;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1586 }
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1587 break;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1588 case 2:
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1589 if ( pX >= pButton->uX && pX <= pButton->uZ
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1590 && pY >= pButton->uY && pY <= pButton->uW )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1591 {
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1592 pMessageType1 = (UIMessageType)pButton->field_1C;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1593 if ( pMessageType1 )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1594 pMessageQueue_50CBD0->AddMessage(pMessageType1, pButton->msg_param, 0);
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1595 GameUI_SetFooterString(pButton->pButtonName);
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1596 uLastPointedObjectID = 1;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1597 return;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1598 }
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1599 break;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1600 case 3:// click on skill
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1601 if ( pX >= pButton->uX && pX <= pButton->uZ
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1602 && pY >= pButton->uY && pY <= pButton->uW )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1603 {
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1604 v7 = (LOBYTE(pPlayers[uActiveCharacter]->pActiveSkills[pButton->msg_param]) & 0x3F) + 1;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1605 if ( pPlayers[uActiveCharacter]->uSkillPoints < v7 )
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1606 sprintf(Str1, pGlobalTXT_LocalizationStrings[469], v7 - pPlayers[uActiveCharacter]->uSkillPoints);// "You need %d more Skill Points to advance here"
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1607 else
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1608 sprintf(Str1, pGlobalTXT_LocalizationStrings[468], v7);// "Clicking here will spend %d Skill Points"
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1609 GameUI_SetFooterString(Str1);
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1610 uLastPointedObjectID = 1;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1611 return;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1612 }
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1613 break;
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1614 }
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1615 }
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1616 }
ab7d10b66503 WritePointedObjectStatusString() fix
Ritor1
parents: 2018
diff changeset
1617 }
2020
b123afb8246b WritePointedObjectStatusString() clear
Ritor1
parents: 2019
diff changeset
1618 //pMouse->uPointingObjectID = sub_46A99B(); //for software
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1619 if ( pMouse->uPointingObjectID == 0 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1620 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1621 if ( uLastPointedObjectID != 0 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1622 {
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1623 pFooterString[0] = 0;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1624 bForceDrawFooter = 1;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1625 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1626 }
2017
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1627 uLastPointedObjectID = pMouse->uPointingObjectID;
a5a3ad2713b2 WritePointedObjectStatusString(continue)2
Ritor1
parents: 2012
diff changeset
1628 return;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1629 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1630
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1631 //----- (0044158F) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1632 void GameUI_DrawCharacterSelectionFrame()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1633 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1634 if ( uActiveCharacter )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1635 pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[uActiveCharacter - 1] - 9, 380,
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1636 pIcons_LOD->GetTexture(uTextureID_GameUI_CharSelectionFrame));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1637 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1638
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1639 //----- (0044162D) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1640 void GameUI_DrawPartySpells()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1641 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1642 unsigned int v0; // ebp@1
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1643 Texture *v7; // [sp-4h] [bp-1Ch]@12
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1644 Texture *v9; // [sp-4h] [bp-1Ch]@21
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1645
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1646 v0 = (signed __int64)((double)GetTickCount() * 0.050000001);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1647 //v1 = 0;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1648 for (uint i = 0; i < 14; ++i)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1649 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1650 //v2 = byte_4E5DD8[v1];
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1651 if (pParty->pPartyBuffs[byte_4E5DD8[i]].uExpireTime)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1652 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1653 Texture* tex = pIcons_LOD->GetTexture(pTextureIDs_PartyBuffIcons[i]);
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1654 //v3 = pTextureIDs_PartyBuffIcons[i];
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1655 pRenderer->_4A65CC(pPartySpellbuffsUI_XYs[i][0],
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1656 pPartySpellbuffsUI_XYs[i][1], tex, tex,
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1657 v0 + 20 * pPartySpellbuffsUI_smthns[i], 0, 63);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1658 }
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1659 //++v1;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1660 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1661 //while ( v1 < 14 );
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1662 if (pCurrentScreen == SCREEN_GAME || pCurrentScreen == SCREEN_NPC_DIALOGUE)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1663 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1664 if (pParty->FlyActive())
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1665 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1666 if ( pParty->bFlying )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1667 v7 = pIcons_LOD->GetTexture(pIconsFrameTable->GetFrame(uIconIdx_FlySpell, v0)->uTextureID);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1668 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1669 v7 = pIcons_LOD->GetTexture(pIconsFrameTable->GetFrame(uIconIdx_FlySpell, 0)->uTextureID);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1670 if ( pRenderer->pRenderD3D )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1671 pRenderer->DrawTextureIndexed(8, 8, v7);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1672 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1673 pRenderer->DrawTextureTransparent(8, 8, v7);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1674 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1675 if ( pParty->WaterWalkActive() )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1676 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1677 if ( pParty->uFlags & PARTY_FLAGS_1_STANDING_ON_WATER )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1678 v9 = pIcons_LOD->GetTexture(pIconsFrameTable->GetFrame(uIconIdx_WaterWalk, v0)->uTextureID);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1679 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1680 v9 = pIcons_LOD->GetTexture(pIconsFrameTable->GetFrame(uIconIdx_WaterWalk, 0)->uTextureID);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1681 if ( pRenderer->pRenderD3D )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1682 pRenderer->DrawTextureIndexed(396, 8, v9);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1683 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1684 pRenderer->DrawTextureTransparent(396, 8, v9);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1685 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1686 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1687 for (uint i = 0; i < 4; ++i)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1688 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1689 if ( pParty->pPlayers[i].pPlayerBuffs[PLAYER_BUFF_HAMMERHANDS].uExpireTime )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1690 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 427, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Hammerhands));
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1691 if ( pParty->pPlayers[i].pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1692 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 393, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Bless));
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1693 if ( pParty->pPlayers[i].pPlayerBuffs[PLAYER_BUFF_PRESERVATION].uExpireTime )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1694 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 410, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Preservation));
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1695 if ( pParty->pPlayers[i].pPlayerBuffs[PLAYER_BUFF_PAIN_REFLECTION].uExpireTime )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1696 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 444, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_PainReflection));
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1697 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1698 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1699
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1700 //----- (004921C1) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1701 void GameUI_DrawPortraits(unsigned int _this)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1702 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1703 unsigned int face_expression_ID; // eax@17
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1704 PlayerFrame *pFrame; // eax@21
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1705 int pTextureID; // eax@57
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1706 Texture *pPortrait; // [sp-4h] [bp-1Ch]@27
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1707
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1708 if ( qword_A750D8 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1709 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1710 qword_A750D8 -= (signed int)pMiscTimer->uTimeElapsed;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1711 if ( qword_A750D8 <= 0 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1712 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1713 if ( pPlayers[uSpeakingCharacter]->CanAct() )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1714 pPlayers[uSpeakingCharacter]->PlaySound(PlayerSpeechID, 0);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1715 qword_A750D8 = 0i64;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1716 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1717 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1718
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1719 for (uint i = 0; i < 4; ++i)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1720 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1721 Player* pPlayer = &pParty->pPlayers[i];
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1722 if ( pPlayer->IsEradicated() )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1723 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1724 pPortrait = pTexture_PlayerFaceEradicated;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1725 if ( pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].uExpireTime )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1726 pRenderer->_4A6E7E(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 388, pPortrait);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1727 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1728 pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
1605
434b796cdfd3 Player::GetMagicalBonus cleaned up, identified a few player only effect spells used in mm6
Grumpy7
parents: 1545
diff changeset
1729 if ( pPlayer->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_HASTE].uExpireTime
1822
5f9eeb7bf8e6 Finishing Player.cpp, fixing some bugs
Grumpy7
parents: 1793
diff changeset
1730 | pPlayer->pPlayerBuffs[PLAYER_BUFF_HEROISM].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_SHIELD].uExpireTime
1605
434b796cdfd3 Player::GetMagicalBonus cleaned up, identified a few player only effect spells used in mm6
Grumpy7
parents: 1545
diff changeset
1731 | pPlayer->pPlayerBuffs[PLAYER_BUFF_STONESKIN].uExpireTime )
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1732 sub_441A4E(i);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1733 continue;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1734 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1735 if (pPlayer->IsDead())
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1736 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1737 pPortrait = pTexture_PlayerFaceDead;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1738 if ( pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].uExpireTime )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1739 pRenderer->_4A6E7E(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 388, pPortrait);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1740 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1741 pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
1605
434b796cdfd3 Player::GetMagicalBonus cleaned up, identified a few player only effect spells used in mm6
Grumpy7
parents: 1545
diff changeset
1742 if ( pPlayer->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_HASTE].uExpireTime
1822
5f9eeb7bf8e6 Finishing Player.cpp, fixing some bugs
Grumpy7
parents: 1793
diff changeset
1743 | pPlayer->pPlayerBuffs[PLAYER_BUFF_HEROISM].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_SHIELD].uExpireTime
1605
434b796cdfd3 Player::GetMagicalBonus cleaned up, identified a few player only effect spells used in mm6
Grumpy7
parents: 1545
diff changeset
1744 | pPlayer->pPlayerBuffs[PLAYER_BUFF_STONESKIN].uExpireTime )
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1745 sub_441A4E(i);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1746 continue;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1747 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1748 face_expression_ID = 0;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1749 for ( uint j = 0; j < pPlayerFrameTable->uNumFrames; ++j )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1750 if ( pPlayerFrameTable->pFrames[j].expression == pPlayer->expression )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1751 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1752 face_expression_ID = j;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1753 break;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1754 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1755 if ( face_expression_ID == 0 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1756 face_expression_ID = 1;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1757 if (pPlayer->expression == CHARACTER_EXPRESSION_21)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1758 pFrame = pPlayerFrameTable->GetFrameBy_y(&pPlayer->_expression21_frameset, &pPlayer->_expression21_animtime, pMiscTimer->uTimeElapsed);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1759 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1760 pFrame = pPlayerFrameTable->GetFrameBy_x(face_expression_ID, pPlayer->uExpressionTimePassed);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1761 if (pPlayer->field_1AA2 != pFrame->uTextureID - 1 || _this )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1762 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1763 pPlayer->field_1AA2 = pFrame->uTextureID - 1;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1764 pPortrait = (Texture *)pTextures_PlayerFaces[i][pPlayer->field_1AA2];//pFace = (Texture *)pTextures_PlayerFaces[i][pFrame->uTextureID];
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1765 if ( pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].uExpireTime )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1766 pRenderer->_4A6E7E(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 388, pPortrait);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1767 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1768 pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
1605
434b796cdfd3 Player::GetMagicalBonus cleaned up, identified a few player only effect spells used in mm6
Grumpy7
parents: 1545
diff changeset
1769 if ( pPlayer->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_HASTE].uExpireTime
1822
5f9eeb7bf8e6 Finishing Player.cpp, fixing some bugs
Grumpy7
parents: 1793
diff changeset
1770 | pPlayer->pPlayerBuffs[PLAYER_BUFF_HEROISM].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_SHIELD].uExpireTime
1605
434b796cdfd3 Player::GetMagicalBonus cleaned up, identified a few player only effect spells used in mm6
Grumpy7
parents: 1545
diff changeset
1771 | pPlayer->pPlayerBuffs[PLAYER_BUFF_STONESKIN].uExpireTime )
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1772 sub_441A4E(i);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1773 continue;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1774 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1775 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1776 if ( pParty->bTurnBasedModeOn == 1 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1777 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1778 if ( pTurnEngine->turn_stage != 1 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1779 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1780 if (PID_TYPE(pTurnEngine->pQueue[0].uPackedID) == OBJECT_Player)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1781 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1782 if ( pTurnEngine->uActorQueueSize > 0 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1783 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1784 for (uint i = 0; i < (uint)pTurnEngine->uActorQueueSize; ++i)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1785 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1786 if (PID_TYPE(pTurnEngine->pQueue[i].uPackedID) != OBJECT_Player)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1787 break;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1788 pTextureID = dword_5079D0;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1789 if ( pParty->uFlags & 0x10 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1790 pTextureID = dword_5079CC;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1791 else
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1792 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1793 if ( pParty->uFlags & 0x20 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1794 pTextureID = dword_5079C8;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1795 }
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1796 pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[PID_ID(pTurnEngine->pQueue[i].uPackedID)] - 4, 385, pIcons_LOD->GetTexture(pTextureID));
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1797 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1798 }
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1799 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1800 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1801 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1802 else
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1803 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1804 for (uint i = 0; i < 4; ++i)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1805 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1806 if (pParty->pPlayers[i].CanAct() && !pParty->pPlayers[i].uTimeToRecovery)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1807 {
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1808 pTextureID = dword_5079D0;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1809 if ( pParty->uFlags & 0x10 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1810 pTextureID = dword_5079CC;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1811 else
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1812 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1813 if ( pParty->uFlags & 0x20 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1814 pTextureID = dword_5079C8;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1815 }
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1816 pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] - 4, 385, pIcons_LOD->GetTexture(pTextureID));
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1817 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1818 }
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1819 }
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1820 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1821
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1822 //----- (00441D38) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1823 void GameUI_DrawMinimap(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW, unsigned int uZoom, unsigned int bRedrawOdmMinimap)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1824 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1825 int uHeight; // ebx@6
2101
ee2724b9ca05 RasterLine2D fix and etc.
Ritor1
parents: 2097
diff changeset
1826 signed int pW; // ebx@23
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1827 int v15; // eax@23
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1828 double v20; // st7@30
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1829 signed int v27; // eax@37
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1830 //unsigned __int16 *v28; // ecx@37
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1831 signed int v29; // edi@40
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1832 int pPoint_X; // edi@72
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1833 int pPoint_Y; // ebx@72
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1834 unsigned int lPitch; // [sp+20h] [bp-34h]@1
2101
ee2724b9ca05 RasterLine2D fix and etc.
Ritor1
parents: 2097
diff changeset
1835 signed int pY; // [sp+20h] [bp-34h]@23
ee2724b9ca05 RasterLine2D fix and etc.
Ritor1
parents: 2097
diff changeset
1836 signed int pX; // [sp+24h] [bp-30h]@23
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1837 signed int v70; // [sp+24h] [bp-30h]@37
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1838 signed int uBluea; // [sp+28h] [bp-2Ch]@37
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1839 int v73; // [sp+2Ch] [bp-28h]@30
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1840 signed int uCenterY; // [sp+48h] [bp-Ch]@1
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1841 signed int uCenterX; // [sp+4Ch] [bp-8h]@1
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1842 signed int uWidth; // [sp+5Ch] [bp+8h]@30
2101
ee2724b9ca05 RasterLine2D fix and etc.
Ritor1
parents: 2097
diff changeset
1843 signed int pZ; // [sp+60h] [bp+Ch]@23
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1844 float uWb; // [sp+60h] [bp+Ch]@30
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1845 unsigned int pColor;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1846
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1847 uCenterX = (uX + uZ) / 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1848 uCenterY = (uY + uW) / 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1849 lPitch = pRenderer->uTargetSurfacePitch;
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1850 bool bWizardEyeActive = pParty->WizardEyeActive();
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1851 int uWizardEyeSkillLevel = pParty->WizardEyeSkillLevel();
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
1852 if ( CheckHiredNPCSpeciality(Cartographer) )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1853 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1854 bWizardEyeActive = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1855 uWizardEyeSkillLevel = 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1856 }
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
1857 extern bool wizard_eye;
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
1858 if ( wizard_eye )
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
1859 {
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1860 bWizardEyeActive = true;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1861 uWizardEyeSkillLevel = 3;
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
1862 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1863 pRenderer->SetRasterClipRect(uX, uY, uZ - 1, uW - 1);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1864 uHeight = uW - uY;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1865 uWidth = uZ - uX;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1866
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1867 if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1868 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1869 uchar* pMapLod0 = pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].pLevelOfDetail0_prolly_alpha_mask;
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1870 ushort* pPal = pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].pPalette16;
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1871 v73 = (1 << (pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2 + 16)) / (signed int)uZoom;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1872 v20 = (double)(pParty->vPosition.x + 32768) / (double)(1 << (16 - pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2));
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1873 uWb = (double)(32768 - pParty->vPosition.y) / (double)(1 << (16 - pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2));
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1874 switch (uZoom)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1875 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1876 case 512:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1877 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1878 v20 = v20 - (double)(uWidth / 2);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1879 uWb = uWb - (double)(uHeight / 2);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1880 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1881 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1882 case 1024:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1883 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1884 v20 = v20 - (double)(uWidth / 4);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1885 uWb = uWb - (double)(uHeight / 4);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1886 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1887 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1888 case 2048:
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1889 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1890 v20 = v20 - (double)(uWidth / 8);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1891 uWb = uWb - (double)(uHeight / 8);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1892 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1893 break;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1894 default: assert(false);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1895 }
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1896
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1897 static unsigned __int16 pOdmMinimap[117][137];
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1898 assert(sizeof(pOdmMinimap) == 137 * 117 * sizeof(short));
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1899
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1900 v70 = floorf(v20 * 65536.0 + 0.5f);//LODWORD(v24);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1901 uBluea = floorf(uWb * 65536.0 + 0.5f);//LODWORD(v25);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1902 v27 = uBluea >> 16;
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1903 //v28 = &pRenderer->pTargetSurface[uX + uY * lPitch];
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1904
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1905 if (pMapLod0 && bRedrawOdmMinimap)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1906 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1907 assert(uWidth == 137 && uHeight == 117);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1908 //auto pMinimap = (unsigned __int16 *)pOdmMinimap;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1909
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1910 ushort mapWidth = pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uTextureWidth;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1911
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1912 v29 = v70 >> 16;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1913 for (int y = 0; y < uHeight; ++y)
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1914 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1915 uchar* pMapLod0Line = &pMapLod0[v27 * mapWidth];
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1916 for (int x = 0; x < uWidth; ++x)
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1917 {
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1918 //*pMinimap++ = pPal[pMapLod0Line[v29]];
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1919 pRenderer->WritePixel16(uX + x, uY + y, pPal[pMapLod0Line[v29]]);
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1920 v29 = (v70 + x * v73) >> 16;
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1921 }
2070
4231fdf46dde Minimap's drawing
Nomad
parents: 2069
diff changeset
1922 uBluea += v73;
4231fdf46dde Minimap's drawing
Nomad
parents: 2069
diff changeset
1923 v27 = uBluea >> 16;
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1924 }
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1925
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1926 /*v29 = v70 >> 16;
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1927 for (int y = 0; y < uHeight; ++y)
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1928 {
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1929 uchar* pMapLod0Line = &pMapLod0[v27 * mapWidth];
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1930 for (int x = 0; x < uWidth; ++x)
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1931 {
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1932 //*pMinimap++ = pPal[pMapLod0Line[v29]];
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1933 pOdmMinimap[y][x] = pPal[pMapLod0Line[v29]];
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1934 v29 = (v70 + x * v73) >> 16;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1935 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1936 v29 = v70 >> 16;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1937 v28 += 137 - uWidth;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1938 uBluea += v73;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1939 v27 = uBluea >> 16;
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1940 }*/
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1941 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1942
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1943 /*for (int y = 0; y < 117; ++y)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1944 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1945 for (int x = 0; x < 137; ++x)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1946 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1947 *v28++ = pOdmMinimap[y][x];
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1948 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1949 v28 += lPitch - 137;
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
1950 }*/
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1951 uNumBlueFacesInBLVMinimap = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1952 }
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1953 else// uCurrentlyLoadedLevelType == LEVEL_Indoor
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1954 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1955 pRenderer->FillRectFast(uX, uY, uZ - uX, uHeight, 0xF);
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1956 uNumBlueFacesInBLVMinimap = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1957
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
1958 for (uint i = 0; i < (uint)pIndoor->pMapOutlines->uNumOutlines; ++i)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1959 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1960 BLVMapOutline* pOutline = &pIndoor->pMapOutlines->pOutlines[i];
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1961 BLVFace* pFace1 = pIndoor->pFaces + pOutline->uFace1ID;
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1962 BLVFace* pFace2 = pIndoor->pFaces + pOutline->uFace2ID;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1963 //v9 = pIndoor->pFaces[pMapVertex->uFace1ID].uAttributes;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1964 //v10 = pIndoor->pFaces[pMapVertex->uFace2ID].uAttributes;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1965 if (pFace1->Visible() && pFace2->Visible())
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1966 {
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1967 if ( pOutline->uFlags & 1 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1968 goto LABEL_15;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1969 if (pFace1->uAttributes & 0x80 || pFace2->uAttributes & 0x80)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1970 goto LABEL_ABC;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1971 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1972 continue;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1973
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1974 LABEL_ABC:
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1975 pOutline->uFlags = pOutline->uFlags | 1;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1976 pIndoor->_visible_outlines[i >> 3] |= 1 << (7 - i % 8);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1977
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
1978 LABEL_15:
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1979 //v12 = &pIndoor->pFaces[pOutline->uFace1ID];
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1980 if (bWizardEyeActive && uWizardEyeSkillLevel >= 3 &&
2097
2b39f6b451f9 Minimap fix
Ritor1
parents: 2092
diff changeset
1981 (pFace1->Clickable() || pFace2->Clickable()) &&
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1982 (pIndoor->pFaceExtras[pFace1->uFaceExtraID].uEventID || pIndoor->pFaceExtras[pFace2->uFaceExtraID].uEventID))
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1983 {
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1984 if (uNumBlueFacesInBLVMinimap < 49)
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1985 pBlueFacesInBLVMinimapIDs[uNumBlueFacesInBLVMinimap++] = i;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1986 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1987 else
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1988 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1989 long long _a = (uZoom * (signed __int64)pIndoor->pVertices[pOutline->uVertex1ID].x);
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1990 uint _b = ((unsigned int)((unsigned __int64)_a >> 16) << 16);
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
1991 int _c = ((signed int)(_b - uZoom * pParty->vPosition.x) >> 16);
2102
0db53678ff48 RasterLine2D, DIALOGUE_EVT_A etc.
Ritor1
parents: 2101
diff changeset
1992 pX = uCenterX + ((signed int)(((unsigned int)((unsigned __int64)(uZoom * (signed __int64)pIndoor->pVertices[pIndoor->pMapOutlines->pOutlines[i].uVertex1ID].x) >> 16) << 16) - uZoom * pParty->vPosition.x) >> 16);
0db53678ff48 RasterLine2D, DIALOGUE_EVT_A etc.
Ritor1
parents: 2101
diff changeset
1993 pY = uCenterY - ((signed int)(((unsigned int)((unsigned __int64)(uZoom * (signed __int64)pIndoor->pVertices[pIndoor->pMapOutlines->pOutlines[i].uVertex1ID].y) >> 16) << 16) - uZoom * pParty->vPosition.y) >> 16);
0db53678ff48 RasterLine2D, DIALOGUE_EVT_A etc.
Ritor1
parents: 2101
diff changeset
1994 pZ = uCenterX + ((signed int)(((unsigned int)((unsigned __int64)(uZoom * (signed __int64)pIndoor->pVertices[pIndoor->pMapOutlines->pOutlines[i].uVertex2ID].x) >> 16) << 16) - uZoom * pParty->vPosition.x) >> 16);
0db53678ff48 RasterLine2D, DIALOGUE_EVT_A etc.
Ritor1
parents: 2101
diff changeset
1995 pW = uCenterY - ((signed int)(((unsigned int)((unsigned __int64)(uZoom * (signed __int64)pIndoor->pVertices[pIndoor->pMapOutlines->pOutlines[i].uVertex2ID].y) >> 16) << 16) - uZoom * pParty->vPosition.y) >> 16);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1996 v15 = abs(pOutline->sZ - pParty->vPosition.z) / 8;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1997 if ( v15 > 100 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
1998 v15 = 100;
2101
ee2724b9ca05 RasterLine2D fix and etc.
Ritor1
parents: 2097
diff changeset
1999 //if ( i == 1000 )//pY < 0 && pW > 16 )
ee2724b9ca05 RasterLine2D fix and etc.
Ritor1
parents: 2097
diff changeset
2000 //__debugbreak();
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2001 pRenderer->RasterLine2D(pX, pY, pZ, pW, viewparams->pPalette[-v15 + 200]);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2002 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2003 }
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2004
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2005 for (uint i = 0; i < uNumBlueFacesInBLVMinimap; ++i)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2006 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
2007 BLVMapOutline* pOutline = &pIndoor->pMapOutlines->pOutlines[pBlueFacesInBLVMinimapIDs[i]];
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2008 pX = uCenterX + ((signed int)(((unsigned int)((unsigned __int64)((signed int)uZoom * (signed __int64)pIndoor->pVertices[pOutline->uVertex1ID].x) >> 16) << 16) - uZoom * pParty->vPosition.x) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2009 pY = uCenterY - ((signed int)(((unsigned int)((unsigned __int64)((signed int)uZoom * (signed __int64)pIndoor->pVertices[pOutline->uVertex1ID].y) >> 16) << 16) - uZoom * pParty->vPosition.y) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2010 pZ = uCenterX + ((signed int)(((unsigned int)((unsigned __int64)((signed int)uZoom * (signed __int64)pIndoor->pVertices[pOutline->uVertex2ID].x) >> 16) << 16) - uZoom * pParty->vPosition.x) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2011 pW = uCenterY - ((signed int)(((unsigned int)((unsigned __int64)((signed int)uZoom * (signed __int64)pIndoor->pVertices[pOutline->uVertex2ID].y) >> 16) << 16) - uZoom * pParty->vPosition.y) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2012 pRenderer->RasterLine2D(pX, pY, pZ, pW, ui_game_minimap_outline_color);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2013 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2014 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2015
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2016 //draw arrow on the minimap(include. Ritor1)
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2017 uint arrow_idx;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2018 unsigned int rotate = pParty->sRotationY & stru_5C6E00->uDoublePiMask;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2019 if ( (signed int)rotate <= 1920 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2020 arrow_idx = 6;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2021 if ( (signed int)rotate < 1664 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2022 arrow_idx = 5;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2023 if ( (signed int)rotate <= 1408 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2024 arrow_idx = 4;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2025 if ( (signed int)rotate < 1152 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2026 arrow_idx = 3;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2027 if ( (signed int)rotate <= 896 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2028 arrow_idx = 2;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2029 if ( (signed int)rotate < 640 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2030 arrow_idx = 1;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2031 if ( (signed int)rotate <= 384 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2032 arrow_idx = 0;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2033 if ( (signed int)rotate < 128 || (signed int)rotate > 1920 )
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2034 arrow_idx = 7;
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2035 pRenderer->DrawTextureTransparent(uCenterX - 3, uCenterY - 3, pIcons_LOD->GetTexture(pTextureIDs_pMapDirs[arrow_idx]));//ñòðåëêà
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2036
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2037 //draw objects on the minimap
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2038 if ( bWizardEyeActive )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2039 {
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2040 if ( uWizardEyeSkillLevel >= 2 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2041 {
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2042 for ( uint i = 0; i < uNumSpriteObjects; ++i )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2043 {
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2044 if ( !pSpriteObjects[i].uType || !pSpriteObjects[i].uObjectDescID )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2045 continue;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2046 //if (uWizardEyeSkillLevel == 1
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2047 pPoint_X = uCenterX + ((unsigned __int64)((pSpriteObjects[i].vPosition.x - pParty->vPosition.x) * (signed __int64)uZoom) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2048 pPoint_Y = uCenterY - ((signed __int64)((pSpriteObjects[i].vPosition.y - pParty->vPosition.y) * (signed __int64)uZoom) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2049 if ( pPoint_X >= pRenderer->raster_clip_x && pPoint_X <= pRenderer->raster_clip_z &&
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2050 pPoint_Y >= pRenderer->raster_clip_y && pPoint_Y <= pRenderer->raster_clip_w)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2051 {
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2052 if (pObjectList->pObjects[pSpriteObjects[i].uObjectDescID].uFlags & OBJECT_DESC_UNPICKABLE)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2053 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2054 pRenderer->RasterLine2D(pPoint_X, pPoint_Y, pPoint_X, pPoint_Y, ui_game_minimap_projectile_color);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2055 }
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2056 else if ( uZoom > 512 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2057 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2058 pRenderer->RasterLine2D(pPoint_X - 2, pPoint_Y, pPoint_X - 2, pPoint_Y + 1, ui_game_minimap_treasure_color);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2059 pRenderer->RasterLine2D(pPoint_X - 1, pPoint_Y - 1, pPoint_X - 1, pPoint_Y + 1, ui_game_minimap_treasure_color);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2060 pRenderer->RasterLine2D(pPoint_X, pPoint_Y - 2, pPoint_X, pPoint_Y + 1, ui_game_minimap_treasure_color);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2061 pRenderer->RasterLine2D(pPoint_X + 1, pPoint_Y - 1, pPoint_X + 1, pPoint_Y + 1, ui_game_minimap_treasure_color);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2062 pRenderer->RasterLine2D(pPoint_X + 2, pPoint_Y, pPoint_X + 2, pPoint_Y + 1, ui_game_minimap_treasure_color);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2063 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2064 else
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2065 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2066 pRenderer->RasterLine2D(pPoint_X - 1, pPoint_Y - 1, pPoint_X - 1, pPoint_Y, ui_game_minimap_treasure_color);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2067 pRenderer->RasterLine2D(pPoint_X, pPoint_Y - 1, pPoint_X, pPoint_Y, ui_game_minimap_treasure_color);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2068 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2069 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2070 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2071 }
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2072 for ( uint i = 0; i < uNumActors; ++i )//draw actors(îòðèñîâêà ìîíñòðîâ è íïñ)
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2073 {
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2074 if ( pActors[i].uAIState != Removed && pActors[i].uAIState != Disabled
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2075 && (pActors[i].uAIState == Dead || BYTE1(pActors[i].uAttributes) & 0x80) )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2076 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2077 pPoint_X = uCenterX + ((unsigned __int64)(( pActors[i].vPosition.x - pParty->vPosition.x) * (signed __int64)(signed int)uZoom) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2078 pPoint_Y = uCenterY - ((unsigned __int64)(( pActors[i].vPosition.y - pParty->vPosition.y) * (signed __int64)(signed int)uZoom) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2079 if ( pPoint_X >= pRenderer->raster_clip_x && pPoint_X <= pRenderer->raster_clip_z
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2080 && pPoint_Y >= pRenderer->raster_clip_y && pPoint_Y <= pRenderer->raster_clip_w )
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2081 {
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2082 pColor = ui_game_minimap_actor_friendly_color;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2083 if ( BYTE3(pActors[i].uAttributes) & 1 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2084 pColor = ui_game_minimap_actor_hostile_color;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2085 if ( pActors[i].uAIState == Dead)
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2086 pColor = ui_game_minimap_actor_corpse_color;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2087 if ( uZoom > 1024 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2088 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2089 pRenderer->RasterLine2D(pPoint_X - 2, pPoint_Y - 1, pPoint_X - 2, pPoint_Y + 1, pColor);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2090 pRenderer->RasterLine2D(pPoint_X - 1, pPoint_Y - 2, pPoint_X - 1, pPoint_Y + 2, pColor);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2091 pRenderer->RasterLine2D(pPoint_X, pPoint_Y - 2, pPoint_X, pPoint_Y + 2, pColor);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2092 pRenderer->RasterLine2D(pPoint_X + 1, pPoint_Y - 2, pPoint_X + 1, pPoint_Y + 2, pColor);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2093 pRenderer->RasterLine2D(pPoint_X + 2, pPoint_Y - 1, pPoint_X + 2, pPoint_Y + 1, pColor);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2094 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2095 else
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2096 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2097 pRenderer->RasterLine2D(pPoint_X - 1, pPoint_Y - 1, pPoint_X - 1, pPoint_Y, pColor);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2098 pRenderer->RasterLine2D(pPoint_X, pPoint_Y - 1, pPoint_X, pPoint_Y, pColor);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2099 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2100 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2101 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2102 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2103 for ( uint i = 0; i < (signed int)uNumLevelDecorations; ++i )//draw items(îòðèñîâêà ïðåäìåòîâ)
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2104 {
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2105 if ( pLevelDecorations[i].uFlags & 8 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2106 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2107 pPoint_X = uCenterX + ((unsigned __int64)((pLevelDecorations[i].vPosition.x - pParty->vPosition.x) * (signed __int64)(signed int)uZoom) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2108 pPoint_Y = uCenterY - ((unsigned __int64)((pLevelDecorations[i].vPosition.y - pParty->vPosition.y) * (signed __int64)(signed int)uZoom) >> 16);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2109 if ( pPoint_X >= pRenderer->raster_clip_x && pPoint_X <= pRenderer->raster_clip_z
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2110 && pPoint_Y >= pRenderer->raster_clip_y && pPoint_Y <= pRenderer->raster_clip_w )
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2111 {
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2112 if ( (signed int)uZoom > 512 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2113 {
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2114 pRenderer->RasterLine2D(pPoint_X - 1, pPoint_Y - 1, pPoint_X - 1, pPoint_Y + 1, ui_game_minimap_decoration_color_1);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2115 pRenderer->RasterLine2D(pPoint_X, pPoint_Y - 1, pPoint_X, pPoint_Y + 1, ui_game_minimap_decoration_color_1);
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2116 pRenderer->RasterLine2D(pPoint_X + 1, pPoint_Y - 1, pPoint_X + 1, pPoint_Y + 1, ui_game_minimap_decoration_color_1);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2117 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2118 else
1523
53265d238d94 interaction_distance_limit for 3DModel in DrawStatusText
Ritor1
parents: 1509
diff changeset
2119 pRenderer->RasterLine2D(pPoint_X, pPoint_Y, pPoint_X, pPoint_Y, ui_game_minimap_decoration_color_1);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2120 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2121 }
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2122 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2123 }
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2124 pRenderer->DrawTextureTransparent(468, 0, pIcons_LOD->GetTexture(uTextureID_Minimap_Loop));//draw minimap_loop
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2125 pRenderer->SetTextureClipRect(541, 0, 567, 480);
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2126 pRenderer->DrawTextureIndexed(floorf(((double)pParty->sRotationY * 0.1171875) + 0.5f) + 285, 136, pIcons_LOD->GetTexture(uTextureID_Compas));//draw compas
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2127 pRenderer->ResetTextureClipRect();
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2128 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2129
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2130 //----- (00441498) --------------------------------------------------------
1458
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2131 void GameUI_DrawTorchlightAndWizardEye()
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2132 {
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2133 if (pCurrentScreen == SCREEN_GAME
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2134 || pCurrentScreen == SCREEN_MENU
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2135 || pCurrentScreen == SCREEN_OPTIONS
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2136 || pCurrentScreen == SCREEN_REST
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2137 || pCurrentScreen == SCREEN_SPELL_BOOK
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2138 || pCurrentScreen == SCREEN_CHEST
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2139 || pCurrentScreen == SCREEN_SAVEGAME
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2140 || pCurrentScreen == SCREEN_LOADGAME
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2141 || pCurrentScreen == SCREEN_CHEST_INVENTORY
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2142 || pCurrentScreen == SCREEN_BOOKS
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2143 || pCurrentScreen == SCREEN_BRANCHLESS_NPC_DIALOG )
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2144 {
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2145 if (pParty->TorchlightActive())
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2146 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
2147 IconFrame* icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnum_Torchlight->uIconID, pEventTimer->Time());
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2148 pRenderer->DrawTextureTransparent(pUIAnum_Torchlight->x, pUIAnum_Torchlight->y, pIcons_LOD->GetTexture(icon->uTextureID));
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2149 }
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2150 if (pParty->WizardEyeActive())
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2151 {
1980
c1c74df0a33e changing most of auto types to their actual types
Grumpy7
parents: 1838
diff changeset
2152 IconFrame* icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnim_WizardEye->uIconID, pEventTimer->Time());
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2153 pRenderer->DrawTextureTransparent(pUIAnim_WizardEye->x, pUIAnim_WizardEye->y, pIcons_LOD->GetTexture(icon->uTextureID));
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2154 }
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2155 }
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2156 }
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2157 // 4E28F8: using guessed type int pCurrentScreen;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2158
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2159
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2160 //----- (00491F87) --------------------------------------------------------
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2161 void GameUI_DrawHiredNPCs()
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2162 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2163 unsigned int v13; // eax@23
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2164 char pContainer[20]; // [sp+Ch] [bp-30h]@18
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2165 signed int uFrameID; // [sp+24h] [bp-18h]@19
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2166 int v22; // [sp+34h] [bp-8h]@2
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2167 unsigned __int8 pNPC_limit_ID; // [sp+3Bh] [bp-1h]@2
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2168
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2169 if ( bNoNPCHiring != 1 )
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2170 {
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2171 pNPC_limit_ID = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2172 v22 = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2173 if (pParty->pHirelings[0].pName)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2174 pTmpBuf[v22++] = 0;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2175 if (pParty->pHirelings[1].pName)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2176 pTmpBuf[v22++] = 1;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2177
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2178 for (uint i = 0; i < pNPCStats->uNumNewNPCs; ++i)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2179 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2180 if (pNPCStats->pNewNPCData[i].uFlags & 128)
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2181 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2182 if (!pParty->pHirelings[0].pName || strcmp(pNPCStats->pNewNPCData[i].pName, pParty->pHirelings[0].pName))
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2183 {
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2184 if (!pParty->pHirelings[1].pName || strcmp(pNPCStats->pNewNPCData[i].pName, pParty->pHirelings[1].pName))
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2185 pTmpBuf[v22++] = i + 2;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2186 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2187 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2188 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2189
1793
4dee76d79c78 dword_5B65CC to npcIdToDismissAfterDialogue, Party::field_709 to Party::hirelingScrollPosition
Grumpy7
parents: 1758
diff changeset
2190 for ( int i = pParty->hirelingScrollPosition; i < v22 && pNPC_limit_ID < 2; i++ )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2191 {
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2192 if ( (unsigned __int8)pTmpBuf[i] >= 2 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2193 {
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2194 sprintf(pContainer, "NPC%03d", pNPCStats->pNPCData[(unsigned __int8)pTmpBuf[i] + 499].uPortraitID);
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2195 pRenderer->DrawTextureIndexed(pHiredNPCsIconsOffsetsX[pNPC_limit_ID], pHiredNPCsIconsOffsetsY[pNPC_limit_ID],
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2196 pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE)));
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2197 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2198 else
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2199 {
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2200 sprintf(pContainer, "NPC%03d", pParty->pHirelings[(unsigned __int8)pTmpBuf[i]].uPortraitID);
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2201 pRenderer->DrawTextureIndexed(pHiredNPCsIconsOffsetsX[pNPC_limit_ID], pHiredNPCsIconsOffsetsY[pNPC_limit_ID],
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2202 pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE)));
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2203 if ( pParty->pHirelings[(unsigned __int8)pTmpBuf[i]].evt_A == 1 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2204 {
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2205 uFrameID = pParty->pHirelings[(unsigned __int8)pTmpBuf[i]].evt_B;
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2206 v13 = 0;
1802
633f81bb3ae7 HWND -> class OSWindow
Nomad
parents: 1758
diff changeset
2207 if (pIconsFrameTable->uNumIcons)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2208 {
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2209 for ( v13 = 0; v13 < pIconsFrameTable->uNumIcons; ++v13 )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2210 {
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2211 if ( !_stricmp("spell96", pIconsFrameTable->pIcons[v13].pAnimationName) )
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2212 break;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2213 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2214 }
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2215 pRenderer->DrawTextureTransparent(pHiredNPCsIconsOffsetsX[pNPC_limit_ID], pHiredNPCsIconsOffsetsY[pNPC_limit_ID],
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2216 &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(v13, uFrameID)->uTextureID]);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2217 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2218 }
1505
6306a33af531 UIGame.cpp cleaning(continue) wizard_eye
Ritor1
parents: 1477
diff changeset
2219 ++pNPC_limit_ID;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2220 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2221 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2222 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2223 // 6BE3C5: using guessed type char bNoNPCHiring;
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2224
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2225 //----- (004178FE) --------------------------------------------------------
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2226 unsigned int UI_GetHealthManaAndOtherQualitiesStringColor(signed int current_pos, signed int base_pos)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2227 {
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2228 unsigned __int16 R, G, B;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2229
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2230 if ( current_pos <= base_pos )
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2231 {
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2232 if ( current_pos == base_pos )//White
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2233 return 0;
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2234 if ( 100 * current_pos / base_pos >= 25 )//Yellow( current_pos > 1/4 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2235 R = 255, G = 255, B = 100;
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2236 else//Red( current_pos < 1/4 )
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2237 R = 255, G = 0, B = 0;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2238 }
1507
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2239 else//Green
a109bb203e28 UIGame.cpp cleaning(continue) GameUI_DrawMinimap
Ritor1
parents: 1506
diff changeset
2240 R = 0, G = 255, B = 0;
2069
259df09dfb50 32bits almost there
Nomad
parents: 2044
diff changeset
2241 return Color16(R, G, B);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2242 }
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2243
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2244 //----- (00417939) --------------------------------------------------------
1458
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2245 int GetConditionDrawColor(unsigned int uConditionIdx)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2246 {
1458
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2247 switch (uConditionIdx)
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2248 {
1458
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2249 case Condition_Zombie:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2250 case Condition_Good:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2251 return ui_character_condition_normal_color;
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2252
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2253 case Condition_Cursed:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2254 case Condition_Weak:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2255 case Condition_Fear:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2256 case Condition_Drunk:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2257 case Condition_Insane:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2258 case Condition_Poison1:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2259 case Condition_Disease1:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2260 return ui_character_condition_light_color;
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2261
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2262 case Condition_Sleep:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2263 case Condition_Poison2:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2264 case Condition_Disease2:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2265 case Condition_Paralyzed:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2266 case Condition_Unconcious:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2267 return ui_character_condition_moderate_color;
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2268
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2269 case Condition_Poison3:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2270 case Condition_Disease3:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2271 case Condition_Dead:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2272 case Condition_Pertified:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2273 case Condition_Eradicated:
934074e7fcc1 ModalWindow
Nomad
parents: 1414
diff changeset
2274 return ui_character_condition_severe_color;
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2275 }
1802
633f81bb3ae7 HWND -> class OSWindow
Nomad
parents: 1758
diff changeset
2276 Error("Invalid condition (%u)", uConditionIdx);
1298
b97d0cdd6c79 new folder UI
Ritor1
parents:
diff changeset
2277 }