Mercurial > mm7
diff GUI/UI/UICharacter.cpp @ 2574:dd36326a9994
More texture refactoring
GetLeather -> DrawTextureCustomHeight
author | a.parshin |
---|---|
date | Mon, 07 Mar 2016 03:48:40 +0200 |
parents | 0c67be4ec900 |
children | a76d408c5132 |
line wrap: on
line diff
--- a/GUI/UI/UICharacter.cpp Sat Mar 05 16:25:53 2016 +0200 +++ b/GUI/UI/UICharacter.cpp Mon Mar 07 03:48:40 2016 +0200 @@ -7,7 +7,9 @@ #include "Engine/Engine.h" #include "Engine/AssetsManager.h" -#include "UICharacter.h" +#include "GUI/GUIWindow.h" +#include "GUI/UI/UICharacter.h" + #include "..\../Engine/MapInfo.h" #include "..\../GUI/GUIWindow.h" #include "..\../GUI/GUIFont.h" @@ -192,21 +194,20 @@ ui_house_player_cant_interact_color = Color16(255, 255, 155); } -std::array<unsigned int, 16> papredoll_dbrds; -unsigned int papredoll_drhs[4]; -unsigned int papredoll_dlhus[4]; -unsigned int papredoll_dlhs[4]; -unsigned int papredoll_dbods[5]; -int paperdoll_armor_texture[4][17][3];//0x511294 +Image *papredoll_drhs[4]; +Image *papredoll_dlhus[4]; +Image *papredoll_dlhs[4]; +Image *papredoll_dbods[5]; +Image *paperdoll_armor_texture[4][17][3];//0x511294 //int paperdoll_array_51132C[165]; -unsigned int papredoll_dlaus[5]; -unsigned int papredoll_dlads[4]; -int papredoll_flying_feet[22]; // 005115E0 -int paperdoll_boots_texture[4][6];//511638 -int paperdoll_cloak_collar_texture[4][10]; // weak -int paperdoll_cloak_texture[4][10]; -int paperdoll_helm_texture[2][16]; //511698 -int paperdoll_belt_texture[4][7]; //511718 +Image *papredoll_dlaus[5]; +Image *papredoll_dlads[4]; +Image *papredoll_flying_feet[22]; // 005115E0 +Image *paperdoll_boots_texture[4][6];//511638 +Image *paperdoll_cloak_collar_texture[4][10]; // weak +Image *paperdoll_cloak_texture[4][10]; +Image *paperdoll_helm_texture[2][16]; //511698 +Image *paperdoll_belt_texture[4][7]; //511718 const int paperdoll_Weapon[4][16][2] = {//4E4C30 {{128, 205}, {30, 144}, {88, 85}, {0, 0}, {0, 0}, {0, 0}, {17, 104}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, @@ -400,11 +401,33 @@ PLAYER_SKILL_UNARMED, PLAYER_SKILL_BLASTER }; -const int pMiscSkills[12] = {PLAYER_SKILL_ALCHEMY, PLAYER_SKILL_ARMSMASTER, PLAYER_SKILL_BODYBUILDING, PLAYER_SKILL_ITEM_ID, PLAYER_SKILL_MONSTER_ID, - PLAYER_SKILL_LEARNING, PLAYER_SKILL_TRAP_DISARM, PLAYER_SKILL_MEDITATION, PLAYER_SKILL_MERCHANT, PLAYER_SKILL_PERCEPTION, - PLAYER_SKILL_REPAIR, PLAYER_SKILL_STEALING}; -const int pMagicSkills[9] = {PLAYER_SKILL_FIRE, PLAYER_SKILL_AIR, PLAYER_SKILL_WATER, PLAYER_SKILL_EARTH, PLAYER_SKILL_SPIRIT, - PLAYER_SKILL_MIND, PLAYER_SKILL_BODY, PLAYER_SKILL_LIGHT, PLAYER_SKILL_DARK}; +const int pMiscSkills[12] = +{ + PLAYER_SKILL_ALCHEMY, + PLAYER_SKILL_ARMSMASTER, + PLAYER_SKILL_BODYBUILDING, + PLAYER_SKILL_ITEM_ID, + PLAYER_SKILL_MONSTER_ID, + PLAYER_SKILL_LEARNING, + PLAYER_SKILL_TRAP_DISARM, + PLAYER_SKILL_MEDITATION, + PLAYER_SKILL_MERCHANT, + PLAYER_SKILL_PERCEPTION, + PLAYER_SKILL_REPAIR, + PLAYER_SKILL_STEALING +}; +const int pMagicSkills[9] = +{ + PLAYER_SKILL_FIRE, + PLAYER_SKILL_AIR, + PLAYER_SKILL_WATER, + PLAYER_SKILL_EARTH, + PLAYER_SKILL_SPIRIT, + PLAYER_SKILL_MIND, + PLAYER_SKILL_BODY, + PLAYER_SKILL_LIGHT, + PLAYER_SKILL_DARK +}; @@ -419,6 +442,10 @@ Image *ui_character_inventory_paperdoll_rings_close = nullptr; +std::array<Image *, 16> paperdoll_dbrds; + + + GUIWindow_CharacterRecord::GUIWindow_CharacterRecord(unsigned int uActiveCharacter, enum CURRENT_SCREEN screen) : GUIWindow(0, 0, window->GetWidth(), window->GetHeight(), uActiveCharacter, nullptr) { @@ -438,35 +465,35 @@ //auto wnd = new GUIWindow_CharacterRecord(0, 0, window->GetWidth(), window->GetHeight(), uActiveCharacter, 0); pCharacterScreen_StatsBtn = CreateButton(pViewport->uViewportTL_X + 12, pViewport->uViewportTL_Y + 308, - pIcons_LOD->GetTexture(papredoll_dbrds[9])->uTextureWidth, - pIcons_LOD->GetTexture(papredoll_dbrds[9])->uTextureHeight, + paperdoll_dbrds[9]->GetWidth(), + paperdoll_dbrds[9]->GetHeight(), 1, 0, UIMSG_ClickStatsBtn, 0, 'S', pGlobalTXT_LocalizationStrings[216],// Stats - pIcons_LOD->GetTexture(papredoll_dbrds[10]), - pIcons_LOD->GetTexture(papredoll_dbrds[9]), 0); + paperdoll_dbrds[10], + paperdoll_dbrds[9], 0); pCharacterScreen_SkillsBtn = CreateButton(pViewport->uViewportTL_X + 102, pViewport->uViewportTL_Y + 308, - pIcons_LOD->GetTexture(papredoll_dbrds[7])->uTextureWidth, - pIcons_LOD->GetTexture(papredoll_dbrds[7])->uTextureHeight, + paperdoll_dbrds[7]->GetWidth(), + paperdoll_dbrds[7]->GetHeight(), 1, 0, UIMSG_ClickSkillsBtn, 0, 'K', pGlobalTXT_LocalizationStrings[205],//Skills - pIcons_LOD->GetTexture(papredoll_dbrds[8]), - pIcons_LOD->GetTexture(papredoll_dbrds[7]), 0); + paperdoll_dbrds[8], + paperdoll_dbrds[7], 0); pCharacterScreen_InventoryBtn = CreateButton(pViewport->uViewportTL_X + 192, pViewport->uViewportTL_Y + 308, - pIcons_LOD->GetTexture(papredoll_dbrds[5])->uTextureWidth, - pIcons_LOD->GetTexture(papredoll_dbrds[5])->uTextureHeight, + paperdoll_dbrds[5]->GetWidth(), + paperdoll_dbrds[5]->GetHeight(), 1, 0, UIMSG_ClickInventoryBtn, 0, 'I', pGlobalTXT_LocalizationStrings[120], //Inventory - pIcons_LOD->GetTexture(papredoll_dbrds[6]), - pIcons_LOD->GetTexture(papredoll_dbrds[5]), 0); + paperdoll_dbrds[6], + paperdoll_dbrds[5], 0); pCharacterScreen_AwardsBtn = CreateButton(pViewport->uViewportTL_X + 282, pViewport->uViewportTL_Y + 308, - pIcons_LOD->GetTexture(papredoll_dbrds[3])->uTextureWidth, - pIcons_LOD->GetTexture(papredoll_dbrds[3])->uTextureHeight, + paperdoll_dbrds[3]->GetWidth(), + paperdoll_dbrds[3]->GetHeight(), 1, 0, UIMSG_ClickAwardsBtn, 0, 'A', pGlobalTXT_LocalizationStrings[22], //Awards - pIcons_LOD->GetTexture(papredoll_dbrds[4]), - pIcons_LOD->GetTexture(papredoll_dbrds[3]), 0); + paperdoll_dbrds[4], + paperdoll_dbrds[3], 0); pCharacterScreen_ExitBtn = CreateButton(pViewport->uViewportTL_X + 371, pViewport->uViewportTL_Y + 308, - pIcons_LOD->GetTexture(papredoll_dbrds[1])->uTextureWidth, - pIcons_LOD->GetTexture(papredoll_dbrds[1])->uTextureHeight, + paperdoll_dbrds[1]->GetWidth(), + paperdoll_dbrds[1]->GetHeight(), 1, 0, UIMSG_ClickExitCharacterWindowBtn, 0, 0, pGlobalTXT_LocalizationStrings[79],//Exit - pIcons_LOD->GetTexture(papredoll_dbrds[2]), - pIcons_LOD->GetTexture(papredoll_dbrds[1]), 0); + paperdoll_dbrds[2], + paperdoll_dbrds[1], 0); CreateButton(0, 0, 476, 345, 1, 122, UIMSG_InventoryLeftClick, 0, 0, "", 0); pCharacterScreen_DetalizBtn = CreateButton(600, 300, 30, 30, 1, 0, UIMSG_ChangeDetaliz, 0, 0, pGlobalTXT_LocalizationStrings[64], 0); pCharacterScreen_DollBtn = CreateButton(476, 0, 164, 345, 1, 0, UIMSG_ClickPaperdoll, 0, 0, "", 0); @@ -653,8 +680,8 @@ CS_inventory_window = new GUIWindow_Inventory_CastSpell(0, 0, window->GetWidth(), window->GetHeight(), (int)this, 0); pCharacterScreen_ExitBtn = CS_inventory_window->CreateButton(394, 318, 75, 33, 1, 0, UIMSG_ClickExitCharacterWindowBtn, 0, 0, pGlobalTXT_LocalizationStrings[79], // Close - pIcons_LOD->GetTexture(papredoll_dbrds[2]), - pIcons_LOD->GetTexture(papredoll_dbrds[1]), 0); + paperdoll_dbrds[2], + paperdoll_dbrds[1], 0); CS_inventory_window->CreateButton(0, 0, 0x1DCu, 0x159u, 1, 122, UIMSG_InventoryLeftClick, 0, 0, "", 0); pCharacterScreen_DollBtn = CS_inventory_window->CreateButton(0x1DCu, 0, 0xA4u, 0x159u, 1, 0, UIMSG_ClickPaperdoll, 0, 0, "", 0); @@ -867,7 +894,7 @@ //----- (0041A556) -------------------------------------------------------- void draw_leather() { - pRenderer->DrawTextureTransparentColorKey(8, 8, pIcons_LOD->GetTexture(uTextureID_Leather)); + pRenderer->DrawTextureNew(8/640.0f, 8/480.0f, ui_leather_mm7); } @@ -877,11 +904,11 @@ ItemGen *item; // edi@38 int item_X; // ebx@38 int index; // eax@65 - int v59; // ebx@129 - unsigned int v75; // ebx@170 - int v94; // ebx@214 - unsigned int v127; // ebx@314 - unsigned int v153; // eax@370 + Image *v59; // ebx@129 + Image *v75; // ebx@170 + Image *v94; // ebx@214 + Image *v127; // ebx@314 + Image *v153; // eax@370 char *v166; // [sp-8h] [bp-54h]@16 const char *container; // [sp-8h] [bp-54h]@79 char *v181; // [sp-8h] [bp-54h]@337 @@ -914,16 +941,19 @@ pRenderer->DrawTextureAlphaNew(467/640.0f, 0, ui_character_inventory_paperdoll_background); if ( IsPlayerWearingWatersuit[uPlayerID] )//акваланг { - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew(pPaperdoll_BodyX/640.0f, pPaperdoll_BodyY/480.0f, papredoll_dbods[uPlayerID - 1]); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]), player->pEquipment.uArmor); + pRenderer->ZDrawTextureAlpha(pPaperdoll_BodyX/640.0f, pPaperdoll_BodyY/480.0f, papredoll_dbods[uPlayerID - 1], player->pEquipment.uArmor); + //Рука не занята или ... if ( !player->GetItem(&PlayerEquipment::uMainHand) || ( player->GetMainHandItem()->GetItemEquipType() != EQUIP_TWO_HANDED) && (player->GetMainHandItem()->GetItemEquipType() != PLAYER_SKILL_SPEAR || player->GetItem(&PlayerEquipment::uShield)) ) - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], - pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew( + (pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0])/640.0f, + (pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1])/480.0f, + papredoll_dlads[uPlayerID - 1]); //-----------------------------------------------------(Hand/Рука)--------------------------------------------------------------- if ( player->GetItem(&PlayerEquipment::uMainHand) ) { @@ -935,6 +965,8 @@ else v166 = item->GetIconName(); + auto texture = assets->GetImage_16BitAlpha(v166); + if ( item->ItemEnchanted() ) { if ( item->AuraEffectRed() ) @@ -952,18 +984,17 @@ item->ResetEnchantAnimation(); ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)), - pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); + pRenderer->BlendTextures(item_X, item_Y, texture, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, texture); else if ( item->uAttributes & ITEM_IDENTIFIED ) - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, texture); else - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, texture); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)), player->pEquipment.uMainHand); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, texture, player->pEquipment.uMainHand); } } else// без акваланга @@ -975,6 +1006,7 @@ item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][2][0] - pItemsTable->pItems[item->uItemID].uEquipX; item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][2][1] - pItemsTable->pItems[item->uItemID].uEquipY; + auto texture = assets->GetImage_16BitAlpha(item->GetIconName()); if ( item->ItemEnchanted() )// применён закл { if ( item->AuraEffectRed() ) @@ -992,19 +1024,20 @@ item->ResetEnchantAnimation(); ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE)), - pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE),GetTickCount() * 0.1, 0, 255); + pRenderer->BlendTextures(item_X, item_Y, texture, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE),GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE))); - else if ( !(item->uAttributes & ITEM_IDENTIFIED) )//не опознанный лук зелёный - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, texture); + else if ( !(item->uAttributes & ITEM_IDENTIFIED) ) + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, texture); else // опознанный лук - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, texture); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE)), - player->pEquipment.uBow); + pRenderer->ZDrawTextureAlpha( + item_X/640.0f, item_Y/480.0f, + texture, + player->pEquipment.uBow); } //-----------------------------(Cloak/Плащ)--------------------------------------------------------- if ( player->GetItem(&PlayerEquipment::uCloak) ) @@ -1053,21 +1086,20 @@ item->ResetEnchantAnimation();//~0x000000F0 ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]), + pRenderer->BlendTextures(item_X, item_Y, paperdoll_cloak_texture[pBodyComplection][index], pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index])); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, paperdoll_cloak_texture[pBodyComplection][index]); else - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index])); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, paperdoll_cloak_texture[pBodyComplection][index]); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]), - player->pEquipment.uCloak); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, paperdoll_cloak_texture[pBodyComplection][index], player->pEquipment.uCloak); } } //-------------------------------(Paperdoll/Кукла)------------------------------------------- - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew(pPaperdoll_BodyX/640.0f, pPaperdoll_BodyY/480.0f, papredoll_dbods[uPlayerID - 1]); //-------------------------------(Armor/Броня)----------------------------------------------- if ( player->GetItem(&PlayerEquipment::uArmor) ) { @@ -1112,19 +1144,18 @@ item->ResetEnchantAnimation();//~0x000000F0 ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][0]), + pRenderer->BlendTextures(item_X, item_Y, paperdoll_armor_texture[pBodyComplection][index][0], pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][0])); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, paperdoll_armor_texture[pBodyComplection][index][0]); else if ( !(item->uAttributes & ITEM_IDENTIFIED) ) - pRenderer->DrawTransparentGreenShade(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, paperdoll_armor_texture[pBodyComplection][index][0]); else - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, paperdoll_armor_texture[pBodyComplection][index][0]); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]], - player->pEquipment.uArmor); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, paperdoll_armor_texture[pBodyComplection][index][0], player->pEquipment.uArmor); } } //----------------------------------(Boot/Обувь)-------------------------------------------------------- @@ -1168,18 +1199,18 @@ item->ResetEnchantAnimation();//~0x000000F0 ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v59), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + pRenderer->BlendTextures(item_X, item_Y, v59, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v59)); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, v59); else if ( item->uAttributes & ITEM_IDENTIFIED ) - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v59)); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, v59); else - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v59)); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, v59); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v59), player->pEquipment.uBoot); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, v59, player->pEquipment.uBoot); } } //--------------------------------------------(Hand/Рука)------------------------------------------------------ @@ -1187,8 +1218,10 @@ || ( player->GetMainHandItem()->GetItemEquipType() != EQUIP_TWO_HANDED) && (player->GetMainHandItem()->GetPlayerSkillType() != PLAYER_SKILL_SPEAR || player->GetItem(&PlayerEquipment::uShield)) ) - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], - pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew( + (pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0])/640.0f, + (pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1])/480.0f, + papredoll_dlads[uPlayerID - 1]); //--------------------------------------------(Belt/Пояс)------------------------------------------------------- if ( player->GetItem(&PlayerEquipment::uBelt)) { @@ -1231,18 +1264,18 @@ item->ResetEnchantAnimation();//~0x000000F0 ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v75), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + pRenderer->BlendTextures(item_X, item_Y, v75, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v75)); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, v75); else if ( item->uAttributes & ITEM_IDENTIFIED ) - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v75)); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, v75); else - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v75)); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, v75); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v75), player->pEquipment.uBelt); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, v75, player->pEquipment.uBelt); } } //--------------------------------(Shoulder/Плечи)--------------------------------------------- @@ -1274,7 +1307,7 @@ && !player->GetItem(&PlayerEquipment::uShield) ))//без щита { v94 = paperdoll_armor_texture[pBodyComplection][index][2]; - if ( paperdoll_armor_texture[pBodyComplection][index][2] == pIcons_LOD->FindTextureByName("pending") ) + if ( paperdoll_armor_texture[pBodyComplection][index][2] ) { v94 = paperdoll_armor_texture[pBodyComplection][index][1]; item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0]; @@ -1285,11 +1318,11 @@ item_X = pPaperdoll_BodyX + paperdoll_shoulder_second_coord[pBodyComplection][index][0]; item_Y = pPaperdoll_BodyY + paperdoll_shoulder_second_coord[pBodyComplection][index][1]; } - if ( v94 != pIcons_LOD->FindTextureByName("pending") ) + if ( v94 ) { if ( item->ItemEnchanted() ) { - if ( paperdoll_armor_texture[pBodyComplection][index][2] != pIcons_LOD->FindTextureByName("pending") ) + if ( paperdoll_armor_texture[pBodyComplection][index][2] ) { if ( item->AuraEffectRed() ) container = "sptext01"; @@ -1306,23 +1339,23 @@ item->ResetEnchantAnimation();//~0x000000F0 ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v94), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + pRenderer->BlendTextures(item_X, item_Y, v94, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v94)); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, v94); else if ( item->uAttributes & ITEM_IDENTIFIED ) - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v94)); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, v94); else - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v94)); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, v94); } } else//без ничего или с щитом { //v94 = paperdoll_armor_texture[pBodyComplection][index][1]; - if ( paperdoll_armor_texture[pBodyComplection][index][1] != pIcons_LOD->FindTextureByName("pending") ) + if ( paperdoll_armor_texture[pBodyComplection][index][1] ) { item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0]; item_Y = pPaperdoll_BodyY + paperdoll_shoulder_coord[pBodyComplection][index][1]; @@ -1344,16 +1377,15 @@ item->ResetEnchantAnimation();//~0x000000F0 ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]), + pRenderer->BlendTextures(item_X, item_Y, paperdoll_armor_texture[pBodyComplection][index][1], pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1])); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, paperdoll_armor_texture[pBodyComplection][index][1]); else if ( item->uAttributes & ITEM_IDENTIFIED ) - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1])); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, paperdoll_armor_texture[pBodyComplection][index][1]); else - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1])); - + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, paperdoll_armor_texture[pBodyComplection][index][1]); } } } @@ -1388,7 +1420,7 @@ item_Y = pPaperdoll_BodyY + paperdoll_CloakCollar[pBodyComplection][index][1]; signed int r = pIcons_LOD->FindTextureByName("item325v2a1"); - if ( paperdoll_cloak_collar_texture[pBodyComplection][index] != pIcons_LOD->FindTextureByName("pending") ) + if ( paperdoll_cloak_collar_texture[pBodyComplection][index] ) { if ( item->ItemEnchanted() ) { @@ -1407,16 +1439,16 @@ item->ResetEnchantAnimation();//~0x000000F0 ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]), + pRenderer->BlendTextures(item_X, item_Y, paperdoll_cloak_collar_texture[pBodyComplection][index], pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index])); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, paperdoll_cloak_collar_texture[pBodyComplection][index]); else - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index])); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, paperdoll_cloak_collar_texture[pBodyComplection][index]); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]), + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, paperdoll_cloak_collar_texture[pBodyComplection][index], player->pEquipment.uCloak); } } @@ -1424,10 +1456,11 @@ //--------------------------------------------(Beards/Борода)------------------------------------------------------- if ( player->uCurrentFace == 12 || player->uCurrentFace == 13 ) { - if ( papredoll_dbrds[player->uCurrentFace] != pIcons_LOD->FindTextureByName("Pending") ) - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_Beards[2 * player->uCurrentFace - 24], - pPaperdoll_BodyY + pPaperdoll_Beards[2 * player->uCurrentFace - 23], - pIcons_LOD->GetTexture(papredoll_dbrds[player->uCurrentFace])); + if ( paperdoll_dbrds[player->uCurrentFace]) + pRenderer->DrawTextureAlphaNew( + (pPaperdoll_BodyX + pPaperdoll_Beards[2 * player->uCurrentFace - 24])/640.0f, + (pPaperdoll_BodyY + pPaperdoll_Beards[2 * player->uCurrentFace - 23])/480.0f, + paperdoll_dbrds[player->uCurrentFace]); } //--------------------------------------------(Helm/Шлем)------------------------------------------------------------ if ( player->GetItem(&PlayerEquipment::uHelm) ) @@ -1457,10 +1490,10 @@ { item_X = pPaperdoll_BodyX + paperdoll_Helm[pBodyComplection][index][0]; item_Y = pPaperdoll_BodyY + paperdoll_Helm[pBodyComplection][index][1]; - if ( IsDwarf != 1 || item->uItemID != 92 ) + if ( IsDwarf != 1 || item->uItemID != ITEM_92) v127 = paperdoll_helm_texture[player->GetSexByVoice()][index]; else - v127 = papredoll_dbrds[11]; + v127 = paperdoll_dbrds[11]; if ( item->ItemEnchanted() ) { @@ -1479,18 +1512,18 @@ item->ResetEnchantAnimation(); ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v127), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + pRenderer->BlendTextures(item_X, item_Y, v127, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v127)); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, v127); else if ( item->uAttributes & ITEM_IDENTIFIED ) - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v127)); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, v127); else - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v127)); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, v127); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v127), player->pEquipment.uHelm); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, v127, player->pEquipment.uHelm); } } //------------------------------------------------(Hand3/Рука3)------------------------------------------- @@ -1504,6 +1537,8 @@ else v181 = item->GetIconName(); + auto texture = assets->GetImage_16BitAlpha(v181); + if ( item->ItemEnchanted() ) { if ( item->AuraEffectRed() ) @@ -1521,19 +1556,18 @@ item->ResetEnchantAnimation(); ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)), + pRenderer->BlendTextures(item_X, item_Y, texture, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, texture); else if ( item->uAttributes & ITEM_IDENTIFIED ) - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, texture); else - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, texture); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)), - player->pEquipment.uMainHand); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, texture, player->pEquipment.uMainHand); } //--------------------------------------------------(Shield/Щит)--------------------------------------------- if ( player->GetItem(&PlayerEquipment::uShield) ) @@ -1569,7 +1603,8 @@ item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item->uItemID].uEquipX; item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item->uItemID].uEquipY; } - v153 = pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE); + //v153 = pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE); + v153 = assets->GetImage_16BitAlpha(item->GetIconName()); if ( item->ItemEnchanted() ) { @@ -1588,33 +1623,40 @@ item->ResetEnchantAnimation(); ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v153), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + pRenderer->BlendTextures(item_X, item_Y, v153, pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } else if ( item->uAttributes & ITEM_BROKEN ) - pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); + pRenderer->DrawTransparentRedShade(item_X/640.0f, item_Y/480.0f, v153); else if ( !(item->uAttributes & ITEM_IDENTIFIED) ) - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); + pRenderer->DrawTransparentGreenShade(item_X/640.0f, item_Y/480.0f, v153); else - pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v153)); + pRenderer->DrawTextureAlphaNew(item_X/640.0f, item_Y/480.0f, v153); if ( two_handed_left_fist )//two-handed - left fist/двуручие - левая кисть - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0], - pPaperdoll_BodyY + pPaperdollLeftEmptyHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlhs[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew( + (pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0])/640.0f, + (pPaperdoll_BodyY + pPaperdollLeftEmptyHand[pBodyComplection][1])/480.0f, + papredoll_dlhs[uPlayerID - 1]); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v153), player->pEquipment.uShield); + pRenderer->ZDrawTextureAlpha(item_X/640.0f, item_Y/480.0f, v153, player->pEquipment.uShield); } } //--------------------------------------------------------(RightHand/Правая кисть)-------------------------------------------------- - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_RightHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_RightHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_drhs[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew( + (pPaperdoll_BodyX + pPaperdoll_RightHand[pBodyComplection][0])/640.0f, + (pPaperdoll_BodyY + pPaperdoll_RightHand[pBodyComplection][1])/480.0f, + papredoll_drhs[uPlayerID - 1]); //---------------------------------------------(two-handed - hand/Двуручие - рука)-------------------------------------------------- if ( player->GetItem(&PlayerEquipment::uMainHand) ) { if ( player->GetMainHandItem()->GetItemEquipType() == EQUIP_TWO_HANDED || player->GetMainHandItem()->GetPlayerSkillType() == PLAYER_SKILL_SPEAR && !player->GetItem(&PlayerEquipment::uShield) ) - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], - pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew( + (pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0])/640.0f, + (pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1])/480.0f, + papredoll_dlaus[uPlayerID - 1]); } //--------------------------------------------------------(two-handed - fist/двуручие - кисть)---------------------------------------------------- if ( player->GetItem(&PlayerEquipment::uMainHand)) @@ -1623,21 +1665,22 @@ if ( item->GetItemEquipType() == EQUIP_TWO_HANDED || item->GetPlayerSkillType() == PLAYER_SKILL_SPEAR && !player->GetItem(&PlayerEquipment::uShield) ) - pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], - pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], - pIcons_LOD->GetTexture(papredoll_dlhus[uPlayerID - 1])); + pRenderer->DrawTextureAlphaNew( + (pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0])/640.0f, + (pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1])/480.0f, + papredoll_dlhus[uPlayerID - 1]); } if ( !bRingsShownInCharScreen )//рисование лупы pRenderer->DrawTextureAlphaNew(603/640.0f, 299/480.0f, ui_character_inventory_magnification_glass); - pRenderer->DrawTextureAlphaNew(468 / 640.0f, 0, game_ui_right_panel_frame); + pRenderer->DrawTextureAlphaNew(468/640.0f, 0, game_ui_right_panel_frame); } //----- (0041A2D1) -------------------------------------------------------- void CharacterUI_InventoryTab_Draw(Player *player, bool a2) { - Texture *pTexture; // esi@6 + Image *pTexture; // esi@6 unsigned int v17; // edi@15 unsigned int uCellX; // [sp+30h] [bp-8h]@5 unsigned int uCellY; // [sp+34h] [bp-4h]@5 @@ -1654,22 +1697,28 @@ continue; uCellY = 32 * (i / 14) + 17; uCellX = 32 * (i % 14) + 14; - uint item_texture_id = pIcons_LOD->LoadTexture(player->pInventoryItemList[player->pInventoryMatrix[i] - 1].GetIconName(), TEXTURE_16BIT_PALETTE); - pTexture = pIcons_LOD->GetTexture(item_texture_id); - if (pTexture->uTextureWidth < 14) - pTexture->uTextureWidth = 14; - if ( (pTexture->uTextureWidth - 14) / 32 == 0 && pTexture->uTextureWidth < 32) - uCellX += (32 - pTexture->uTextureWidth) / 2; - //v13 = pTexture->uTextureWidth - 14; - //LOBYTE(v13) = v13 & 0xE0; - //v15 = v13 + 32; - if (pTexture->uTextureHeight < 14 ) - pTexture->uTextureHeight = 14; - v17 = uCellX + (( (int)((pTexture->uTextureWidth - 14) & 0xE0) + 32 - pTexture->uTextureWidth) / 2) - + pSRZBufferLineOffsets[uCellY + (( (int)((pTexture->uTextureHeight - 14) & 0xFFFFFFE0) - pTexture->uTextureHeight + 32) / 2)]; //added typecast. without it the value in the brackets got cat to unsigned which messed stuff up + + //uint item_texture_id = pIcons_LOD->LoadTexture(player->pInventoryItemList[player->pInventoryMatrix[i] - 1].GetIconName(), TEXTURE_16BIT_PALETTE); + //pTexture = pIcons_LOD->GetTexture(item_texture_id); + pTexture = assets->GetImage_16BitAlpha(player->pInventoryItemList[player->pInventoryMatrix[i] - 1].GetIconName()); + + //if (pTexture->uTextureWidth < 14) + // pTexture->uTextureWidth = 14; + int width = pTexture->GetWidth(); + if (width < 14) + width = 14; + + if ( (width - 14) / 32 == 0 && width < 32) + uCellX += (32 - width) / 2; + + int height = pTexture->GetHeight(); + if (height < 14 ) + height = 14; + v17 = uCellX + (( (int)((width - 14) & 0xE0) + 32 - width) / 2) + + pSRZBufferLineOffsets[uCellY + (( (int)((height - 14) & 0xFFFFFFE0) - height + 32) / 2)]; //added typecast. without it the value in the brackets got cat to unsigned which messed stuff up if (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].uAttributes & ITEM_ENCHANT_ANIMATION) { - Texture *loadedTextureptr = nullptr; + Texture_MM7 *loadedTextureptr = nullptr; switch (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].uAttributes & ITEM_ENCHANT_ANIMATION) { case ITEM_AURA_EFFECT_RED: loadedTextureptr = pIcons_LOD->LoadTexturePtr("sptext01", TEXTURE_16BIT_PALETTE); break; @@ -1685,21 +1734,21 @@ ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(uCellX, uCellY, pTexture, loadedTextureptr, GetTickCount() * 0.1, 0, 255); - ZBuffer_Fill(&pRenderer->pActiveZBuffer[v17], item_texture_id, player->pInventoryMatrix[i]); + pRenderer->BlendTextures(uCellX, uCellY, pTexture, loadedTextureptr, GetTickCount() * 0.1, 0, 255); + //ZBuffer_Fill(&pRenderer->pActiveZBuffer[v17], item_texture_id, player->pInventoryMatrix[i]); } else { if (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].IsIdentified() || current_screen_type != SCREEN_HOUSE) { if (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].IsBroken()) - pRenderer->DrawTransparentRedShade(uCellX, uCellY, pTexture); + pRenderer->DrawTransparentRedShade(uCellX/640.0f, uCellY/480.0f, pTexture); else - pRenderer->DrawTextureIndexedAlpha(uCellX, uCellY, pTexture); + pRenderer->DrawTextureAlphaNew(uCellX/640.0f, uCellY/480.0f, pTexture); } else - pRenderer->DrawTransparentGreenShade(uCellX, uCellY, pTexture); - ZBuffer_Fill(&pRenderer->pActiveZBuffer[v17], item_texture_id, player->pInventoryMatrix[i]); + pRenderer->DrawTransparentGreenShade(uCellX/640.0f, uCellY/480.0f, pTexture); + //ZBuffer_Fill(&pRenderer->pActiveZBuffer[v17], item_texture_id, player->pInventoryMatrix[i]); continue; } } @@ -1707,11 +1756,12 @@ static void CharacterUI_DrawItem(int x, int y, ItemGen *item, int id) { - Texture* item_texture = pIcons_LOD->LoadTexturePtr(item->GetIconName(), TEXTURE_16BIT_PALETTE); + //Texture_MM7* item_texture = pIcons_LOD->LoadTexturePtr(item->GetIconName(), TEXTURE_16BIT_PALETTE); + auto item_texture = assets->GetImage_16BitAlpha(item->GetIconName()); if (item->uAttributes & ITEM_ENCHANT_ANIMATION) // enchant animation { - Texture *enchantment_texture = nullptr; + Texture_MM7 *enchantment_texture = nullptr; switch (item->uAttributes & ITEM_ENCHANT_ANIMATION) { case ITEM_AURA_EFFECT_RED: enchantment_texture = pIcons_LOD->LoadTexturePtr("sptext01", TEXTURE_16BIT_PALETTE); break; @@ -1727,16 +1777,16 @@ item->uAttributes &= 0xFFFFFF0F; ptr_50C9A4_ItemToEnchant = nullptr; } - pRenderer->DrawAura(x, y, item_texture, enchantment_texture, GetTickCount() * 0.1, 0, 255); + pRenderer->BlendTextures(x, y, item_texture, enchantment_texture, GetTickCount() * 0.1, 0, 255); } else { if (item->IsBroken()) - pRenderer->DrawTransparentRedShade(x, y, item_texture); + pRenderer->DrawTransparentRedShade(x/640.0f, y/480.0f, item_texture); else if (!item->IsIdentified()) - pRenderer->DrawTransparentGreenShade(x, y, item_texture); + pRenderer->DrawTransparentGreenShade(x/640.0f, y/480.0f, item_texture); else - pRenderer->DrawTextureIndexedAlpha(x, y, item_texture); + pRenderer->DrawTextureAlphaNew(x/640.0f, y/480.0f, item_texture); pRenderer->ZBuffer_Fill_2(x, y, item_texture, id); } @@ -1796,51 +1846,57 @@ else v3 = (pPlayers[i + 1]->GetSexByVoice() != 0) + 1; wsprintfA(pContainer, "pc23v%dBod", v3); - papredoll_dbods[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);//Body texture + papredoll_dbods[i] = assets->GetImage_16BitAlpha(pContainer);//Body texture wsprintfA(pContainer, "pc23v%dlad", v3); - papredoll_dlads[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand + papredoll_dlads[i] = assets->GetImage_16BitAlpha(pContainer);// Left Hand wsprintfA(pContainer, "pc23v%dlau", v3); - papredoll_dlaus[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand2 + papredoll_dlaus[i] = assets->GetImage_16BitAlpha(pContainer);// Left Hand2 wsprintfA(pContainer, "pc23v%drh", v3); - papredoll_drhs[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Right Hand + papredoll_drhs[i] = assets->GetImage_16BitAlpha(pContainer);// Right Hand wsprintfA(pContainer, "pc23v%dlh", v3); - papredoll_dlhs[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Fist + papredoll_dlhs[i] = assets->GetImage_16BitAlpha(pContainer);// Left Palm wsprintfA(pContainer, "pc23v%dlhu", v3); - papredoll_dlhus[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); // Left Fist 2 + papredoll_dlhus[i] = assets->GetImage_16BitAlpha(pContainer); // Left Fist pPlayer = pPlayers[i + 1]; + if ( pPlayer->uCurrentFace == 12 || pPlayer->uCurrentFace == 13 ) - papredoll_dbrds[(char)pPlayer->uCurrentFace] = 0; - papredoll_flying_feet[pPlayer->uCurrentFace] = 0; - IsPlayerWearingWatersuit[i + 1] = 1; + paperdoll_dbrds[(char)pPlayer->uCurrentFace] = nullptr; + papredoll_flying_feet[pPlayer->uCurrentFace] = nullptr; + + IsPlayerWearingWatersuit[i + 1] = true; } else { - papredoll_dbods[i] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlads[i] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlaus[i] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_drhs[i] = pIcons_LOD->LoadTexture(drh_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlhs[i] = pIcons_LOD->LoadTexture(dlh_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlhus[i] = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); + papredoll_dbods[i] = assets->GetImage_16BitAlpha(dbod_texnames_by_face[pPlayers[i + 1]->uCurrentFace]); + papredoll_dlads[i] = assets->GetImage_16BitAlpha(dlad_texnames_by_face[pPlayers[i + 1]->uCurrentFace]); + papredoll_dlaus[i] = assets->GetImage_16BitAlpha(dlau_texnames_by_face[pPlayers[i + 1]->uCurrentFace]); + papredoll_drhs[i] = assets->GetImage_16BitAlpha(drh_texnames_by_face[pPlayers[i + 1]->uCurrentFace]); + papredoll_dlhs[i] = assets->GetImage_16BitAlpha(dlh_texnames_by_face[pPlayers[i + 1]->uCurrentFace]); + papredoll_dlhus[i] = assets->GetImage_16BitAlpha(dlhu_texnames_by_face[pPlayers[i + 1]->uCurrentFace]); + + wchar_t name[1024]; if ( pPlayers[i + 1]->uCurrentFace == 12 || pPlayers[i + 1]->uCurrentFace == 13 ) { - wsprintfA(pContainer, "pc%02dbrd", pPlayers[i + 1]->uCurrentFace + 1); - papredoll_dbrds[pPlayers[i + 1]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfW(name, L"pc%02dbrd", pPlayers[i + 1]->uCurrentFace + 1); + paperdoll_dbrds[pPlayers[i + 1]->uCurrentFace] = assets->GetImage_16BitAlpha(name); } - wsprintfA(pContainer, "item281pc%02d", pPlayers[i + 1]->uCurrentFace + 1); - papredoll_flying_feet[pPlayers[i + 1]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfW(name, L"item281pc%02d", pPlayers[i + 1]->uCurrentFace + 1); + papredoll_flying_feet[pPlayers[i + 1]->uCurrentFace] = assets->GetImage_16BitAlpha(name); IsPlayerWearingWatersuit[i + 1] = 0; } } - uTextureID_ar_up_up = pIcons_LOD->LoadTexture("ar_up_up", TEXTURE_16BIT_PALETTE); - uTextureID_ar_up_dn = pIcons_LOD->LoadTexture("ar_up_dn", TEXTURE_16BIT_PALETTE); - uTextureID_ar_dn_up = pIcons_LOD->LoadTexture("ar_dn_up", TEXTURE_16BIT_PALETTE); - uTextureID_ar_dn_dn = pIcons_LOD->LoadTexture("ar_dn_dn", TEXTURE_16BIT_PALETTE); - papredoll_dbrds[9] = pIcons_LOD->LoadTexture("ib-cd1-d", TEXTURE_16BIT_PALETTE); - papredoll_dbrds[7] = pIcons_LOD->LoadTexture("ib-cd2-d", TEXTURE_16BIT_PALETTE); - papredoll_dbrds[5] = pIcons_LOD->LoadTexture("ib-cd3-d", TEXTURE_16BIT_PALETTE); - papredoll_dbrds[3] = pIcons_LOD->LoadTexture("ib-cd4-d", TEXTURE_16BIT_PALETTE); - papredoll_dbrds[1] = pIcons_LOD->LoadTexture("ib-cd5-d", TEXTURE_16BIT_PALETTE); + ui_ar_up_up = assets->GetImage_16BitAlpha(L"ar_up_up"); + ui_ar_up_dn = assets->GetImage_16BitAlpha(L"ar_up_dn"); + ui_ar_dn_up = assets->GetImage_16BitAlpha(L"ar_dn_up"); + ui_ar_dn_dn = assets->GetImage_16BitAlpha(L"ar_dn_dn"); + + paperdoll_dbrds[9] = assets->GetImage_16BitAlpha(L"ib-cd1-d"); + paperdoll_dbrds[7] = assets->GetImage_16BitAlpha(L"ib-cd2-d"); + paperdoll_dbrds[5] = assets->GetImage_16BitAlpha(L"ib-cd3-d"); + paperdoll_dbrds[3] = assets->GetImage_16BitAlpha(L"ib-cd4-d"); + paperdoll_dbrds[1] = assets->GetImage_16BitAlpha(L"ib-cd5-d"); + for ( uint i = 0; i < 54; ++i )// test equipment { party_has_equipment[i] = 0; @@ -1882,27 +1938,28 @@ for ( uint j = 0; j < 5; ++j )//Belt { GetItemTextureFilename(pContainer, j + 100, i + 1, 0); - paperdoll_belt_texture[i][j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_belt_texture[i][j] = assets->GetImage_16BitAlpha(pContainer); } GetItemTextureFilename(pContainer, 535, i + 1, 0); - paperdoll_belt_texture[i][6] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_belt_texture[i][6] = assets->GetImage_16BitAlpha(pContainer); for ( uint j = 0; j < 11; ++j )//Helm { GetItemTextureFilename(pContainer, j + 89, i + 1, 0); - paperdoll_helm_texture[i][j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_helm_texture[i][j] = assets->GetImage_16BitAlpha(pContainer); } GetItemTextureFilename(pContainer, 521, i + 1, 0); - paperdoll_helm_texture[i][11] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_helm_texture[i][11] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 522, i + 1, 0); - paperdoll_helm_texture[i][12] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_helm_texture[i][12] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 523, i + 1, 0); - paperdoll_helm_texture[i][13] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_helm_texture[i][13] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 532, i + 1, 0); - paperdoll_helm_texture[i][14] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_helm_texture[i][14] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 544, i + 1, 0); - paperdoll_helm_texture[i][15] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_helm_texture[i][15] = assets->GetImage_16BitAlpha(pContainer); + if ( IsDwarfPresentInParty(true) ) //the phynaxian helm uses a slightly different graphic for dwarves - papredoll_dbrds[11] = pIcons_LOD->LoadTexture("item092v3", TEXTURE_16BIT_PALETTE); + paperdoll_dbrds[11] = assets->GetImage_16BitAlpha(L"item092v3"); } //v43 = 0; for (uint i = 0; i < 4; ++i) @@ -1910,76 +1967,77 @@ if ( ShouldLoadTexturesForRaceAndGender(i) ) { GetItemTextureFilename(pContainer, 524, i + 1, 0); - paperdoll_belt_texture[i][5] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);//Titans belt + paperdoll_belt_texture[i][5] = assets->GetImage_16BitAlpha(pContainer);//Titans belt pItemTXTNum = 66; for ( v32 = 0; v32 < 13; ++v32 )//simple armor { GetItemTextureFilename(pContainer, pItemTXTNum, i + 1, 0); - paperdoll_armor_texture[i][v32][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// armor + paperdoll_armor_texture[i][v32][0] = assets->GetImage_16BitAlpha(pContainer);// armor GetItemTextureFilename(pContainer, pItemTXTNum, i + 1, 1); - paperdoll_armor_texture[i][v32][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// shoulder 1 + paperdoll_armor_texture[i][v32][1] = assets->GetImage_16BitAlpha(pContainer);// shoulder 1 GetItemTextureFilename(pContainer, pItemTXTNum, i + 1, 2); - paperdoll_armor_texture[i][v32][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// shoulder 2 + paperdoll_armor_texture[i][v32][2] = assets->GetImage_16BitAlpha(pContainer);// shoulder 2 pItemTXTNum++; } GetItemTextureFilename(pContainer, 516, i + 1, 0);//artefacts - paperdoll_armor_texture[i][v32][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32][0] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 516, i + 1, 1); - paperdoll_armor_texture[i][v32][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32][1] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 516, i + 1, 2); - paperdoll_armor_texture[i][v32][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32][2] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 505, i + 1, 0); - paperdoll_armor_texture[i][v32 + 1][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 1][0] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 505, i + 1, 1); - paperdoll_armor_texture[i][v32 + 1][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 1][1] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 505, i + 1, 2); - paperdoll_armor_texture[i][v32 + 1][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 1][2] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 504, i + 1, 0); - paperdoll_armor_texture[i][v32 + 2][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 2][0] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 504, i + 1, 1); - paperdoll_armor_texture[i][v32 + 2][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 2][1] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 504, i + 1, 2); - paperdoll_armor_texture[i][v32 + 2][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 2][2] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 533, i + 1, 0); - paperdoll_armor_texture[i][v32 + 3][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 3][0] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 533, i + 1, 1); - paperdoll_armor_texture[i][v32 + 3][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 3][1] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 533, i + 1, 2); - paperdoll_armor_texture[i][v32 + 3][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_armor_texture[i][v32 + 3][2] = assets->GetImage_16BitAlpha(pContainer); for ( v33 = 0; v33 < 5; ++v33 )//boots { GetItemTextureFilename(pContainer, v33 + 115, i + 1, 0); - paperdoll_boots_texture[i][v33] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_boots_texture[i][v33] = assets->GetImage_16BitAlpha(pContainer); } GetItemTextureFilename(pContainer, 512, i + 1, 0); - paperdoll_boots_texture[i][v33] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_boots_texture[i][v33] = assets->GetImage_16BitAlpha(pContainer); for ( v38 = 0; v38 < 5; ++v38 )//Cloak { GetItemTextureFilename(pContainer, v38 + 105, i + 1, 0); - paperdoll_cloak_texture[i][v38] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_texture[i][v38] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, v38 + 105, i + 1, 1); - paperdoll_cloak_collar_texture[i][v38] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_collar_texture[i][v38] = assets->GetImage_16BitAlpha(pContainer); } + GetItemTextureFilename(pContainer, 525, i + 1, 0); - paperdoll_cloak_texture[i][5] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_texture[i][5] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 530, i + 1, 0); - paperdoll_cloak_texture[i][6] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_texture[i][6] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 547, i + 1, 0); - paperdoll_cloak_texture[i][7] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_texture[i][7] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 548, i + 1, 0); - paperdoll_cloak_texture[i][8] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_texture[i][8] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 550, i + 1, 0); - paperdoll_cloak_texture[i][9] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_texture[i][9] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 525, i + 1, 1); - paperdoll_cloak_collar_texture[i][5] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_collar_texture[i][5] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 530, i + 1, 1); - paperdoll_cloak_collar_texture[i][6] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_collar_texture[i][6] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 547, i + 1, 1); - paperdoll_cloak_collar_texture[i][7] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_collar_texture[i][7] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 548, i + 1, 1); - paperdoll_cloak_collar_texture[i][8] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_collar_texture[i][8] = assets->GetImage_16BitAlpha(pContainer); GetItemTextureFilename(pContainer, 550, i + 1, 1); - paperdoll_cloak_collar_texture[i][9] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + paperdoll_cloak_collar_texture[i][9] = assets->GetImage_16BitAlpha(pContainer); } //else //{ @@ -2364,23 +2422,25 @@ texture_num = (player_sex != 0) + 3; else texture_num = (player_sex != 0) + 1; + wsprintfA(pContainer, "pc23v%dBod", texture_num); - papredoll_dbods[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + papredoll_dbods[uPlayerID - 1] = assets->GetImage_16BitAlpha(pContainer); wsprintfA(pContainer, "pc23v%dlad", texture_num); - papredoll_dlads[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + papredoll_dlads[uPlayerID - 1] = assets->GetImage_16BitAlpha(pContainer); wsprintfA(pContainer, "pc23v%dlau", texture_num); - papredoll_dlaus[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + papredoll_dlaus[uPlayerID - 1] = assets->GetImage_16BitAlpha(pContainer); wsprintfA(pContainer, "pc23v%drh", texture_num); - papredoll_drhs[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + papredoll_drhs[uPlayerID - 1] = assets->GetImage_16BitAlpha(pContainer); wsprintfA(pContainer, "pc23v%dlh", texture_num); - papredoll_dlhs[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + papredoll_dlhs[uPlayerID - 1] = assets->GetImage_16BitAlpha(pContainer); wsprintfA(pContainer, "pc23v%dlhu", texture_num); - papredoll_dlhus[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + papredoll_dlhus[uPlayerID - 1] = assets->GetImage_16BitAlpha(pContainer); if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) - papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = 0; - papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = 0; - IsPlayerWearingWatersuit[uPlayerID] = 1; + paperdoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = nullptr; + papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = nullptr; + + IsPlayerWearingWatersuit[uPlayerID] = true; } } @@ -2391,21 +2451,24 @@ if (uPlayerID > 0 ) { - papredoll_dbods[uPlayerID - 1] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlads[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlaus[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_drhs [uPlayerID - 1] = pIcons_LOD->LoadTexture(drh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlhs [uPlayerID - 1] = pIcons_LOD->LoadTexture(dlh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlhus[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); + papredoll_dbods[uPlayerID - 1] = assets->GetImage_16BitAlpha(dbod_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace]); + papredoll_dlads[uPlayerID - 1] = assets->GetImage_16BitAlpha(dlad_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace]); + papredoll_dlaus[uPlayerID - 1] = assets->GetImage_16BitAlpha(dlau_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace]); + papredoll_drhs [uPlayerID - 1] = assets->GetImage_16BitAlpha(drh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace]); + papredoll_dlhs [uPlayerID - 1] = assets->GetImage_16BitAlpha(dlh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace]); + papredoll_dlhus[uPlayerID - 1] = assets->GetImage_16BitAlpha(dlhu_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace]); + wchar_t name[1024]; if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) { - wsprintfA(pContainer, "pc%02dbrd", pPlayers[uPlayerID]->uCurrentFace + 1); - papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfW(name, L"pc%02dbrd", pPlayers[uPlayerID]->uCurrentFace + 1); + paperdoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = assets->GetImage_16BitAlpha(name); } - wsprintfA(pContainer, "item281pc%02d", pPlayers[uPlayerID]->uCurrentFace + 1); - papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - IsPlayerWearingWatersuit[uPlayerID] = 0; + + wsprintfW(name, L"item281pc%02d", pPlayers[uPlayerID]->uCurrentFace + 1); + papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = assets->GetImage_16BitAlpha(name); + + IsPlayerWearingWatersuit[uPlayerID] = false; } }