226 {
227 float ammoDamage;
228 string ammoTypeName;
229
230 if (
m_weapon.IsChamberFull(muzzleIndex))
231 {
232 if(
m_weapon.PopCartridgeFromChamber(muzzleIndex, ammoDamage, ammoTypeName))
233 {
234 if (
m_weapon.PushCartridgeToInternalMagazine(muzzleIndex, ammoDamage, ammoTypeName))
235 {
236 if (LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" WeaponChambering PushBulletFromChamberToInnerMagazine, ok - " + ammoTypeName +
" - chamber -> internal magazine"); }
237 return true;
238 }
239 else
240 {
241 if (
m_weapon.PushCartridgeToChamber(muzzleIndex, ammoDamage, ammoTypeName))
242 {
243 if (LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
"WeaponChambering PushBulletFromChamberToInnerMagazine, error - " + ammoTypeName +
" - chamber"); }
244 }
245 else
246 {
247 if (LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
"WeaponChambering PushBulletFromChamberToInnerMagazine, error - " + ammoTypeName +
" - lost"); }
248 }
249 }
250 }
251 if (LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
"WeaponChambering PushBulletFromChamberToInnerMagazine, error - cannot pop bullet from chamber"); }
252 }
253 else
254 {
255 if (LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
"WeaponChambering PushBulletFromChamberToInnerMagazine, ok - not bullet in chamber"); }
256 return true;
257 }
258 return false;
259 }
void wpnDebugPrint(string s)