MCPcopy Create free account
hub / github.com/crossuo/crossuo / DrawCharacter

Method DrawCharacter

src/Managers/AnimationManager.cpp:907–1360  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

905}
906
907void 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 {

Callers 1

DrawMethod · 0.80

Calls 15

RenderAdd_SetBlendFunction · 0.85
RenderAdd_SetColorFunction · 0.85
RenderAdd_DisableBlendFunction · 0.85
Render_PushScissorFunction · 0.85
Render_PopScissorFunction · 0.85
IsDeadMethod · 0.80
GetPolygoneColorMethod · 0.80
GetColorByNotorietyMethod · 0.80
HiddenMethod · 0.80
IsPoisonedMethod · 0.80

Tested by

no test coverage detected