World of Might and Magic
0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
|
См. документацию.
136 {{game_ui_menu_new}});
137 pBtn_SaveGame = CreateButton(0x13u, 0xD1u, 0xD6u, 0x28u, 1, 0,
140 {{game_ui_menu_save}});
144 {{game_ui_menu_load}});
148 {{game_ui_menu_controls}});
151 {{game_ui_menu_quit}});
155 {{game_ui_menu_resume}});
156 _41D08F_set_keyboard_control_group(6, 1, 0, 0);
171 for (
uint i = 0; i < 4; ++i) {
172 for (
uint j = 0; j < 56; ++j) {
202 for (
uint i = 0; i <= 55; ++i) {
223 intensity = -70 + 70 * time / 400;
225 intensity = +70 - 70 * time / 800;
227 return Color16(185 + intensity, 40 + intensity / 4, 40 + intensity / 4);
281 if (keypr >= 97 && keypr <= 122) keypr -= 32;
304 render->DrawTextureAlphaNew(
305 8 / 640.0
f, 8 / 480.0
f,
308 render->DrawTextureAlphaNew(19 / 640.0
f, 302 / 480.0
f,
320 "BACKWARD", 0, 0, 0);
362 "CAST READY", 0, 0, 0);
397 "CHAR CYCLE", 0, 0, 0);
410 render->DrawTextureAlphaNew(127 / 640.0
f, 302 / 480.0
f,
415 "QUICK REF", 0, 0, 0);
429 "TIME/CAL", 0, 0, 0);
436 "AUTONOTES", 0, 0, 0);
443 "MAP BOOK", 0, 0, 0);
450 "ALWAYS RUN", 0, 0, 0);
464 "LOOK DOWN", 0, 0, 0);
471 "CTR VIEW", 0, 0, 0);
485 "ZOOM OUT", 0, 0, 0);
499 "FLY DOWN", 0, 0, 0);
572 render->DrawTextureAlphaNew(
573 8 / 640.0
f, 8 / 480.0
f,
577 render->DrawTextureAlphaNew(
595 if (!
engine->config->NoBloodsplats())
596 render->DrawTextureAlphaNew(20 / 640.0
f, 281 / 480.0
f,
598 if (
render->config->is_using_colored_lights)
599 render->DrawTextureAlphaNew(20 / 640.0
f, 303 / 480.0
f,
601 if (
render->config->is_tinting)
602 render->DrawTextureAlphaNew(20 / 640.0
f, 325 / 480.0
f,
608 : uTextureID_Background(0),
609 uTextureID_ArrowLeft(0),
610 uTextureID_ArrowRight(0),
611 uTextureID_unused_0(0),
612 uTextureID_unused_1(0),
613 uTextureID_unused_2(0),
614 uTextureID_FlipOnExit(0),
615 uTextureID_AlwaysRun(0),
616 uTextureID_WalkSound(0),
617 uTextureID_ShowDamage(0) {
623 #define RELEASE(img) \
711 CreateButton(243, 162, 16, 16, 1, 0,
UIMSG_ChangeSoundVolume, 4, 0,
"",
714 CreateButton(435, 162, 16, 16, 1, 0,
UIMSG_ChangeSoundVolume, 5, 0,
"",
719 CreateButton(243, 216, 16, 16, 1, 0,
UIMSG_ChangeMusicVolume, 4, 0,
"",
722 CreateButton(435, 216, 16, 16, 1, 0,
UIMSG_ChangeMusicVolume, 5, 0,
"",
727 CreateButton(243, 270, 16, 16, 1, 0,
UIMSG_ChangeVoiceVolume, 4, 0,
"",
730 CreateButton(435, 270, 16, 16, 1, 0,
UIMSG_ChangeVoiceVolume, 5, 0,
"",
743 render->DrawTextureAlphaNew(8 / 640.0
f, 132 / 480.0
f,
746 switch (
engine->config->turn_speed) {
748 render->DrawTextureAlphaNew(
753 render->DrawTextureAlphaNew(
758 render->DrawTextureAlphaNew(
764 if (!
engine->config->no_walk_sound) {
765 render->DrawTextureAlphaNew(
766 20 / 640.0
f, 303 / 480.0
f,
769 if (
engine->config->show_damage) {
770 render->DrawTextureAlphaNew(
771 128 / 640.0
f, 303 / 480.0
f,
774 if (
engine->config->flip_on_exit) {
775 render->DrawTextureAlphaNew(
776 128 / 640.0
f, 325 / 480.0
f,
779 if (
engine->config->always_run) {
780 render->DrawTextureAlphaNew(
781 20 / 640.0
f, 325 / 480.0
f,
785 render->DrawTextureAlphaNew(
786 (265 + 17 *
engine->config->sound_level) / 640.0f, 162 / 480.0f,
788 render->DrawTextureAlphaNew(
789 (265 + 17 *
engine->config->music_level) / 640.0f, 216 / 480.0f,
791 render->DrawTextureAlphaNew(
792 (265 + 17 *
engine->config->voice_level) / 640.0f, 270 / 480.0f,
818 if (
pPlayers[uPlayerID]->uTimeToRecovery || !
pPlayers[uPlayerID]->CanAct()) {
839 if (
pPlayers[uPlayerID]->uTimeToRecovery) {
866 if (
pPlayers[uPlayerID]->uTimeToRecovery) {
873 WINDOW_INPUT_IN_PROGRESS) {
910 for (
int i = 0; i < 2; ++i) {
956 if (!lpsz) lpsz =
"";
958 popup_window.
sHint.clear();
974 render->DrawTextureAlphaNew(
975 (popup_window.
uFrameX + 22) / 640.0f,
976 (popup_window.
uFrameY + 36) / 480.0f,
1005 unsigned int pMapID;
1022 result =
"No Maze Info for this maze on file!";
1032 if (
face.sCogTriggeredID) {
1033 if (!(
face.uAttributes & FACE_HAS_EVENT)) {
1036 if (_stricmp(v14,
"")) {
1048 result =
"No Maze Info for this maze on file!";
1062 signed int uFramesetID;
1065 uint numActivePlayerBuffs = 0;
1066 for (
uint i = 0; i < 24; ++i) {
1067 if (player->
pPlayerBuffs[i].Active()) ++numActivePlayerBuffs;
1077 window->DrawMessageBox(0);
1081 }
else if (player->
IsDead()) {
1086 if (!uFramesetID) uFramesetID = 1;
1098 render->DrawTextureAlphaNew((
window->uFrameX + 24) / 640.0f,
1099 (
window->uFrameY + 24) / 480.0
f, v13);
1134 for (
uint i = 0; i < 24; ++i) {
1158 static bool _50697C_book_flasher;
1162 _50697C_book_flasher = !_50697C_book_flasher;
1167 render->DrawTextureAlphaNew(493 / 640.0
f, 355 / 480.0
f,
1170 render->DrawTextureAlphaNew(527 / 640.0
f, 353 / 480.0
f,
1173 render->DrawTextureAlphaNew(600 / 640.0
f, 361 / 480.0
f,
1201 for (
uint i = 0; i < 4; ++i) {
1204 if (i == 2 || i == 3) v17 = 2;
1210 if (
v3 > 1.0)
v3 = 1.0;
1211 }
else if (
v3 > 0.25) {
1213 }
else if (
v3 > 0.0) {
1219 (
signed __int64)((1.0 -
v3) * pTextureHealth->GetHeight()) +
1222 pTextureHealth->GetHeight() + 402);
1224 402 / 480.0f, pTextureHealth);
1225 render->ResetUIClipRect();
1231 if (v7 > 1.0) v7 = 1.0;
1233 if (i == 2) v17 = 1;
1242 render->ResetUIClipRect();
1269 int requiredSkillpoints;
1274 signed int pickedObjectPID;
1276 signed int pickedObjectID = 0;
1288 if (pX < 0 || pX >
window->GetWidth() - 1 || pY < 0 ||
1289 pY >
window->GetHeight() - 1)
1293 if (pX <= (
window->GetWidth() - 1) * 0.73125 &&
1294 pY <= (
window->GetHeight() - 1) * 0.73125) {
1305 pickedObjectPID = vis->get_picked_object_zbuf_val();
1307 pickedObjectID = (signed)PID_ID(pickedObjectPID);
1319 if (pickedObjectPID >= 0x2000000u ||
1322 .containing_item.GetDisplayName());
1326 .containing_item.GetDisplayName()
1340 if (hintString[0] !=
'\0') {
1345 if (pickedObjectPID < 0x2000000u) {
1346 char *newString =
nullptr;
1348 v18b = PID_ID(pickedObjectPID) >> 6;
1349 short triggeredId =
pOutdoor->
pBModels[v18b].pFaces[pickedObjectID & 0x3F].sCogTriggeredID;
1350 if (triggeredId != 0) {
1353 .pFaces[pickedObjectID & 0x3F]
1359 unsigned short eventId =
1385 }
else if (PID_TYPE(pickedObjectPID) ==
OBJECT_Actor) {
1386 if (pickedObjectPID >= 0x2000000) {
1395 if (
pActors[pickedObjectID].dword_000334_unique_name)
1398 .dword_000334_unique_name];
1414 if (pX <= (
window->GetWidth() - 1) * 0.73125 &&
1415 pY <= (
window->GetHeight() - 1) * 0.73125) {
1431 if (pY > 0 && pY < 350 && pX >= 13 &&
1437 invmatrixindex = ((pX - 14) / 32) + 14 * ((pY - 17) / 32);
1448 if (!pItemGen == NULL) pickedObjectID = pItemGen->
uItemID;
1457 if (pickedObjectID == 0 || pickedObjectID == -65536 ||
1458 pickedObjectID >= 5000) {
1479 if (pWindow->Contains(pX, pY)) {
1480 for (
GUIButton *pButton : pWindow->vButtons) {
1496 uint distW = pX - pButton->
uX;
1497 uint distY = pY - pButton->
uY;
1500 1.0 * (distW * distW) /
1503 1.0 * (distY * distY) /
1506 if (ratioX + ratioY < 1.0) {
1509 if (pMessageType2 != 0)
1522 requiredSkillpoints =
1530 requiredSkillpoints)
1533 requiredSkillpoints -
1544 requiredSkillpoints);
1564 if (pWindow->uFrameHeight == 480) {
1614 if (pX >= pButton->
uX && pX <= pButton->uZ &&
1615 pY >= pButton->
uY && pY <= pButton->uW) {
1617 if (pMessageType3 == 0) {
1629 uint distW = pX - pButton->
uX;
1630 uint distY = pY - pButton->
uY;
1632 double ratioX = 1.0 * (distW * distW) /
1635 1.0 * (distY * distY) /
1638 if (ratioX + ratioY < 1.0) {
1641 if (pMessageType2 != 0)
1690 render->DrawTextureAlphaNew(
1701 Image *spell_texture;
1705 for (
uint i = 0; i < 14; ++i) {
1723 render->DrawTextureAlphaNew(8 / 640.0
f, 8 / 480.0
f, spell_texture);
1734 render->DrawTextureAlphaNew(396 / 640.0
f, 8 / 480.0
f,
1739 for (
uint i = 0; i < 4; ++i) {
1741 render->DrawTextureAlphaNew(
1746 render->DrawTextureAlphaNew(
1751 render->DrawTextureAlphaNew(
1758 render->DrawTextureAlphaNew(
1767 unsigned int face_expression_ID;
1780 for (
uint i = 0; i < 4; ++i) {
1785 render->DrawTextureGrayShade(
1788 388 / 480.0f, pPortrait);
1790 render->DrawTextureAlphaNew(
1794 388 / 480.0f, pPortrait);
1807 render->DrawTextureGrayShade(
1810 388 / 480.0
f, pPortrait);
1812 render->DrawTextureAlphaNew(
1816 388 / 480.0
f, pPortrait);
1826 face_expression_ID = 0;
1830 face_expression_ID = j;
1833 if (face_expression_ID == 0) face_expression_ID = 1;
1849 render->DrawTextureGrayShade(
1852 388 / 480.0
f, pPortrait);
1854 render->DrawTextureAlphaNew(
1858 388 / 480.0
f, pPortrait);
1885 render->DrawTextureAlphaNew(
1890 385 / 480.0f, alert_texture);
1896 for (
uint i = 0; i < 4; ++i) {
1905 render->DrawTextureAlphaNew(
1909 385 / 480.0f, alert_texture);
1917 unsigned int uW,
unsigned int uZoom,
1918 unsigned int bRedrawOdmMinimap) {
1930 signed int xpixoffset16;
1931 signed int ypixoffset16;
1935 unsigned int pColor;
1937 signed int uCenterX = (uX + uZ) / 2;
1938 signed int uCenterY = (uY + uW) / 2;
1939 render->SetUIClipRect(uX, uY, uZ, uW);
1940 int uHeight = uW - uY;
1941 signed int uWidth = uZ - uX;
1946 bWizardEyeActive =
true;
1947 uWizardEyeSkillLevel = 2;
1950 if (
engine->config->debug_wizard_eye) {
1951 bWizardEyeActive =
true;
1952 uWizardEyeSkillLevel = 3;
1957 map_scale = (1 << (loc_power + 16)) / (
signed int)uZoom;
1959 (double)(1 << (16 - loc_power));
1961 (double)(1 << (16 - loc_power));
1964 startx = startx - (double)(uWidth / 2);
1965 starty = starty - (double)(uHeight / 2);
1968 startx = startx - (double)(uWidth / 4);
1969 starty = starty - (double)(uHeight / 4);
1972 startx = startx - (double)(uWidth / 8);
1973 starty = starty - (double)(uHeight / 8);
1979 static unsigned __int16 pOdmMinimap[117][137];
1980 assert(
sizeof(pOdmMinimap) == 137 * 117 *
sizeof(
short));
1987 xpixoffset16 = floorf(startx * 65536.0 + 0.5
f);
1988 ypixoffset16 = floorf(starty * 65536.0 + 0.5
f);
1989 ypix = ypixoffset16 >> 16;
1990 xpix = xpixoffset16 >> 16;
1993 if ( bRedrawOdmMinimap) {
1994 assert(uWidth == 137 && uHeight == 117);
2003 for (
int y = 0;
y < uHeight; ++
y) {
2004 for (
int x = 0;
x < uWidth; ++
x) {
2005 minitempix[
x +
y*uWidth] = pMapLod0Line[xpix + ypix * MapImgWidth];
2006 xpix = (xpixoffset16 +
x * map_scale) >> 16;
2008 ypixoffset16 += map_scale;
2009 ypix = ypixoffset16 >> 16;
2012 render->Update_Texture(minimaptemp);
2013 render->DrawTextureAlphaNew(uX / 640., uY / 480., minimaptemp);
2017 render->FillRectFast(uX, uY, uZ - uX, uHeight, 0xF);
2039 if (bWizardEyeActive && uWizardEyeSkillLevel >= 3 &&
2047 if (LineGreyDim > 100) LineGreyDim = 100;
2058 if ((
signed int)rotate <= 1920) arrow_idx = 6;
2059 if ((
signed int)rotate < 1664) arrow_idx = 5;
2060 if ((
signed int)rotate <= 1408) arrow_idx = 4;
2061 if ((
signed int)rotate < 1152) arrow_idx = 3;
2062 if ((
signed int)rotate <= 896) arrow_idx = 2;
2063 if ((
signed int)rotate < 640) arrow_idx = 1;
2064 if ((
signed int)rotate <= 384) arrow_idx = 0;
2065 if ((
signed int)rotate < 128 || (
signed int)rotate > 1920) arrow_idx = 7;
2069 if (bWizardEyeActive) {
2070 if (uWizardEyeSkillLevel >= 2) {
2092 render->RasterLine2D(pPoint_X, pPoint_Y, pPoint_X,
2095 }
else if (uZoom > 512) {
2096 render->RasterLine2D(pPoint_X - 2, pPoint_Y,
2097 pPoint_X - 2, pPoint_Y + 1,
2099 render->RasterLine2D(pPoint_X - 1, pPoint_Y - 1,
2100 pPoint_X - 1, pPoint_Y + 1,
2102 render->RasterLine2D(pPoint_X, pPoint_Y - 2, pPoint_X,
2105 render->RasterLine2D(pPoint_X + 1, pPoint_Y - 1,
2106 pPoint_X + 1, pPoint_Y + 1,
2108 render->RasterLine2D(pPoint_X + 2, pPoint_Y,
2109 pPoint_X + 2, pPoint_Y + 1,
2112 render->RasterLine2D(pPoint_X - 1, pPoint_Y - 1,
2113 pPoint_X - 1, pPoint_Y,
2115 render->RasterLine2D(pPoint_X, pPoint_Y - 1, pPoint_X,
2141 if (
pActors[i].uAttributes & ACTOR_HOSTILE)
2146 render->RasterLine2D(pPoint_X - 2, pPoint_Y - 1,
2147 pPoint_X - 2, pPoint_Y + 1,
2149 render->RasterLine2D(pPoint_X - 1, pPoint_Y - 2,
2150 pPoint_X - 1, pPoint_Y + 2,
2152 render->RasterLine2D(pPoint_X, pPoint_Y - 2, pPoint_X,
2153 pPoint_Y + 2, pColor);
2154 render->RasterLine2D(pPoint_X + 1, pPoint_Y - 2,
2155 pPoint_X + 1, pPoint_Y + 2,
2157 render->RasterLine2D(pPoint_X + 2, pPoint_Y - 1,
2158 pPoint_X + 2, pPoint_Y + 1,
2161 render->RasterLine2D(pPoint_X - 1, pPoint_Y - 1,
2162 pPoint_X - 1, pPoint_Y, pColor);
2163 render->RasterLine2D(pPoint_X, pPoint_Y - 1, pPoint_X,
2185 if ((
signed int)uZoom > 512) {
2198 render->SetUIClipRect(541, 0, 567, 480);
2201 render->ResetUIClipRect();
2218 render->DrawTextureAlphaNew(
2226 render->DrawTextureAlphaNew(
2238 char pContainer[20];
2239 signed int uFrameID;
2241 unsigned __int8 pNPC_limit_ID;
2264 i < v22 && pNPC_limit_ID < 2; i++) {
2265 if ((
unsigned __int8)
buf[i] >= 2) {
2266 sprintf(pContainer,
"NPC%03d",
2269 render->DrawTextureAlphaNew(
2275 pContainer,
"NPC%03d",
2277 render->DrawTextureAlphaNew(
2288 if (!_stricmp(
"spell96",
2294 render->DrawTextureAlphaNew(
2309 unsigned __int16 R, G, B;
2311 if (actual_value == base_value) {
2312 R = 0, G = 0, B = 0;
2313 }
else if (actual_value < base_value) {
2314 if (100 * actual_value / base_value >=
2316 R = 255, G = 255, B = 100;
2318 R = 255, G = 0, B = 0;
2320 R = 0, G = 255, B = 0;
2328 switch (uConditionIdx) {
2356 Error(
"Invalid condition (%u)", uConditionIdx);
2361 if (reputation >= 25)
2363 else if (reputation >= 6)
2365 else if (reputation >= -5)
2367 else if (reputation >= -24)
2395 for (
uint i = 0; i < 50; ++i) {
2437 if (v12 == 5)
break;
2519 buttonbox(13, 221,
"Lightmap",
engine->config->debug_lightmaps_decals);
2522 buttonbox(354, 221,
"Draw Dist",
engine->config->extended_draw_distance);
2525 buttonbox(127, 248,
"Portal Lines",
engine->config->debug_portal_outlines);
Image * game_ui_btn_zoomout
Image * game_ui_btn_settings
void GameUI_DrawNPCPopup(void *_this)
void DrawText(GUIFont *font, int x, int y, unsigned short uFontColor, const char *str, bool present_time_transparency=false, int max_text_height=0, int uFontShadowColor=0)
unsigned int ui_gamemenu_keys_key_default_color
unsigned int ui_game_minimap_treasure_color
GLenum GLuint GLint GLenum face
uint32_t int_get_vector_length(int32_t x, int32_t y, int32_t z)
@ PLAYER_BUFF_PAIN_REFLECTION
Image * game_ui_tome_maps
@ Condition_Poison_Medium
const char * GetString(unsigned int index) const
const char * GetCharacterConditionName(unsigned int index) const
std::array< LevelDecoration, 3000 > pLevelDecorations
int _expression21_animtime
void DrawBuff_remaining_time_string(int uY, GUIWindow *window, GameTime remaining_time, GUIFont *Font)
unsigned int uTimeElapsed
Image * game_ui_btn_zoomin
DecorationDesc * GetDecoration(unsigned int index)
GameTime & GetPlayingTime()
static const unsigned int uDoublePiMask
Image * game_ui_minimap_frame
PlayerFrame * GetFrameBy_x(unsigned int uFramesetID, unsigned int uFrameID)
std::array< bool, 28 > GameMenuUI_InvaligKeyBindingsFlags
const char * GetAnimationName() const
struct SpriteFrameTable * pSpriteFrameTable
unsigned int ui_game_minimap_actor_friendly_color
std::array< SpriteObject, MAX_SPRITE_OBJECTS > pSpriteObjects
struct MonsterStats * pMonsterStats
GUIWindow_GameVideoOptions()
class Image * location_minimap
GUIWindow * pGUIWindow_CurrentMenu
bool _44100D_should_alter_right_panel()
@ GAME_STATE_FINAL_WINDOW
Image * game_ui_menu_controls
struct PlayerFrame * pFrames
GUIButton * CreateButton(int x, int y, int width, int height, int a6, int a7, UIMessageType msg, unsigned int msg_param, uint8_t hotkey, const String &label, const std::vector< Image * > &textures=std::vector< Image * >())
HOUSE_DIALOGUE_MENU dialog_menu_id
enum PlayerSpeech PlayerSpeechID
struct IconFrameTable * pIconsFrameTable
EGLSurface EGLint EGLint EGLint EGLint height
unsigned int ui_game_minimap_actor_corpse_color
std::array< unsigned int, 2 > pHiredNPCsIconsOffsetsY
MAP_TYPE GetMapInfo(const String &Str2)
unsigned __int8 hirelingScrollPosition
void GameUI_CharacterQuickRecord_Draw(GUIWindow *window, Player *player)
std::array< NPCTopic, 789 > pNPCTopics
Image * game_ui_bottomframe
int16_t sprite_frame_time
unsigned __int16 uTextureID
void GameUI_WritePointedObjectStatusString()
static uint16_t * Get_Dark_or_Red_LUT(int paletteIdx, int a2, char a3)
std::shared_ptr< Engine > engine
struct BLVFaceExtra * pFaceExtras
int GetConditionDrawColor(unsigned int uConditionIdx)
PlayerFrame * GetFrameBy_y(int *a2, int *a3, int a4)
bool Contains(unsigned int x, unsigned int y)
Image * game_ui_leftframe
@ UIMSG_ChangeMusicVolume
Image * game_ui_tome_autonotes
OptionsMenuSkin options_menu_skin
float screenspace_projection_factor_y
void GameUI_DrawRightPanel()
Localization * localization
void GameUI_LoadPlayerPortraintsAndVoices()
void buttonbox(int x, int y, char *text, int col)
std::array< Image *, 10 > game_ui_menu_options_video_gamma_positions
void GameUI_StatusBar_Set(const String &str)
CHARACTER_EXPRESSION_ID expression
float screenspace_projection_factor_x
std::array< Player, 4 > pPlayers
void GameUI_OnPlayerPortraitLeftClick(unsigned int uPlayerID)
void DrawTitleText(GUIFont *font, int horizontal_margin, int vertical_margin, unsigned __int16 uDefaultColor, const char *pInString, int line_spacing)
const char * GetSpellName(unsigned int index) const
unsigned int GetHeight() const
Image * game_ui_monster_hp_yellow
Image * game_ui_monster_hp_green
unsigned int ui_character_bonus_text_color
NZIArray< struct Player *, 5 > pPlayers
void GameUI_DrawTorchlightAndWizardEye()
std::array< int, 8 > BtnTurnCoord
int receives_keyboard_input_2
std::array< unsigned int, 4 > pManaBarPos
@ UIMSG_ChangeVoiceVolume
enum CURRENT_SCREEN current_screen_type
struct stru262_TurnBased * pTurnEngine
bool IsEradicated() const
struct MapStats * pMapStats
std::array< SpellBuff, 20 > pPartyBuffs
std::vector< GUIButton * > vButtons
unsigned int ui_gamemenu_video_gamma_title_color
Image * game_ui_player_alert_green
static int GetWidthLn2(Image *img)
void GameUI_DrawHiredNPCs()
unsigned int uGameUIFontShadow
Image * game_ui_btn_quickref
void GameUI_DrawCharacterSelectionFrame()
std::array< class Image *, 14 > party_buff_icons
unsigned int ui_character_condition_light_color
@ PARTY_FLAGS_1_STANDING_ON_WATER
Image * game_ui_playerbuff_bless
enum WindowType current_character_screen_window
UIAnimation * pUIAnum_Torchlight
OtherOverlay pOverlays[50]
EGLSurface EGLint EGLint y
Image * game_ui_player_face_eradicated
Image * game_ui_bar_green
@ SCREEN_BRANCHLESS_NPC_DIALOG
GUIWindow * window_SpeakInHouse
std::array< Image *, 8 > game_ui_minimap_dirs
Image * game_ui_playerbuff_pain_reflection
static Vis * ResolveVis()
GLenum GLuint GLenum GLsizei const GLchar * buf
void GameUI_DrawRightPanelItems()
unsigned int uMinimapZoom
Image * game_ui_player_selection_frame
Image * gamma_preview_image
Image * game_ui_playerbuff_hammerhands
@ UIMSG_ToggleColoredLights
Image * game_ui_menu_options_video_bloodsplats
unsigned __int16 uExpressionTimePassed
@ WINDOW_CharacterWindow_Inventory
unsigned int ui_gamemenu_keys_key_selection_blink_color_2
NPCProfession pProfessions[59]
SpriteFrame * GetFrame(unsigned int uSpriteID, unsigned int uTime)
unsigned int UI_GetHealthManaAndOtherQualitiesStringColor(int actual_value, int base_value)
struct ViewingParams * viewparams
CHARACTER_EXPRESSION_ID expression
unsigned int uIconIdx_WaterWalk
Image * game_ui_menu_options_video_coloredlights
unsigned int OS_GetTime()
GameTime GameUI_RightPanel_BookFlashTimer
@ UIMSG_Game_OpenSaveGameDialog
unsigned int ui_character_condition_normal_color
void DrawMessageBox(bool inside_game_viewport)
char * GetEventHintString(unsigned int uEventID)
Texture * GetImage_ColorKey(const String &name, uint16_t colorkey)
unsigned int uFrameHeight
std::array< unsigned char, 125 > _decor_events
@ UIMSG_Game_OpenOptionsDialog
char pPressedKeysBuffer[257]
TurnBased_QueueElem pQueue[530]
Image * game_ui_right_panel_frame
unsigned int GetFrameIdByExpression(CHARACTER_EXPRESSION_ID expression)
EGLSurface EGLint EGLint EGLint width
static Mouse * ResolveMouse()
unsigned int uGameUIFontMain
BLVMapOutlines * pMapOutlines
std::array< int16_t, 4 > pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing
@ WINDOW_KeyMappingOptions
unsigned int ui_character_condition_moderate_color
__int64 fixpoint_mul(int a1, int a2)
unsigned int ui_game_minimap_outline_color
unsigned int CalcTextHeight(const String &str, unsigned int width, int x_offset, bool return_on_carriage=false)
std::array< Actor, 500 > pActors
unsigned int uPointingObjectID
GUIWindow_GameKeyBindings()
struct PlayerFrameTable * pPlayerFrameTable
size_t uNumLevelDecorations
unsigned int ui_character_condition_severe_color
EGLSurface EGLNativeWindowType * window
void GameUI_ReloadPlayerPortraits(int player_id, int face_id)
std::array< unsigned int, 2 > pHiredNPCsIconsOffsetsX
bool Contains(unsigned int x, unsigned int y)
void GetClickPos(unsigned int *pX, unsigned int *pY)
unsigned int uIconIdx_FlySpell
struct NPCData * GetNewNPCData(signed int npcid, int *npc_indx)
Image * game_ui_tome_quests
String GameUI_GetMinimapHintText()
@ UIMSG_OpenKeyMappingOptions
int _4AD2D1_overlays(struct SoftwareBillboard *a2, int a3)
String game_ui_status_bar_string
int _expression21_frameset
unsigned int ui_game_minimap_decoration_color_1
Image * game_ui_player_face_dead
char _visible_outlines[875]
unsigned int pVirtualKeyCodesMapping[30]
unsigned int ui_game_minimap_actor_hostile_color
@ Condition_Poison_Severe
ItemGen pInventoryItemList[126]
@ UIMSG_ChangeSoundVolume
@ UIMSG_Game_OpenLoadGameDialog
std::array< Image *, 5 > game_ui_options_controls
void GameUI_DrawPartySpells()
Image * game_ui_monster_hp_background
struct SpellStats * pSpellStats
unsigned int ui_game_minimap_projectile_color
std::array< unsigned int, 24 > ui_game_character_record_playerbuff_colors
String BuildDialogueString(const char *lpsz, unsigned __int8 uPlayerID, ItemGen *a3, char *a4, int a5, GameTime *a6)
std::array< NPCData, 2 > pHirelings
struct Viewport * pViewport
Image * game_ui_menu_options_video_background
Image * game_ui_player_alert_yellow
Icon * GetFrame(unsigned int uIconID, unsigned int frame_time)
Image * game_ui_minimap_compass
@ PARTY_BUFF_INVISIBILITY
struct LODSprite * sprite_header
ODMRenderParams * pODMRenderParams
Image * game_ui_tome_calendar
void GameUI_DrawRightPanelFrames()
PLAYER_CLASS_TYPE classType
const char * GetVKeyDisplayName(unsigned char a1)
BLVMapOutline pOutlines[7000]
struct OtherOverlayList * pOtherOverlayList
bool AddItem(struct ItemGen *pItem)
Image * game_ui_monster_hp_border_right
Image * game_ui_rightframe
void GameUI_DrawFoodAndGold()
unsigned int ui_gamemenu_keys_action_name_color
std::array< unsigned int, 28 > pPrevVirtualCidesMapping
struct KeyboardActionMapping * pKeyActionMap
unsigned int GetMajorConditionIdx()
Image * game_ui_statusbar
GLfloat GLfloat GLfloat v2
static bool ChestUI_WritePointedObjectStatusString()
Image * game_ui_menu_options_video_tinting
unsigned int uActiveCharacter
GLfloat GLfloat GLfloat GLfloat v3
String FormatString(unsigned int index,...) const
void __cdecl __debugbreak(void)
struct NPCStats * pNPCStats
std::list< GUIWindow * > lWindowList
std::vector< ODMFace > pFaces
__int16 _441A4E_overlay_on_portrait(int a1)
const char * GetNpcProfessionName(unsigned int index) const
struct OverlayList * pOverlayList
unsigned int ui_character_header_text_color
std::array< std::array< Image *, 56 >, 4 > game_ui_player_faces
Vec3_int_ vBoundingCenter
void PlaySound(PlayerSpeech speech, int a3)
const void * GetPixels(IMAGE_FORMAT format)
Image * game_ui_player_alert_red
void GameUI_DrawMinimap(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW, unsigned int uZoom, unsigned int bRedrawOdmMinimap)
struct stru193_math * stru_5C6E00
unsigned int ui_gamemenu_keys_key_selection_blink_color_1
struct Vec3_short_ * pVertices
Texture * GetImage_Alpha(const String &name)
Image * game_ui_dialogue_background
LEVEL_TYPE uCurrentlyLoadedLevelType
@ UIMSG_ToggleBloodsplats
Image * game_ui_tome_storyline
@ UIMSG_DebugSeasonsChange
GUIWindow * pPrimaryWindow
String GetReputationString(int reputation)
UIAnimation * pUIAnim_WizardEye
bool CheckHiredNPCSpeciality(unsigned int uProfession)
@ WINDOW_CharacterWindow_Awards
struct ObjectDesc * pObjects
Image * game_ui_menu_save
@ HOUSE_DIALOGUE_SHOP_BUY_STANDARD
@ Condition_Disease_Severe
struct OverlayDesc * pOverlays
const char * GetClassName(unsigned int index) const
struct GUIMessageQueue * pMessageQueue_50CBD0
std::array< unsigned __int8, 14 > pPartySpellbuffsUI_smthns
Image * game_ui_menu_quit
stru123 stru_5E4C90_MapPersistVars
@ PLAYER_BUFF_HAMMERHANDS
uint16_t Color16(uint32_t r, uint32_t g, uint32_t b)
OutdoorLocation * pOutdoor
Image * game_ui_menu_resume
@ CHARACTER_EXPRESSION_21
int64_t _A750D8_player_speech_timer
Image * game_ui_monster_hp_red
std::array< unsigned int, 4 > pHealthBarPos
void GameUI_DrawPortraits(unsigned int _this)
std::array< unsigned char, 14 > byte_4E5DD8
unsigned int uTargetPitch
unsigned __int8 uQuickSpell
Image * game_ui_menu_options
String StringPrintf(const char *fmt,...)
Image * game_ui_monster_hp_border_left
static unsigned int GameMenuUI_GetKeyBindingColor(int key_index)
int WizardEyeSkillLevel()
@ PLAYER_BUFF_PRESERVATION
void GameUI_DrawLifeManaBars()
@ UIMSG_GameMenu_ReturnToGame
Image * game_ui_menu_load
Image * game_ui_playerbuff_preservation
std::array< SpellBuff, 24 > pPlayerBuffs
struct ObjectList * pObjectList
@ Condition_Disease_Medium
int sDialogue_SpeakingActorNPC_ID
unsigned short object_pid
struct DecorationList * pDecorationList
int uGameMenuUI_CurentlySelectedKeyIdx
std::array< const char *, 25 > pPlayerPortraitsNames
std::array< std::array< int, 2 >, 14 > pPartySpellbuffsUI_XYs
Image * game_ui_bar_yellow
std::shared_ptr< IRender > render