






















































































1




i don't think we need to have whether 0.7 skins are good idea convo, just to avoid stencil (edited)
i'd like to stick to whether we should try to implement the adaptive markings



i mean i kinda want your help













that's why i think we need your help









if chiller can add 0.7 into ddnet, someone could add new skin system too. it's just no one took the liberty of designing the thing, probably due to fear of potentially throwing a huge amount of efforts to waste.


































dont trick the system





























german rich spy













5









git log -Schillerbot.png














cl_skin_community_download_url https://ddnet.org/skins/skin/community/uhd/
and
cl_skin_download_url https://skins.ddnet.org/skin/uhd/ (edited)















































EEXIST is probably unlikelyENFILE maybe if something else was opening lots of files
ENOSPC could happen if you are on a full disk but that breaks a lot more you'd notice
I can't really see any of the others really being possible


EEXIST






/cores still, on Catalina though







/cores still, on Catalina though 






0.5f as the darkest lighting value for color config variables, but the 0.7 skin color config variables should use 61 / 255.0f instead:
https://github.com/ddnet/ddnet/blob/580b2690a0e1f274b08ce4868ec5dde835278206/src/engine/shared/config.cpp#L120-L121
This uses UnclampLighting with the default argument, which is ColorHSLA::DARKEST_LGT (0.5f):
https://github.com/ddnet/ddnet/blob/580b2690a0e1f274b08ce4868ec5dde835278206/src/engine/shared/console.cpp#L52-L53
Either...
sem_open would fail because O_EXCL prevents creating semaphores if the name is already used.
This is made more unlikely by also including the PID in the semaphore name. Additionally, the semaphore na...
nlohmann::json InfoJson = {
{"max_clients", MaxClients},
{"max_players", MaxPlayers},
{"passworded", g_Config.m_Password[0] ? true : false},
{"game_type", GameServer()->GameType()},
{"name", g_Config.m_SvName},
{"map", {{"name", m_aCurrentMap},
{"sha256", aMapSha256},
{"size", m_aCurrentMapSize[MAP_TYPE_SIX]}}},
{"version", GameServer()->Version()},
{"client_score_kind", ScoreKind},
{"requires_login", false},
{"clients", nlohmann::json::array()}};
instead of
CJsonStringWriter JsonWriter;
JsonWriter.BeginObject();
JsonWriter.WriteAttribute("max_clients");
JsonWriter.WriteIntValue(MaxClients);
JsonWriter.WriteAttribute("max_players");
JsonWriter.WriteIntValue(MaxPlayers);
JsonWriter.WriteAttribute("passworded");
JsonWriter.WriteBoolValue(g_Config.m_Password[0]);
JsonWriter.WriteAttribute("game_type");
JsonWriter.WriteStrValue(GameServer()->GameType());
JsonWriter.WriteAttribute("name");
JsonWriter.WriteStrValue(g_Config.m_SvName);
JsonWriter.WriteAttribute("map");
JsonWriter.BeginObject();
JsonWriter.WriteAttribute("name");
JsonWriter.WriteStrValue(m_aCurrentMap);
JsonWriter.WriteAttribute("sha256");
JsonWriter.WriteStrValue(aMapSha256);
JsonWriter.WriteAttribute("size");
JsonWriter.WriteIntValue(m_aCurrentMapSize[MAP_TYPE_SIX]);
JsonWriter.EndObject();
JsonWriter.WriteAttribute("version");
JsonWriter.WriteStrValue(GameServer()->Version());
JsonWriter.WriteAttribute("client_score_kind");
JsonWriter.WriteStrValue(ScoreKind);
JsonWriter.WriteAttribute("requires_login");
JsonWriter.WriteBoolValue(false);
JsonWriter.WriteAttribute("clients");
JsonWriter.BeginArray();






















