ent defs cleanups

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4693 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
Lee Salzman
2009-11-07 07:14:42 +00:00
parent 3da1bdb579
commit c8a3b71a7d
4 changed files with 81 additions and 88 deletions
+10 -56
View File
@@ -1,13 +1,3 @@
#ifdef SERVER_CPP
#define __ext
#define __init(...) = __VA_ARGS__; // i hope, all used compilers support variadic macros ;)
#define __initf(...) __VA_ARGS__
#else
#define __ext extern
#define __init(...) ;
#define __initf(...) ;
#endif
enum // static entity types
{
NOTUSED = 0, // entity slot not in use in map
@@ -25,16 +15,7 @@ enum // static entity types
MAXENTTYPES
};
__ext const char *entnames[] __init(
{
"none?", "light", "playerstart",
"pistol", "ammobox","grenades",
"health", "armour", "akimbo",
"mapmodel", "trigger",
"ladder", "ctf-flag",
"sound", "clip", "plclip", "", ""
})
extern const char *entnames[];
#define isitem(i) ((i) >= I_CLIPS && (i) <= I_AKIMBO)
struct persistent_entity // map entity
@@ -61,23 +42,9 @@ struct entity : public persistent_entity
};
struct itemstat { int add, start, max, sound; };
__ext itemstat ammostats[] __init(
{
{1, 1, 1, S_ITEMAMMO}, //knife dummy
{16, 32, 72, S_ITEMAMMO}, //pistol
{14, 28, 21, S_ITEMAMMO}, //shotgun
{60, 90, 90, S_ITEMAMMO}, //subgun
{10, 20, 15, S_ITEMAMMO}, //sniper
{30, 60, 60, S_ITEMAMMO}, //assault
{2, 0, 2, S_ITEMAMMO}, //grenade
{72, 0, 72, S_ITEMAKIMBO} //akimbo
})
extern itemstat ammostats[];
__ext itemstat powerupstats[] __init(
{
{33, 100, 100, S_ITEMHEALTH}, //health
{50, 100, 100, S_ITEMARMOUR}, //armour
})
extern itemstat powerupstats[];
enum { GUN_KNIFE = 0, GUN_PISTOL, GUN_SHOTGUN, GUN_SUBGUN, GUN_SNIPER, GUN_ASSAULT, GUN_GRENADE, GUN_AKIMBO, NUMGUNS };
#define reloadable_gun(g) (g != GUN_KNIFE && g != GUN_GRENADE)
@@ -87,25 +54,15 @@ enum { GUN_KNIFE = 0, GUN_PISTOL, GUN_SHOTGUN, GUN_SUBGUN, GUN_SNIPER, GUN_ASSAU
#define EXPDAMRAD 10
struct guninfo { string modelname; short sound, reload, reloadtime, attackdelay, damage, projspeed, part, spread, recoil, magsize, mdl_kick_rot, mdl_kick_back, recoilincrease, recoilbase, maxrecoil, recoilbackfade, pushfactor; bool isauto; };
__ext guninfo guns[NUMGUNS] __init(
{
{ "knife", S_KNIFE, S_NULL, 0, 500, 50, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, false },
{ "pistol", S_PISTOL, S_RPISTOL, 1400, 170, 19, 0, 0, 80, 10, 8, 6, 5, 1, 40, 75, 150, 1, false },
{ "shotgun", S_SHOTGUN, S_RSHOTGUN, 2400, 1000, 5, 0, 0, 1, 35, 7, 9, 9, 1, 130, 500, 150, 1, false },
{ "subgun", S_SUBGUN, S_RSUBGUN, 1650, 80, 16, 0, 0, 70, 15, 30, 1, 2, 7, 15, 30, 250, 1, true },
{ "sniper", S_SNIPER, S_RSNIPER, 1950, 1500, 85, 0, 0, 60, 50, 5, 4, 4, 1, 100, 500, 100, 1, false },
{ "assault", S_ASSAULT, S_RASSAULT, 2000, 130, 24, 0, 0, 20, 40, 15, 0, 2, 2, 25, 60, 150, 1, true },
{ "grenade", S_NULL, S_NULL, 1000, 650, 200, 20, 6, 1, 1, 1, 3, 1, 0, 0, 0, 0, 3, false },
{ "pistol", S_PISTOL, S_RAKIMBO, 1400, 80, 19, 0, 0, 80, 10, 16, 6, 5, 4, 30, 75, 150, 1, true },
})
extern guninfo guns[NUMGUNS];
__ext int reloadtime(int gun) __initf({ return guns[gun].reloadtime; })
__ext int attackdelay(int gun) __initf({ return guns[gun].attackdelay; })
__ext int magsize(int gun) __initf({ return guns[gun].magsize; })
static inline int reloadtime(int gun) { return guns[gun].reloadtime; }
static inline int attackdelay(int gun) { return guns[gun].attackdelay; }
static inline int magsize(int gun) { return guns[gun].magsize; }
enum { TEAM_CLA = 0, TEAM_RVSF, TEAM_CLA_SPECT, TEAM_RVSF_SPECT, TEAM_SPECT, TEAM_NUM, TEAM_ANYACTIVE };
__ext const char *teamnames[] __init({"CLA", "RVSF", "CLA-SPECT", "RVSF-SPECT", "SPECTATOR", "void"})
__ext const char *teamnames_s[] __init({"CLA", "RVSF", "CSPC", "RSPC", "SPEC", "void"})
extern const char *teamnames[];
extern const char *teamnames_s[];
#define TEAM_VOID TEAM_NUM
#define isteam(a,b) (m_teammode && (a) == (b))
@@ -118,7 +75,7 @@ __ext const char *teamnames_s[] __init({"CLA", "RVSF", "CSPC", "RSPC", "SPEC", "
#define team_group(t) ((t) == TEAM_SPECT ? TEAM_SPECT : team_base(t))
#define team_tospec(t) ((t) == TEAM_SPECT ? TEAM_SPECT : team_base(t) + TEAM_CLA_SPECT - TEAM_CLA)
// note: team_isactive and team_base can/should be used to check the limits for arrays of size '2'
__ext const char *team_string(int t, bool abbr = false) __initf({ const char **n = abbr ? teamnames_s : teamnames; return team_isvalid(t) ? n[t] : n[TEAM_NUM]; })
static inline const char *team_string(int t, bool abbr = false) { const char **n = abbr ? teamnames_s : teamnames; return team_isvalid(t) ? n[t] : n[TEAM_NUM]; }
enum { ENT_PLAYER = 0, ENT_BOT, ENT_CAMERA, ENT_BOUNCE };
enum { CS_ALIVE = 0, CS_DEAD, CS_SPAWNING, CS_LAGGED, CS_EDITING, CS_SPECTATE };
@@ -606,6 +563,3 @@ public:
void onmoved(const vec &dist);
};
#undef __ext
#undef __init
#undef __initf
-28
View File
@@ -47,35 +47,7 @@ enum
extern void protocoldebug(bool enable);
// converts message code to char
#ifdef SERVER_CPP
const char *messagenames[] =
{
"SV_INITS2C", "SV_WELCOME", "SV_INITC2S", "SV_POS", "SV_POSC", "SV_POSN", "SV_TEXT", "SV_TEAMTEXT", "SV_TEXTME", "SV_TEAMTEXTME",
"SV_SOUND", "SV_VOICECOM", "SV_VOICECOMTEAM", "SV_CDIS",
"SV_SHOOT", "SV_EXPLODE", "SV_SUICIDE", "SV_AKIMBO", "SV_RELOAD", "SV_SCOPE",
"SV_GIBDIED", "SV_DIED", "SV_GIBDAMAGE", "SV_DAMAGE", "SV_HITPUSH", "SV_SHOTFX", "SV_THROWNADE",
"SV_TRYSPAWN", "SV_SPAWNSTATE", "SV_SPAWN", "SV_SPAWNDENY", "SV_FORCEDEATH", "SV_RESUME",
"SV_DISCSCORES", "SV_TIMEUP", "SV_EDITENT", "SV_ITEMACC",
"SV_MAPCHANGE", "SV_ITEMSPAWN", "SV_ITEMPICKUP",
"SV_PING", "SV_PONG", "SV_CLIENTPING", "SV_GAMEMODE",
"SV_EDITMODE", "SV_EDITH", "SV_EDITT", "SV_EDITS", "SV_EDITD", "SV_EDITE", "SV_NEWMAP",
"SV_SENDMAP", "SV_RECVMAP", "SV_REMOVEMAP",
"SV_SERVMSG", "SV_ITEMLIST", "SV_WEAPCHANGE", "SV_PRIMARYWEAP",
"SV_FLAGACTION", "SV_FLAGINFO", "SV_FLAGMSG", "SV_FLAGCNT",
"SV_ARENAWIN", "SV_LMSITEM",
"SV_SETADMIN", "SV_SERVOPINFO",
"SV_CALLVOTE", "SV_CALLVOTESUC", "SV_CALLVOTEERR", "SV_VOTE", "SV_VOTERESULT",
"SV_TRYTEAM", "SV_SETTEAM", "SV_TEAMDENY", "SV_SERVERMODE",
"SV_WHOIS", "SV_WHOISINFO",
"SV_LISTDEMOS", "SV_SENDDEMOLIST", "SV_GETDEMO", "SV_SENDDEMO", "SV_DEMOPLAYBACK",
"SV_CONNECT", "SV_SPECTCN",
"SV_CLIENT",
"SV_EXTENSION",
"SV_MAPIDENT"
};
#else
extern const char *messagenames[];
#endif //SERVER_CPP
#endif
enum { SA_KICK = 0, SA_BAN, SA_REMBANS, SA_MASTERMODE, SA_AUTOTEAM, SA_FORCETEAM, SA_GIVEADMIN, SA_MAP, SA_RECORDDEMO, SA_STOPDEMO, SA_CLEARDEMOS, SA_SERVERDESC, SA_SHUFFLETEAMS, SA_NUM};
+2 -4
View File
@@ -2,6 +2,8 @@
// runs dedicated or as client coroutine
// my first try // Brahma
#include "cube.h"
#ifdef WIN32
#include <io.h>
#else
@@ -10,10 +12,6 @@
#define _fileno fileno
#endif
#define SERVER_CPP
#include "cube.h"
#define DEBUGCOND (true)
#include "server.h"
+69
View File
@@ -332,3 +332,72 @@ extern string smapname;
extern mapstats smapstats;
extern char *maplayout;
const char *messagenames[] =
{
"SV_INITS2C", "SV_WELCOME", "SV_INITC2S", "SV_POS", "SV_POSC", "SV_POSN", "SV_TEXT", "SV_TEAMTEXT", "SV_TEXTME", "SV_TEAMTEXTME",
"SV_SOUND", "SV_VOICECOM", "SV_VOICECOMTEAM", "SV_CDIS",
"SV_SHOOT", "SV_EXPLODE", "SV_SUICIDE", "SV_AKIMBO", "SV_RELOAD", "SV_SCOPE",
"SV_GIBDIED", "SV_DIED", "SV_GIBDAMAGE", "SV_DAMAGE", "SV_HITPUSH", "SV_SHOTFX", "SV_THROWNADE",
"SV_TRYSPAWN", "SV_SPAWNSTATE", "SV_SPAWN", "SV_SPAWNDENY", "SV_FORCEDEATH", "SV_RESUME",
"SV_DISCSCORES", "SV_TIMEUP", "SV_EDITENT", "SV_ITEMACC",
"SV_MAPCHANGE", "SV_ITEMSPAWN", "SV_ITEMPICKUP",
"SV_PING", "SV_PONG", "SV_CLIENTPING", "SV_GAMEMODE",
"SV_EDITMODE", "SV_EDITH", "SV_EDITT", "SV_EDITS", "SV_EDITD", "SV_EDITE", "SV_NEWMAP",
"SV_SENDMAP", "SV_RECVMAP", "SV_REMOVEMAP",
"SV_SERVMSG", "SV_ITEMLIST", "SV_WEAPCHANGE", "SV_PRIMARYWEAP",
"SV_FLAGACTION", "SV_FLAGINFO", "SV_FLAGMSG", "SV_FLAGCNT",
"SV_ARENAWIN", "SV_LMSITEM",
"SV_SETADMIN", "SV_SERVOPINFO",
"SV_CALLVOTE", "SV_CALLVOTESUC", "SV_CALLVOTEERR", "SV_VOTE", "SV_VOTERESULT",
"SV_TRYTEAM", "SV_SETTEAM", "SV_TEAMDENY", "SV_SERVERMODE",
"SV_WHOIS", "SV_WHOISINFO",
"SV_LISTDEMOS", "SV_SENDDEMOLIST", "SV_GETDEMO", "SV_SENDDEMO", "SV_DEMOPLAYBACK",
"SV_CONNECT", "SV_SPECTCN",
"SV_CLIENT",
"SV_EXTENSION",
"SV_MAPIDENT"
};
const char *entnames[] =
{
"none?", "light", "playerstart",
"pistol", "ammobox","grenades",
"health", "armour", "akimbo",
"mapmodel", "trigger",
"ladder", "ctf-flag",
"sound", "clip", "plclip", "", ""
};
itemstat ammostats[] =
{
{1, 1, 1, S_ITEMAMMO}, //knife dummy
{16, 32, 72, S_ITEMAMMO}, //pistol
{14, 28, 21, S_ITEMAMMO}, //shotgun
{60, 90, 90, S_ITEMAMMO}, //subgun
{10, 20, 15, S_ITEMAMMO}, //sniper
{30, 60, 60, S_ITEMAMMO}, //assault
{2, 0, 2, S_ITEMAMMO}, //grenade
{72, 0, 72, S_ITEMAKIMBO} //akimbo
};
itemstat powerupstats[] =
{
{33, 100, 100, S_ITEMHEALTH}, //health
{50, 100, 100, S_ITEMARMOUR}, //armour
};
guninfo guns[NUMGUNS] =
{
{ "knife", S_KNIFE, S_NULL, 0, 500, 50, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, false },
{ "pistol", S_PISTOL, S_RPISTOL, 1400, 170, 19, 0, 0, 80, 10, 8, 6, 5, 1, 40, 75, 150, 1, false },
{ "shotgun", S_SHOTGUN, S_RSHOTGUN, 2400, 1000, 5, 0, 0, 1, 35, 7, 9, 9, 1, 130, 500, 150, 1, false },
{ "subgun", S_SUBGUN, S_RSUBGUN, 1650, 80, 16, 0, 0, 70, 15, 30, 1, 2, 7, 15, 30, 250, 1, true },
{ "sniper", S_SNIPER, S_RSNIPER, 1950, 1500, 85, 0, 0, 60, 50, 5, 4, 4, 1, 100, 500, 100, 1, false },
{ "assault", S_ASSAULT, S_RASSAULT, 2000, 130, 24, 0, 0, 20, 40, 15, 0, 2, 2, 25, 60, 150, 1, true },
{ "grenade", S_NULL, S_NULL, 1000, 650, 200, 20, 6, 1, 1, 1, 3, 1, 0, 0, 0, 0, 3, false },
{ "pistol", S_PISTOL, S_RAKIMBO, 1400, 80, 19, 0, 0, 80, 10, 16, 6, 5, 4, 30, 75, 150, 1, true },
};
const char *teamnames[] = {"CLA", "RVSF", "CLA-SPECT", "RVSF-SPECT", "SPECTATOR", "void"};
const char *teamnames_s[] = {"CLA", "RVSF", "CSPC", "RSPC", "SPEC", "void"};