| 905 | } |
| 906 | |
| 907 | void CAnimationManager::DrawCharacter(CGameCharacter *obj, int x, int y) |
| 908 | { |
| 909 | m_Transform = false; |
| 910 | |
| 911 | int drawX = x + obj->OffsetX; |
| 912 | int drawY = y + obj->OffsetY - obj->OffsetZ - 3; |
| 913 | |
| 914 | uint16_t targetColor = 0; |
| 915 | bool needHPLine = false; |
| 916 | uint32_t serial = obj->Serial; |
| 917 | bool drawShadow = !obj->IsDead(); |
| 918 | m_UseBlending = false; |
| 919 | |
| 920 | if (g_DrawAura) |
| 921 | { |
| 922 | uint32_t auraColor = g_ColorManager.GetPolygoneColor( |
| 923 | 16, g_ConfigManager.GetColorByNotoriety(obj->Notoriety)); |
| 924 | #ifndef NEW_RENDERER_ENABLED |
| 925 | glEnable(GL_BLEND); |
| 926 | glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); |
| 927 | |
| 928 | glColor4ub(ToColorR(auraColor), ToColorG(auraColor), ToColorB(auraColor), 0xFF); |
| 929 | |
| 930 | glUniform1iARB(g_ShaderDrawMode, SDM_NO_COLOR); |
| 931 | #else |
| 932 | RenderAdd_SetBlend( |
| 933 | g_renderCmdList, |
| 934 | BlendStateCmd{ BlendFactor::BlendFactor_One, |
| 935 | BlendFactor::BlendFactor_OneMinusSrcAlpha }); |
| 936 | RenderAdd_SetColor( |
| 937 | g_renderCmdList, |
| 938 | SetColorCmd{ { ToColorR(auraColor) / 255.f, |
| 939 | ToColorG(auraColor) / 255.f, |
| 940 | ToColorB(auraColor) / 255.f, |
| 941 | ToColorA(auraColor) / 255.f } }); |
| 942 | |
| 943 | ShaderUniformCmd cmd{ g_ShaderDrawMode, ShaderUniformType::ShaderUniformType_Int1 }; |
| 944 | cmd.value.asInt1 = SDM_NO_COLOR; |
| 945 | RenderAdd_SetShaderUniform(g_renderCmdList, cmd); |
| 946 | #endif |
| 947 | g_AuraTexture.Draw(drawX - g_AuraTexture.Width / 2, drawY - g_AuraTexture.Height / 2); |
| 948 | |
| 949 | #ifndef NEW_RENDERER_ENABLED |
| 950 | glColor4f(1.0f, 1.0f, 1.0f, 1.0f); |
| 951 | glDisable(GL_BLEND); |
| 952 | #else |
| 953 | RenderAdd_SetColor(g_renderCmdList, SetColorCmd{ g_ColorWhite }); |
| 954 | RenderAdd_DisableBlend(g_renderCmdList); |
| 955 | #endif |
| 956 | } |
| 957 | |
| 958 | if (obj->Hidden()) |
| 959 | { |
| 960 | drawShadow = false; |
| 961 | Color = 0x038E; |
| 962 | |
| 963 | if (obj->IsPlayer() || !g_ConfigManager.UseHiddenModeOnlyForSelf) |
| 964 | { |
no test coverage detected