*** empty log message ***

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@897 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
Lee Salzman
2007-04-02 22:33:42 +00:00
parent e0c5539b29
commit c9d3e90683
9 changed files with 45 additions and 45 deletions
+5 -6
View File
@@ -6,10 +6,9 @@
ENetHost *clienthost = NULL;
ENetPeer *curpeer = NULL, *connpeer = NULL;
int connmillis = 0, connattempts = 0, discmillis = 0;
int clientnum = -1; // our client id in the game
bool c2sinit = false; // whether we need to tell the other clients our stats
int getclientnum() { return clientnum; }
int getclientnum() { return player1 ? player1->clientnum : -1; }
bool multiplayer()
{
@@ -189,8 +188,8 @@ void disconnect(int onlyclean, int async)
if(cleanup)
{
stop();
clientnum = -1;
c2sinit = false;
player1->clientnum = -1;
player1->lifesequence = 0;
player1->ismaster = false;
if(m_botmode) BotManager.EndMap();
@@ -293,15 +292,15 @@ void c2skeepalive()
extern string masterpwd;
void c2sinfo(dynent *d) // send update to the server
void c2sinfo(playerent *d) // send update to the server
{
if(clientnum<0) return; // we haven't had a welcome message from the server yet
if(d->clientnum<0) return; // we haven't had a welcome message from the server yet
if(lastmillis-lastupdate<40) return; // don't update faster than 25fps
ENetPacket *packet = enet_packet_create(NULL, 100, 0);
ucharbuf q(packet->data, packet->dataLength);
putint(q, SV_POS);
putint(q, clientnum);
putint(q, d->clientnum);
putuint(q, (int)(d->o.x*DMF)); // quantize coordinates to 1/16th of a cube, between 1 and 3 bytes
putuint(q, (int)(d->o.y*DMF));
putuint(q, (int)(d->o.z*DMF));
+23 -9
View File
@@ -64,11 +64,11 @@ void renderclients()
// creation of scoreboard pseudo-menu
void *scoremenu = NULL, *ctfmenu = NULL;
void *scoremenu = NULL, *teammenu = NULL, *ctfmenu = NULL;
void showscores(bool on)
{
menuset(on ? (m_ctf ? ctfmenu : scoremenu) : NULL);
menuset(on ? (m_ctf ? ctfmenu : (m_teammode ? teammenu : scoremenu)) : NULL);
}
struct sline { string s; };
@@ -80,9 +80,11 @@ void renderscore(void *menu, playerent *d, int cn)
if(d->ismaster) status = "\f0";
if(d->state==CS_DEAD) status = "\f4";
s_sprintfd(lag)("%d", d->plag);
if(m_ctf) s_sprintf(scorelines.add().s)("%d\t%d\t%s\t%d\t%s\t%s%s\t%d", d->flagscore, d->frags, d->state==CS_LAGGED ? "LAG" : lag, d->ping, d->team, status, d->name, cn);
else s_sprintf(scorelines.add().s)("%d\t%s\t%d\t%s\t%s%s\t%d", d->frags, d->state==CS_LAGGED ? "LAG" : lag, d->ping, m_teammode ? d->team : "", status, d->name, cn);
menumanual(menu, scorelines.length()-1, scorelines.last().s);
string &s = scorelines.add().s;
if(m_ctf) s_sprintf(s)("%d\t%d\t%s\t%d\t%s\t%s%s\t%d", d->flagscore, d->frags, d->state==CS_LAGGED ? "LAG" : lag, d->ping, d->team, status, d->name, cn);
else if(m_teammode) s_sprintf(s)("%d\t%s\t%d\t%s\t%s%s\t%d", d->frags, d->state==CS_LAGGED ? "LAG" : lag, d->ping, m_teammode ? d->team : "", status, d->name, cn);
else s_sprintf(s)("%d\t%s\t%d\t%s%s\t%d", d->frags, d->state==CS_LAGGED ? "LAG" : lag, d->ping, status, d->name, cn);
menumanual(menu, scorelines.length()-1, s);
}
struct teamscore
@@ -102,6 +104,15 @@ static int teamscorecmp(const teamscore *x, const teamscore *y)
return 0;
}
static int scorecmp(const playerent **x, const playerent **y)
{
if((*x)->flagscore > (*y)->flagscore) return -1;
if((*x)->flagscore < (*y)->flagscore) return 1;
if((*x)->frags > (*y)->frags) return -1;
if((*x)->frags < (*y)->frags) return 1;
return 0;
}
vector<teamscore> teamscores;
void addteamscore(playerent *d)
@@ -118,12 +129,15 @@ void addteamscore(playerent *d)
void renderscores()
{
void *menu = m_ctf ? ctfmenu : scoremenu;
void *menu = m_ctf ? ctfmenu : (m_teammode ? teammenu : scoremenu);
scorelines.setsize(0);
if(!demoplayback) renderscore(menu, player1, getclientnum());
loopv(players) if(players[i]) renderscore(menu, players[i], i);
sortmenu(menu, 0, scorelines.length());
vector<playerent *> scores;
if(!demoplayback) scores.add(player1);
loopv(players) if(players[i]) scores.add(players[i]);
scores.sort(scorecmp);
loopv(scores) renderscore(menu, scores[i], scores[i]->clientnum);
if(m_teammode)
{
menumanual(menu, scorelines.length(), "");
+6 -2
View File
@@ -50,7 +50,6 @@ void deathstate(playerent *pl)
pl->lastaction = lastmillis;
pl->attacking = false;
pl->state = CS_DEAD;
pl->oldpitch = pl->pitch;
pl->pitch = 0;
pl->roll = 60;
pl->strafe = 0;
@@ -532,7 +531,12 @@ playerent *newclient(int cn) // ensure valid entity
return NULL;
}
while(cn>=players.length()) players.add(NULL);
return players[cn] ? players[cn] : (players[cn] = newplayerent());
playerent *d = players[cn];
if(d) return d;
d = newplayerent();
players[cn] = d;
d->clientnum = cn;
return d;
}
playerent *getclient(int cn) // ensure valid entity
+4 -5
View File
@@ -2,7 +2,6 @@
#include "cube.h"
extern int clientnum;
extern bool c2sinit, senditemstoserver;
extern string clientpassword;
@@ -115,7 +114,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
disconnect();
return;
}
clientnum = mycn; // we are now fully connected
player1->clientnum = mycn; // we are now fully connected
joining = getint(p);
if(getint(p) > 0) conoutf("INFO: this server is password protected");
if(joining<0 && getclientmap()[0]) changemap(getclientmap()); // we are the first client on this server, set map
@@ -234,7 +233,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
int target = getint(p);
int damage = getint(p);
int ls = getint(p);
if(target==clientnum) { if(ls==player1->lifesequence) selfdamage(damage, cn, d, gib); }
if(target==getclientnum()) { if(ls==player1->lifesequence) selfdamage(damage, cn, d, gib); }
else
{
playerent *victim = getclient(target);
@@ -262,7 +261,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
conoutf("\f2%s suicided", d->name);
act = d;
}
else if(actor==clientnum)
else if(actor==getclientnum())
{
act = player1;
int frags;
@@ -313,7 +312,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
case SV_RESUME:
{
int cn = getint(p), frags = getint(p), flags = getint(p);
playerent *d = cn==clientnum ? player1 : newclient(cn);
playerent *d = cn==getclientnum() ? player1 : newclient(cn);
if(d)
{
d->frags = frags;
+2 -3
View File
@@ -144,8 +144,7 @@ struct poshist
struct playerent : dynent
{
float oldpitch;
int lastupdate, plag, ping;
int clientnum, lastupdate, plag, ping;
int lifesequence; // sequence id for each respawn, used in damage test
int frags, flagscore;
int health, armour;
@@ -171,7 +170,7 @@ struct playerent : dynent
poshist history; // Previous stored locations of this player
playerent() : plag(0), ping(0), lifesequence(0), frags(0), flagscore(0), lastpain(0), lastteamkill(0), ismaster(false),
playerent() : clientnum(-1), plag(0), ping(0), lifesequence(0), frags(0), flagscore(0), lastpain(0), lastteamkill(0), ismaster(false),
shots(0), reloading(false), primary(GUN_ASSAULT), nextprimary(GUN_ASSAULT),
skin(0), nextskin(0), inhandnade(NULL)
{
+3 -2
View File
@@ -300,8 +300,9 @@ int main(int argc, char **argv)
initsound();
log("cfg");
extern void *scoremenu, *servmenu, *ctfmenu, *kickmenu, *banmenu;
scoremenu = addmenu("frags\tpj\tping\tteam\tname\tcn", false, false, renderscores);
extern void *scoremenu, *teammenu, *servmenu, *ctfmenu, *kickmenu, *banmenu;
scoremenu = addmenu("frags\tpj\tping\tname\tcn", false, false, renderscores);
teammenu = addmenu("frags\tpj\tping\tteam\tname\tcn", false, false, renderscores);
servmenu = addmenu("ping\tplr\tserver", true, false, refreshservers);
ctfmenu = addmenu("flags\tfrags\tpj\tping\tteam\tname\tcn", false, false, renderscores);
kickmenu = addmenu("kick player", true, false);
-15
View File
@@ -41,15 +41,6 @@ void showmenu(char *name)
menuset(m);
}
int menucompare(mitem *a, mitem *b)
{
int x = atoi(a->text);
int y = atoi(b->text);
if(x>y) return -1;
if(x<y) return 1;
return 0;
}
void drawarrow(int dir, int x, int y, int size, float r = 1.0f, float g = 1.0f, float b = 1.0f)
{
glDisable(GL_BLEND);
@@ -177,12 +168,6 @@ void menumanual(void *menu, int n, char *text, char *action)
mitem.hoveraction = NULL;
}
void sortmenu(void *menu, int start, int num)
{
gmenu &m = *(gmenu *)menu;
m.items.sort(menucompare, start, num);
}
void menuitem(char *text, char *action, char *hoveraction)
{
if(!lastmenu) return;
+1 -2
View File
@@ -28,7 +28,6 @@ extern void conoutf(const char *s, ...);
// menus
extern bool rendermenu();
extern void menumanual(void *menu, int n, char *text, char *action=NULL);
extern void sortmenu(void *menu, int start, int num);
extern bool menukey(int code, bool isdown);
extern void *addmenu(char *name, bool allowinput = true, bool hastitle = true, void (__cdecl *refreshfunc)() = NULL);
extern void rendermenumdl();
@@ -82,7 +81,7 @@ extern bool multiplayer();
extern bool allowedittoggle();
extern void sendpackettoserv(int chan, struct _ENetPacket *packet);
extern void gets2c();
extern void c2sinfo(dynent *d);
extern void c2sinfo(playerent *d);
extern void c2skeepalive();
extern void neterr(char *s);
extern void initclientnet();
+1 -1
View File
@@ -357,7 +357,7 @@ void drawradarent(float x, float y, float yaw, int col, int row, float iconsize,
glTranslatef(iconsize/2, iconsize/2, 0);
glScalef(1/2.0f, 1/2.0f, 1/2.0f);
s_sprintfdv(lbl, label);
draw_text(lbl, x*2, y*2);
draw_text(lbl, (int)(x*2), (int)(y*2));
glDisable(GL_BLEND);
glPopMatrix();
}