


infjump enabled by default for backward compatibility. However, it unfortunately breaks prediction for 18.7 - 18.9 clients if infjumps are disabled with invincible enabled - the sound and jump particles play but the player doesn't jump (no rubberbanding) I think it's fine as it doesn't affect gameplay and the feature is rarely used.

i to a size_t
and chatgpt says to use static_cast<int> on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames array (edited)




(i - 1) == s_AutoMapReferenceCurrent is also present, which, again, would be comparing an int to a size_t if i changed it










i to a size_t
and chatgpt says to use static_cast<int> on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames array (edited)





a in notation, has to be an array then


i to a size_t
and chatgpt says to use static_cast<int> on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames array (edited)

i to a size_t
and chatgpt says to use static_cast<int> on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames array (edited)

struct A {
a: i32,
b: i32,
}
impl A {
pub fn hello(&self, other: i32) -> i32 {
return self.a * other;
}
pub fn set_a(&mut self, value: i32) {
self.a = value;
return;
}
}
pub fn main() -> i32 {
let mut x: A = A {
a: 2,
b: 3,
};
x.set_a(4);
return x.a;
}
this compiles in the lang im making at work 





































if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
}


if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
} 



if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
} 


if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
} 









Ryo purposely going to back to 88 - as all things should be alligned, fix it to be 666 issues ty


1

hey sorry but my NEW editor released in 2025 ships an AI LSP server, which tells me that THIS function should rather be a for loop (edited)
















1






/**
* Gets a client from a string
*
* @param pStr The string to get the client from, will be moved to the end of the next word, will be modified
* @param ClientId The client id to be returned, -1 for no client found
* @param NameToClientId Takes a string and returns an optional client id if it is a valid client name
*
* @return If parsing succeeded
*/
template <typename NameToClientIdType>
static bool GetClientFromString(NameToClientIdType NameToClientId, char *&pStr, int &ClientId)
where do i put this theres no shared/chat and console does something else


<tee picture> <name>: whisper content when you type /whisper bun bun hello world

<tee picture> <name>: whisper content when you type /whisper bun bun hello world 







































































bind a say &rIM REALLY FUICKING PISSED (edited)




shell_execute with user-defined input was possible without vulnerability, being able to immediately open links from the client already sounds like a recipe for trouble.
1



ah_yes_look_at_my_big_word (unicode probably has more ways to add spaces))


shell_execute with user-defined input was possible without vulnerability, being able to immediately open links from the client already sounds like a recipe for trouble. 

expression must have pointer-to-class type but it has type "__gnu_cxx::__normal_iterator<std::vector<CNamePlatePart *, std::allocator<CNamePlatePart *>>::pointer, std::vector<CNamePlatePart *, std::allocator<CNamePlatePart *>>>::pointer" (aka "CNamePlatePart **")C/C++(131)std::vector<CNamePlatePart> m_aParts = {
CNamePlatePartName()
};
how am i allowed to do this if CNamePlatePart is inherited from the inherited objects have a bigger size?




































1










don't dig too deep idk what the hell I've said tbh




























1













1















/home/solly/Games/ddnet/src/game/client/components/nameplates.cpp:382:10: error: no member named 'Init' in 'std::unique_ptr<CNamePlatePart>'
382 | Part->Init(This);
| ~~~~~~^

