mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-19 14:38:18 +00:00
commit
2c6b573217
36
.gitignore
vendored
36
.gitignore
vendored
|
@ -1,24 +1,24 @@
|
|||
bam
|
||||
.bam
|
||||
config.lua
|
||||
objs
|
||||
/bam
|
||||
/.bam
|
||||
/config.lua
|
||||
/objs
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.pyo
|
||||
scripts/work/
|
||||
src/game/generated/
|
||||
SDL.dll
|
||||
freetype.dll
|
||||
autoexec.cfg
|
||||
/SDL.dll
|
||||
/freetype.dll
|
||||
/autoexec.cfg
|
||||
|
||||
crapnet*
|
||||
dilate*
|
||||
fake_server*
|
||||
map_resave*
|
||||
map_version*
|
||||
mastersrv*
|
||||
packetgen*
|
||||
teeworlds*
|
||||
teeworlds_srv*
|
||||
tileset_border*
|
||||
versionsrv*
|
||||
/crapnet*
|
||||
/dilate*
|
||||
/fake_server*
|
||||
/map_resave*
|
||||
/map_version*
|
||||
/mastersrv*
|
||||
/packetgen*
|
||||
/teeworlds*
|
||||
/teeworlds_srv*
|
||||
/tileset_border*
|
||||
/versionsrv*
|
||||
|
|
|
@ -80,7 +80,7 @@ void dbg_assert_imp(const char *filename, int line, int test, const char *msg)
|
|||
|
||||
void dbg_break()
|
||||
{
|
||||
*((unsigned*)0) = 0x0;
|
||||
*((volatile unsigned*)0) = 0x0;
|
||||
}
|
||||
|
||||
void dbg_msg(const char *sys, const char *fmt, ...)
|
||||
|
@ -166,6 +166,8 @@ void *mem_alloc_debug(const char *filename, int line, unsigned size, unsigned al
|
|||
MEMTAIL *tail;
|
||||
MEMHEADER *header = (struct MEMHEADER *)malloc(size+sizeof(MEMHEADER)+sizeof(MEMTAIL));
|
||||
dbg_assert(header != 0, "mem_alloc failure");
|
||||
if(!header)
|
||||
return NULL;
|
||||
tail = (struct MEMTAIL *)(((char*)(header+1))+size);
|
||||
header->size = size;
|
||||
header->filename = filename;
|
||||
|
|
|
@ -33,6 +33,13 @@ void dbg_assert(int test, const char *msg);
|
|||
#define dbg_assert(test,msg) dbg_assert_imp(__FILE__, __LINE__, test, msg)
|
||||
void dbg_assert_imp(const char *filename, int line, int test, const char *msg);
|
||||
|
||||
|
||||
#ifdef __clang_analyzer__
|
||||
#include <assert.h>
|
||||
#undef dbg_assert
|
||||
#define dbg_assert(test,msg) assert(test)
|
||||
#endif
|
||||
|
||||
/*
|
||||
Function: dbg_break
|
||||
Breaks into the debugger.
|
||||
|
|
|
@ -154,7 +154,7 @@ public:
|
|||
void pop_back() { tl_assert(!empty()); end--; }
|
||||
T& front() { tl_assert(!empty()); return *begin; }
|
||||
T& back() { tl_assert(!empty()); return *(end-1); }
|
||||
T& index(unsigned i) { tl_assert(i >= 0 && i < (unsigned)(end-begin)); return begin[i]; }
|
||||
T& index(unsigned i) { tl_assert(i < (unsigned)(end-begin)); return begin[i]; }
|
||||
unsigned size() const { return (unsigned)(end-begin); }
|
||||
plain_range slice(unsigned startindex, unsigned endindex)
|
||||
{
|
||||
|
|
|
@ -1300,7 +1300,6 @@ void CClient::ProcessServerPacket(CNetChunk *pPacket)
|
|||
}
|
||||
|
||||
// unpack delta
|
||||
PurgeTick = DeltaTick;
|
||||
SnapSize = m_SnapshotDelta.UnpackDelta(pDeltaShot, pTmpBuffer3, pDeltaData, DeltaSize);
|
||||
if(SnapSize < 0)
|
||||
{
|
||||
|
@ -1339,7 +1338,7 @@ void CClient::ProcessServerPacket(CNetChunk *pPacket)
|
|||
if(m_aSnapshots[SNAP_PREV] && m_aSnapshots[SNAP_PREV]->m_Tick < PurgeTick)
|
||||
PurgeTick = m_aSnapshots[SNAP_PREV]->m_Tick;
|
||||
if(m_aSnapshots[SNAP_CURRENT] && m_aSnapshots[SNAP_CURRENT]->m_Tick < PurgeTick)
|
||||
PurgeTick = m_aSnapshots[SNAP_PREV]->m_Tick;
|
||||
PurgeTick = m_aSnapshots[SNAP_CURRENT]->m_Tick;
|
||||
m_SnapshotStorage.PurgeUntil(PurgeTick);
|
||||
|
||||
// add new
|
||||
|
|
|
@ -296,6 +296,8 @@ public:
|
|||
INITFLAG_BORDERLESS = 8,
|
||||
};
|
||||
|
||||
virtual ~IGraphicsBackend() {}
|
||||
|
||||
virtual int Init(const char *pName, int *Width, int *Height, int FsaaSamples, int Flags) = 0;
|
||||
virtual int Shutdown() = 0;
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@ void CSnapIDPool::FreeID(int ID)
|
|||
}
|
||||
|
||||
|
||||
void CServerBan::Init(IConsole *pConsole, IStorage *pStorage, CServer* pServer)
|
||||
void CServerBan::InitServerBan(IConsole *pConsole, IStorage *pStorage, CServer* pServer)
|
||||
{
|
||||
CNetBan::Init(pConsole, pStorage);
|
||||
|
||||
|
@ -1609,7 +1609,7 @@ void CServer::RegisterCommands()
|
|||
Console()->Chain("console_output_level", ConchainConsoleOutputLevelUpdate, this);
|
||||
|
||||
// register console commands in sub parts
|
||||
m_ServerBan.Init(Console(), Storage(), this);
|
||||
m_ServerBan.InitServerBan(Console(), Storage(), this);
|
||||
m_pGameServer->OnConsoleInit();
|
||||
}
|
||||
|
||||
|
|
|
@ -50,10 +50,10 @@ class CServerBan : public CNetBan
|
|||
public:
|
||||
class CServer *Server() const { return m_pServer; }
|
||||
|
||||
void Init(class IConsole *pConsole, class IStorage *pStorage, class CServer* pServer);
|
||||
void InitServerBan(class IConsole *pConsole, class IStorage *pStorage, class CServer* pServer);
|
||||
|
||||
int BanAddr(const NETADDR *pAddr, int Seconds, const char *pReason);
|
||||
int BanRange(const CNetRange *pRange, int Seconds, const char *pReason);
|
||||
virtual int BanAddr(const NETADDR *pAddr, int Seconds, const char *pReason);
|
||||
virtual int BanRange(const CNetRange *pRange, int Seconds, const char *pReason);
|
||||
|
||||
static void ConBanExt(class IConsole::IResult *pResult, void *pUser);
|
||||
};
|
||||
|
|
|
@ -16,21 +16,21 @@
|
|||
|
||||
const char *CConsole::CResult::GetString(unsigned Index)
|
||||
{
|
||||
if (Index < 0 || Index >= m_NumArgs)
|
||||
if (Index >= m_NumArgs)
|
||||
return "";
|
||||
return m_apArgs[Index];
|
||||
}
|
||||
|
||||
int CConsole::CResult::GetInteger(unsigned Index)
|
||||
{
|
||||
if (Index < 0 || Index >= m_NumArgs)
|
||||
if (Index >= m_NumArgs)
|
||||
return 0;
|
||||
return str_toint(m_apArgs[Index]);
|
||||
}
|
||||
|
||||
float CConsole::CResult::GetFloat(unsigned Index)
|
||||
{
|
||||
if (Index < 0 || Index >= m_NumArgs)
|
||||
if (Index >= m_NumArgs)
|
||||
return 0.0f;
|
||||
return str_tofloat(m_apArgs[Index]);
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ int CConsole::ParseStart(CResult *pResult, const char *pString, int Length)
|
|||
if(Length < Len)
|
||||
Len = Length;
|
||||
|
||||
str_copy(pResult->m_aStringStorage, pString, Length);
|
||||
str_copy(pResult->m_aStringStorage, pString, Len);
|
||||
pStr = pResult->m_aStringStorage;
|
||||
|
||||
// get command
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <engine/storage.h>
|
||||
|
||||
#include <versionsrv/versionsrv.h>
|
||||
#include <versionsrv/mapversions.h>
|
||||
|
||||
#include "datafile.h"
|
||||
#include "memheap.h"
|
||||
|
|
|
@ -170,7 +170,7 @@ public:
|
|||
class IStorage *Storage() const { return m_pStorage; }
|
||||
|
||||
virtual ~CNetBan() {}
|
||||
virtual void Init(class IConsole *pConsole, class IStorage *pStorage);
|
||||
void Init(class IConsole *pConsole, class IStorage *pStorage);
|
||||
void Update();
|
||||
|
||||
virtual int BanAddr(const NETADDR *pAddr, int Seconds, const char *pReason);
|
||||
|
|
|
@ -195,13 +195,14 @@ int CSnapshotDelta::CreateDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pDstData
|
|||
|
||||
// fetch previous indices
|
||||
// we do this as a separate pass because it helps the cache
|
||||
for(i = 0; i < pTo->NumItems(); i++)
|
||||
const int NumItems = pTo->NumItems();
|
||||
for(i = 0; i < NumItems; i++)
|
||||
{
|
||||
pCurItem = pTo->GetItem(i); // O(1) .. O(n)
|
||||
aPastIndecies[i] = GetItemIndexHashed(pCurItem->Key(), Hashlist); // O(n) .. O(n^n)
|
||||
}
|
||||
|
||||
for(i = 0; i < pTo->NumItems(); i++)
|
||||
for(i = 0; i < NumItems; i++)
|
||||
{
|
||||
// do delta
|
||||
ItemSize = pTo->GetItemSize(i); // O(1) .. O(n)
|
||||
|
@ -474,7 +475,7 @@ int CSnapshotStorage::Get(int Tick, int64 *pTagtime, CSnapshot **ppData, CSnapsh
|
|||
if(ppData)
|
||||
*ppData = pHolder->m_pSnap;
|
||||
if(ppAltData)
|
||||
*ppData = pHolder->m_pAltSnap;
|
||||
*ppAltData = pHolder->m_pAltSnap;
|
||||
return pHolder->m_SnapSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -1287,7 +1287,7 @@ void CGameClient::SendStartInfo()
|
|||
Msg.m_aUseCustomColors[p] = *gs_apUCCVariables[p];
|
||||
Msg.m_aSkinPartColors[p] = *gs_apColorVariables[p];
|
||||
}
|
||||
Client()->SendPackMsg(&Msg, MSGFLAG_VITAL);
|
||||
Client()->SendPackMsg(&Msg, MSGFLAG_VITAL|MSGFLAG_FLUSH);
|
||||
}
|
||||
|
||||
void CGameClient::SendKill()
|
||||
|
|
|
@ -2295,8 +2295,6 @@ void CEditor::RenderLayers(CUIRect ToolBox, CUIRect ToolBar, CUIRect View)
|
|||
if(Input()->KeyPresses(KEY_MOUSE_WHEEL_DOWN))
|
||||
s_ScrollValue = clamp(s_ScrollValue + 1.0f/ScrollNum, 0.0f, 1.0f);
|
||||
}
|
||||
else
|
||||
ScrollNum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2619,8 +2617,6 @@ void CEditor::RenderImages(CUIRect ToolBox, CUIRect ToolBar, CUIRect View)
|
|||
if(Input()->KeyPresses(KEY_MOUSE_WHEEL_DOWN))
|
||||
s_ScrollValue = clamp(s_ScrollValue + 1.0f/ScrollNum, 0.0f, 1.0f);
|
||||
}
|
||||
else
|
||||
ScrollNum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -578,7 +578,6 @@ int CEditor::PopupPoint(CEditor *pEditor, CUIRect View)
|
|||
{
|
||||
if(pEditor->m_SelectedPoints&(1<<v))
|
||||
{
|
||||
Color = 0;
|
||||
pQuad->m_aColors[v].r = (NewVal>>24)&0xff;
|
||||
pQuad->m_aColors[v].g = (NewVal>>16)&0xff;
|
||||
pQuad->m_aColors[v].b = (NewVal>>8)&0xff;
|
||||
|
|
|
@ -680,11 +680,14 @@ void CGameContext::OnMessage(int MsgID, CUnpacker *pUnpacker, int ClientID)
|
|||
void *pRawMsg = m_NetObjHandler.SecureUnpackMsg(MsgID, pUnpacker);
|
||||
CPlayer *pPlayer = m_apPlayers[ClientID];
|
||||
|
||||
if(!pRawMsg && g_Config.m_Debug)
|
||||
if(!pRawMsg)
|
||||
{
|
||||
char aBuf[256];
|
||||
str_format(aBuf, sizeof(aBuf), "dropped weird message '%s' (%d), failed on '%s'", m_NetObjHandler.GetMsgName(MsgID), MsgID, m_NetObjHandler.FailedMsgOn());
|
||||
Console()->Print(IConsole::OUTPUT_LEVEL_DEBUG, "server", aBuf);
|
||||
if(g_Config.m_Debug)
|
||||
{
|
||||
char aBuf[256];
|
||||
str_format(aBuf, sizeof(aBuf), "dropped weird message '%s' (%d), failed on '%s'", m_NetObjHandler.GetMsgName(MsgID), MsgID, m_NetObjHandler.FailedMsgOn());
|
||||
Console()->Print(IConsole::OUTPUT_LEVEL_DEBUG, "server", aBuf);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1025,7 +1028,6 @@ void CGameContext::OnMessage(int MsgID, CUnpacker *pUnpacker, int ClientID)
|
|||
{
|
||||
OptionMsg.m_NumOptions = NumOptions;
|
||||
Server()->SendPackMsg(&OptionMsg, MSGFLAG_VITAL, ClientID);
|
||||
NumOptions = 0;
|
||||
}
|
||||
|
||||
// send tuning parameters to client
|
||||
|
|
|
@ -924,8 +924,8 @@ void IGameController::CycleMap()
|
|||
pNextMap = pMapRotation;
|
||||
|
||||
// cut out the next map
|
||||
char aBuf[512];
|
||||
for(int i = 0; i < 512; i++)
|
||||
char aBuf[512] = {0};
|
||||
for(int i = 0; i < 511; i++)
|
||||
{
|
||||
aBuf[i] = pNextMap[i];
|
||||
if(IsSeparator(pNextMap[i]) || pNextMap[i] == 0)
|
||||
|
|
|
@ -21,7 +21,7 @@ CGameControllerCTF::CGameControllerCTF(CGameContext *pGameServer)
|
|||
}
|
||||
|
||||
// balancing
|
||||
bool CGameControllerCTF::CanBeMovedOnBalance(int ClientID)
|
||||
bool CGameControllerCTF::CanBeMovedOnBalance(int ClientID) const
|
||||
{
|
||||
CCharacter* Character = GameServer()->m_apPlayers[ClientID]->GetCharacter();
|
||||
if(Character)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
class CGameControllerCTF : public IGameController
|
||||
{
|
||||
// balancing
|
||||
virtual bool CanBeMovedOnBalance(int ClientID);
|
||||
virtual bool CanBeMovedOnBalance(int ClientID) const;
|
||||
|
||||
// game
|
||||
class CFlag *m_apFlags[2];
|
||||
|
|
22
src/versionsrv/mapversions.h
Normal file
22
src/versionsrv/mapversions.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
||||
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||
#ifndef VERSIONSRV_MAPVERSIONS_H
|
||||
#define VERSIONSRV_MAPVERSIONS_H
|
||||
|
||||
static CMapVersion s_aMapVersionList[] = {
|
||||
{"ctf1", {0x06, 0xb5, 0xf1, 0x17}, {0x00, 0x00, 0x12, 0x38}},
|
||||
{"ctf2", {0x27, 0xbc, 0x5e, 0xac}, {0x00, 0x00, 0x64, 0x1a}},
|
||||
{"ctf3", {0xa3, 0x73, 0x9d, 0x41}, {0x00, 0x00, 0x17, 0x0f}},
|
||||
{"ctf4", {0xbe, 0x7c, 0x4d, 0xb9}, {0x00, 0x00, 0x2e, 0xfe}},
|
||||
{"ctf5", {0xd9, 0x21, 0x29, 0xa0}, {0x00, 0x00, 0x2f, 0x4c}},
|
||||
{"ctf6", {0x28, 0xc8, 0x43, 0x51}, {0x00, 0x00, 0x69, 0x2f}},
|
||||
{"ctf7", {0x1d, 0x35, 0x98, 0x72}, {0x00, 0x00, 0x15, 0x87}},
|
||||
{"dm1", {0xf2, 0x15, 0x9e, 0x6e}, {0x00, 0x00, 0x16, 0xad}},
|
||||
{"dm2", {0x71, 0x83, 0x98, 0x78}, {0x00, 0x00, 0x21, 0xdf}},
|
||||
{"dm6", {0x47, 0x4d, 0xa2, 0x35}, {0x00, 0x00, 0x1e, 0x95}},
|
||||
{"dm7", {0x42, 0x6d, 0xa1, 0x67}, {0x00, 0x00, 0x27, 0x2a}},
|
||||
{"dm8", {0x85, 0xf1, 0x1e, 0xd6}, {0x00, 0x00, 0x9e, 0xbd}},
|
||||
{"dm9", {0x42, 0xd4, 0x77, 0x7e}, {0x00, 0x00, 0x20, 0x11}},
|
||||
};
|
||||
static const int s_NumMapVersionItems = sizeof(s_aMapVersionList)/sizeof(CMapVersion);
|
||||
#endif
|
|
@ -11,23 +11,6 @@ struct CMapVersion
|
|||
unsigned char m_aSize[4];
|
||||
};
|
||||
|
||||
static CMapVersion s_aMapVersionList[] = {
|
||||
{"ctf1", {0x06, 0xb5, 0xf1, 0x17}, {0x00, 0x00, 0x12, 0x38}},
|
||||
{"ctf2", {0x27, 0xbc, 0x5e, 0xac}, {0x00, 0x00, 0x64, 0x1a}},
|
||||
{"ctf3", {0xa3, 0x73, 0x9d, 0x41}, {0x00, 0x00, 0x17, 0x0f}},
|
||||
{"ctf4", {0xbe, 0x7c, 0x4d, 0xb9}, {0x00, 0x00, 0x2e, 0xfe}},
|
||||
{"ctf5", {0xd9, 0x21, 0x29, 0xa0}, {0x00, 0x00, 0x2f, 0x4c}},
|
||||
{"ctf6", {0x28, 0xc8, 0x43, 0x51}, {0x00, 0x00, 0x69, 0x2f}},
|
||||
{"ctf7", {0x1d, 0x35, 0x98, 0x72}, {0x00, 0x00, 0x15, 0x87}},
|
||||
{"dm1", {0xf2, 0x15, 0x9e, 0x6e}, {0x00, 0x00, 0x16, 0xad}},
|
||||
{"dm2", {0x71, 0x83, 0x98, 0x78}, {0x00, 0x00, 0x21, 0xdf}},
|
||||
{"dm6", {0x47, 0x4d, 0xa2, 0x35}, {0x00, 0x00, 0x1e, 0x95}},
|
||||
{"dm7", {0x42, 0x6d, 0xa1, 0x67}, {0x00, 0x00, 0x27, 0x2a}},
|
||||
{"dm8", {0x85, 0xf1, 0x1e, 0xd6}, {0x00, 0x00, 0x9e, 0xbd}},
|
||||
{"dm9", {0x42, 0xd4, 0x77, 0x7e}, {0x00, 0x00, 0x20, 0x11}},
|
||||
};
|
||||
static const int s_NumMapVersionItems = sizeof(s_aMapVersionList)/sizeof(CMapVersion);
|
||||
|
||||
static const unsigned char VERSIONSRV_GETVERSION[] = {255, 255, 255, 255, 'v', 'e', 'r', 'g'};
|
||||
static const unsigned char VERSIONSRV_VERSION[] = {255, 255, 255, 255, 'v', 'e', 'r', 's'};
|
||||
|
||||
|
|
Loading…
Reference in a new issue