72 lines
2.4 KiB
Lua
72 lines
2.4 KiB
Lua
TacRPOldKilliconDraw = TacRPOldKilliconDraw or killicon.Draw
|
|
local killicons_cachednames = {}
|
|
local killicons_cachedicons = {}
|
|
local killiconmat = Material("HUD/killicons/default")
|
|
|
|
TacRP.KillIconAlias = {
|
|
["tacrp_proj_rpg7"] = "tacrp_rpg7",
|
|
["tacrp_proj_rpg7_ratshot"] = "tacrp_rpg7",
|
|
|
|
["tacrp_proj_40mm_3gl"] = "tacrp_m320",
|
|
["tacrp_proj_40mm_gas"] = "tacrp_m320",
|
|
["tacrp_proj_40mm_he"] = "tacrp_m320",
|
|
["tacrp_proj_40mm_heat"] = "tacrp_m320",
|
|
["tacrp_proj_40mm_lvg"] = "tacrp_m320",
|
|
["tacrp_proj_40mm_smoke"] = "tacrp_m320",
|
|
|
|
["tacrp_proj_ks23_flashbang"] = "tacrp_ks23",
|
|
|
|
["tacrp_proj_knife"] = "tacrp_knife",
|
|
|
|
["tacrp_gas_cloud"] = "tacrp_proj_nade_gas", -- also used by 40mm gas but whatever
|
|
["tacrp_fire_cloud"] = "tacrp_proj_nade_thermite",
|
|
["tacrp_nuke_cloud"] = "tacrp_proj_nade_nuke",
|
|
}
|
|
|
|
TacRPNewKilliconDraw = function(x, y, name, alpha)
|
|
name = TacRP.KillIconAlias[name] or name
|
|
local wpn = weapons.Get(name)
|
|
|
|
if tobool(killicons_cachednames[name]) == true then
|
|
local w, h
|
|
|
|
-- nade icons are smaller
|
|
if killicons_cachednames[name] == 2 then
|
|
w, h = 48, 48
|
|
else
|
|
w, h = 64, 64
|
|
end
|
|
|
|
x = x - w * 0.5
|
|
y = y - h * 0.3
|
|
|
|
cam.Start2D()
|
|
|
|
local selecticon = killicons_cachedicons[name]
|
|
|
|
if !selecticon then -- not cached
|
|
local loadedmat = Material(wpn.IconOverride or "entities/" .. name .. ".png", "smooth mips")
|
|
killicons_cachedicons[name] = loadedmat
|
|
selecticon = loadedmat
|
|
end
|
|
|
|
surface.SetDrawColor(255, 255, 255, alpha)
|
|
surface.SetMaterial(selecticon or killiconmat)
|
|
surface.DrawTexturedRect(x, y, w, h)
|
|
cam.End2D()
|
|
else
|
|
if killicons_cachednames[name] == nil then -- not cached yet, checking for tacrp
|
|
if TacRP.QuickNades_EntLookup[name] then
|
|
killicons_cachednames[name] = 2
|
|
killicons_cachedicons[name] = TacRP.QuickNades[TacRP.QuickNades_EntLookup[name]].Icon or killiconmat
|
|
else
|
|
killicons_cachednames[name] = (weapons.Get(name) and weapons.Get(name).ArcticTacRP) or false
|
|
end -- weapons.get() will return nil for any hl2 base gun
|
|
else -- we know it is totally not tacrp gun
|
|
return TacRPOldKilliconDraw(x, y, name, alpha)
|
|
end
|
|
end
|
|
end
|
|
|
|
killicon.Draw = TacRPNewKilliconDraw
|