mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 01:58:19 +00:00
cleaned up dependencies in game/server a bit
This commit is contained in:
parent
5e4caa9b9c
commit
24bda2faa0
51
src/game/server/alloc.h
Normal file
51
src/game/server/alloc.h
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/* (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 GAME_SERVER_ALLOC_H
|
||||||
|
#define GAME_SERVER_ALLOC_H
|
||||||
|
|
||||||
|
#include <new>
|
||||||
|
|
||||||
|
#define MACRO_ALLOC_HEAP() \
|
||||||
|
public: \
|
||||||
|
void *operator new(size_t Size) \
|
||||||
|
{ \
|
||||||
|
void *p = mem_alloc(Size, 1); \
|
||||||
|
/*dbg_msg("", "++ %p %d", p, size);*/ \
|
||||||
|
mem_zero(p, Size); \
|
||||||
|
return p; \
|
||||||
|
} \
|
||||||
|
void operator delete(void *pPtr) \
|
||||||
|
{ \
|
||||||
|
/*dbg_msg("", "-- %p", p);*/ \
|
||||||
|
mem_free(pPtr); \
|
||||||
|
} \
|
||||||
|
private:
|
||||||
|
|
||||||
|
#define MACRO_ALLOC_POOL_ID() \
|
||||||
|
public: \
|
||||||
|
void *operator new(size_t Size, int id); \
|
||||||
|
void operator delete(void *p); \
|
||||||
|
private:
|
||||||
|
|
||||||
|
#define MACRO_ALLOC_POOL_ID_IMPL(POOLTYPE, PoolSize) \
|
||||||
|
static char ms_PoolData##POOLTYPE[PoolSize][sizeof(POOLTYPE)] = {{0}}; \
|
||||||
|
static int ms_PoolUsed##POOLTYPE[PoolSize] = {0}; \
|
||||||
|
void *POOLTYPE::operator new(size_t Size, int id) \
|
||||||
|
{ \
|
||||||
|
dbg_assert(sizeof(POOLTYPE) == Size, "size error"); \
|
||||||
|
dbg_assert(!ms_PoolUsed##POOLTYPE[id], "already used"); \
|
||||||
|
/*dbg_msg("pool", "++ %s %d", #POOLTYPE, id);*/ \
|
||||||
|
ms_PoolUsed##POOLTYPE[id] = 1; \
|
||||||
|
mem_zero(ms_PoolData##POOLTYPE[id], Size); \
|
||||||
|
return ms_PoolData##POOLTYPE[id]; \
|
||||||
|
} \
|
||||||
|
void POOLTYPE::operator delete(void *p) \
|
||||||
|
{ \
|
||||||
|
int id = (POOLTYPE*)p - (POOLTYPE*)ms_PoolData##POOLTYPE; \
|
||||||
|
dbg_assert(ms_PoolUsed##POOLTYPE[id], "not used"); \
|
||||||
|
/*dbg_msg("pool", "-- %s %d", #POOLTYPE, id);*/ \
|
||||||
|
ms_PoolUsed##POOLTYPE[id] = 0; \
|
||||||
|
mem_zero(ms_PoolData##POOLTYPE[id], sizeof(POOLTYPE)); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,9 +1,11 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include <new>
|
|
||||||
#include <engine/shared/config.h>
|
#include <engine/shared/config.h>
|
||||||
|
|
||||||
|
#include <game/generated/server_data.h>
|
||||||
#include <game/server/gamecontext.h>
|
#include <game/server/gamecontext.h>
|
||||||
#include <game/mapitems.h>
|
#include <game/server/gamecontroller.h>
|
||||||
|
#include <game/server/player.h>
|
||||||
|
|
||||||
#include "character.h"
|
#include "character.h"
|
||||||
#include "laser.h"
|
#include "laser.h"
|
||||||
|
|
|
@ -4,17 +4,7 @@
|
||||||
#define GAME_SERVER_ENTITIES_CHARACTER_H
|
#define GAME_SERVER_ENTITIES_CHARACTER_H
|
||||||
|
|
||||||
#include <game/server/entity.h>
|
#include <game/server/entity.h>
|
||||||
#include <game/generated/server_data.h>
|
|
||||||
#include <game/generated/protocol.h>
|
|
||||||
|
|
||||||
#include <game/gamecore.h>
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
WEAPON_GAME = -3, // team switching etc
|
|
||||||
WEAPON_SELF = -2, // console kill command
|
|
||||||
WEAPON_WORLD = -1, // death tiles etc
|
|
||||||
};
|
|
||||||
|
|
||||||
class CCharacter : public CEntity
|
class CCharacter : public CEntity
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include <game/server/gamecontext.h>
|
#include <game/server/gamecontext.h>
|
||||||
|
|
||||||
|
#include "character.h"
|
||||||
#include "flag.h"
|
#include "flag.h"
|
||||||
|
|
||||||
CFlag::CFlag(CGameWorld *pGameWorld, int Team)
|
CFlag::CFlag(CGameWorld *pGameWorld, int Team)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include <game/generated/protocol.h>
|
|
||||||
#include <game/server/gamecontext.h>
|
#include <game/server/gamecontext.h>
|
||||||
|
|
||||||
|
#include "character.h"
|
||||||
#include "laser.h"
|
#include "laser.h"
|
||||||
|
|
||||||
CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner)
|
CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner)
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include <game/generated/protocol.h>
|
#include <game/generated/server_data.h>
|
||||||
#include <game/server/gamecontext.h>
|
#include <game/server/gamecontext.h>
|
||||||
|
#include <game/server/player.h>
|
||||||
|
|
||||||
|
#include "character.h"
|
||||||
#include "pickup.h"
|
#include "pickup.h"
|
||||||
|
|
||||||
CPickup::CPickup(CGameWorld *pGameWorld, int Type, int SubType)
|
CPickup::CPickup(CGameWorld *pGameWorld, int Type, int SubType)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include <game/generated/protocol.h>
|
|
||||||
#include <game/server/gamecontext.h>
|
#include <game/server/gamecontext.h>
|
||||||
|
|
||||||
|
#include "character.h"
|
||||||
#include "projectile.h"
|
#include "projectile.h"
|
||||||
|
|
||||||
CProjectile::CProjectile(CGameWorld *pGameWorld, int Type, int Owner, vec2 Pos, vec2 Dir, int Span,
|
CProjectile::CProjectile(CGameWorld *pGameWorld, int Type, int Owner, vec2 Pos, vec2 Dir, int Span,
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "gamecontext.h"
|
#include "gamecontext.h"
|
||||||
|
#include "player.h"
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
// Entity
|
// Entity
|
||||||
|
|
|
@ -3,52 +3,11 @@
|
||||||
#ifndef GAME_SERVER_ENTITY_H
|
#ifndef GAME_SERVER_ENTITY_H
|
||||||
#define GAME_SERVER_ENTITY_H
|
#define GAME_SERVER_ENTITY_H
|
||||||
|
|
||||||
#include <new>
|
|
||||||
#include <base/vmath.h>
|
#include <base/vmath.h>
|
||||||
|
|
||||||
#include <game/server/gameworld.h>
|
#include <game/server/gameworld.h>
|
||||||
|
|
||||||
#define MACRO_ALLOC_HEAP() \
|
#include "alloc.h"
|
||||||
public: \
|
|
||||||
void *operator new(size_t Size) \
|
|
||||||
{ \
|
|
||||||
void *p = mem_alloc(Size, 1); \
|
|
||||||
/*dbg_msg("", "++ %p %d", p, size);*/ \
|
|
||||||
mem_zero(p, Size); \
|
|
||||||
return p; \
|
|
||||||
} \
|
|
||||||
void operator delete(void *pPtr) \
|
|
||||||
{ \
|
|
||||||
/*dbg_msg("", "-- %p", p);*/ \
|
|
||||||
mem_free(pPtr); \
|
|
||||||
} \
|
|
||||||
private:
|
|
||||||
|
|
||||||
#define MACRO_ALLOC_POOL_ID() \
|
|
||||||
public: \
|
|
||||||
void *operator new(size_t Size, int id); \
|
|
||||||
void operator delete(void *p); \
|
|
||||||
private:
|
|
||||||
|
|
||||||
#define MACRO_ALLOC_POOL_ID_IMPL(POOLTYPE, PoolSize) \
|
|
||||||
static char ms_PoolData##POOLTYPE[PoolSize][sizeof(POOLTYPE)] = {{0}}; \
|
|
||||||
static int ms_PoolUsed##POOLTYPE[PoolSize] = {0}; \
|
|
||||||
void *POOLTYPE::operator new(size_t Size, int id) \
|
|
||||||
{ \
|
|
||||||
dbg_assert(sizeof(POOLTYPE) == Size, "size error"); \
|
|
||||||
dbg_assert(!ms_PoolUsed##POOLTYPE[id], "already used"); \
|
|
||||||
/*dbg_msg("pool", "++ %s %d", #POOLTYPE, id);*/ \
|
|
||||||
ms_PoolUsed##POOLTYPE[id] = 1; \
|
|
||||||
mem_zero(ms_PoolData##POOLTYPE[id], Size); \
|
|
||||||
return ms_PoolData##POOLTYPE[id]; \
|
|
||||||
} \
|
|
||||||
void POOLTYPE::operator delete(void *p) \
|
|
||||||
{ \
|
|
||||||
int id = (POOLTYPE*)p - (POOLTYPE*)ms_PoolData##POOLTYPE; \
|
|
||||||
dbg_assert(ms_PoolUsed##POOLTYPE[id], "not used"); \
|
|
||||||
/*dbg_msg("pool", "-- %s %d", #POOLTYPE, id);*/ \
|
|
||||||
ms_PoolUsed##POOLTYPE[id] = 0; \
|
|
||||||
mem_zero(ms_PoolData##POOLTYPE[id], sizeof(POOLTYPE)); \
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Class: Entity
|
Class: Entity
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include "eventhandler.h"
|
#include "eventhandler.h"
|
||||||
#include "gamecontext.h"
|
#include "gamecontext.h"
|
||||||
|
#include "player.h"
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
// Event handler
|
// Event handler
|
||||||
|
|
|
@ -1,18 +1,22 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include <new>
|
|
||||||
#include <base/math.h>
|
#include <base/math.h>
|
||||||
|
|
||||||
#include <engine/shared/config.h>
|
#include <engine/shared/config.h>
|
||||||
|
#include <engine/shared/memheap.h>
|
||||||
#include <engine/map.h>
|
#include <engine/map.h>
|
||||||
#include <engine/console.h>
|
|
||||||
#include "gamecontext.h"
|
|
||||||
#include <game/version.h>
|
|
||||||
#include <game/collision.h>
|
#include <game/collision.h>
|
||||||
#include <game/gamecore.h>
|
#include <game/gamecore.h>
|
||||||
#include "gamemodes/dm.h"
|
#include <game/version.h>
|
||||||
#include "gamemodes/tdm.h"
|
|
||||||
|
#include "entities/character.h"
|
||||||
#include "gamemodes/ctf.h"
|
#include "gamemodes/ctf.h"
|
||||||
|
#include "gamemodes/dm.h"
|
||||||
#include "gamemodes/mod.h"
|
#include "gamemodes/mod.h"
|
||||||
|
#include "gamemodes/tdm.h"
|
||||||
|
#include "gamecontext.h"
|
||||||
|
#include "player.h"
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,17 +3,14 @@
|
||||||
#ifndef GAME_SERVER_GAMECONTEXT_H
|
#ifndef GAME_SERVER_GAMECONTEXT_H
|
||||||
#define GAME_SERVER_GAMECONTEXT_H
|
#define GAME_SERVER_GAMECONTEXT_H
|
||||||
|
|
||||||
#include <engine/server.h>
|
|
||||||
#include <engine/console.h>
|
#include <engine/console.h>
|
||||||
#include <engine/shared/memheap.h>
|
#include <engine/server.h>
|
||||||
|
|
||||||
#include <game/layers.h>
|
#include <game/layers.h>
|
||||||
#include <game/voting.h>
|
#include <game/voting.h>
|
||||||
|
|
||||||
#include "eventhandler.h"
|
#include "eventhandler.h"
|
||||||
#include "gamecontroller.h"
|
|
||||||
#include "gameworld.h"
|
#include "gameworld.h"
|
||||||
#include "player.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Tick
|
Tick
|
||||||
|
@ -81,9 +78,9 @@ public:
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
CEventHandler m_Events;
|
CEventHandler m_Events;
|
||||||
CPlayer *m_apPlayers[MAX_CLIENTS];
|
class CPlayer *m_apPlayers[MAX_CLIENTS];
|
||||||
|
|
||||||
IGameController *m_pController;
|
class IGameController *m_pController;
|
||||||
CGameWorld m_World;
|
CGameWorld m_World;
|
||||||
|
|
||||||
// helper functions
|
// helper functions
|
||||||
|
@ -113,7 +110,7 @@ public:
|
||||||
VOTE_ENFORCE_NO,
|
VOTE_ENFORCE_NO,
|
||||||
VOTE_ENFORCE_YES,
|
VOTE_ENFORCE_YES,
|
||||||
};
|
};
|
||||||
CHeap *m_pVoteOptionHeap;
|
class CHeap *m_pVoteOptionHeap;
|
||||||
CVoteOptionServer *m_pVoteOptionFirst;
|
CVoteOptionServer *m_pVoteOptionFirst;
|
||||||
CVoteOptionServer *m_pVoteOptionLast;
|
CVoteOptionServer *m_pVoteOptionLast;
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,11 @@
|
||||||
|
|
||||||
#include <game/mapitems.h>
|
#include <game/mapitems.h>
|
||||||
|
|
||||||
|
#include "entities/character.h"
|
||||||
#include "entities/pickup.h"
|
#include "entities/pickup.h"
|
||||||
#include "gamecontroller.h"
|
|
||||||
#include "gamecontext.h"
|
#include "gamecontext.h"
|
||||||
|
#include "gamecontroller.h"
|
||||||
|
#include "player.h"
|
||||||
|
|
||||||
|
|
||||||
IGameController::IGameController(CGameContext *pGameServer)
|
IGameController::IGameController(CGameContext *pGameServer)
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#define GAME_SERVER_GAMECONTROLLER_H
|
#define GAME_SERVER_GAMECONTROLLER_H
|
||||||
|
|
||||||
#include <base/vmath.h>
|
#include <base/vmath.h>
|
||||||
|
|
||||||
#include <game/generated/protocol.h>
|
#include <game/generated/protocol.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
#include <game/server/entities/character.h>
|
#include <game/server/entities/character.h>
|
||||||
#include <game/server/entities/flag.h>
|
#include <game/server/entities/flag.h>
|
||||||
#include <game/server/player.h>
|
|
||||||
#include <game/server/gamecontext.h>
|
#include <game/server/gamecontext.h>
|
||||||
|
#include <game/server/player.h>
|
||||||
#include "ctf.h"
|
#include "ctf.h"
|
||||||
|
|
||||||
CGameControllerCTF::CGameControllerCTF(CGameContext *pGameServer)
|
CGameControllerCTF::CGameControllerCTF(CGameContext *pGameServer)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include <engine/shared/config.h>
|
#include <engine/shared/config.h>
|
||||||
|
|
||||||
#include <game/server/entities/character.h>
|
#include <game/server/entities/character.h>
|
||||||
|
#include <game/server/gamecontext.h>
|
||||||
#include <game/server/player.h>
|
#include <game/server/player.h>
|
||||||
#include "tdm.h"
|
#include "tdm.h"
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
|
|
||||||
#include "gameworld.h"
|
#include "entities/character.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "gamecontext.h"
|
#include "gamecontext.h"
|
||||||
|
#include "gamecontroller.h"
|
||||||
|
#include "gameworld.h"
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
// game world
|
// game world
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
/* (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. */
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||||
#include <new>
|
|
||||||
#include <engine/shared/config.h>
|
#include "entities/character.h"
|
||||||
|
#include "gamecontext.h"
|
||||||
|
#include "gamecontroller.h"
|
||||||
#include "player.h"
|
#include "player.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,15 @@
|
||||||
#ifndef GAME_SERVER_PLAYER_H
|
#ifndef GAME_SERVER_PLAYER_H
|
||||||
#define GAME_SERVER_PLAYER_H
|
#define GAME_SERVER_PLAYER_H
|
||||||
|
|
||||||
// this include should perhaps be removed
|
#include "alloc.h"
|
||||||
#include "entities/character.h"
|
|
||||||
#include "gamecontext.h"
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
WEAPON_GAME = -3, // team switching etc
|
||||||
|
WEAPON_SELF = -2, // console kill command
|
||||||
|
WEAPON_WORLD = -1, // death tiles etc
|
||||||
|
};
|
||||||
|
|
||||||
// player object
|
// player object
|
||||||
class CPlayer
|
class CPlayer
|
||||||
|
|
Loading…
Reference in a new issue