





1


































































1




























































-voptargs="+acc" without any explanation, added it works perfectly
software?

-novopt option is now deprecated and will be removed in future releases.

-novopt is actually the default still in quartus, so if you just open a waveform and click simulate it just won't work





next step is now sequential logic













#0 0x7b7e05 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11
#1 0x7b98f4 in CLayers::InitBackground(IMap*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:167:2
#2 0x1361a8f in CMenuBackground::LoadMenuBackground(bool, bool) /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:267:15
#3 0x135e576 in CMenuBackground::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:50:3
#4 0x17daa6e in CGameClient::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/gameclient.cpp:265:15
#5 0xcee84a in CClient::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/client/client.cpp:3143:16
.#0 0x79ae55 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11
.#1 0x799cb6 in CLayers::Init(IKernel*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:115:2
.#2 0xb37697 in CGameContext::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/server/gamecontext.cpp:3210:11
.#3 0x86b7fe in CServer::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/server/server.cpp:2631:16

vector4_base<int> probably wouldn't break



const char * const CSkins::ms_apColorComponents[NUM_COLOR_COMPONENTS] = {"hue", "sat", "lgt", "alp"};



const CSkin::SSkinTextures *pSkinTextures = pInfo->m_CustomColoredSkin ? &pInfo->m_ColorableRenderSkin : &pInfo->m_OriginalRenderSkin; render.cpp









const CSkin::SSkinTextures *pSkinTextures
CSkin::SSkinTextures *pSkinTextures (edited)




c++
const char* pData = &otherdata;
str_format(pData, "%s", "abcdef");
c++
char aBuf[] = { 'a', 'b', 'c' };
const char* p1 = aBuf;
p1[0] = 'z'; // <-- error
char* p2 = aBuf;
p2[0] = 'z'; // <-- no error (edited)c++
struct a {
int* p;
};
struct a tmp;
const a *pPtr = &tmp;
int* pPtrModify = pPtr->p;
*pPtrModify = 1;
will probably work

c++
char aBuf[] = { 'a', 'b', 'c' };
const char* p1 = aBuf;
p1[0] = 'z'; // <-- error
char* p2 = aBuf;
p2[0] = 'z'; // <-- no error (edited)
const X is actually syntactic sugar for X const, meaning const is usually on the right of what it qualifies.
and const char * const is the same as char const * const, const std::string& is the same as std::string const&…



const X is actually syntactic sugar for X const, meaning const is usually on the right of what it qualifies.
and const char * const is the same as char const * const, const std::string& is the same as std::string const&…
(edited)

1










































EntityEx is surprisingly rigid wtf











EntityEx seems to be about static entities in the map(?)








StaticEntityEx


SNAP_MORE where we can put the overflow instead of dropping it




DDNetLaser like we have a DDNetProjectile



DDNetLaser like we have a DDNetProjectile 
DynEntityEx for entities that are spawned at runtime







IsRifle = false










== true or == false on bools















c++
new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type;
new(pTimelineMarkers) CTimelineMarkers;
decltype(*pDemoHeader) in the first case?
error: new cannot be applied to a reference typedecltype(*pDemoHeader) returns a reference to a class (here CDemoHeader&) which cannot be passed to new...




#ifdef DEBUG it's so useful in debug builds




c++
new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type;
new(pTimelineMarkers) CTimelineMarkers; 



c++
new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type;
new(pTimelineMarkers) CTimelineMarkers; 






