Index: ps/trunk/source/gui/ObjectTypes/CMiniMap.cpp =================================================================== --- ps/trunk/source/gui/ObjectTypes/CMiniMap.cpp +++ ps/trunk/source/gui/ObjectTypes/CMiniMap.cpp @@ -33,6 +33,7 @@ #include "lib/external_libraries/libsdl.h" #include "lib/ogl.h" #include "lib/timer.h" +#include "maths/MathUtil.h" #include "ps/ConfigDB.h" #include "ps/Filesystem.h" #include "ps/Game.h" @@ -621,6 +622,15 @@ } else { + if (cmpMinimap->UsesPlayerColor()) + { + // Based on article: https://alaingalvan.tumblr.com/post/79864187609/glsl-color-correction-shaders + const int contrast = 10; + v.r = Clamp(((v.r - 128) * contrast) + 128, 0, 255); + v.g = Clamp(((v.g - 128) * contrast) + 128, 0, 255); + v.b = Clamp(((v.b - 128) * contrast) + 128, 0, 255); + + } addVertex(v, attrColor, attrPos); ++m_EntitiesDrawn; } Index: ps/trunk/source/simulation2/components/CCmpMinimap.cpp =================================================================== --- ps/trunk/source/simulation2/components/CCmpMinimap.cpp +++ ps/trunk/source/simulation2/components/CCmpMinimap.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2019 Wildfire Games. +/* Copyright (C) 2021 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -195,6 +195,11 @@ return true; } + virtual bool UsesPlayerColor() const + { + return m_UsePlayerColor; + } + virtual bool CheckPing(double currentTime, double pingDuration) { if (!m_Active || !m_IsPinging) Index: ps/trunk/source/simulation2/components/ICmpMinimap.h =================================================================== --- ps/trunk/source/simulation2/components/ICmpMinimap.h +++ ps/trunk/source/simulation2/components/ICmpMinimap.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Wildfire Games. +/* Copyright (C) 2021 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -45,6 +45,8 @@ */ virtual void UpdateColor() = 0; + virtual bool UsesPlayerColor() const = 0; + DECLARE_INTERFACE_TYPE(Minimap) };