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

Method ChangeWeapon

game/src/main/java/jake2/game/PlayerWeapon.java:1064–1116  ·  view source on GitHub ↗
(SubgameEntity ent, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

1062 * ===============
1063 */
1064 public static void ChangeWeapon(SubgameEntity ent, GameExportsImpl gameExports) {
1065 int i;
1066
1067 gclient_t client = ent.getClient();
1068 if (client.grenade_time != 0) {
1069 client.grenade_time = gameExports.level.time;
1070 client.weapon_sound = 0;
1071 weapon_grenade_fire(ent, false, gameExports);
1072 client.grenade_time = 0;
1073 }
1074
1075 client.pers.lastweapon = client.pers.weapon;
1076 client.pers.weapon = client.newweapon;
1077 client.newweapon = null;
1078 client.machinegun_shots = 0;
1079
1080 // set visible model
1081 if (ent.s.modelindex == 255) {
1082 if (client.pers.weapon != null)
1083 i = ((client.pers.weapon.weapmodel & 0xff) << 8);
1084 else
1085 i = 0;
1086 ent.s.skinnum = (ent.index - 1) | i;
1087 }
1088
1089 if (client.pers.weapon != null
1090 && client.pers.weapon.ammo != null)
1091
1092 client.ammo_index = GameItems
1093 .FindItem(client.pers.weapon.ammo, gameExports).index;
1094 else
1095 client.ammo_index = 0;
1096
1097 if (client.pers.weapon == null) { // dead
1098 client.getPlayerState().gunindex = 0;
1099 return;
1100 }
1101
1102 client.weaponstate = WeaponStates.WEAPON_ACTIVATING;
1103 client.getPlayerState().gunframe = 0;
1104 client.getPlayerState().gunindex = gameExports.gameImports
1105 .modelindex(client.pers.weapon.view_model);
1106
1107 client.anim_priority = Defines.ANIM_PAIN;
1108 if ((client.getPlayerState().pmove.pm_flags & Defines.PMF_DUCKED) != 0) {
1109 ent.s.frame = M_Player.FRAME_crpain1;
1110 client.anim_end = M_Player.FRAME_crpain4;
1111 } else {
1112 ent.s.frame = M_Player.FRAME_pain301;
1113 client.anim_end = M_Player.FRAME_pain304;
1114
1115 }
1116 }
1117
1118 /*
1119 * =================

Callers 4

thinkMethod · 0.95
Think_WeaponMethod · 0.95
Weapon_GenericMethod · 0.95
PutClientInServerMethod · 0.95

Calls 5

weapon_grenade_fireMethod · 0.95
FindItemMethod · 0.95
getPlayerStateMethod · 0.95
modelindexMethod · 0.65
getClientMethod · 0.45

Tested by

no test coverage detected