sauerbraten-2013.01.04 removed
This commit is contained in:
parent
644d94a282
commit
a6c02d45a2
|
@ -1,7 +0,0 @@
|
||||||
AUX sauerbraten-2013.01.04-QA.patch 2037 SHA256 baddf2bb64ad33df6ad11bbdfaf7d7c918a4f6c26f62bd641d43633051be83c4 SHA512 1725945f0373f03e5ae81b8e9eee4e2a9260d9362ad424e4198bb71af2e69055439268197f784d2acbd9e17ff977e8b1a7f5193d378a036488ff758d0ead4b5a WHIRLPOOL 312c17a2fa83a8fa73cdba080c8d74291f5572098ab05ee29e5238b672ad2e7540949e4f0a78e557ae96c9062e584e313dfb82d8e1b9d5aa72d6a207db0b316f
|
|
||||||
AUX sauerbraten-2013.01.04-master.patch 9577 SHA256 ccbb0e3cb50a60f94f5f5ed76dc6904634b232aa3077fc55bf71b3ec2a5e2afe SHA512 93932305b543bf4095170fdb4e3b0bd334437b5a2d373257f7f2cc642e493dad76f7a32f414ed1cb33e0f048fb51d0207f92363a0c56ba8537872751570b640e WHIRLPOOL 7131d4f0039a037ab469d558d9ba962cbde52c822616389803d4e50ca9203c59919e741e3d0a0959a92ee3b6b28d2657f5078e8918eae2fde225975dff9e28a8
|
|
||||||
AUX sauerbraten-2013.01.04-system-enet.patch 1880 SHA256 3dddd4fca0c0176121b72d180f9046a28a026a68666a228503b1a4cebb44f597 SHA512 b53e7db4e6b7ce012ee292a24cbf6e84e1c6bce01cde1a41985d0b471a68c1d2978f8272bc359a81beb317b5ab2ff88a13a1e73aaeb7f5c643e778ffe9861c7a WHIRLPOOL 38d88521ab507735d744b4f186a495fd25b73cbbd24d8b0b0adaca4219cabf56342e25bc12e55c782e6a86c418bcf54cf3802752a41009ff2dd641dc8b123067
|
|
||||||
AUX sauerbraten.conf 605 SHA256 6e0694718370b126034bc569229d91b63cbfbd87f86af0a03d20e08833069811 SHA512 685b7358ad7267b1b19ac00f879a82205f346b32fda8cb460c4f8c50e9f20263c102b0fca62ab437dabe67ebbdd281f130f28f3b8ef2bcf064ae45fbd23cce67 WHIRLPOOL c1f4de209300898333856a027e5587a2b1d5f978b653f8085b47b40f72ef533462e5810d79757675742998206c9db445ca94d904aea3563807d3300b872a47b1
|
|
||||||
AUX sauerbraten.init 1950 SHA256 6d7b46186b368ea5edee77f72d9772d5ca42fb8ad14c3e90c0caa7e663666159 SHA512 a4e159aeee9536aac0d47f4a8bf33db1b4dde69f999b1c21d8a0f373969fb38d2130129fb080b97cd98048f3a10f98d30e6d4ea53efb29c3c38ba74b66f47f14 WHIRLPOOL c48c3fcad3b19d1b2791dede723a60a5930e1c4f607d5030dfefe1766a5b951a262ba75d4023ed8c75df968c6bc440cc9bf280bb3271e776c148d69bc7ab47f7
|
|
||||||
DIST sauerbraten_2013_01_04_collect_edition_linux.tar.bz2 589939261 SHA256 3ecc27c318125883763130e45805eb7ba3a426234e5766ab0d00522f4a437bd1 SHA512 f89c9e69bb69596829661f551e4b63b2f2af96a01f075cb94a80e2bfae4f8664b7dab8f4850b91499817240e0311b64b049ea985c761ff7bb6d39ed75e6198cd WHIRLPOOL d10e354942180064ab44a2f8c8b13819240fde3537825908768d1ddda24f600971641b8a9cee4abee9539ec912bf265cb1771c001ad81a33e287c99e0f6906b8
|
|
||||||
EBUILD sauerbraten-2013.01.04.ebuild 3383 SHA256 a7bbe159758e00cf4fcbb9bee74defd880206939c7ed5e1d9d7559a1a590308c SHA512 5514385469e5cad568fd553062e03f91a77b7be5fdc3d4703c10961aa43c6b1bda6f592be23562a8986b496357229b90d0b7b2c829b5bc719b997539821632d1 WHIRLPOOL c2e59c6ade5426a72d421065270ac6fdc80a265cd985c0036a20379bccaabd7fe5d64f0414e10c7ccb6de10c9bac0cba540b2a22485256c42b969b1f7db14246
|
|
|
@ -1,50 +0,0 @@
|
||||||
applied on top of sauerbraten-2013.01.04-system-enet.patch
|
|
||||||
|
|
||||||
respect LDFLAGS, CXXFLAGS and CPPFLAGS
|
|
||||||
--- sauerbraten/src/Makefile
|
|
||||||
+++ sauerbraten/src/Makefile
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-CXXFLAGS= -O3 -fomit-frame-pointer
|
|
||||||
+CXXFLAGS ?= -O3 -fomit-frame-pointer
|
|
||||||
override CXXFLAGS+= -Wall -fsigned-char -fno-exceptions -fno-rtti
|
|
||||||
|
|
||||||
PLATFORM= $(shell uname -s)
|
|
||||||
@@ -139,11 +139,11 @@
|
|
||||||
-$(RM) $(CLIENT_PCH) $(CLIENT_OBJS) $(SERVER_OBJS) $(MASTER_OBJS) sauer_client sauer_server sauer_master
|
|
||||||
|
|
||||||
%.h.gch: %.h
|
|
||||||
- $(CXX) $(CXXFLAGS) -o $(subst .h.gch,.tmp.h.gch,$@) $(subst .h.gch,.h,$@)
|
|
||||||
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $(subst .h.gch,.tmp.h.gch,$@) $(subst .h.gch,.h,$@)
|
|
||||||
$(MV) $(subst .h.gch,.tmp.h.gch,$@) $@
|
|
||||||
|
|
||||||
%-standalone.o: %.cpp
|
|
||||||
- $(CXX) $(CXXFLAGS) -c -o $@ $(subst -standalone.o,.cpp,$@)
|
|
||||||
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(subst -standalone.o,.cpp,$@)
|
|
||||||
|
|
||||||
$(CLIENT_OBJS): CXXFLAGS += $(CLIENT_INCLUDES)
|
|
||||||
$(filter shared/%,$(CLIENT_OBJS)): $(filter shared/%,$(CLIENT_PCH))
|
|
||||||
@@ -168,19 +168,19 @@
|
|
||||||
install: all
|
|
||||||
else
|
|
||||||
client: $(CLIENT_OBJS)
|
|
||||||
- $(CXX) $(CXXFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
|
|
||||||
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
|
|
||||||
|
|
||||||
server: $(SERVER_OBJS)
|
|
||||||
- $(CXX) $(CXXFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
|
|
||||||
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
|
|
||||||
|
|
||||||
master: $(MASTER_OBJS)
|
|
||||||
- $(CXX) $(CXXFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
|
|
||||||
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
|
|
||||||
|
|
||||||
shared/cube2font.o: shared/cube2font.c
|
|
||||||
- $(CXX) $(CXXFLAGS) -c -o $@ $< `freetype-config --cflags`
|
|
||||||
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< `freetype-config --cflags`
|
|
||||||
|
|
||||||
cube2font: shared/cube2font.o
|
|
||||||
- $(CXX) $(CXXFLAGS) -o cube2font shared/cube2font.o `freetype-config --libs` -lz
|
|
||||||
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o cube2font shared/cube2font.o `freetype-config --libs` -lz
|
|
||||||
|
|
||||||
install: all
|
|
||||||
cp sauer_client ../bin_unix/$(PLATFORM_PREFIX)_client
|
|
|
@ -1,323 +0,0 @@
|
||||||
http://sourceforge.net/p/sauerbraten/code/4699/
|
|
||||||
|
|
||||||
--- a/src/shared/iengine.h
|
|
||||||
+++ b/src/shared/iengine.h
|
|
||||||
@@ -415,23 +415,6 @@
|
|
||||||
extern int getservermtu();
|
|
||||||
extern int getnumclients();
|
|
||||||
extern uint getclientip(int n);
|
|
||||||
-extern void putint(ucharbuf &p, int n);
|
|
||||||
-extern void putint(packetbuf &p, int n);
|
|
||||||
-extern void putint(vector<uchar> &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<uchar> &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<uchar> &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<uchar> &p);
|
|
||||||
-extern void getstring(char *t, ucharbuf &p, int len = MAXTRANS);
|
|
||||||
-extern void filtertext(char *dst, const char *src, bool whitespace = true, int len = sizeof(string)-1);
|
|
||||||
extern void localconnect();
|
|
||||||
extern const char *disconnectreason(int reason);
|
|
||||||
extern void disconnect_client(int n, int reason);
|
|
||||||
--- a/src/engine/server.cpp
|
|
||||||
+++ b/src/engine/server.cpp
|
|
||||||
@@ -99,125 +99,6 @@
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
-
|
|
||||||
-// all network traffic is in 32bit ints, which are then compressed using the following simple scheme (assumes that most values are small).
|
|
||||||
-
|
|
||||||
-template<class T>
|
|
||||||
-static inline void putint_(T &p, int n)
|
|
||||||
-{
|
|
||||||
- if(n<128 && n>-127) p.put(n);
|
|
||||||
- else if(n<0x8000 && n>=-0x8000) { p.put(0x80); p.put(n); p.put(n>>8); }
|
|
||||||
- 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<uchar> &p, int n) { putint_(p, n); }
|
|
||||||
-
|
|
||||||
-int getint(ucharbuf &p)
|
|
||||||
-{
|
|
||||||
- int c = (char)p.get();
|
|
||||||
- if(c==-128) { int n = p.get(); n |= char(p.get())<<8; return n; }
|
|
||||||
- else if(c==-127) { int n = p.get(); n |= p.get()<<8; n |= p.get()<<16; return n|(p.get()<<24); }
|
|
||||||
- else return c;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-// much smaller encoding for unsigned integers up to 28 bits, but can handle signed
|
|
||||||
-template<class T>
|
|
||||||
-static inline void putuint_(T &p, int n)
|
|
||||||
-{
|
|
||||||
- if(n < 0 || n >= (1<<21))
|
|
||||||
- {
|
|
||||||
- p.put(0x80 | (n & 0x7F));
|
|
||||||
- p.put(0x80 | ((n >> 7) & 0x7F));
|
|
||||||
- p.put(0x80 | ((n >> 14) & 0x7F));
|
|
||||||
- p.put(n >> 21);
|
|
||||||
- }
|
|
||||||
- else if(n < (1<<7)) p.put(n);
|
|
||||||
- else if(n < (1<<14))
|
|
||||||
- {
|
|
||||||
- p.put(0x80 | (n & 0x7F));
|
|
||||||
- p.put(n >> 7);
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- p.put(0x80 | (n & 0x7F));
|
|
||||||
- p.put(0x80 | ((n >> 7) & 0x7F));
|
|
||||||
- p.put(n >> 14);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-void putuint(ucharbuf &p, int n) { putuint_(p, n); }
|
|
||||||
-void putuint(packetbuf &p, int n) { putuint_(p, n); }
|
|
||||||
-void putuint(vector<uchar> &p, int n) { putuint_(p, n); }
|
|
||||||
-
|
|
||||||
-int getuint(ucharbuf &p)
|
|
||||||
-{
|
|
||||||
- int n = p.get();
|
|
||||||
- if(n & 0x80)
|
|
||||||
- {
|
|
||||||
- n += (p.get() << 7) - 0x80;
|
|
||||||
- if(n & (1<<14)) n += (p.get() << 14) - (1<<14);
|
|
||||||
- if(n & (1<<21)) n += (p.get() << 21) - (1<<21);
|
|
||||||
- if(n & (1<<28)) n |= -1<<28;
|
|
||||||
- }
|
|
||||||
- return n;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-template<class T>
|
|
||||||
-static inline void putfloat_(T &p, float f)
|
|
||||||
-{
|
|
||||||
- lilswap(&f, 1);
|
|
||||||
- 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<uchar> &p, float f) { putfloat_(p, f); }
|
|
||||||
-
|
|
||||||
-float getfloat(ucharbuf &p)
|
|
||||||
-{
|
|
||||||
- float f;
|
|
||||||
- p.get((uchar *)&f, sizeof(float));
|
|
||||||
- return lilswap(f);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-template<class T>
|
|
||||||
-static inline void sendstring_(const char *t, T &p)
|
|
||||||
-{
|
|
||||||
- while(*t) putint(p, *t++);
|
|
||||||
- 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<uchar> &p) { sendstring_(t, p); }
|
|
||||||
-
|
|
||||||
-void getstring(char *text, ucharbuf &p, int len)
|
|
||||||
-{
|
|
||||||
- char *t = text;
|
|
||||||
- do
|
|
||||||
- {
|
|
||||||
- if(t>=&text[len]) { text[len-1] = 0; return; }
|
|
||||||
- if(!p.remaining()) { *t = 0; return; }
|
|
||||||
- *t = getint(p);
|
|
||||||
- }
|
|
||||||
- while(*t++);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-void filtertext(char *dst, const char *src, bool whitespace, int len)
|
|
||||||
-{
|
|
||||||
- for(int c = uchar(*src); c; c = uchar(*++src))
|
|
||||||
- {
|
|
||||||
- if(c == '\f')
|
|
||||||
- {
|
|
||||||
- if(!*++src) break;
|
|
||||||
- continue;
|
|
||||||
- }
|
|
||||||
- if(iscubeprint(c) || (iscubespace(c) && whitespace))
|
|
||||||
- {
|
|
||||||
- *dst++ = c;
|
|
||||||
- if(!--len) break;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- *dst = '\0';
|
|
||||||
-}
|
|
||||||
|
|
||||||
enum { ST_EMPTY, ST_LOCAL, ST_TCPIP };
|
|
||||||
|
|
||||||
--- a/src/shared/tools.h
|
|
||||||
+++ b/src/shared/tools.h
|
|
||||||
@@ -1178,5 +1178,24 @@
|
|
||||||
extern uint randomMT();
|
|
||||||
extern int guessnumcpus();
|
|
||||||
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
+extern void putint(ucharbuf &p, int n);
|
|
||||||
+extern void putint(packetbuf &p, int n);
|
|
||||||
+extern void putint(vector<uchar> &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<uchar> &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<uchar> &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<uchar> &p);
|
|
||||||
+extern void getstring(char *t, ucharbuf &p, int len);
|
|
||||||
+template<class T, size_t N> static inline void getstring(T (&t)[N], ucharbuf &p) { getstring(t, p, N); }
|
|
||||||
+extern void filtertext(char *dst, const char *src, bool whitespace = true, int len = sizeof(string)-1);
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
--- a/src/engine/master.cpp
|
|
||||||
+++ b/src/engine/master.cpp
|
|
||||||
@@ -514,7 +514,7 @@
|
|
||||||
authreq &a = c.authreqs.add();
|
|
||||||
a.reqtime = servtime;
|
|
||||||
a.id = id;
|
|
||||||
- uint seed[3] = { starttime, servtime, randomMT() };
|
|
||||||
+ uint seed[3] = { uint(starttime), servtime, randomMT() };
|
|
||||||
static vector<char> buf;
|
|
||||||
buf.setsize(0);
|
|
||||||
a.answer = genchallenge(u->pubkey, seed, sizeof(seed), buf);
|
|
||||||
--- a/src/shared/tools.cpp
|
|
||||||
+++ b/src/shared/tools.cpp
|
|
||||||
@@ -53,3 +53,124 @@
|
|
||||||
return y;
|
|
||||||
}
|
|
||||||
|
|
||||||
+///////////////////////// network ///////////////////////
|
|
||||||
+
|
|
||||||
+// all network traffic is in 32bit ints, which are then compressed using the following simple scheme (assumes that most values are small).
|
|
||||||
+
|
|
||||||
+template<class T>
|
|
||||||
+static inline void putint_(T &p, int n)
|
|
||||||
+{
|
|
||||||
+ if(n<128 && n>-127) p.put(n);
|
|
||||||
+ else if(n<0x8000 && n>=-0x8000) { p.put(0x80); p.put(n); p.put(n>>8); }
|
|
||||||
+ 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<uchar> &p, int n) { putint_(p, n); }
|
|
||||||
+
|
|
||||||
+int getint(ucharbuf &p)
|
|
||||||
+{
|
|
||||||
+ int c = (char)p.get();
|
|
||||||
+ if(c==-128) { int n = p.get(); n |= char(p.get())<<8; return n; }
|
|
||||||
+ else if(c==-127) { int n = p.get(); n |= p.get()<<8; n |= p.get()<<16; return n|(p.get()<<24); }
|
|
||||||
+ else return c;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+// much smaller encoding for unsigned integers up to 28 bits, but can handle signed
|
|
||||||
+template<class T>
|
|
||||||
+static inline void putuint_(T &p, int n)
|
|
||||||
+{
|
|
||||||
+ if(n < 0 || n >= (1<<21))
|
|
||||||
+ {
|
|
||||||
+ p.put(0x80 | (n & 0x7F));
|
|
||||||
+ p.put(0x80 | ((n >> 7) & 0x7F));
|
|
||||||
+ p.put(0x80 | ((n >> 14) & 0x7F));
|
|
||||||
+ p.put(n >> 21);
|
|
||||||
+ }
|
|
||||||
+ else if(n < (1<<7)) p.put(n);
|
|
||||||
+ else if(n < (1<<14))
|
|
||||||
+ {
|
|
||||||
+ p.put(0x80 | (n & 0x7F));
|
|
||||||
+ p.put(n >> 7);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ p.put(0x80 | (n & 0x7F));
|
|
||||||
+ p.put(0x80 | ((n >> 7) & 0x7F));
|
|
||||||
+ p.put(n >> 14);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+void putuint(ucharbuf &p, int n) { putuint_(p, n); }
|
|
||||||
+void putuint(packetbuf &p, int n) { putuint_(p, n); }
|
|
||||||
+void putuint(vector<uchar> &p, int n) { putuint_(p, n); }
|
|
||||||
+
|
|
||||||
+int getuint(ucharbuf &p)
|
|
||||||
+{
|
|
||||||
+ int n = p.get();
|
|
||||||
+ if(n & 0x80)
|
|
||||||
+ {
|
|
||||||
+ n += (p.get() << 7) - 0x80;
|
|
||||||
+ if(n & (1<<14)) n += (p.get() << 14) - (1<<14);
|
|
||||||
+ if(n & (1<<21)) n += (p.get() << 21) - (1<<21);
|
|
||||||
+ if(n & (1<<28)) n |= -1<<28;
|
|
||||||
+ }
|
|
||||||
+ return n;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+template<class T>
|
|
||||||
+static inline void putfloat_(T &p, float f)
|
|
||||||
+{
|
|
||||||
+ lilswap(&f, 1);
|
|
||||||
+ 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<uchar> &p, float f) { putfloat_(p, f); }
|
|
||||||
+
|
|
||||||
+float getfloat(ucharbuf &p)
|
|
||||||
+{
|
|
||||||
+ float f;
|
|
||||||
+ p.get((uchar *)&f, sizeof(float));
|
|
||||||
+ return lilswap(f);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+template<class T>
|
|
||||||
+static inline void sendstring_(const char *t, T &p)
|
|
||||||
+{
|
|
||||||
+ while(*t) putint(p, *t++);
|
|
||||||
+ 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<uchar> &p) { sendstring_(t, p); }
|
|
||||||
+
|
|
||||||
+void getstring(char *text, ucharbuf &p, int len)
|
|
||||||
+{
|
|
||||||
+ char *t = text;
|
|
||||||
+ do
|
|
||||||
+ {
|
|
||||||
+ if(t>=&text[len]) { text[len-1] = 0; return; }
|
|
||||||
+ if(!p.remaining()) { *t = 0; return; }
|
|
||||||
+ *t = getint(p);
|
|
||||||
+ }
|
|
||||||
+ while(*t++);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void filtertext(char *dst, const char *src, bool whitespace, int len)
|
|
||||||
+{
|
|
||||||
+ for(int c = uchar(*src); c; c = uchar(*++src))
|
|
||||||
+ {
|
|
||||||
+ if(c == '\f')
|
|
||||||
+ {
|
|
||||||
+ if(!*++src) break;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ if(iscubeprint(c) || (iscubespace(c) && whitespace))
|
|
||||||
+ {
|
|
||||||
+ *dst++ = c;
|
|
||||||
+ if(!--len) break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ *dst = '\0';
|
|
||||||
+}
|
|
||||||
+
|
|
|
@ -1,64 +0,0 @@
|
||||||
--- sauerbraten/src/Makefile
|
|
||||||
+++ sauerbraten/src/Makefile
|
|
||||||
@@ -4,7 +4,7 @@
|
|
||||||
PLATFORM= $(shell uname -s)
|
|
||||||
PLATFORM_PREFIX= native
|
|
||||||
|
|
||||||
-INCLUDES= -Ishared -Iengine -Ifpsgame -Ienet/include
|
|
||||||
+INCLUDES= -Ishared -Iengine -Ifpsgame
|
|
||||||
|
|
||||||
STRIP=
|
|
||||||
ifeq (,$(findstring -g,$(CXXFLAGS)))
|
|
||||||
@@ -36,8 +36,8 @@
|
|
||||||
endif
|
|
||||||
CLIENT_LIBS= -mwindows $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lSDL -lSDL_image -lSDL_mixer -lzlib1 -lopengl32 -lenet -lws2_32 -lwinmm
|
|
||||||
else
|
|
||||||
-CLIENT_INCLUDES= $(INCLUDES) -I/usr/X11R6/include `sdl-config --cflags`
|
|
||||||
-CLIENT_LIBS= -Lenet/.libs -lenet -L/usr/X11R6/lib -lX11 `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
|
|
||||||
+CLIENT_INCLUDES= $(INCLUDES) `sdl-config --cflags`
|
|
||||||
+CLIENT_LIBS= -lenet -lX11 `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM),Linux)
|
|
||||||
CLIENT_LIBS+= -lrt
|
|
||||||
@@ -106,7 +106,7 @@
|
|
||||||
MASTER_LIBS= $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lzlib1 -lenet -lws2_32 -lwinmm
|
|
||||||
else
|
|
||||||
SERVER_INCLUDES= -DSTANDALONE $(INCLUDES)
|
|
||||||
-SERVER_LIBS= -Lenet/.libs -lenet -lz
|
|
||||||
+SERVER_LIBS= -lenet -lz
|
|
||||||
MASTER_LIBS= $(SERVER_LIBS)
|
|
||||||
endif
|
|
||||||
SERVER_OBJS= \
|
|
||||||
@@ -135,15 +135,6 @@
|
|
||||||
|
|
||||||
all: client server
|
|
||||||
|
|
||||||
-enet/Makefile:
|
|
||||||
- cd enet; ./configure --enable-shared=no --enable-static=yes
|
|
||||||
-
|
|
||||||
-libenet: enet/Makefile
|
|
||||||
- $(MAKE) -C enet/ all
|
|
||||||
-
|
|
||||||
-clean-enet: enet/Makefile
|
|
||||||
- $(MAKE) -C enet/ clean
|
|
||||||
-
|
|
||||||
clean:
|
|
||||||
-$(RM) $(CLIENT_PCH) $(CLIENT_OBJS) $(SERVER_OBJS) $(MASTER_OBJS) sauer_client sauer_server sauer_master
|
|
||||||
|
|
||||||
@@ -176,13 +167,13 @@
|
|
||||||
|
|
||||||
install: all
|
|
||||||
else
|
|
||||||
-client: libenet $(CLIENT_OBJS)
|
|
||||||
+client: $(CLIENT_OBJS)
|
|
||||||
$(CXX) $(CXXFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
|
|
||||||
|
|
||||||
-server: libenet $(SERVER_OBJS)
|
|
||||||
+server: $(SERVER_OBJS)
|
|
||||||
$(CXX) $(CXXFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
|
|
||||||
|
|
||||||
-master: libenet $(MASTER_OBJS)
|
|
||||||
+master: $(MASTER_OBJS)
|
|
||||||
$(CXX) $(CXXFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
|
|
||||||
|
|
||||||
shared/cube2font.o: shared/cube2font.c
|
|
|
@ -1,28 +0,0 @@
|
||||||
# Config file for /etc/init.d/sauerbraten
|
|
||||||
|
|
||||||
# Owner of Sauerbraten server processes (must be existing)
|
|
||||||
USER="%GAMES_USER_DED%"
|
|
||||||
GROUP="%GAMES_GROUP%"
|
|
||||||
|
|
||||||
|
|
||||||
# Whether to run the dedicated server
|
|
||||||
RUNSERVER="Yes"
|
|
||||||
|
|
||||||
# Location of the dedicated server config directory
|
|
||||||
SERVERCONFIG="%SYSCONFDIR%"
|
|
||||||
|
|
||||||
# Additional command line arguments to the dedicated server
|
|
||||||
SERVERARGS=""
|
|
||||||
|
|
||||||
|
|
||||||
# Whether to run the master server
|
|
||||||
RUNMASTER="No"
|
|
||||||
|
|
||||||
# Location of the master server config directory
|
|
||||||
MASTERCONFIG="%SYSCONFDIR%"
|
|
||||||
|
|
||||||
# What port should the masterserver use
|
|
||||||
MASTERPORT="28787"
|
|
||||||
|
|
||||||
# What ip should the masterserver bind to
|
|
||||||
MASTERIP=""
|
|
|
@ -1,74 +0,0 @@
|
||||||
#!/sbin/runscript
|
|
||||||
|
|
||||||
depend() {
|
|
||||||
use net
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
[ $(echo ${RUNMASTER} | tr '[:upper:]' '[:lower:]') = "yes" ] && start_master
|
|
||||||
[ $(echo ${RUNSERVER} | tr '[:upper:]' '[:lower:]') = "yes" ] && start_server
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
start_server() {
|
|
||||||
ebegin "Starting Sauerbraten dedicated server"
|
|
||||||
|
|
||||||
# Make sure necessary parameters are set
|
|
||||||
SERVERCONFIG="${SERVERCONFIG:-%SYSCONFDIR%}"
|
|
||||||
|
|
||||||
if [ ! -d ${SERVERCONFIG} ]; then
|
|
||||||
einfo "No ${SERVERCONFIG} around. Creating new..."
|
|
||||||
mkdir ${SERVERCONFIG}
|
|
||||||
chown ${USER}:${GROUP} ${SERVERCONFIG}
|
|
||||||
fi
|
|
||||||
|
|
||||||
start-stop-daemon \
|
|
||||||
--quiet --start --user ${USER}:${GROUP} --chdir ${SERVERCONFIG} \
|
|
||||||
--make-pidfile --pidfile %GAMES_STATEDIR%/run/sauerbraten/server.pid \
|
|
||||||
--background --exec %LIBEXECDIR%/sauer_server -- ${SERVERARGS}
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
start_master() {
|
|
||||||
ebegin "Starting Sauerbraten master server"
|
|
||||||
|
|
||||||
# Make sure necessary parameters are set
|
|
||||||
MASTERCONFIG="${MASTERCONFIG:-%SYSCONFDIR%}"
|
|
||||||
[ -n "${MASTERIP}" ] && MASTERPORT="${MASTERPORT:-28787}"
|
|
||||||
MASTERARGS="${MASTERCONFIG}/ ${MASTERPORT} ${MASTERIP}"
|
|
||||||
|
|
||||||
if [ ! -d ${MASTERCONFIG} ]; then
|
|
||||||
einfo "No ${MASTERCONFIG} around. Creating new..."
|
|
||||||
mkdir ${MASTERCONFIG}
|
|
||||||
chown ${USER}:${GROUP} ${MASTERCONFIG}
|
|
||||||
fi
|
|
||||||
|
|
||||||
start-stop-daemon \
|
|
||||||
--quiet --start --user ${USER}:${GROUP} \
|
|
||||||
--make-pidfile --pidfile %GAMES_STATEDIR%/run/sauerbraten/master.pid \
|
|
||||||
--background --exec %LIBEXECDIR%/sauer_master -- ${MASTERARGS}
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
[ $(echo ${RUNSERVER} | tr '[:upper:]' '[:lower:]') = "yes" ] && stop_server
|
|
||||||
[ $(echo ${RUNMASTER} | tr '[:upper:]' '[:lower:]') = "yes" ] && stop_master
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_server() {
|
|
||||||
ebegin "Stopping Sauerbraten dedicated server"
|
|
||||||
start-stop-daemon --stop --retry 3 --pidfile %GAMES_STATEDIR%/run/sauerbraten/server.pid
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_master() {
|
|
||||||
ebegin "Stopping Sauerbraten master server"
|
|
||||||
start-stop-daemon --stop --retry 3 --pidfile %GAMES_STATEDIR%/run/sauerbraten/master.pid
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
restart() {
|
|
||||||
svc_stop
|
|
||||||
svc_start
|
|
||||||
}
|
|
|
@ -1,127 +0,0 @@
|
||||||
# Copyright 1999-2013 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
# $Header: /var/cvsroot/gentoo-x86/games-fps/sauerbraten/sauerbraten-2013.01.04.ebuild,v 1.1 2013/01/05 18:23:48 hasufell Exp $
|
|
||||||
|
|
||||||
EAPI=5
|
|
||||||
inherit eutils flag-o-matic gnome2-utils games
|
|
||||||
|
|
||||||
EDITION="collect_edition"
|
|
||||||
DESCRIPTION="Cube 2: Sauerbraten is an open source game engine (Cube 2) with freeware game data (Sauerbraten)"
|
|
||||||
HOMEPAGE="http://sauerbraten.org/"
|
|
||||||
SRC_URI="mirror://sourceforge/sauerbraten/sauerbraten/2013_01_04/sauerbraten_${PV//./_}_${EDITION}_linux.tar.bz2"
|
|
||||||
|
|
||||||
LICENSE="ZLIB freedist"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~amd64 ~x86"
|
|
||||||
IUSE="debug dedicated server"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
sys-libs/zlib
|
|
||||||
>=net-libs/enet-1.3.6:1.3
|
|
||||||
!dedicated? (
|
|
||||||
media-libs/libsdl[X,opengl]
|
|
||||||
media-libs/sdl-mixer[vorbis]
|
|
||||||
media-libs/sdl-image[png,jpeg]
|
|
||||||
virtual/opengl
|
|
||||||
virtual/glu
|
|
||||||
x11-libs/libX11 )"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
|
|
||||||
S=${WORKDIR}/${PN}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
ecvs_clean
|
|
||||||
rm -rf sauerbraten_unix bin_unix src/{include,lib,vcpp}
|
|
||||||
|
|
||||||
# Patch makefile to use system enet instead of bundled
|
|
||||||
# respect CXXFLAGS, LDFLAGS
|
|
||||||
epatch "${FILESDIR}"/${P}-{system-enet,QA,master}.patch
|
|
||||||
|
|
||||||
# Fix links so they point to the correct directory
|
|
||||||
sed -i \
|
|
||||||
-e 's:docs/::' \
|
|
||||||
README.html \
|
|
||||||
|| die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
use debug && append-cppflags -D_DEBUG
|
|
||||||
emake -C src master $(usex dedicated "server" "$(usex server "server client" "client")")
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local LIBEXECDIR="${GAMES_PREFIX}/lib"
|
|
||||||
local DATADIR="${GAMES_DATADIR}/${PN}"
|
|
||||||
local STATEDIR="${GAMES_STATEDIR}/${PN}"
|
|
||||||
|
|
||||||
if ! use dedicated ; then
|
|
||||||
# Install the game data
|
|
||||||
insinto "${DATADIR}"
|
|
||||||
doins -r data packages
|
|
||||||
|
|
||||||
# Install the client executable
|
|
||||||
exeinto "${LIBEXECDIR}"
|
|
||||||
doexe src/sauer_client
|
|
||||||
|
|
||||||
# Install the client wrapper
|
|
||||||
games_make_wrapper "${PN}-client" "${LIBEXECDIR}/sauer_client -q\$HOME/.${PN} -r" "${DATADIR}"
|
|
||||||
|
|
||||||
# Create menu entry
|
|
||||||
newicon -s 256 data/cube.png ${PN}.png
|
|
||||||
make_desktop_entry "${PN}-client" "Cube 2: Sauerbraten"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install the server config files
|
|
||||||
insinto "${STATEDIR}"
|
|
||||||
doins "server-init.cfg"
|
|
||||||
|
|
||||||
# Install the server executables
|
|
||||||
exeinto "${LIBEXECDIR}"
|
|
||||||
doexe src/sauer_master
|
|
||||||
use dedicated || use server && doexe src/sauer_server
|
|
||||||
|
|
||||||
games_make_wrapper "${PN}-server" \
|
|
||||||
"${LIBEXECDIR}/sauer_server -k${DATADIR} -q${STATEDIR}"
|
|
||||||
games_make_wrapper "${PN}-master" \
|
|
||||||
"${LIBEXECDIR}/sauer_master ${STATEDIR}"
|
|
||||||
|
|
||||||
# Install the server init script
|
|
||||||
keepdir "${GAMES_STATEDIR}/run/${PN}"
|
|
||||||
cp "${FILESDIR}"/${PN}.init "${T}" || die
|
|
||||||
sed -i \
|
|
||||||
-e "s:%SYSCONFDIR%:${STATEDIR}:g" \
|
|
||||||
-e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \
|
|
||||||
-e "s:%GAMES_STATEDIR%:${GAMES_STATEDIR}:g" \
|
|
||||||
"${T}"/${PN}.init || die
|
|
||||||
newinitd "${T}"/${PN}.init ${PN}
|
|
||||||
cp "${FILESDIR}"/${PN}.conf "${T}" || die
|
|
||||||
sed -i \
|
|
||||||
-e "s:%SYSCONFDIR%:${STATEDIR}:g" \
|
|
||||||
-e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \
|
|
||||||
-e "s:%GAMES_USER_DED%:${GAMES_USER_DED}:g" \
|
|
||||||
-e "s:%GAMES_GROUP%:${GAMES_GROUP}:g" \
|
|
||||||
"${T}"/${PN}.conf || die
|
|
||||||
newconfd "${T}"/${PN}.conf ${PN}
|
|
||||||
|
|
||||||
nonfatal dodoc src/*.txt docs/dev/*.txt
|
|
||||||
nonfatal dohtml -r README.html docs/*
|
|
||||||
|
|
||||||
prepgamesdirs
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_preinst() {
|
|
||||||
games_pkg_preinst
|
|
||||||
gnome2_icon_savelist
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
games_pkg_postinst
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
|
|
||||||
elog "If you plan to use map editor feature copy all map data from ${DATADIR}"
|
|
||||||
elog "to corresponding folder in your HOME/.${PN}"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
gnome2_icon_cache_update
|
|
||||||
}
|
|
Loading…
Reference in New Issue