| 714 | public String getID() { return "Use_Weapon"; } |
| 715 | |
| 716 | public void use(SubgameEntity ent, GameItem item, GameExportsImpl gameExports) { |
| 717 | int ammo_index; |
| 718 | GameItem ammo_item; |
| 719 | |
| 720 | // see if we're already using it |
| 721 | gclient_t client = ent.getClient(); |
| 722 | if (item == client.pers.weapon) |
| 723 | return; |
| 724 | |
| 725 | if (item.ammo != null && 0 == gameExports.gameCvars.g_select_empty.value |
| 726 | && 0 == (item.flags & GameDefines.IT_AMMO)) { |
| 727 | |
| 728 | ammo_item = GameItems.FindItem(item.ammo, gameExports); |
| 729 | ammo_index = ammo_item.index; |
| 730 | |
| 731 | if (0 == client.pers.inventory[ammo_index]) { |
| 732 | gameExports.gameImports.cprintf(ent, Defines.PRINT_HIGH, "No " |
| 733 | + ammo_item.pickup_name + " for " |
| 734 | + item.pickup_name + ".\n"); |
| 735 | return; |
| 736 | } |
| 737 | |
| 738 | if (client.pers.inventory[ammo_index] < item.quantity) { |
| 739 | gameExports.gameImports.cprintf(ent, Defines.PRINT_HIGH, "Not enough " |
| 740 | + ammo_item.pickup_name + " for " |
| 741 | + item.pickup_name + ".\n"); |
| 742 | return; |
| 743 | } |
| 744 | } |
| 745 | |
| 746 | // change to this weapon when down |
| 747 | client.newweapon = item; |
| 748 | } |
| 749 | }; |
| 750 | |
| 751 | /* |