----------------------------------------------------------------------------------------------------------------------
--	Библиотека состояний тела
--	автор: Диденко Руслан (Stohe)
--	TODO:
----------------------------------------------------------------------------------------------------------------------

states = {
	-- Дефолтовый
	idle = {	weapon = nil,
				movement = nil,
				mental = nil,
				bodystate = nil,
				animstate = nil,
				animation = nil
			},
	smartcover = {	weapon = "unstrapped",
				movement = nil,
				mental = nil,
				bodystate = nil,
				animstate = nil,
				animation = nil,
				direction = CSightParams.eSightTypeAnimationDirection
			},

	-- Ходячие состояния
	walk = {	weapon = "strapped",
				movement = move.walk,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	walk_noweap = {	weapon = "none",
				movement = move.walk,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	run = {		weapon = "strapped",
				movement = move.run,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	sprint = {	weapon = "strapped",
				movement = move.run,
				mental = anim.panic,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	patrol = {	weapon = "unstrapped",
				movement = move.walk,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	patrol_fire = {	weapon = "fire",
				movement = move.walk,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	raid = {	weapon = "unstrapped",
				movement = move.walk,
				mental = anim.danger,
				special_danger_move = true,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	raid_fire = {weapon = "fire",
				movement = move.walk,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	sneak = {	weapon = "unstrapped",
				movement = move.walk,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = nil
			},
	sneak_run = {	weapon = "unstrapped",
				movement = move.run,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = nil
			},
	sneak_no_wpn = {	weapon = "strapped",
				movement = move.walk,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = nil
			},
	sneak_fire = {	weapon = "fire",
				movement = move.walk,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = nil
			},
	assault = {	weapon = "unstrapped",
				movement = move.run,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	assault_fire = {	weapon = "fire",
				movement = move.run,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	rush = {	weapon = "unstrapped",
				movement = move.run,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},

	-- Стоячие состояния
	wait = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "idle"
			},
	wait_trade = {	weapon = "none",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "idle"
			},
	wait_na = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	guard = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "idle"
			},
	guard_chasovoy = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "idle_chasovoy"
			},
	guard_na = {weapon = "unstrapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	guard_fire = {	weapon = "fire",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	threat = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil,
				fast_set = true
			},
	threat_danger = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "bloodsucker_search",
			},
	give_orders	= {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "give_orders",
	},
	threat_heli = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	threat_na = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil,
				fast_set = true
			},
	threat_fire = {	weapon = "fire",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	threat_sniper_fire = {	weapon = "sniper_fire",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = nil
			},
	hide = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = "hide"
			},
	hide_na = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = nil
			},
	hide_fire = {	weapon = "fire",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = nil
			},
	hide_sniper_fire = {	weapon = "sniper_fire",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = nil
			},
	caution = {	weapon = nil,
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "caution"
			},
	choose	 = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "choosing"
			},
	press	 = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "press"
			},
	ward	 = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "warding"
			},
	ward_short = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "warding_short"
			},
	ward_noweap = {weapon = "none",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "warding"
			},
	ward_noweap_short = {weapon = "none",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "warding_short"
			},
	fold_arms = {weapon = "none",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "fold_arms"
			},

	search	= {weapon = nil,
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "poisk"
			},
	stoop_no_weap	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "stoop_no_weap"
				},
	salut	 = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "salut"
			},
	salut_free = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "salut_free"
			},
	prisoner = {weapon = "strapped",
				movement = nil,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "prisoner"
			},

	hide_no_wpn = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = "hide"
			},
	-- Сидячие состояния
	sit = {		weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit",
				animation = nil 
			},
	sit_knee = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_knee",
				animation = nil
			},
	sit_ass = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_ass",
				animation = nil
			},

	play_guitar = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_knee",
				animation = "play_guitar"
			},
	play_harmonica = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_ass",
				animation = "play_harmonica"
			},



	sleep = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "sleeping"
			},
	-- START IX-Ray
	sleep_sit = {	weapon = "strapped",
			movement = move.stand,
			mental = anim.free,
			bodystate = move.standing,
			animstate = "sit_ass",
			animation = "sleep_sit"
		},
	eat_bread	= {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_knee",
				animation = "eat_bread"
			},
	eat_vodka	= {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_ass",
				animation = "eat_vodka"
			},
	eat_energy	= {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_ass",
				animation = "eat_energy"
			},
	eat_kolbasa	= {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_ass",
				animation = "eat_kolbasa"
			},

	guitar	= {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_knee",
				animation = "guitar"
			},
	harmonica	= {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "sit_ass",
				animation = "harmonica"
			},
	-- END IX-Ray
	hello = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "hello"
			},
	hello_wpn = {weapon = "unstrapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "hello"
			},

	refuse = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "refuse"
			},
	claim = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "claim"
			},
	backoff = {	weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "backoff"
			},
	backoff2 = {weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "backoff"
			},
	punch = {	weapon = nil,
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "punch"
			},

	search_corpse = {weapon = "strapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = "search_corpse"
			},

	help_wounded = {weapon = "strapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = "help_wounded"
			},

	dynamite = {weapon = "strapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = "dynamite"
			},

	binocular = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "binocular"
			},
	hide_rac = {weapon = "unstrapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				animstate = nil,
				animation = "cr_raciya"
			},
	wait_rac = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "raciya"
			},
	wait_rac_noweap = {weapon = "none",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "raciya"
			},
	wait_rac_stc = {weapon = "unstrapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "raciya_stc"
			},
	guard_rac = {weapon = "unstrapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "raciya"
			},

	probe_stand	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_stand"
				},
	probe_stand_detector_advanced	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_stand_detector_advanced"
				},
	probe_stand_detector_elite	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_stand_detector_elite"
				},
	probe_way	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_way"
			},
	probe_way_detector_advanced	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_way_detector_advanced"
			},
	probe_way_detector_elite	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_way_detector_elite"
			},
	probe_crouch	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_crouch"
			},
	probe_crouch_detector_advanced	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_crouch_detector_advanced"
			},
	probe_crouch_detector_elite	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "probe_crouch_detector_elite"
			},

	scaner_stand	= {weapon = "strapped",
						movement = move.stand,
						mental = anim.free,
						bodystate = move.standing,
						animstate = nil,
						animation = "scaner_stand"
						},
	scaner_way	= {weapon = "strapped",
					movement = move.stand,
					mental = anim.free,
					bodystate = move.standing,
					animstate = nil,
					animation = "scaner_way"
					},

 	scaner_crouch	= {weapon = "strapped",
						movement = move.stand,
						mental = anim.free,
						bodystate = move.standing,
						animstate = nil,
						animation = "scaner_crouch"
					},

	hands_up	= {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "hands_up"
			},



	-- Раненый
	wounded = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				direction = look.cur_dir,
				animstate = nil,
				animation = "wounded"
			},
	wounded_heavy = { weapon = "drop",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				direction = look.cur_dir, --CSightParams.eSightTypeAnimationDirection
				animstate = nil,
				animation = "wounded_heavy_1"
			},
	wounded_heavy_2 = { weapon = "drop",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				direction = look.cur_dir,
				animstate = nil,
				animation = "wounded_heavy_2"
			},
	wounded_heavy_3 = { weapon = "drop",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				direction = look.cur_dir,
				animstate = nil,
				animation = "wounded_heavy_3"
			},
	wounded_zombie = {	weapon = "drop",
				movement = move.stand,
				mental = anim.danger,
				bodystate = move.crouch,
				direction = look.cur_dir,
				animstate = nil,
				animation = "wounded_zombie"
			},
	trans_0 = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "trans_0"
			},
	trans_1 = {	weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "trans_1"
			},
	trans_zombied = {weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "trans_zombied"
			},

	talk_default = { weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "talk_default"
			},

	-- Пси раненый
	psy_pain = {weapon = "drop",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "psy_armed"
			},
	psy_armed = {weapon = "unstrapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "psy_armed"
			},
	psy_shoot = {weapon = "fire",
				weapon_slot = 1,
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = nil,
				animation = "psy_shoot"
			},
	lay_on_bed = { weapon = "drop",
		movement = move.stand,
		mental = anim.danger,
		bodystate = move.crouch,
		direction = look.cur_dir,
		animstate = nil,
		animation = "wounded_heavy_1"}
}

utils.copy_table(states, state_lib_animpoint.add_state_lib())
utils.copy_table(states, state_mgr_scenario.add_state_lib())
utils.copy_table(states, state_mgr_pri_a15.add_state_lib())