From 3f7283f5eb8e556260aa5c3e3ae268de7e215d2b Mon Sep 17 00:00:00 2001 From: flowtron Date: Sat, 7 Jun 2008 15:15:31 +0000 Subject: [PATCH] watchingdemo & systemtime definitions/usage git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2157 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/clients2c.cpp | 41 ++++++++++++++++++++-------------------- source/src/main.cpp | 36 +++++++++++++++++++++-------------- source/src/protos.h | 19 +++++++++++-------- source/src/worldio.cpp | 17 +++++++++-------- 4 files changed, 63 insertions(+), 50 deletions(-) diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index d61da8c4..d8e76fb9 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -88,7 +88,7 @@ void parsepositions(ucharbuf &p) d->roll = roll; d->vel = vel; d->strafe = (f&3)==3 ? -1 : f&3; - f >>= 2; + f >>= 2; d->move = (f&3)==3 ? -1 : f&3; f >>= 2; d->onfloor = f&1; @@ -126,7 +126,7 @@ void parsepositions(ucharbuf &p) return; } } - + void parsemessages(int cn, playerent *d, ucharbuf &p) { static char text[MAXTRANS]; @@ -180,7 +180,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) if(d) d->lastvoicecom = lastmillis; break; } - + case SV_TEAMTEXT: { int cn = getint(p); @@ -208,7 +208,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) else return; break; - case SV_MAPCHANGE: + case SV_MAPCHANGE: { getstring(text, p); int mode = getint(p); @@ -218,7 +218,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) mapchanged = true; break; } - + case SV_ITEMLIST: { int n; @@ -249,14 +249,14 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) } else // new client { - c2sinit = false; // send new players my info again + c2sinit = false; // send new players my info again conoutf("connected: %s", colorname(d, 0, text)); - } + } s_strncpy(d->name, text, MAXNAMELEN+1); getstring(text, p); filtertext(d->team, text, false, MAXTEAMLEN); setskin(d, getint(p)); - if(m_ctf) loopi(2) + if(m_ctf) loopi(2) { flaginfo &f = flaginfos[i]; if(!f.actor) f.actor = getclient(f.actor_cn); @@ -269,7 +269,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) int cn = getint(p); playerent *d = getclient(cn); if(!d) break; - if(d->name[0]) conoutf("player %s disconnected", colorname(d)); + if(d->name[0]) conoutf("player %s disconnected", colorname(d)); zapplayer(players[cn]); break; } @@ -311,7 +311,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) player1->state = CS_ALIVE; findplayerstart(player1); if(player1->skin!=player1->nextskin) setskin(player1, player1->nextskin); - if(m_arena) + if(m_arena) { conoutf("new round starting... fight!"); if(m_botmode) BotManager.RespawnBots(); @@ -487,7 +487,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) break; } - case SV_PONG: + case SV_PONG: { int millis = getint(p); addmsg(SV_CLIENTPING, "i", player1->ping = (player1->ping*5+lastmillis-millis)/6); @@ -506,14 +506,14 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) case SV_TIMEUP: timeupdate(getint(p)); break; - + case SV_WEAPCHANGE: { if(!d) return; d->selectweapon(getint(p)); break; } - + case SV_SERVMSG: getstring(text, p); conoutf("%s", text); @@ -530,7 +530,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) switch(f.state) { case CTFF_STOLEN: - { + { flagstolen(flag, action, getint(p)); break; } @@ -552,7 +552,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) } break; } - + case SV_FLAGS: { if(!d) return; @@ -589,7 +589,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) int cl = getint(p), r = getint(p); if(cl >= 0 && r >= 0) - { + { playerent *pl = (cl == getclientnum() ? player1 : newclient(cl)); if(pl) { @@ -637,7 +637,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) case SV_CALLVOTESUC: callvotesuc(); break; - + case SV_CALLVOTEERR: callvoteerr(getint(p)); break; @@ -675,8 +675,8 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) case SV_DEMOPLAYBACK: { watchingdemo = demoplayback = getint(p)!=0; - if(demoplayback) - { + if(demoplayback) + { player1->state = CS_SPECTATE; player1->spectatemode = SM_NONE; } @@ -707,7 +707,8 @@ void receivefile(uchar *data, int len) { case SV_SENDDEMO: { - s_sprintfd(fname)("demos/%d.dmo", lastmillis); + systemtime(); + s_sprintfd(fname)("demos/%d.dmo", now_utc); //lastmillis); path(fname); FILE *demo = openfile(fname, "wb"); if(!demo) return; diff --git a/source/src/main.cpp b/source/src/main.cpp index 013af8aa..f63d9d2b 100644 --- a/source/src/main.cpp +++ b/source/src/main.cpp @@ -62,6 +62,13 @@ SDL_Surface *screen = NULL; static int initing = NOT_INITING; static bool restoredinits = false; +time_t now_utc; +struct tm *systemtime() +{ + time(&now_utc); + return localtime(&now_utc); +} + bool initwarning(const char *desc, int level, int type) { if(initing < level) @@ -138,7 +145,8 @@ void screenshot(char *imagepath) if(!imagepath[0]) { static string buf; - s_sprintf(buf)("screenshots/screenshot_%d.bmp", lastmillis); + systemtime(); + s_sprintf(buf)("screenshots/%d.bmp", now_utc); imagepath = buf; } SDL_SaveBMP(image, findfile(path(imagepath), "wb")); @@ -423,7 +431,7 @@ VARFP(clockerror, 990000, 1000000, 1010000, clockreset()); VARFP(clockfix, 0, 0, 1, clockreset()); int main(int argc, char **argv) -{ +{ bool dedicated = false; int uprate = 0, maxcl = DEFAULTCLIENTS, scthreshold = -5, port = 0; const char *sdesc = "", *ip = "", *master = NULL, *passwd = "", *maprot = NULL, *adminpwd = NULL, *srvmsg = NULL; @@ -431,7 +439,7 @@ int main(int argc, char **argv) pushscontext(IEXC_CFG); #define initlog(s) puts("init: " s) - + initing = INIT_RESET; for(int i = 1; ilastflush+60000) { - fflush(stdout); lastflush = millis; + if(millis>lastflush+60000) { + fflush(stdout); lastflush = millis; } #endif } diff --git a/source/src/protos.h b/source/src/protos.h index c1aaae3d..c5536e6b 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -1,4 +1,4 @@ -// protos for ALL external functions in cube... +// protos for ALL external functions in cube... #ifndef STANDALONE // GL_ARB_multitexture @@ -89,11 +89,11 @@ extern void addchange(const char *desc, int type); extern void clearchanges(int type); extern void refreshapplymenu(void *menu, bool init); -struct mitem -{ +struct mitem +{ struct gmenu *parent; color *bgcolor; - + mitem(gmenu *parent, color *bgcolor) : parent(parent), bgcolor(bgcolor) {} virtual ~mitem() { delete bgcolor; } @@ -134,7 +134,7 @@ struct gmenu mdirlist *dirlist; gmenu(){} - virtual ~gmenu() + virtual ~gmenu() { DELETEA(name); DELETEA(title); @@ -173,7 +173,7 @@ struct serverinfo string cmd; int mode, numplayers, maxclients, ping, protocol, minremain, resolved, port; ENetAddress address; - + serverinfo() : mode(0), numplayers(0), maxclients(0), ping(9999), protocol(0), minremain(0), resolved(UNRESOLVED), port(-1) { @@ -365,6 +365,9 @@ extern int isoccluded(float vx, float vy, float cx, float cy, float csize); // main extern SDL_Surface *screen; +extern time_t now_utc; +extern struct tm *systemtime(); + extern void keyrepeat(bool on); extern bool firstrun; @@ -589,7 +592,7 @@ extern char *votestring(int type, char *arg1, char *arg2); // demo struct demoheader { - char magic[16]; + char magic[16]; int version, protocol; }; @@ -599,7 +602,7 @@ struct log { bool console, enabled; enum level { info = 0, warning, error }; - + log() : console(true), enabled(false) {}; virtual ~log() {}; diff --git a/source/src/worldio.cpp b/source/src/worldio.cpp index f7f63a0a..aee3f26b 100644 --- a/source/src/worldio.cpp +++ b/source/src/worldio.cpp @@ -11,7 +11,7 @@ void backup(char *name, char *backupname) rename(findfile(name, "wb"), backupfile); } -string cgzname, bakname, pcfname, mcfname; +string cgzname, bakname, pcfname, mcfname; void setnames(char *name) { @@ -27,8 +27,9 @@ void setnames(char *name) s_strcpy(pakname, "maps"); s_strcpy(mapname, name); } + systemtime(); s_sprintf(cgzname)("packages/%s/%s.cgz", pakname, mapname); - s_sprintf(bakname)("packages/%s/%s_%d.BAK", pakname, mapname, lastmillis); + s_sprintf(bakname)("packages/%s/%s_%d.BAK", pakname, mapname, now_utc); //lastmillis); s_sprintf(pcfname)("packages/%s/package.cfg", pakname); s_sprintf(mcfname)("packages/%s/%s.cfg", pakname, mapname); @@ -103,7 +104,7 @@ void toptimize() // FIXME: only does 2x2, make atleast for 4x4 also } } -// these two are used by getmap/sendmap.. transfers compressed maps directly +// these two are used by getmap/sendmap.. transfers compressed maps directly void writemap(char *name, int msize, uchar *mdata) { @@ -163,9 +164,9 @@ void save_world(char *mname) endianswap(&tmp.version, sizeof(int), 4); endianswap(&tmp.waterlevel, sizeof(int), 1); gzwrite(f, &tmp, sizeof(header)); - loopv(ents) + loopv(ents) { - if(ents[i].type!=NOTUSED) + if(ents[i].type!=NOTUSED) { entity tmp = ents[i]; endianswap(&tmp, sizeof(short), 4); @@ -265,7 +266,7 @@ bool load_world(char *mname) // still supports all map formats that have if(!e.attr2) e.attr2 = 255; // needed for MAPVERSION<=2 if(e.attr1>32) e.attr1 = 32; // 12_03 and below } - + if (hdr.version