UFO: Alien Invasion
Doxygen documentation generating
e_event_actorstats.cpp
Go to the documentation of this file.
1 
5 /*
6 Copyright (C) 2002-2023 UFO: Alien Invasion.
7 
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation; either version 2
11 of the License, or (at your option) any later version.
12 
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 
17 See the GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 
23 */
24 
25 #include "../../../../client.h"
26 #include "../../../cl_localentity.h"
27 #include "../../../cl_actor.h"
28 #include "../../../cl_hud.h"
29 #include "e_event_actorstats.h"
30 
36 void CL_ActorStats (const eventRegister_t* self, dbuffer* msg)
37 {
38  const int entnum = NET_ReadShort(msg);
39  le_t* le = LE_Get(entnum);
40  if (!le)
41  LE_NotFoundError(entnum);
42 
43  if (le->pnum != cl.pnum) {
44  Com_Printf("CL_ActorStats: stats for a player that is not controlled by us but by: %i (entnum: %i)\n",
45  le->pnum, le->entnum);
46  return;
47  }
48 
49  switch (le->type) {
50  case ET_ACTORHIDDEN:
51  case ET_ACTOR:
52  case ET_ACTOR2x2:
53  break;
54  default:
55  Com_Printf("CL_ActorStats: LE (%i) not an actor (type: %i)\n", entnum, le->type);
56  return;
57  }
58 
59  int oldTUs = 0;
60  if (LE_IsSelected(le))
61  oldTUs = le->TU;
62 
63  NET_ReadFormat(msg, self->formatString, &le->TU, &le->HP, &le->STUN, &le->morale);
64 
65  if (le->TU > le->maxTU)
66  le->maxTU = le->TU;
67  if (le->HP > le->maxHP)
68  le->maxHP = le->HP;
69  if (le->morale > le->maxMorale)
70  le->maxMorale = le->morale;
71 
72  /* if selActor's timeunits have changed, update movelength */
73  if (le->TU != oldTUs && LE_IsSelected(le))
75 
77 }
int maxTU
int STUN
void HUD_UpdateActorStats(const le_t *le)
Definition: cl_hud.cpp:144
int morale
void CL_ActorStats(const eventRegister_t *self, dbuffer *msg)
Parses the actor stats that comes from the netchannel.
void NET_ReadFormat(dbuffer *buf, const char *format,...)
The user-friendly version of NET_ReadFormat that reads variable arguments from a buffer according to ...
Definition: netpack.cpp:533
int pnum
void Com_Printf(const char *const fmt,...)
Definition: common.cpp:386
int entnum
a local entity
void CL_ActorResetMoveLength(le_t *le)
Recalculates the currently selected Actor's move length.
Definition: cl_actor.cpp:764
le_t * LE_Get(int entnum)
Searches all local entities for the one with the searched entnum.
int maxMorale
#define LE_IsSelected(le)
int NET_ReadShort(dbuffer *buf)
Definition: netpack.cpp:242
clientBattleScape_t cl
int maxHP
int HP
entity_type_t type
Struct that defines one particular event with all its callbacks and data.
Definition: e_main.h:42
int TU
#define LE_NotFoundError(entnum)