227 m_fsm.AddTransition(
new WeaponTransition( Mech_C10, _fin_,
C00, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
229 m_fsm.AddTransition(
new WeaponTransition( Mech_C10, _abt_,
C00, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
233 m_fsm.AddTransition(
new WeaponTransition( Mech_CF0, _fin_,
CF0, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
235 m_fsm.AddTransition(
new WeaponTransition( Mech_CF0, _abt_,
CF0, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
239 m_fsm.AddTransition(
new WeaponTransition( Mech_C11, _fin_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
241 m_fsm.AddTransition(
new WeaponTransition( Mech_C11, _abt_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
245 m_fsm.AddTransition(
new WeaponTransition( Mech_C01, _fin_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
247 m_fsm.AddTransition(
new WeaponTransition( Mech_C01, _abt_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
251 m_fsm.AddTransition(
new WeaponTransition( Mech_CF1, _fin_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
252 m_fsm.AddTransition(
new WeaponTransition( Mech_CF1, _fin_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
254 m_fsm.AddTransition(
new WeaponTransition( Mech_CF1, _abt_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
255 m_fsm.AddTransition(
new WeaponTransition( Mech_CF1, _abt_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
312 m_fsm.AddTransition(
new WeaponTransition( Chamber_C00, _fin_,
C00, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
314 m_fsm.AddTransition(
new WeaponTransition( Chamber_C00, _abt_,
C00, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
318 m_fsm.AddTransition(
new WeaponTransition( Chamber_C01, _fin_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
320 m_fsm.AddTransition(
new WeaponTransition( Chamber_C01, _abt_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
324 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF0, _fin_,
CF0, NULL,
new WeaponGuardCurrentChamberFiredOut(
this) ));
325 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF0, _fin_,
C00, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
327 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF0, _abt_,
CF0, NULL,
new WeaponGuardCurrentChamberFiredOut(
this) ));
328 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF0, _abt_,
C00, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
332 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF1, _fin_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this) ));
333 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF1, _fin_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
335 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF1, _abt_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this) ));
336 m_fsm.AddTransition(
new WeaponTransition( Chamber_CF1, _abt_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this) ));
340 m_fsm.AddTransition(
new WeaponTransition(
C00, __A__, Attach_C00, NULL,
new WeaponGuardCanAttachMag(
this)));
341 m_fsm.AddTransition(
new WeaponTransition( Attach_C00, _fin_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
342 m_fsm.AddTransition(
new WeaponTransition( Attach_C00, _fin_,
C01, NULL,
new WeaponGuardHasMag(
this)));
344 m_fsm.AddTransition(
new WeaponTransition( Attach_C00, _abt_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
345 m_fsm.AddTransition(
new WeaponTransition( Attach_C00, _abt_,
C01, NULL,
new WeaponGuardHasMag(
this)));
348 m_fsm.AddTransition(
new WeaponTransition(
C10, __A__, Attach_C10, NULL,
new WeaponGuardCanAttachMag(
this)));
349 m_fsm.AddTransition(
new WeaponTransition( Attach_C10, _fin_,
C11, NULL,
new WeaponGuardHasMag(
this)));
351 m_fsm.AddTransition(
new WeaponTransition( Attach_C10, _abt_,
C11, NULL,
new WeaponGuardHasMag(
this)));
355 m_fsm.AddTransition(
new WeaponTransition(
CF0, __A__, Attach_CF0, NULL,
new WeaponGuardCanAttachMag(
this)));
356 m_fsm.AddTransition(
new WeaponTransition( Attach_CF0, _fin_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
357 m_fsm.AddTransition(
new WeaponTransition( Attach_CF0, _fin_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
358 m_fsm.AddTransition(
new WeaponTransition( Attach_CF0, _fin_,
C01, NULL,
new WeaponGuardHasMag(
this)));
360 m_fsm.AddTransition(
new WeaponTransition( Attach_CF0, _abt_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
361 m_fsm.AddTransition(
new WeaponTransition( Attach_CF0, _abt_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
362 m_fsm.AddTransition(
new WeaponTransition( Attach_CF0, _abt_,
C01, NULL,
new WeaponGuardHasMag(
this)));
366 m_fsm.AddTransition(
new WeaponTransition(
JF0, __A__, Attach_JF0, NULL,
new WeaponGuardCanAttachMag(
this)));
367 m_fsm.AddTransition(
new WeaponTransition( Attach_JF0, _fin_,
JF1, NULL,
new WeaponGuardHasMag(
this)));
369 m_fsm.AddTransition(
new WeaponTransition( Attach_JF0, _abt_,
JF1, NULL,
new WeaponGuardHasMag(
this)));
373 m_fsm.AddTransition(
new WeaponTransition(
C11, __S__, Reload_C11, NULL,
new WeaponGuardCanSwapMag(
this)));
374 m_fsm.AddTransition(
new WeaponTransition( Reload_C11, _fin_,
C11, NULL,
new WeaponGuardHasMag(
this)));
376 m_fsm.AddTransition(
new WeaponTransition( Reload_C11, _abt_,
C11, NULL,
new WeaponGuardHasMag(
this)));
379 m_fsm.AddTransition(
new WeaponTransition(
C01, __S__, Reload_C01, NULL,
new WeaponGuardCanSwapMag(
this)));
380 m_fsm.AddTransition(
new WeaponTransition( Reload_C01, _fin_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
381 m_fsm.AddTransition(
new WeaponTransition( Reload_C01, _fin_,
C01, NULL,
new WeaponGuardHasMag(
this)));
383 m_fsm.AddTransition(
new WeaponTransition( Reload_C01, _abt_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
384 m_fsm.AddTransition(
new WeaponTransition( Reload_C01, _abt_,
C01, NULL,
new WeaponGuardHasMag(
this)));
387 m_fsm.AddTransition(
new WeaponTransition(
CF1, __S__, Reload_CF1, NULL,
new WeaponGuardCanSwapMag(
this)));
388 m_fsm.AddTransition(
new WeaponTransition( Reload_CF1, _fin_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
389 m_fsm.AddTransition(
new WeaponTransition( Reload_CF1, _fin_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
390 m_fsm.AddTransition(
new WeaponTransition( Reload_CF1, _fin_,
C01, NULL,
new WeaponGuardHasMag(
this)));
392 m_fsm.AddTransition(
new WeaponTransition( Reload_CF1, _abt_,
CF1, NULL,
new WeaponGuardCurrentChamberFiredOut(
this)));
393 m_fsm.AddTransition(
new WeaponTransition( Reload_CF1, _abt_,
C11, NULL,
new WeaponGuardCurrentChamberFull(
this)));
394 m_fsm.AddTransition(
new WeaponTransition( Reload_CF1, _abt_,
C01, NULL,
new WeaponGuardHasMag(
this)));
397 m_fsm.AddTransition(
new WeaponTransition(
JF1, __S__, Reload_JF1, NULL,
new WeaponGuardCanSwapMag(
this)));
398 m_fsm.AddTransition(
new WeaponTransition( Reload_JF1, _fin_,
JF1, NULL,
new WeaponGuardHasMag(
this)));
400 m_fsm.AddTransition(
new WeaponTransition( Reload_JF1, _abt_,
JF1, NULL,
new WeaponGuardHasMag(
this)));
405 m_fsm.AddTransition(
new WeaponTransition(
C11, __D__, Detach_C11, NULL,
new WeaponGuardCanDetachMag(
this)));
407 m_fsm.AddTransition(
new WeaponTransition( Detach_C11, _abt_,
C11, NULL,
new WeaponGuardHasMag(
this)));
411 m_fsm.AddTransition(
new WeaponTransition(
C01, __D__, Detach_C01, NULL,
new WeaponGuardCanDetachMag(
this)));
412 m_fsm.AddTransition(
new WeaponTransition( Detach_C01, _fin_,
C01, NULL,
new WeaponGuardHasMag(
this)));
414 m_fsm.AddTransition(
new WeaponTransition( Detach_C01, _abt_,
C01, NULL,
new WeaponGuardHasMag(
this)));
417 m_fsm.AddTransition(
new WeaponTransition(
CF1, __D__, Detach_CF1, NULL,
new WeaponGuardCanDetachMag(
this)));
418 m_fsm.AddTransition(
new WeaponTransition( Detach_CF1, _fin_,
CF1, NULL,
new WeaponGuardHasMag(
this)));
420 m_fsm.AddTransition(
new WeaponTransition( Detach_CF1, _abt_,
CF1, NULL,
new WeaponGuardHasMag(
this)));
423 m_fsm.AddTransition(
new WeaponTransition(
JF1, __D__, Detach_JF1, NULL,
new WeaponGuardCanDetachMag(
this)));
424 m_fsm.AddTransition(
new WeaponTransition( Detach_JF1, _fin_,
JF1, NULL,
new WeaponGuardHasMag(
this)));
426 m_fsm.AddTransition(
new WeaponTransition( Detach_JF1, _abt_,
JF1, NULL,
new WeaponGuardHasMag(
this)));
431 m_fsm.AddTransition(
new WeaponTransition( Unjam_JF0, _fin_,
JF0, NULL,
new WeaponGuardJammed(
this)));
433 m_fsm.AddTransition(
new WeaponTransition( Unjam_JF0, _abt_,
JF0, NULL,
new WeaponGuardJammed(
this)));
437 m_fsm.AddTransition(
new WeaponTransition( Unjam_JF1, _fin_,
JF1, NULL,
new WeaponGuardJammed(
this)));
438 m_fsm.AddTransition(
new WeaponTransition( Unjam_JF1, _fin_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
440 m_fsm.AddTransition(
new WeaponTransition( Unjam_JF1, _abt_,
JF1, NULL,
new WeaponGuardJammed(
this)));
441 m_fsm.AddTransition(
new WeaponTransition( Unjam_JF1, _abt_,
C01, NULL,
new WeaponGuardCurrentChamberEmpty(
this)));
444 SetInitialState(
C00);
446 SelectionBulletHide();