1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/*
Copyright (C) 1997-2001 Id Software, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// Created on 13.01.2004 by RST.
package jake2.server;
import jake2.Defines;
import jake2.game.edict_t;
import jake2.game.usercmd_t;
import jake2.qcommon.netchan_t;
import jake2.qcommon.sizebuf_t;
public class client_t {
public client_t() {
for (int n = 0; n < Defines.UPDATE_BACKUP; n++) {
frames[n] = new client_frame_t();
}
}
public static final int LATENCY_COUNTS = 16;
public static final int RATE_MESSAGES = 10;
int state;
String userinfo = "";
int lastframe; // for delta compression
usercmd_t lastcmd = new usercmd_t(); // for filling in big drops
int commandMsec; // every seconds this is reset, if user
// commands exhaust it, assume time cheating
int frame_latency[] = new int[LATENCY_COUNTS];
int ping;
int message_size[] = new int[RATE_MESSAGES]; // used to rate drop packets
int rate;
int surpressCount; // number of messages rate supressed
// pointer
edict_t edict; // EDICT_NUM(clientnum+1)
//char name[32]; // extracted from userinfo, high bits masked
String name = ""; // extracted from userinfo, high bits masked
int messagelevel; // for filtering printed messages
// The datagram is written to by sound calls, prints, temp ents, etc.
// It can be harmlessly overflowed.
sizebuf_t datagram = new sizebuf_t();
byte datagram_buf[] = new byte[Defines.MAX_MSGLEN];
client_frame_t frames[] = new client_frame_t[Defines.UPDATE_BACKUP]; // updates can be delta'd from here
byte download[]; // file being downloaded
int downloadsize; // total bytes (can't use EOF because of paks)
int downloadcount; // bytes sent
int lastmessage; // sv.framenum when packet was last received
int lastconnect;
int challenge; // challenge of this user, randomly generated
netchan_t netchan = new netchan_t();
//this was introduced by rst, since java can't calculate the index out of the address.
int serverindex;
}
|