From 311f09270a89037e000fe09bcb837b6f4155d7c8 Mon Sep 17 00:00:00 2001 From: q66 Date: Sat, 25 Apr 2020 23:42:11 +0200 Subject: [PATCH] drop game/server.cc and the enet shim --- src/client/meson.build | 1 - src/engine/engine.hh | 3 -- src/engine/main.cc | 2 - src/engine/server.cc | 28 ----------- src/game/entities.cc | 37 -------------- src/game/game.cc | 4 +- src/game/game.hh | 11 ----- src/game/server.cc | 75 ---------------------------- src/shared/iengine.hh | 52 -------------------- src/shared/igame.hh | 25 ---------- src/shared/tools.cc | 4 -- src/shared/tools.hh | 108 ----------------------------------------- 12 files changed, 2 insertions(+), 348 deletions(-) delete mode 100644 src/game/server.cc diff --git a/src/client/meson.build b/src/client/meson.build index 55c55bd..abe9876 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -42,7 +42,6 @@ client_src = [ '../game/entities.cc', '../game/game.cc', '../game/render.cc', - '../game/server.cc', ] threads_dep = dependency('threads') diff --git a/src/engine/engine.hh b/src/engine/engine.hh index 0c3ba7b..6b69f64 100644 --- a/src/engine/engine.hh +++ b/src/engine/engine.hh @@ -529,13 +529,10 @@ extern void preloadwatershaders(bool force = false); extern void initserver(); extern void cleanupserver(); extern void updatetime(); - -extern void localclienttoserver(int chan, ENetPacket *); extern void localconnect(); // client extern void localdisconnect(bool cleanup = true); -extern void localservertoclient(int chan, ENetPacket *packet); extern void clientkeepalive(); // command diff --git a/src/engine/main.cc b/src/engine/main.cc index e5158d1..8bb4c92 100644 --- a/src/engine/main.cc +++ b/src/engine/main.cc @@ -1182,8 +1182,6 @@ int main(int argc, char **argv) checksleep(lastmillis); - server::serverupdate(); - if(frames) updatefpshistory(elapsedtime); frames++; diff --git a/src/engine/server.cc b/src/engine/server.cc index c9a8404..d33943c 100644 --- a/src/engine/server.cc +++ b/src/engine/server.cc @@ -123,32 +123,6 @@ void cleanupserver() { } -const char *disconnectreason(int reason) -{ - switch(reason) - { - case DISC_EOP: return "end of packet"; - case DISC_LOCAL: return "server is in local mode"; - case DISC_KICK: return "kicked/banned"; - case DISC_MSGERR: return "message error"; - case DISC_IPBAN: return "ip is banned"; - case DISC_PRIVATE: return "server is in private mode"; - case DISC_MAXCLIENTS: return "server FULL"; - case DISC_TIMEOUT: return "connection timed out"; - case DISC_OVERFLOW: return "overflow"; - case DISC_PASSWORD: return "invalid password"; - default: return NULL; - } -} - -void disconnect_client(int n, int reason) -{ -} - -void kicknonlocalclients(int reason) -{ -} - void updatetime() { } @@ -158,7 +132,6 @@ void localdisconnect(bool cleanup) bool disconnected = false; loopv(clients) if(clients[i]->type==ST_LOCAL) { - server::localdisconnect(i); delclient(clients[i]); disconnected = true; } @@ -183,5 +156,4 @@ void logoutfv(const char *fmt, va_list args) void initserver() { - server::serverinit(); } diff --git a/src/game/entities.cc b/src/game/entities.cc index b2fd94f..13073aa 100644 --- a/src/game/entities.cc +++ b/src/game/entities.cc @@ -14,7 +14,6 @@ namespace entities { } -#ifndef STANDALONE vector ents; vector &getents() { return ents; } @@ -22,21 +21,6 @@ namespace entities bool mayattach(extentity &e) { return false; } bool attachent(extentity &e, extentity &a) { return false; } - const char *itemname(int i) - { - return NULL; - } - - int itemicon(int i) - { - return -1; - } - - const char *entmdlname(int type) - { - return NULL; - } - const char *entmodel(const entity &e) { return NULL; @@ -50,26 +34,6 @@ namespace entities { } - void trypickup(int n, gameent *d) - { - } - - void checkitems(gameent *d) - { - } - - void putitems(packetbuf &p) // puts items in network stream and also spawns them locally - { - } - - void resetspawns() { } - - void spawnitems(bool force) - { - } - - void setspawn(int i, bool on) { if(ents.inrange(i)) { extentity *e = ents[i]; e->setspawned(on); e->clearnopickup(); } } - extentity *newentity() { return new gameentity(); } void deleteentity(extentity *e) { delete (gameentity *)e; } @@ -113,6 +77,5 @@ namespace entities { return 4.0f; } -#endif } diff --git a/src/game/game.cc b/src/game/game.cc index 7776e60..f8815cc 100644 --- a/src/game/game.cc +++ b/src/game/game.cc @@ -8,6 +8,8 @@ namespace game const char *getclientmap() { return clientmap; } + const char *gameident() { return "OctaForge"; } + void resetgamestate() { } @@ -65,7 +67,6 @@ namespace game { crouchplayer(player1, 10, true); moveplayer(player1, 10, true); - entities::checkitems(player1); } } @@ -145,7 +146,6 @@ namespace game void startmap(const char *name) // called just after a map load { spawnplayer(player1); - entities::resetspawns(); copystring(clientmap, name ? name : ""); sendmapinfo(); diff --git a/src/game/game.hh b/src/game/game.hh index 97c2f6e..cc68e28 100644 --- a/src/game/game.hh +++ b/src/game/game.hh @@ -165,18 +165,7 @@ struct teaminfo namespace entities { extern vector ents; - - extern const char *entmdlname(int type); - extern const char *itemname(int i); - extern int itemicon(int i); - extern void preloadentities(); - extern void renderentities(); - extern void checkitems(gameent *d); - extern void resetspawns(); - extern void spawnitems(bool force = false); - extern void putitems(packetbuf &p); - extern void setspawn(int i, bool on); } namespace game diff --git a/src/game/server.cc b/src/game/server.cc deleted file mode 100644 index 23e448a..0000000 --- a/src/game/server.cc +++ /dev/null @@ -1,75 +0,0 @@ -#include "game.hh" - -namespace game -{ - const char *gameident() { return "Tesseract"; } -} - -namespace server -{ - - string smapname = ""; - - void serverinit() - { - smapname[0] = '\0'; - } - - int numclients(int exclude = -1, bool nospec = true, bool noai = true, bool priv = false) - { - return 0; - } - - int spawntime(int type) - { - return 0; - } - - bool delayspawn(int type) - { - return false; - } - - bool ispaused() { return false; } - - int scaletime(int t) { return t*100; } - - void serverupdate() - { - } - - void noclients() - { - } - - void localconnect(int n) - { - } - - void localdisconnect(int n) - { - } - - int clientconnect(int n, uint ip) - { - return DISC_LOCAL; - } - - void clientdisconnect(int n) - { - } - - int reserveclients() { return 3; } - - bool allowbroadcast(int n) - { - return true; - } - - int laninfoport() { return TESSERACT_LANINFO_PORT; } - int serverport() { return TESSERACT_SERVER_PORT; } - int numchannels() { return 3; } - - int protocolversion() { return 0; } -} - diff --git a/src/shared/iengine.hh b/src/shared/iengine.hh index f8a6636..8fe4b13 100644 --- a/src/shared/iengine.hh +++ b/src/shared/iengine.hh @@ -450,62 +450,10 @@ extern void moveragdoll(dynent *d); extern void cleanragdoll(dynent *d); // server -#define MAXTRANS 5000 // max amount of data to swallow in 1 go -enum { DISC_NONE = 0, DISC_EOP, DISC_LOCAL, DISC_KICK, DISC_MSGERR, DISC_IPBAN, DISC_PRIVATE, DISC_MAXCLIENTS, DISC_TIMEOUT, DISC_OVERFLOW, DISC_PASSWORD, DISC_NUM }; - -extern void *getclientinfo(int i); -extern ENetPacket *sendf(int cn, int chan, const char *format, ...); -extern void sendpacket(int cn, int chan, ENetPacket *packet, int exclude = -1); extern void localconnect(); -extern const char *disconnectreason(int reason); -extern void disconnect_client(int n, int reason); -extern void kicknonlocalclients(int reason = DISC_NONE); -extern bool hasnonlocalclients(); extern bool haslocalclients(); -// serverbrowser - -struct servinfo -{ - string name, map, desc; - int protocol, numplayers, maxplayers, ping; - vector attr; - - servinfo() : protocol(INT_MIN), numplayers(0), maxplayers(0) - { - name[0] = map[0] = desc[0] = '\0'; - } -}; - -extern servinfo *getservinfo(int i); - -#define GETSERVINFO(idx, si, body) do { \ - servinfo *si = getservinfo(idx); \ - if(si) \ - { \ - body; \ - } \ -} while(0) -#define GETSERVINFOATTR(idx, aidx, aval, body) \ - GETSERVINFO(idx, si, { if(si->attr.inrange(aidx)) { int aval = si->attr[aidx]; body; } }) - // client -extern void sendclientpacket(ENetPacket *packet, int chan); extern bool isconnected(bool attempt = false, bool local = true); extern bool multiplayer(bool msg = true); -extern void neterr(const char *s, bool disc = true); -extern void gets2c(); -extern void notifywelcome(); - -// crypto -extern void genprivkey(const char *seed, vector &privstr, vector &pubstr); -extern bool calcpubkey(const char *privstr, vector &pubstr); -extern bool hashstring(const char *str, char *result, int maxlen); -extern void answerchallenge(const char *privstr, const char *challenge, vector &answerstr); -extern void *parsepubkey(const char *pubstr); -extern void freepubkey(void *pubkey); -extern void *genchallenge(void *pubkey, const void *seed, int seedlen, vector &challengestr); -extern void freechallenge(void *answer); -extern bool checkchallenge(const char *answerstr, void *correct); - diff --git a/src/shared/igame.hh b/src/shared/igame.hh index c04e482..0ff3058 100644 --- a/src/shared/igame.hh +++ b/src/shared/igame.hh @@ -27,7 +27,6 @@ namespace game extern void parseoptions(vector &args); extern void gamedisconnect(bool cleanup); - extern void parsepacketclient(int chan, packetbuf &p); extern void connectfail(); extern void gameconnect(bool _remote); extern bool allowedittoggle(); @@ -90,27 +89,3 @@ namespace game extern void dynlighttrack(physent *owner, vec &o, vec &hud); extern bool needminimap(); } - -namespace server -{ - extern void *newclientinfo(); - extern void deleteclientinfo(void *ci); - extern void serverinit(); - extern int reserveclients(); - extern int numchannels(); - extern void clientdisconnect(int n); - extern int clientconnect(int n, uint ip); - extern void localdisconnect(int n); - extern void localconnect(int n); - extern bool allowbroadcast(int n); - extern void parsepacket(int sender, int chan, packetbuf &p); - extern void sendservmsg(const char *s); - extern bool sendpackets(bool force = false); - extern void serverupdate(); - extern int protocolversion(); - extern int laninfoport(); - extern int serverport(); - extern bool ispaused(); - extern int scaletime(int t); -} - diff --git a/src/shared/tools.cc b/src/shared/tools.cc index 40e3fea..b3a4e35 100644 --- a/src/shared/tools.cc +++ b/src/shared/tools.cc @@ -101,7 +101,6 @@ static inline void putint_(T &p, int n) else { p.put(0x81); p.put(n); p.put(n>>8); p.put(n>>16); p.put(n>>24); } } void putint(ucharbuf &p, int n) { putint_(p, n); } -void putint(packetbuf &p, int n) { putint_(p, n); } void putint(vector &p, int n) { putint_(p, n); } int getint(ucharbuf &p) @@ -137,7 +136,6 @@ static inline void putuint_(T &p, int n) } } void putuint(ucharbuf &p, int n) { putuint_(p, n); } -void putuint(packetbuf &p, int n) { putuint_(p, n); } void putuint(vector &p, int n) { putuint_(p, n); } int getuint(ucharbuf &p) @@ -160,7 +158,6 @@ static inline void putfloat_(T &p, float f) p.put((uchar *)&f, sizeof(float)); } void putfloat(ucharbuf &p, float f) { putfloat_(p, f); } -void putfloat(packetbuf &p, float f) { putfloat_(p, f); } void putfloat(vector &p, float f) { putfloat_(p, f); } float getfloat(ucharbuf &p) @@ -177,7 +174,6 @@ static inline void sendstring_(const char *t, T &p) putint(p, 0); } void sendstring(const char *t, ucharbuf &p) { sendstring_(t, p); } -void sendstring(const char *t, packetbuf &p) { sendstring_(t, p); } void sendstring(const char *t, vector &p) { sendstring_(t, p); } void getstring(char *text, ucharbuf &p, size_t len) diff --git a/src/shared/tools.hh b/src/shared/tools.hh index 929b917..f92b4d7 100644 --- a/src/shared/tools.hh +++ b/src/shared/tools.hh @@ -9,52 +9,6 @@ #include -typedef enum _ENetPacketFlag -{ - ENET_PACKET_FLAG_RELIABLE = (1 << 0), - ENET_PACKET_FLAG_UNSEQUENCED = (1 << 1) -} ENetPacketFlag; - -typedef struct _ENetPacket -{ - int flags; - unsigned char *data; - size_t dataLength; - size_t referenceCount; -} ENetPacket; - -inline ENetPacket *enet_packet_create(void const *data, size_t len, int flags) { - ENetPacket *ret = new ENetPacket; - if (!len) { - ret->data = nullptr; - } else { - ret->data = new unsigned char[len]; - if (data) { - memcpy(ret->data, data, len); - } - } - ret->referenceCount = 0; - ret->flags = flags; - return ret; -} - -inline void enet_packet_destroy(ENetPacket *p) { - delete[] p->data; - delete p; -} - -inline int enet_packet_resize(ENetPacket *p, size_t len) { - if (len <= p->dataLength) { - p->dataLength = len; - return 0; - } - auto *nd = new unsigned char[len]; - memcpy(nd, p->data, p->dataLength); - delete[] p->data; - p->data = nd; - return 0; -} - #ifndef STANDALONE #include "gl.hh" #endif @@ -417,64 +371,6 @@ struct databuf typedef databuf ucharbuf; -struct packetbuf : ucharbuf -{ - ENetPacket *packet; - int growth; - - packetbuf(ENetPacket *packet) : ucharbuf(packet->data, packet->dataLength), packet(packet), growth(0) {} - packetbuf(int growth, int pflags = 0) : growth(growth) - { - packet = enet_packet_create(NULL, growth, pflags); - buf = (uchar *)packet->data; - maxlen = packet->dataLength; - } - ~packetbuf() { cleanup(); } - - void reliable() { packet->flags |= ENET_PACKET_FLAG_RELIABLE; } - - void resize(int n) - { - enet_packet_resize(packet, n); - buf = (uchar *)packet->data; - maxlen = packet->dataLength; - } - - void checkspace(int n) - { - if(len + n > maxlen && packet && growth > 0) resize(max(len + n, maxlen + growth)); - } - - ucharbuf subbuf(int sz) - { - checkspace(sz); - return ucharbuf::subbuf(sz); - } - - void put(const uchar &val) - { - checkspace(1); - ucharbuf::put(val); - } - - void put(const uchar *vals, int numvals) - { - checkspace(numvals); - ucharbuf::put(vals, numvals); - } - - ENetPacket *finalize() - { - resize(len); - return packet; - } - - void cleanup() - { - if(growth > 0 && packet && !packet->referenceCount) { enet_packet_destroy(packet); packet = NULL; buf = NULL; len = maxlen = 0; } - } -}; - template static inline float heapscore(const T &n) { return n; } @@ -1433,19 +1329,15 @@ extern void seedMT(uint seed); extern uint randomMT(); extern void putint(ucharbuf &p, int n); -extern void putint(packetbuf &p, int n); extern void putint(vector &p, int n); extern int getint(ucharbuf &p); extern void putuint(ucharbuf &p, int n); -extern void putuint(packetbuf &p, int n); extern void putuint(vector &p, int n); extern int getuint(ucharbuf &p); extern void putfloat(ucharbuf &p, float f); -extern void putfloat(packetbuf &p, float f); extern void putfloat(vector &p, float f); extern float getfloat(ucharbuf &p); extern void sendstring(const char *t, ucharbuf &p); -extern void sendstring(const char *t, packetbuf &p); extern void sendstring(const char *t, vector &p); extern void getstring(char *t, ucharbuf &p, size_t len); template static inline void getstring(char (&t)[N], ucharbuf &p) { getstring(t, p, N); }