update IPC data structure + temporary data
This commit is contained in:
parent
ef8d0bc527
commit
f65fdd1468
27
src/ipc.cpp
27
src/ipc.cpp
@ -135,6 +135,33 @@ void UpdateServerAddress(bool shutdown) {
|
||||
strncpy(data.server, s_addr, sizeof(data.server));
|
||||
}
|
||||
|
||||
void UpdateTemporaryData() {
|
||||
user_data_s& data = peer->memory->peer_user_data[peer->client_id];
|
||||
data.connected = g_IEngine->IsInGame();
|
||||
if (data.connected) {
|
||||
IClientEntity* player = g_IEntityList->GetClientEntity(g_IEngine->GetLocalPlayer());
|
||||
if (player) {
|
||||
data.good = true;
|
||||
data.health = NET_INT(player, netvar.iHealth);
|
||||
data.health_max = g_pPlayerResource->GetMaxHealth(LOCAL_E);
|
||||
data.clazz = g_pPlayerResource->GetClass(LOCAL_E);
|
||||
data.life_state = NET_BYTE(player, netvar.iLifeState);
|
||||
data.score = g_pPlayerResource->GetScore(g_IEngine->GetLocalPlayer());
|
||||
if (data.last_score != data.score) {
|
||||
if (data.last_score > data.score) {
|
||||
data.total_score += data.score;
|
||||
} else {
|
||||
data.total_score += (data.score - data.last_score);
|
||||
}
|
||||
data.last_score = data.score;
|
||||
}
|
||||
data.team = g_pPlayerResource->GetTeam(g_IEngine->GetLocalPlayer());
|
||||
} else {
|
||||
data.good = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StoreClientData() {
|
||||
UpdateServerAddress();
|
||||
peer_t::MutexLock lock(peer);
|
||||
|
11
src/ipc.h
11
src/ipc.h
@ -49,12 +49,23 @@ struct user_data_s {
|
||||
char name[32];
|
||||
char server[22];
|
||||
unsigned friendid;
|
||||
bool connected;
|
||||
bool good;
|
||||
int health;
|
||||
int health_max;
|
||||
char life_state;
|
||||
int team;
|
||||
int clazz;
|
||||
int score;
|
||||
int last_score;
|
||||
int total_score;
|
||||
};
|
||||
|
||||
using peer_t = cat_ipc::Peer<server_data_s, user_data_s>;
|
||||
|
||||
extern peer_t* peer;
|
||||
|
||||
void UpdateTemporaryData();
|
||||
void UpdateServerAddress(bool shutdown = false);
|
||||
void StoreClientData();
|
||||
void UpdatePlayerlist();
|
||||
|
Reference in New Issue
Block a user