class CNamePlatePart
{
protected:
float m_Width = 0.0f;
float m_Height = 0.0f;
float m_Padding = 5.0f;
bool m_NewLine = false;
public:
virtual void Init(CGameClient &This) {};
























- imagine chiller having merge access















expression must have class type but it has type "std::__shared_ptr<CNamePlatePart, __gnu_cxx::_S_atomic>::element_type *" (aka "CNamePlatePart *")C/C++(153)



expression must have class type but it has type "std::__shared_ptr<CNamePlatePart, __gnu_cxx::_S_atomic>::element_type *" (aka "CNamePlatePart *")C/C++(153) 

(*Part).Init(This)




for(auto Part = m_aParts.begin(); Part != m_aParts.end(); ++Part)
Part->get().Init(This); (edited)





*(std::vector<theclass>::iterator*) = the class








for(auto Part = m_aParts.begin(); Part != m_aParts.end(); ++Part)
Part->get().Init(This); (edited)(*Part)->Init(This) is more idiomatic imo



(*Part)->Init(This) is more idiomatic imo 


- imagine chiller having merge access
1




m_vpParts



m_vpParts 

m_vpParts 

1
1
















1



























1













1


















































































1















m_Visible = *(Member *)(&Data + offsetof(CNamePlateRenderData, Member));'CNamePlatePart' is a private member of 'CNamePlatePart' thats a bold statement







include function here










&*&&*&**&*&*&**&*&**&**&**&*&





&*&&*&**&*&*&**&*&**&**&**&*& 





template<typename _Tp, typename _Alloc, typename _Predicate>
_GLIBCXX20_CONSTEXPR
inline typename vector<_Tp, _Alloc>::size_type
erase_if(vector<_Tp, _Alloc>& __cont, _Predicate __pred)
{
using namespace __gnu_cxx;
_GLIBCXX_STD_C::vector<_Tp, _Alloc>& __ucont = __cont;
const auto __osz = __cont.size();
const auto __end = __ucont.end();
auto __removed = std::__remove_if(__ucont.begin(), __end,
__ops::__pred_iter(std::ref(__pred)));
if (__removed != __end)
{
__cont.erase(__niter_wrap(__cont.begin(), __removed),
__cont.end());
return __osz - __cont.size();
}
return 0;
}











1














This.Graphics()->QuadsBegin();
This.Graphics()->SetColor(1.0f, 0.0f, 0.0f, 1.0f);
This.Graphics()->DrawCircle(X, Y, 5, 10);
// This.Graphics()->TextureClear();
This.Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
This.Graphics()->QuadsEnd(); (edited)










[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I host_lookup: host='localhost' port=0 3
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I net: failed to bind socket with domain 10 and type 1 (98 'Address already in use')
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I econ: couldn't open socket. port might already be in use
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: server name is 'shroobie'
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I censorlist: failed to open 'censorlist.txt'
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I sql: failed to open wordlist, using fallback
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: version 19.0 on linux amd64
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: git revision hash: 00bb74c498992122
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 E server: Failed load announcements from 'announcement.txt'
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: +-------------------------+
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: | rcon password: 'pTSqot' |
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: +-------------------------+
[2025-01-27T18:18:25Z ERROR trashmap] Error in handler: deadline has elapsed
which is weird (edited)
econ: bound to 127.0.0.1 but doesn't see it in time

bound to localhost:8303 ?




TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_NO_FIRST_CHARACTER_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_LAST_CHARACTER_ADVANCE); what is this meant to do (in rendering directions in nameplate, i just left it in last time)
Wait how the frug does This.Graphics()->TextureSet(g_pData->m_aImages[m_ImageId].m_Id); not assert fail (edited)

Graphics()->TextureSet(g_pData->m_aImages[IMAGE_STRONGWEAK].m_Id);
Graphics()->QuadsBegin();
ehh???void CGraphics_Threaded::TextureSet(CTextureHandle TextureId)
{
dbg_assert(m_Drawing == 0, "called Graphics()->TextureSet within begin");
dbg_assert(!TextureId.IsValid() || m_vTextureIndices[TextureId.Id()] == -1, "Texture handle was not invalid, but also did not correlate to an existing texture.");
m_State.m_Texture = TextureId.Id();
}void CGraphics_Threaded::QuadsBegin()
{
dbg_assert(m_Drawing == 0, "called Graphics()->QuadsBegin twice");
m_Drawing = DRAWING_QUADS;
QuadsSetSubset(0, 0, 1, 1);
QuadsSetRotation(0);
SetColor(1, 1, 1, 1);
}

TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_NO_FIRST_CHARACTER_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_LAST_CHARACTER_ADVANCE); what is this meant to do (in rendering directions in nameplate, i just left it in last time)
Wait how the frug does This.Graphics()->TextureSet(g_pData->m_aImages[m_ImageId].m_Id); not assert fail (edited)


void CGraphics_Threaded::TextureSet(CTextureHandle TextureId)
{
dbg_assert(m_Drawing == 0, "called Graphics()->TextureSet within begin");
dbg_assert(!TextureId.IsValid() || m_vTextureIndices[TextureId.Id()] == -1, "Texture handle was not invalid, but also did not correlate to an existing texture.");
m_State.m_Texture = TextureId.Id();
} 

-pGlyph->m_OffsetX to first char -Advance + BearingX + CharWidth to last char (edited)


























TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT 
















a*1 + b*0 + c*0d + d*0 (edited)





































































CServer::DistinctClientCount function a check for the address being nullptr was missing in the inner loop. Before #9591 this was comparing addresses from uninitialized memory instead. Duplicate checks of the client state are avoided by first fetching the addesses of all clients which are ingame.
Closes #9597.







