

stdout_output_level for printing to stdout, console_output_level for
printing to local console and remote console and loglevel for the log
file.
Keep the old log level filters 0 for info and more severe, 1 for debug
and more severe and 2 for trace and more severe, introducing -1 for
warn, and -2 for error. -3 will show no log messages at all.









































SendChatTarget is cleaner than doing the version check at the call site?






SendChatTarget(1, OnlyForVersionGreaterThan=5), it seems weird to not just check it locally








if(x < 5) DoFunction() over DoFunctionIfLessThan(5)



SendChatTarget function isn't really nice)




















c++
char aBuff[IO_MAX_PATH_LENGTH];
if(str_comp(pAssetItem->m_aName, "default") == 0)
{
str_format(aBuff, sizeof(aBuff), "%s.png", pAssetName);
CImageInfo ImgInfo;
if(pGraphics->LoadPNG(&ImgInfo, aBuff, IStorage::TYPE_ALL))
{
pAssetItem->m_RenderTexture = pGraphics->LoadTextureRaw(ImgInfo.m_Width, ImgInfo.m_Height, ImgInfo.m_Format, ImgInfo.m_pData, ImgInfo.m_Format, 0);
pGraphics->FreePNG(&ImgInfo);
}
}
else
{
str_format(aBuff, sizeof(aBuff), "assets/%s/%s.png", pAssetName, pAssetItem->m_aName);
CImageInfo ImgInfo;
if(pGraphics->LoadPNG(&ImgInfo, aBuff, IStorage::TYPE_ALL))
{
pAssetItem->m_RenderTexture = pGraphics->LoadTextureRaw(ImgInfo.m_Width, ImgInfo.m_Height, ImgInfo.m_Format, ImgInfo.m_pData, ImgInfo.m_Format, 0);
pGraphics->FreePNG(&ImgInfo);
}
else
{
str_format(aBuff, sizeof(aBuff), "assets/%s/%s/%s.png", pAssetName, pAssetItem->m_aName, pAssetName);
if(pGraphics->LoadPNG(&ImgInfo, aBuff, IStorage::TYPE_ALL))
{
pAssetItem->m_RenderTexture = pGraphics->LoadTextureRaw(ImgInfo.m_Width, ImgInfo.m_Height, ImgInfo.m_Format, ImgInfo.m_pData, ImgInfo.m_Format, 0);
pGraphics->FreePNG(&ImgInfo);
}
}
}








c++
char aBuff[IO_MAX_PATH_LENGTH];
if(str_comp(pAssetItem->m_aName, "default") == 0)
{
str_format(aBuff, sizeof(aBuff), "%s.png", pAssetName);
CImageInfo ImgInfo;
if(pGraphics->LoadPNG(&ImgInfo, aBuff, IStorage::TYPE_ALL))
{
pAssetItem->m_RenderTexture = pGraphics->LoadTextureRaw(ImgInfo.m_Width, ImgInfo.m_Height, ImgInfo.m_Format, ImgInfo.m_pData, ImgInfo.m_Format, 0);
pGraphics->FreePNG(&ImgInfo);
}
}
else
{
str_format(aBuff, sizeof(aBuff), "assets/%s/%s.png", pAssetName, pAssetItem->m_aName);
CImageInfo ImgInfo;
if(pGraphics->LoadPNG(&ImgInfo, aBuff, IStorage::TYPE_ALL))
{
pAssetItem->m_RenderTexture = pGraphics->LoadTextureRaw(ImgInfo.m_Width, ImgInfo.m_Height, ImgInfo.m_Format, ImgInfo.m_pData, ImgInfo.m_Format, 0);
pGraphics->FreePNG(&ImgInfo);
}
else
{
str_format(aBuff, sizeof(aBuff), "assets/%s/%s/%s.png", pAssetName, pAssetItem->m_aName, pAssetName);
if(pGraphics->LoadPNG(&ImgInfo, aBuff, IStorage::TYPE_ALL))
{
pAssetItem->m_RenderTexture = pGraphics->LoadTextureRaw(ImgInfo.m_Width, ImgInfo.m_Height, ImgInfo.m_Format, ImgInfo.m_pData, ImgInfo.m_Format, 0);
pGraphics->FreePNG(&ImgInfo);
}
}
} void LoadPNGFromPath(char* aBuf, idkthetype* RenderTexture)




















































class CMatDefault : public CTuneParams //CTuneParams is not allowed to contain virtual functions
{
public:
CMatDefault() = default;
virtual int GetSkidSound();
virtual float GetSkidThreshold() { return 500.0f; }
virtual float GetDynamicAcceleration(float Velocity) { return m_GroundControlAccel; }
};







+1 to statically calculate the number of parameters without relying on the size of any classes
m_NumTuningParamters++; to the macro is easy, but the class needs to be readable as an int*, WAIT can't I write an operator for that 



















import discord
if messageIsValid()
addReactions()










c7fb013 Add io_read_all, io_read_all_str and mem_has_null: - Robyt3
c1c8797 Add IStorage::ReadFile and ReadFileStr: - Robyt3
93536b8 Use io_read_all to load font files - Robyt3
7050022 Use ReadFile in CServerBrowser::LoadDDNetInfoJson - Robyt3
74d7d4f Use ReadFile to load wv/opus sound files - Robyt3
ceca44e Use io_read_all to load icon font - Robyt3
5d49ee3 Use ReadFile to load updater index json - Robyt3
0a46332 Use ReadFile to load server maps - Robyt3
de2744c Use ReadFile to read opus sounds in editor - Robyt3
dc52377 Use ReadFile to read shader - Robyt3
992723d Merge #5430 - bors[bot]



rename manpage it talks about files
rename isn't limited to files in linux






renameat2 









|| or && because i did ( cond1 || (cond2 && cond3)) 

(cond1 || cond2 && cond3) what then?&& comes first because its 'stronger'? (edited)
(cond1 || cond2 && cond3) is the same as (cond1 || (cond2 && cond3))
((cond1 || cond2) && cond3)











CCharacter *pChar = ChatHelper()->GameClient()->m_GameWorld.GetCharacterByID(ChatHelper()->GameClient()->m_LocalIDs[g_Config.m_ClDummy]);
if(pChar)
continue;
vec2 Self = pChar->m_Pos;






















pkill -f electron it loses messages. It messes up message order.


































































































m_MaterialIsLoaded should be set to false







2

dc52377fc59f41f8687ca4176ba73196d7790e69 is the first bad commit
commit dc52377fc59f41f8687ca4176ba73196d7790e69
Author: Robert Müller
Date: Tue Jun 14 21:27:10 2022 +0200
Use `ReadFile` to read shader
src/engine/client/backend/vulkan/backend_vulkan.cpp | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
```
bt
#0 0x0000000007cfc5c5 in vkGetInstanceProcAddr ()
from C:\Windows\system32\nvoglv64.dll
#1 0x0000000000661007 ...






























reserve instead of resize but of course that wouldn't set the actual size of the vector after I copy in the data.
Closes #5442.




























Check out the DDNet Wiki by Patiga & Zwelf on wiki.ddnet.tw
Check out DDNet's Discord server on ddnet.tw/discord
Check out DDNet's TeamSpeak server hosted by laxa on ts.ddnet.twCheck out the DDNet Wiki by Patiga & Zwelf on wiki.ddnet.tw
Check out the DDNet Discord server on ddnet.tw/discord
Check out the DDNet TeamSpeak server hosted by laxa on ts.ddnet.tw

