$records register
command to enable the bot to send the messages from #records to your server's channel.$records unregister
to unsubscribe)block_on
. but that actually blocks the current thread until completionprintln!
is IO ^^println!
is IO ^^ std::io
/std::fs
in a tokio task, tokio can't interrupt youstd::io
/std::fs
in a tokio task, tokio can't interrupt you block_on
tasksyield_now()
?10000*10000*32
bits right? (edited)10000*10000*32
bits right? (edited)10000*10000*32
bits right? (edited)cargo clean
YOUR PROJECTS NOW!!!CTile *pNewData = new CTile[NewW * NewH];
2023-10-13 19:25:33 I chat: *** 'Teero' called vote to change server option 'Map: BIG_MAZE' (No reason given)
2023-10-13 19:25:33 I chat: *** Vote passed
[1] 8238 segmentation fault (core dumped) DDNet-Server
welp its back to debuggingvoid CLayers::InitTilemapSkip()
{
for(int g = 0; g < NumGroups(); g++)
{
const CMapItemGroup *pGroup = GetGroup(g);
for(int l = 0; l < pGroup->m_NumLayers; l++)
{
const CMapItemLayer *pLayer = GetLayer(pGroup->m_StartLayer + l);
if(pLayer->m_Type == LAYERTYPE_TILES)
{
const CMapItemLayerTilemap *pTilemap = (CMapItemLayerTilemap *)pLayer;
CTile *pTiles = (CTile *)m_pMap->GetData(pTilemap->m_Data);
for(int y = 0; y < pTilemap->m_Height; y++)
{
for(int x = 1; x < pTilemap->m_Width;)
{
int SkippedX;
for(SkippedX = 1; x + SkippedX < pTilemap->m_Width && SkippedX < 255; SkippedX++)
{
if(pTiles[y * pTilemap->m_Width + x + SkippedX].m_Index) <<< segfault
break;
}
pTiles[y * pTilemap->m_Width + x].m_Skip = SkippedX - 1;
x += SkippedX;
}
}
}
}
}
}
w * h
does not cause an integer overflow in various placesw * h
overflows at around w = h = 46340
int
?m_Width
? (edited)size_t
int
exist xdvoid CLayers::InitTilemapSkip()
m_Skip
for tiles. This is used to skip tiles which are empty during rendering (at least before the fancy buffering)void CLayers::InitTilemapSkip()
{
for(int g = 0; g < NumGroups(); g++)
{
const CMapItemGroup *pGroup = GetGroup(g);
for(int l = 0; l < pGroup->m_NumLayers; l++)
{
const CMapItemLayer *pLayer = GetLayer(pGroup->m_StartLayer + l);
if(pLayer->m_Type == LAYERTYPE_TILES)
{
const CMapItemLayerTilemap *pTilemap = (CMapItemLayerTilemap *)pLayer;
CTile *pTiles = (CTile *)m_pMap->GetData(pTilemap->m_Data);
for(int y = 0; y < pTilemap->m_Height; y++)
{
for(int x = 1; x < pTilemap->m_Width;)
{
int SkippedX;
for(SkippedX = 1; x + SkippedX < pTilemap->m_Width && SkippedX < 255; SkippedX++)
{
if(pTiles[y * pTilemap->m_Width + x + SkippedX].m_Index) <<< segfault
break;
}
pTiles[y * pTilemap->m_Width + x].m_Skip = SkippedX - 1;
x += SkippedX;
}
}
}
}
}
}
PageUp
and PageDown
, which would go down/up the amount of entries rendered.
Other bugs fixed
a19c51f
Remove unused CHUNKFLAG_BIGSIZE
- Robyt3
7a624d7
Ensure demo player listener is initialized - Robyt3
543e63e
Use IO_MAX_PATH_LENGTH
for demo recorder/player filenames - Robyt3
a0b708a
Assert that demo recording/playback are properly started/stopped - Robyt3
9030c5b
Refactor CDemoEditor
, fix clang-tidy NOLINT
- Robyt3
1513946
Merge pull request #7341 from Robyt3/Engine-Demo-Editor-Refactoring - def-IVideo
instance.