(SubgameEntity ent, GameExportsImpl gameExports)
| 263 | * =============== |
| 264 | */ |
| 265 | public static void G_SetStats(SubgameEntity ent, GameExportsImpl gameExports) { |
| 266 | int cells = 0; |
| 267 | int power_armor_type; |
| 268 | |
| 269 | // |
| 270 | // health |
| 271 | // |
| 272 | gclient_t client = ent.getClient(); |
| 273 | client.getPlayerState().stats[Defines.STAT_HEALTH_ICON] = (short) gameExports.level.pic_health; |
| 274 | client.getPlayerState().stats[Defines.STAT_HEALTH] = (short) ent.health; |
| 275 | |
| 276 | // |
| 277 | // ammo |
| 278 | // |
| 279 | if (0 == client.ammo_index /* |
| 280 | * || |
| 281 | * !ent.client.pers.inventory[ent.client.ammo_index] |
| 282 | */ |
| 283 | ) { |
| 284 | client.getPlayerState().stats[Defines.STAT_AMMO_ICON] = 0; |
| 285 | client.getPlayerState().stats[Defines.STAT_AMMO] = 0; |
| 286 | } else { |
| 287 | GameItem ammo = gameExports.items.get(client.ammo_index); |
| 288 | client.getPlayerState().stats[Defines.STAT_AMMO_ICON] = (short) gameExports.gameImports.imageindex(ammo.icon); |
| 289 | client.getPlayerState().stats[Defines.STAT_AMMO] = (short) client.pers.inventory[client.ammo_index]; |
| 290 | } |
| 291 | |
| 292 | // |
| 293 | // armor |
| 294 | // |
| 295 | power_armor_type = GameItems.PowerArmorType(ent, gameExports); |
| 296 | if (power_armor_type != 0) { |
| 297 | cells = client.pers.inventory[GameItems |
| 298 | .FindItem("cells", gameExports).index]; |
| 299 | if (cells == 0) { // ran out of cells for power armor |
| 300 | ent.flags &= ~GameDefines.FL_POWER_ARMOR; |
| 301 | gameExports.gameImports |
| 302 | .sound(ent, Defines.CHAN_ITEM, gameExports.gameImports |
| 303 | .soundindex("misc/power2.wav"), 1, |
| 304 | Defines.ATTN_NORM, 0); |
| 305 | power_armor_type = 0; |
| 306 | ; |
| 307 | } |
| 308 | } |
| 309 | |
| 310 | int index = GameItems.ArmorIndex(ent, gameExports); |
| 311 | // flash between power armor and other armor icon |
| 312 | if (power_armor_type != 0 && (-1 == index || 0 != (gameExports.level.framenum & 8))) { |
| 313 | client.getPlayerState().stats[Defines.STAT_ARMOR_ICON] = (short) gameExports.gameImports.imageindex("i_powershield"); |
| 314 | client.getPlayerState().stats[Defines.STAT_ARMOR] = (short) cells; |
| 315 | } else if (index != -1) { |
| 316 | GameItem armor = GameItems.GetItemByIndex(index, gameExports); |
| 317 | client.getPlayerState().stats[Defines.STAT_ARMOR_ICON] = (short) gameExports.gameImports.imageindex(armor.icon); |
| 318 | client.getPlayerState().stats[Defines.STAT_ARMOR] = (short) client.pers.inventory[index]; |
| 319 | } else { |
| 320 | client.getPlayerState().stats[Defines.STAT_ARMOR_ICON] = 0; |
| 321 | client.getPlayerState().stats[Defines.STAT_ARMOR] = 0; |
| 322 | } |
no test coverage detected