Guest User

Untitled

a guest
Jul 6th, 2025
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | None | 0 0
  1. if (Settings::V::Weapon) {
  2.                 CPlayer_WeaponServices* WeaponServices = Player.Player->m_pWeaponServices();
  3.                 if (!WeaponServices) continue;
  4.  
  5.                 auto WeaponBaseEntity = Interface::GameResourceServiceClient->Instance->Get<C_BaseEntity>(WeaponServices->m_hActiveWeapon().index());
  6.                 if (!WeaponBaseEntity) continue;
  7.  
  8.                 const char* WeaponClassName = X("");
  9.                 SchemaClassInfoData_t* WeaponClassInfo = nullptr;
  10.                 WeaponBaseEntity->GetSchemaClassInfo(&WeaponClassInfo);
  11.  
  12.                 if (WeaponClassInfo) {
  13.                     WeaponClassName = WeaponClassInfo->m_szName;
  14.                 }
  15.                 else {
  16.                     WeaponClassName = X("");
  17.                 }
  18.  
  19.                 char SzName[64] = {};
  20.                 strncpy_s(SzName, WeaponClassName, sizeof(SzName) - 1);
  21.  
  22.                 for (char* p = SzName; *p; ++p) *p = (char)tolower(*p);
  23.                 if (strncmp(SzName, X("c_"), 2) == 0) memmove(SzName, SzName + 2, strlen(SzName) - 1);
  24.                 if (strncmp(SzName, X("weapon"), 6) == 0) memmove(SzName, SzName + 6, strlen(SzName) - 5);
  25.  
  26.                 const char* IconPath = GetWeaponIcon(SzName);
  27.                 if (IconPath == X("")) continue;
  28.  
  29.                 printf(X("%s - %s\n"), SzName, IconPath);
  30.  
  31.                 static CImageProxySource* PImageProxy = nullptr;
  32.                 if (!PImageProxy) {
  33.                     CUIEngineSource2* PUIEngine = Interface::PanoramaUIEngine->AccessUIEngine();
  34.                     if (!PUIEngine) continue;
  35.  
  36.                     CImageResourceManager* PResourceManager = PUIEngine->GetResourceManager();
  37.                     if (!PResourceManager) continue;
  38.  
  39.                     PImageProxy = PResourceManager->LoadImageInternal(IconPath, EImageFormat::BGRA8888);
  40.                 }
  41.  
  42.                 if (PImageProxy) {
  43.                     ImVec2 RawImageSize = PImageProxy->GetImageSize();
  44.  
  45.                     float Scale = ScaledFontSize / RawImageSize.y;
  46.                     ImVec2 ImageSize = RawImageSize * Scale;
  47.  
  48.                     float ImageX = BoxX + BoxWidth * 0.5f - ImageSize.x * 0.5f;
  49.                     float ImageY = BoxY + BoxHeight + BottomTextOffset;
  50.  
  51.                     ImVec2 Pos = ImVec2(ImageX, ImageY);
  52.                     ImVec2 Size = ImVec2(ImageX + ImageSize.x, ImageY + ImageSize.y);
  53.                     ImTextureID Tex = (ImTextureID)PImageProxy->GetNativeTexture();
  54.                     float OutlineThickness = 1.0f;
  55.  
  56.                     ImGui::GetForegroundDrawList()->AddImage(Tex, Pos + ImVec2(-OutlineThickness, 0), Size + ImVec2(-OutlineThickness, 0), ImVec2(0, 0), ImVec2(1, 1), ImColor(0, 0, 0, 255));
  57.                     ImGui::GetForegroundDrawList()->AddImage(Tex, Pos + ImVec2(OutlineThickness, 0), Size + ImVec2(OutlineThickness, 0), ImVec2(0, 0), ImVec2(1, 1), ImColor(0, 0, 0, 255));
  58.                     ImGui::GetForegroundDrawList()->AddImage(Tex, Pos + ImVec2(0, -OutlineThickness), Size + ImVec2(0, -OutlineThickness), ImVec2(0, 0), ImVec2(1, 1), ImColor(0, 0, 0, 255));
  59.                     ImGui::GetForegroundDrawList()->AddImage(Tex, Pos + ImVec2(0, OutlineThickness), Size + ImVec2(0, OutlineThickness), ImVec2(0, 0), ImVec2(1, 1), ImColor(0, 0, 0, 255));
  60.                     ImGui::GetForegroundDrawList()->AddImage(Tex, Pos, Size);
  61.  
  62.                     BottomTextOffset += ImageSize.y;
  63.                 }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment