singleplayer_ironsight_mode = (
0, 0, 0, [],
[
(get_player_agent_no, ":player_agent"),
# (ge, ":player_agent", 0),
(try_begin),
(game_key_is_down, gk_view_char),
(mission_cam_set_mode, 0),
(else_try),
(agent_get_wielded_item, ":player_item", ":player_agent", 0),
(this_or_next|eq, ":player_item", "itm_springfield_1861_m"),
(this_or_next|eq, ":player_item", "itm_springfield_1861"),
(this_or_next|eq, ":player_item", "itm_enfield_rifle_musket_bayonet"),
(this_or_next|eq, ":player_item", "itm_enfield_rifle_musket"),
(this_or_next|eq, ":player_item", "itm_springfield_1855"),
(this_or_next|eq, ":player_item", "itm_springfield1855_m"),
(eq, ":player_item", "itm_kentucky_rifle"),
(game_key_is_down, gk_zoom),
(agent_get_horse, ":horse", ":player_agent"),
(eq, ":horse", -1),
(is_camera_in_first_person),
(set_camera_in_first_person, 1),
(agent_get_look_position, pos1, ":player_agent"),
(position_move_x, pos1, 7),
(position_move_z, pos1, 40),
(init_position, pos2),
(init_position, pos3),
(position_copy_rotation, pos3, pos1),
(position_copy_rotation, pos1, pos2),
(position_move_z, pos1, 127),
(position_copy_rotation, pos1, pos3),
(mission_cam_set_mode, 1),
# whatever you do to zoom...
(mission_cam_set_position, pos1),
(mission_cam_set_aperture, 45),
(else_try),
(agent_get_wielded_item, ":player_item", ":player_agent", 0),
(this_or_next|eq, ":player_item", "itm_springfield_1861_m"),
(this_or_next|eq, ":player_item", "itm_springfield_1861"),
(this_or_next|eq, ":player_item", "itm_enfield_rifle_musket_bayonet"),
(this_or_next|eq, ":player_item", "itm_enfield_rifle_musket"),
(this_or_next|eq, ":player_item", "itm_springfield_1855"),
(this_or_next|eq, ":player_item", "itm_springfield1855_m"),
(eq, ":player_item", "itm_kentucky_rifle"),
(game_key_is_down, gk_attack),
(agent_get_horse, ":horse", ":player_agent"),
(eq, ":horse", -1),
(is_camera_in_first_person),
(agent_get_look_position, pos1, ":player_agent"),
(position_move_x, pos1, 7),
(position_move_z, pos1, 40),
(init_position, pos2),
(init_position, pos3),
(position_copy_rotation, pos3, pos1),
(position_copy_rotation, pos1, pos2),
(position_move_z, pos1, 127),
(position_copy_rotation, pos1, pos3),
(mission_cam_set_mode, 1),
(mission_cam_set_position, pos1),
(else_try),
(mission_cam_set_mode, 0),
(try_end),
])