MCPcopy Create free account
hub / github.com/demoth/jake2 / TossClientWeapon

Method TossClientWeapon

game/src/main/java/jake2/game/PlayerClient.java:1347–1392  ·  view source on GitHub ↗

Drop items and weapons in deathmatch games.

(SubgameEntity self, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

1345 * Drop items and weapons in deathmatch games.
1346 */
1347 public static void TossClientWeapon(SubgameEntity self, GameExportsImpl gameExports) {
1348
1349 if (gameExports.gameCvars.deathmatch.value == 0)
1350 return;
1351
1352 gclient_t client = self.getClient();
1353 GameItem item = client.pers.weapon;
1354 if (0 == client.pers.inventory[client.ammo_index])
1355 item = null;
1356 if (item != null && ("Blaster".equals(item.pickup_name)))
1357 item = null;
1358
1359 boolean quad;
1360 if (0 == ((int) (gameExports.gameCvars.dmflags.value) & Defines.DF_QUAD_DROP))
1361 quad = false;
1362 else
1363 quad = (client.quad_framenum > (gameExports.level.framenum + 10));
1364
1365 float spread;
1366 if (item != null && quad)
1367 spread = 22.5f;
1368 else
1369 spread = 0.0f;
1370
1371 SubgameEntity drop;
1372 if (item != null) {
1373 client.v_angle[Defines.YAW] -= spread;
1374 drop = GameItems.Drop_Item(self, item, gameExports);
1375 client.v_angle[Defines.YAW] += spread;
1376 drop.spawnflags = GameDefines.DROPPED_PLAYER_ITEM;
1377 }
1378
1379 if (quad) {
1380 client.v_angle[Defines.YAW] += spread;
1381 drop = GameItems.Drop_Item(self, GameItems
1382 .FindItemByClassname("item_quad", gameExports), gameExports);
1383 client.v_angle[Defines.YAW] -= spread;
1384 drop.spawnflags |= GameDefines.DROPPED_PLAYER_ITEM;
1385
1386 drop.touch = GameItems.Touch_Item;
1387 drop.think.nextTime = gameExports.level.time
1388 + (client.quad_framenum - gameExports.level.framenum)
1389 * Defines.FRAMETIME;
1390 drop.think.action = GameUtil.G_FreeEdictA;
1391 }
1392 }
1393}

Callers 1

dieMethod · 0.95

Calls 4

Drop_ItemMethod · 0.95
FindItemByClassnameMethod · 0.95
getClientMethod · 0.45
equalsMethod · 0.45

Tested by

no test coverage detected