###################################################
# header_operations.py
# This file cfontains opcode declarations
# DO NOT EDIT THIS FILE!
###################################################
# Thanks to Lav and other talented members
# of the modding community for their help
# improving the comments for the module system!
###################################################

#--------------------------------------------------------------------------
# CONTROL OPERATIONS
#--------------------------------------------------------------------------
call_script       = 1 # (call_script,<script_id>),
end_try           = 3 # deprecated, use try_end instead
try_end           = 3 # (try_end),
try_begin         = 4 # (try_begin),
else_try_begin    = 5 # deprecated, use else_try instead
else_try          = 5 # (else_try),

try_for_range     = 6 # Works like a for loop from lower-bound up to (upper-bound - 1)
		      # (try_for_range,<destination>,<lower_bound>,<upper_bound>),

try_for_range_backwards = 7	# Same as above but starts from (upper-bound - 1) down-to lower bound.
				# (try_for_range_backwards,<destination>,<lower_bound>,<upper_bound>),
try_for_parties   = 11	# (try_for_parties,<destination>),
try_for_agents    = 12	# (try_for_agents, <destination>, [<position_no>], [<radius_fixed_point>]), #avoid using pos0
try_for_prop_instances = 16 # (try_for_prop_instances, <destination>, [<object_id>], [<object_type>]), # if object_id  and object_type is not given, it loops through all instances. For object types see list of "somt_" in header_common.py 
try_for_players  = 17	# (try_for_players, <destination>, [skip_server]),


store_script_param_1 = 21       # (store_script_param_1,<destination>),  --(Within a script) stores the first script parameter.
store_script_param_2 = 22       # (store_script_param_2,<destination>),  --(Within a script) stores the second script parameter.
store_script_param   = 23       # (store_script_param,<destination>,<script_param_no>), --(Within a script) stores <script_param_no>th script parameter.

#--------------------------------------------------------------------------
# CONDITION OPERATIONS
#--------------------------------------------------------------------------

ge           = 30  # greater than or equal to -- (ge,<value>,<value>),
eq           = 31  # equal to		      -- (eq,<value>,<value>),
gt           = 32  # greater than	      -- (gt,<value>,<value>),

is_between   = 33  # (is_between,<value>,<lower_bound>,<upper_bound>), #greater than or equal to lower bound and less than upper bound

entering_town   = 36 # (entering_town,<town_id>),
map_free        = 37  # (map_free),
encountered_party_is_attacker   = 39  # (encountered_party_is_attacker),
                                         # Checks that the party encountered on the world map was following player (i.e. either player was trying to run away or at the very least this is a head-on clash).
conversation_screen_is_active   = 42  # (conversation_screen_is_active), #used in mission template triggers only
                                         # Checks that the player is currently in dialogue with some agent. Can only be used in triggers of module_mission_templates.py file.

in_meta_mission                 = 44  # deprecated, do not use.

set_player_troop                = 47  # (set_player_troop,<troop_id>),

store_repeat_object             = 50  # stores the index of a repeated dialog option for repeat_for_factions, etc...

get_operation_set_version       = 55  # (get_operation_set_version, <destination>),

set_physics_delta_time			= 58  # (set_physics_delta_time, <fixed_value>), #Default is 0.025 (40 fps).

set_result_string               = 60  # sets the result string for game scripts that need one (set_result_string, <string_id>),

is_camera_in_first_person       = 61  # (is_camera_in_first_person),
set_camera_in_first_person      = 62  # (set_camera_in_first_person, <value>), # 1 = first, 0 = third person
 
game_key_get_mapped_key_name    = 65  # (game_key_get_mapped_key_name, <string_register>, <game_key>),

key_is_down                     = 70  # fails if the key is not currently down (key_is_down, <key_id>),
key_clicked                     = 71  # fails if the key is not clicked on the specific frame (key_clicked, <key_id>),
game_key_is_down                = 72  # fails if the game key is not currently down (key_is_down, <game_key_id>),
game_key_clicked                = 73  # fails if the game key is not clicked on the specific frame (game_key_clicked, <game_key_id>),
mouse_get_position	            = 75  # (mouse_get_position, <position_no>), #x and y values of position are filled
omit_key_once                   = 77  # game omits any bound action for the key once (omit_key_once, <key_id>),
clear_omitted_keys              = 78  # (clear_omitted_keys),

get_global_cloud_amount         = 90  # (get_global_cloud_amount, <destination>), #returns a value between 0-100
set_global_cloud_amount         = 91  # (set_global_cloud_amount, <value>), #value is clamped to 0-100
get_global_haze_amount          = 92  # (get_global_haze_amount, <destination>), #returns a value between 0-100
set_global_haze_amount          = 93  # (set_global_haze_amount, <value>), #value is clamped to 0-100

hero_can_join                   = 101 # (hero_can_join, [party_id]),
hero_can_join_as_prisoner       = 102 # (hero_can_join_as_prisoner, [party_id]),
party_can_join                  = 103 # (party_can_join),
party_can_join_as_prisoner      = 104 # (party_can_join_as_prisoner),
troops_can_join                 = 105 # (troops_can_join,<value>),
troops_can_join_as_prisoner     = 106 # (troops_can_join_as_prisoner,<value>),
party_can_join_party            = 107 # (party_can_join_party, <joiner_party_id>, <host_party_id>,[flip_prisoners]),
party_end_battle                = 108 # (party_end_battle,<party_no>),
main_party_has_troop            = 110 # (main_party_has_troop,<troop_id>),
party_is_in_town                = 130 # (party_is_in_town,<party_id_1>,<party_id_2>),
party_is_in_any_town            = 131 # (party_is_in_any_town,<party_id>),
party_is_active                 = 132 # (party_is_active,<party_id>),
player_has_item                 = 150 # (player_has_item,<item_id>),
troop_has_item_equipped         = 151 # (troop_has_item_equipped,<troop_id>,<item_id>),
troop_is_mounted                = 152 # (troop_is_mounted,<troop_id>),
troop_is_guarantee_ranged       = 153 # (troop_is_guarantee_ranged, <troop_id>),
troop_is_guarantee_horse        = 154 # (troop_is_guarantee_horse, <troop_id>),

check_quest_active              = 200 # (check_quest_active,<quest_id>),
check_quest_finished            = 201 # (check_quest_finished,<quest_id>),
check_quest_succeeded           = 202 # (check_quest_succeeded,<quest_id>),
check_quest_failed              = 203 # (check_quest_failed,<quest_id>),
check_quest_concluded           = 204 # (check_quest_concluded,<quest_id>),

is_trial_version                = 250 # (is_trial_version),
is_edit_mode_enabled            = 255 # (is_edit_mode_enabled),

options_get_damage_to_player    = 260 # (options_get_damage_to_player, <destination>), #0 = 1/4, 1 = 1/2, 2 = 1/1
options_set_damage_to_player    = 261 # (options_set_damage_to_player, <value>), #0 = 1/4, 1 = 1/2, 2 = 1/1
options_get_damage_to_friends   = 262 # (options_get_damage_to_friends, <destination>), #0 = 1/2, 1 = 3/4, 2 = 1/1
options_set_damage_to_friends   = 263 # (options_set_damage_to_friends, <value>), #0 = 1/2, 1 = 3/4, 2 = 1/1
options_get_combat_ai           = 264 # (options_get_combat_ai, <destination>), #0 = good, 1 = average, 2 = poor
options_set_combat_ai           = 265 # (options_set_combat_ai, <value>), #0 = good, 1 = average, 2 = poor
options_get_campaign_ai         = 266 # (options_get_campaign_ai, <destination>), #0 = good, 1 = average, 2 = poor
options_set_campaign_ai         = 267 # (options_set_campaign_ai, <value>), #0 = good, 1 = average, 2 = poor
options_get_combat_speed        = 268 # (options_get_combat_speed, <destination>), #0 = slowest, 1 = slower, 2 = normal, 3 = faster, 4 = fastest
options_set_combat_speed        = 269 # (options_set_combat_speed, <value>), #0 = slowest, 1 = slower, 2 = normal, 3 = faster, 4 = fastest
options_get_battle_size         = 270 # (options_get_battle_size, <destination>), # returns battle size slider value in 0-1000 range.
options_set_battle_size         = 271 # (options_set_battle_size, <value>), # sets battle size slider value in 0-1000 range.

profile_get_banner_id                = 350 # (profile_get_banner_id, <destination>),
profile_set_banner_id                = 351 # (profile_set_banner_id, <value>),

get_achievement_stat                 = 370 # (get_achievement_stat, <destination>, <achievement_id>, <stat_index>),
set_achievement_stat                 = 371 # (set_achievement_stat, <achievement_id>, <stat_index>, <value>),
unlock_achievement                   = 372 # (unlock_achievement, <achievement_id>),

send_message_to_url                  = 380 # (send_message_to_url, <string_id>, <encode_url>), #result will be returned to script_game_receive_url_response

# multiplayer
multiplayer_send_message_to_server   = 388 # (multiplayer_send_int_to_server, <message_type>),
multiplayer_send_int_to_server       = 389 # (multiplayer_send_int_to_server, <message_type>, <value>),
multiplayer_send_2_int_to_server     = 390 # (multiplayer_send_2_int_to_server, <message_type>, <value>, <value>),
multiplayer_send_3_int_to_server     = 391 # (multiplayer_send_3_int_to_server, <message_type>, <value>, <value>, <value>),
multiplayer_send_4_int_to_server     = 392 # (multiplayer_send_4_int_to_server, <message_type>, <value>, <value>, <value>, <value>),
multiplayer_send_string_to_server    = 393 # (multiplayer_send_string_to_server, <message_type>, <string_id>),
multiplayer_send_message_to_player   = 394 # (multiplayer_send_message_to_player, <player_id>, <message_type>),
multiplayer_send_int_to_player       = 395 # (multiplayer_send_int_to_player, <player_id>, <message_type>, <value>),
multiplayer_send_2_int_to_player     = 396 # (multiplayer_send_2_int_to_player, <player_id>, <message_type>, <value>, <value>),
multiplayer_send_3_int_to_player     = 397 # (multiplayer_send_3_int_to_player, <player_id>, <message_type>, <value>, <value>, <value>),
multiplayer_send_4_int_to_player     = 398 # (multiplayer_send_4_int_to_player, <player_id>, <message_type>, <value>, <value>, <value>, <value>),
multiplayer_send_string_to_player    = 399 # (multiplayer_send_string_to_player, <player_id>, <message_type>, <string_id>),
get_max_players                      = 400 # (get_max_players, <destination>),
player_is_active                     = 401 # (player_is_active, <player_id>),
player_get_team_no                   = 402 # (player_get_team_no,  <destination>, <player_id>),
player_set_team_no                   = 403 # (player_get_team_no,  <destination>, <player_id>),
player_get_troop_id                  = 404 # (player_get_troop_id, <destination>, <player_id>),
player_set_troop_id                  = 405 # (player_set_troop_id, <destination>, <player_id>),
player_get_agent_id                  = 406 # (player_get_agent_id, <destination>, <player_id>),
player_get_gold                      = 407 # (player_get_gold, <destination>, <player_id>),
player_set_gold                      = 408 # (player_set_gold, <player_id>, <value>, <max_value>), #set max_value to 0 if no limit is wanted
player_spawn_new_agent               = 409 # (player_spawn_new_agent, <player_id>, <entry_point>),
player_add_spawn_item                = 410 # (player_add_spawn_item, <player_id>, <item_slot_no>, <item_id>),
multiplayer_get_my_team              = 411 # (multiplayer_get_my_team, <destination>),
multiplayer_get_my_troop             = 412 # (multiplayer_get_my_troop, <destination>),
multiplayer_set_my_troop             = 413 # (multiplayer_get_my_troop, <destination>),
multiplayer_get_my_gold              = 414 # (multiplayer_get_my_gold, <destination>),
multiplayer_get_my_player            = 415 # (multiplayer_get_my_player, <destination>),
multiplayer_clear_scene              = 416 # (multiplayer_clear_scene),
multiplayer_is_server                = 417 # (multiplayer_is_server),
multiplayer_is_dedicated_server      = 418 # (multiplayer_is_dedicated_server),
game_in_multiplayer_mode             = 419 # (game_in_multiplayer_mode),
multiplayer_make_everyone_enemy      = 420 # (multiplayer_make_everyone_enemy),
player_control_agent                 = 421 # (player_control_agent, <player_id>, <agent_id>),
player_get_item_id                   = 422 # (player_get_item_id, <destination>, <player_id>, <item_slot_no>), #only for server
player_get_banner_id                 = 423 # (player_get_banner_id, <destination>, <player_id>),
game_get_reduce_campaign_ai          = 424 # (game_get_reduce_campaign_ai, <destination>), #depreciated, use options_get_campaign_ai instead
multiplayer_find_spawn_point         = 425 # (multiplayer_find_spawn_point, <destination>, <team_no>, <examine_all_spawn_points>, <is_horseman>), 
set_spawn_effector_scene_prop_kind   = 426 # (set_spawn_effector_scene_prop_kind <team_no> <scene_prop_kind_no>)
set_spawn_effector_scene_prop_id     = 427 # (set_spawn_effector_scene_prop_id <scene_prop_id>)

player_set_is_admin                  = 429 # (player_set_is_admin, <player_id>, <value>), #value is 0 or 1
player_is_admin                      = 430 # (player_is_admin, <player_id>),
player_get_score                     = 431 # (player_get_score, <destination>, <player_id>),
player_set_score                     = 432 # (player_set_score,<player_id>, <value>),
player_get_kill_count                = 433 # (player_get_kill_count, <destination>, <player_id>),
player_set_kill_count                = 434 # (player_set_kill_count,<player_id>, <value>),
player_get_death_count               = 435 # (player_get_death_count, <destination>, <player_id>),
player_set_death_count               = 436 # (player_set_death_count, <player_id>, <value>),
player_get_ping                      = 437 # (player_get_ping, <destination>, <player_id>),
player_is_busy_with_menus            = 438 # (player_is_busy_with_menus, <player_id>),
player_get_is_muted                  = 439 # (player_get_is_muted, <destination>, <player_id>),
player_set_is_muted                  = 440 # (player_set_is_muted, <player_id>, <value>, [mute_for_everyone]), #mute_for_everyone optional parameter should be set to 1 if player is muted for everyone (this works only on server).
player_get_unique_id                 = 441 # (player_get_unique_id, <destination>, <player_id>), #can only bew used on server side
player_get_gender                    = 442 # (player_get_gender, <destination>, <player_id>),

team_get_bot_kill_count              = 450 # (team_get_bot_kill_count, <destination>, <team_id>),
team_set_bot_kill_count              = 451 # (team_get_bot_kill_count, <destination>, <team_id>),
team_get_bot_death_count             = 452 # (team_get_bot_death_count, <destination>, <team_id>),
team_set_bot_death_count             = 453 # (team_get_bot_death_count, <destination>, <team_id>),
team_get_kill_count                  = 454 # (team_get_kill_count, <destination>, <team_id>),
team_get_score                       = 455 # (team_get_score, <destination>, <team_id>),
team_set_score                       = 456 # (team_set_score, <team_id>, <value>),
team_set_faction                     = 457 # (team_set_faction, <team_id>, <faction_id>),
team_get_faction                     = 458 # (team_get_faction, <destination>, <team_id>),
player_save_picked_up_items_for_next_spawn  = 459 # (player_save_picked_up_items_for_next_spawn, <player_id>),
player_get_value_of_original_items   = 460 # (player_get_value_of_original_items, <player_id>), #this operation returns values of the items, but default troop items will be counted as zero (except horse)
player_item_slot_is_picked_up        = 461 # (player_item_slot_is_picked_up, <player_id>, <item_slot_no>), #item slots are overriden when player picks up an item and stays alive until the next round

kick_player                          = 465 # (kick_player, <player_id>),
ban_player                           = 466 # (ban_player, <player_id>, <value>, <player_id>), #set value = 1 for banning temporarily, assign 2nd player id as the administrator player id if banning is permanent
save_ban_info_of_player              = 467 # (save_ban_info_of_player, <player_id>),
ban_player_using_saved_ban_info      = 468 # (ban_player_using_saved_ban_info),

start_multiplayer_mission            = 470 # (start_multiplayer_mission, <mission_template_id>, <scene_id>, <started_manually>),

server_add_message_to_log            = 473 # (server_add_message_to_log, <string_id>),

server_get_renaming_server_allowed   = 475 # (server_get_renaming_server_allowed, <destination>), #0-1
server_get_changing_game_type_allowed= 476 # (server_get_changing_game_type_allowed, <destination>), #0-1
##477 used for: server_set_anti_cheat                = 477 # (server_set_anti_cheat, <value>), #0 = off, 1 = on
server_get_combat_speed              = 478 # (server_get_combat_speed, <destination>), #0-2
server_set_combat_speed              = 479 # (server_set_combat_speed, <value>), #0-2
server_get_friendly_fire             = 480 # (server_get_friendly_fire, <destination>),
server_set_friendly_fire             = 481 # (server_set_friendly_fire, <value>), #0 = off, 1 = on
server_get_control_block_dir         = 482 # (server_get_control_block_dir, <destination>),
server_set_control_block_dir         = 483 # (server_set_control_block_dir, <value>), #0 = automatic, 1 = by mouse movement
server_set_password                  = 484 # (server_set_password, <string_id>),
server_get_add_to_game_servers_list  = 485 # (server_get_add_to_game_servers_list, <destination>),
server_set_add_to_game_servers_list  = 486 # (server_set_add_to_game_servers_list, <value>),
server_get_ghost_mode                = 487 # (server_get_ghost_mode, <destination>),
server_set_ghost_mode                = 488 # (server_set_ghost_mode, <value>),
server_set_name                      = 489 # (server_set_name, <string_id>),
server_get_max_num_players           = 490 # (server_get_max_num_players, <destination>),
server_set_max_num_players           = 491 # (server_set_max_num_players, <value>),
server_set_welcome_message           = 492 # (server_set_welcome_message, <string_id>),
server_get_melee_friendly_fire       = 493 # (server_get_melee_friendly_fire, <destination>),
server_set_melee_friendly_fire       = 494 # (server_set_melee_friendly_fire, <value>), #0 = off, 1 = on
server_get_friendly_fire_damage_self_ratio   = 495 # (server_get_friendly_fire_damage_self_ratio, <destination>),
server_set_friendly_fire_damage_self_ratio   = 496 # (server_set_friendly_fire_damage_self_ratio, <value>), #0-100
server_get_friendly_fire_damage_friend_ratio = 497 # (server_get_friendly_fire_damage_friend_ratio, <destination>),
server_set_friendly_fire_damage_friend_ratio = 498 # (server_set_friendly_fire_damage_friend_ratio, <value>), #0-100
server_get_anti_cheat                = 499 # (server_get_anti_cheat, <destination>),
server_set_anti_cheat                = 477 # (server_set_anti_cheat, <value>), #0 = off, 1 = on

## Set_slot operations. These assign a value to a slot. 
troop_set_slot                  = 500 # (troop_set_slot,<troop_id>,<slot_no>,<value>),
party_set_slot                  = 501 # (party_set_slot,<party_id>,<slot_no>,<value>),
faction_set_slot                = 502 # (faction_set_slot,<faction_id>,<slot_no>,<value>),
scene_set_slot                  = 503 # (scene_set_slot,<scene_id>,<slot_no>,<value>),
party_template_set_slot         = 504 # (party_template_set_slot,<party_template_id>,<slot_no>,<value>),
agent_set_slot                  = 505 # (agent_set_slot,<agent_id>,<slot_no>,<value>),
quest_set_slot                  = 506 # (quest_set_slot,<quest_id>,<slot_no>,<value>),
item_set_slot                   = 507 # (item_set_slot,<item_id>,<slot_no>,<value>),
player_set_slot                 = 508 # (player_set_slot,<player_id>,<slot_no>,<value>),
team_set_slot                   = 509 # (team_set_slot,<team_id>,<slot_no>,<value>),
scene_prop_set_slot             = 510 # (scene_prop_set_slot,<scene_prop_instance_id>,<slot_no>,<value>),

## Get_slot operations. These retrieve the value of a slot. 
troop_get_slot                  = 520 # (troop_get_slot,<destination>,<troop_id>,<slot_no>),
party_get_slot                  = 521 # (party_get_slot,<destination>,<party_id>,<slot_no>),
faction_get_slot                = 522 # (faction_get_slot,<destination>,<faction_id>,<slot_no>),
scene_get_slot                  = 523 # (scene_get_slot,<destination>,<scene_id>,<slot_no>),
party_template_get_slot         = 524 # (party_template_get_slot,<destination>,<party_template_id>,<slot_no>),
agent_get_slot                  = 525 # (agent_get_slot,<destination>,<agent_id>,<slot_no>),
quest_get_slot                  = 526 # (quest_get_slot,<destination>,<quest_id>,<slot_no>),
item_get_slot                   = 527 # (item_get_slot,<destination>,<item_id>,<slot_no>),
player_get_slot                 = 528 # (player_get_slot,<destination>,<player_id>,<slot_no>),
team_get_slot                   = 529 # (team_get_slot,<destination>,<player_id>,<slot_no>),
scene_prop_get_slot             = 530 # (scene_prop_get_slot,<destination>,<scene_prop_instance_id>,<slot_no>),

## slot_eq operations. These check whether the value of a slot is equal to a given value.
troop_slot_eq                   = 540 # (troop_slot_eq,<troop_id>,<slot_no>,<value>),
party_slot_eq                   = 541 # (party_slot_eq,<party_id>,<slot_no>,<value>),
faction_slot_eq                 = 542 # (faction_slot_eq,<faction_id>,<slot_no>,<value>),
scene_slot_eq                   = 543 # (scene_slot_eq,<scene_id>,<slot_no>,<value>),
party_template_slot_eq          = 544 # (party_template_slot_eq,<party_template_id>,<slot_no>,<value>),
agent_slot_eq                   = 545 # (agent_slot_eq,<agent_id>,<slot_no>,<value>),
quest_slot_eq                   = 546 # (quest_slot_eq,<quest_id>,<slot_no>,<value>),
item_slot_eq                    = 547 # (item_slot_eq,<item_id>,<slot_no>,<value>),
player_slot_eq                  = 548 # (player_slot_eq,<player_id>,<slot_no>,<value>),
team_slot_eq                    = 549 # (team_slot_eq,<team_id>,<slot_no>,<value>),
scene_prop_slot_eq              = 550 # (scene_prop_slot_eq,<scene_prop_instance_id>,<slot_no>,<value>),

## slot_ge operations. These check whether the value of a slot is greater than or equal to a given value.
troop_slot_ge                   = 560 # (troop_slot_ge,<troop_id>,<slot_no>,<value>),
party_slot_ge                   = 561 # (party_slot_ge,<party_id>,<slot_no>,<value>),
faction_slot_ge                 = 562 # (faction_slot_ge,<faction_id>,<slot_no>,<value>),
scene_slot_ge                   = 563 # (scene_slot_ge,<scene_id>,<slot_no>,<value>),
party_template_slot_ge          = 564 # (party_template_slot_ge,<party_template_id>,<slot_no>,<value>),
agent_slot_ge                   = 565 # (agent_slot_ge,<agent_id>,<slot_no>,<value>),
quest_slot_ge                   = 566 # (quest_slot_ge,<quest_id>,<slot_no>,<value>),
item_slot_ge                    = 567 # (item_slot_ge,<item_id>,<slot_no>,<value>),
player_slot_ge                  = 568 # (player_slot_ge,<player_id>,<slot_no>,<value>),
team_slot_ge                    = 569 # (team_slot_ge,<team_id>,<slot_no>,<value>),
scene_prop_slot_ge              = 570 # (scene_prop_slot_ge,<scene_prop_instance_id>,<slot_no>,<value>),

play_sound_at_position          = 599 # (play_sound_at_position, <sound_id>, <position_no>, [options]),
play_sound                      = 600 # (play_sound,<sound_id>,[options]),
play_track                      = 601 # (play_track,<track_id>, [options]), # 0 = default, 1 = fade out current track, 2 = stop current track
play_cue_track                  = 602 # (play_cue_track,<track_id>), #starts immediately
music_set_situation             = 603 # (music_set_situation, <situation_type>),
music_set_culture               = 604 # (music_set_culture, <culture_type>),
stop_all_sounds                 = 609 # (stop_all_sounds, [options]), # 0 = stop only looping sounds, 1 = stop all sounds
store_last_sound_channel        = 615 # (store_last_sound_channel, <destination>),
stop_sound_channel              = 616 # (stop_sound_channel, <sound_channel_no>),

copy_position                   = 700 # copies position_no_2 to position_no_1
				      # (copy_position,<position_no_1>,<position_no_2>),
init_position                   = 701 # (init_position,<position_no>),
get_trigger_object_position     = 702 # (get_trigger_object_position,<position_no>),

get_angle_between_positions                 = 705 # (get_angle_between_positions, <destination_fixed_point>, <position_no_1>, <position_no_2>),
position_has_line_of_sight_to_position      = 707 # (position_has_line_of_sight_to_position, <position_no_1>, <position_no_2>),
get_distance_between_positions              = 710 # gets distance in centimeters. # (get_distance_between_positions,<destination>,<position_no_1>,<position_no_2>),
get_distance_between_positions_in_meters    = 711 # gets distance in meters. # (get_distance_between_positions_in_meters,<destination>,<position_no_1>,<position_no_2>),
get_sq_distance_between_positions           = 712 # gets squared distance in centimeters # (get_sq_distance_between_positions,<destination>,<position_no_1>,<position_no_2>),
get_sq_distance_between_positions_in_meters = 713 # gets squared distance in meters # (get_sq_distance_between_positions_in_meters,<destination>,<position_no_1>,<position_no_2>),
position_is_behind_position                 = 714 # (position_is_behind_position,<position_no_1>,<position_no_2>),
get_sq_distance_between_position_heights    = 715 # gets squared distance in centimeters # (get_sq_distance_between_position_heights,<destination>,<position_no_1>,<position_no_2>),

position_transform_position_to_parent       = 716 # (position_transform_position_to_parent,<dest_position_no>,<position_no>,<position_no_to_be_transformed>),
position_transform_position_to_local        = 717 # (position_transform_position_to_local, <dest_position_no>,<position_no>,<position_no_to_be_transformed>),

position_copy_rotation          = 718 # (position_copy_rotation,<position_no_1>,<position_no_2>), copies rotation of position_no_2 to position_no_1
position_copy_origin            = 719 # (position_copy_origin,<position_no_1>,<position_no_2>), copies origin of position_no_2 to position_no_1
position_move_x                 = 720 # movement is in cms, [0 = local; 1=global]
				      # (position_move_x,<position_no>,<movement>,[value]),
position_move_y                 = 721 # (position_move_y,<position_no>,<movement>,[value]),
position_move_z                 = 722 # (position_move_z,<position_no>,<movement>,[value]),

position_rotate_x               = 723 # (position_rotate_x,<position_no>,<angle>),
position_rotate_y               = 724 # (position_rotate_y,<position_no>,<angle>),
position_rotate_z               = 725 # (position_rotate_z,<position_no>,<angle>,[use_global_z_axis]), # set use_global_z_axis as 1 if needed, otherwise you don't have to give that.

position_get_x                  = 726 # (position_get_x,<destination_fixed_point>,<position_no>), #x position in meters * fixed point multiplier is returned
position_get_y                  = 727 # (position_get_y,<destination_fixed_point>,<position_no>), #y position in meters * fixed point multiplier is returned
position_get_z                  = 728 # (position_get_z,<destination_fixed_point>,<position_no>), #z position in meters * fixed point multiplier is returned

position_set_x                  = 729 # (position_set_x,<position_no>,<value_fixed_point>), #meters / fixed point multiplier is set
position_set_y                  = 730 # (position_set_y,<position_no>,<value_fixed_point>), #meters / fixed point multiplier is set
position_set_z                  = 731 # (position_set_z,<position_no>,<value_fixed_point>), #meters / fixed point multiplier is set

position_get_scale_x            = 735 # (position_get_scale_x,<destination_fixed_point>,<position_no>), #x scale in meters * fixed point multiplier is returned
position_get_scale_y            = 736 # (position_get_scale_y,<destination_fixed_point>,<position_no>), #y scale in meters * fixed point multiplier is returned
position_get_scale_z            = 737 # (position_get_scale_z,<destination_fixed_point>,<position_no>), #z scale in meters * fixed point multiplier is returned

position_rotate_x_floating      = 738 # (position_rotate_x_floating,<position_no>,<angle>), #angle in degree * fixed point multiplier 
position_rotate_y_floating      = 739 # (position_rotate_y_floating,<position_no>,<angle>), #angle in degree * fixed point multiplier 
position_rotate_z_floating      = 734 # (position_rotate_z_floating,<position_no>,<angle>), #angle in degree * fixed point multiplier 

position_get_rotation_around_z  = 740 # (position_get_rotation_around_z,<destination>,<position_no>), #rotation around z axis is returned as angle
position_normalize_origin       = 741 # (position_normalize_origin,<destination_fixed_point>,<position_no>),
                                                                      # destination = convert_to_fixed_point(length(position.origin))
                                                                      # position.origin *= 1/length(position.origin) #so it normalizes the origin vector

position_get_rotation_around_x  = 742 # (position_get_rotation_around_x, <destination>, <position_no>), #rotation around x axis is returned as angle
position_get_rotation_around_y  = 743 # (position_get_rotation_around_y, <destination>, <position_no>), #rotation around y axis is returned as angle

position_set_scale_x            = 744 # (position_set_scale_x, <position_no>, <value_fixed_point>), #x scale in meters / fixed point multiplier is set
position_set_scale_y            = 745 # (position_set_scale_y, <position_no>, <value_fixed_point>), #y scale in meters / fixed point multiplier is set
position_set_scale_z            = 746 # (position_set_scale_z, <position_no>, <value_fixed_point>), #z scale in meters / fixed point multiplier is set

position_get_screen_projection  = 750 # (position_get_screen_projection, <position_no_1>, <position_no_2>), returns screen projection of position_no_2 to position_no_1
mouse_get_world_projection      = 751 # (mouse_get_world_projection, <position_no_1>, <position_no_2>), returns camera position (position_no_1) and mouse projection to back of world (position_no_2)

position_set_z_to_ground_level  = 791 # (position_set_z_to_ground_level, <position_no>), #only works during a mission
position_get_distance_to_terrain= 792 # (position_get_distance_to_terrain, <destination_fixed_point>, <position_no>), #only works during a mission
position_get_distance_to_ground_level = 793 # (position_get_distance_to_ground_level, <destination>, <position_no>), #only works during a mission

start_presentation                        = 900 # (start_presentation, <presentation_id>),
start_background_presentation             = 901 # (start_background_presentation, <presentation_id>), #can only be used in game menus
presentation_set_duration                 = 902 # (presentation_set_duration, <duration-in-1/100-seconds>), #there must be an active presentation
is_presentation_active                    = 903 # (is_presentation_active, <presentation_id),
create_text_overlay                       = 910 # (create_text_overlay, <destination>, <string_id>), #returns overlay id
create_mesh_overlay                       = 911 # (create_mesh_overlay, <destination>, <mesh_id>), #returns overlay id
create_button_overlay                     = 912 # (create_button_overlay, <destination>, <string_id>), #returns overlay id
create_image_button_overlay               = 913 # (create_image_button_overlay, <destination>, <mesh_id>, <mesh_id>), #returns overlay id. second mesh is the pressed button mesh
create_slider_overlay                     = 914 # (create_slider_overlay, <destination>, <min_value>, <max_value>), #returns overlay id
create_progress_overlay                   = 915 # (create_progress_overlay, <destination>, <min_value>, <max_value>), #returns overlay id
create_combo_button_overlay               = 916 # (create_combo_button_overlay, <destination>), #returns overlay id
create_text_box_overlay                   = 917 # (create_text_box_overlay, <destination>), #returns overlay id
create_check_box_overlay                  = 918 # (create_check_box_overlay, <destination>), #returns overlay id
create_simple_text_box_overlay            = 919 # (create_simple_text_box_overlay, <destination>), #returns overlay id
overlay_set_text                          = 920 # (overlay_set_text, <overlay_id>, <string_id>),
overlay_set_color                         = 921 # (overlay_set_color, <overlay_id>, <color>), #color in RGB format like 0xRRGGBB (put hexadecimal values for RR GG and BB parts)
overlay_set_alpha                         = 922 # (overlay_set_alpha, <overlay_id>, <alpha>), #alpha in A format like 0xAA (put hexadecimal values for AA part)
overlay_set_hilight_color                 = 923 # (overlay_set_hilight_color, <overlay_id>, <color>), #color in RGB format like 0xRRGGBB (put hexadecimal values for RR GG and BB parts)
overlay_set_hilight_alpha                 = 924 # (overlay_set_hilight_alpha, <overlay_id>, <alpha>), #alpha in A format like 0xAA (put hexadecimal values for AA part)
overlay_set_size                          = 925 # (overlay_set_size, <overlay_id>, <position_no>), #position's x and y values are used
overlay_set_position                      = 926 # (overlay_set_position, <overlay_id>, <position_no>), #position's x and y values are used
overlay_set_val                           = 927 # (overlay_set_val, <overlay_id>, <value>), #can be used for sliders, combo buttons and check boxes
overlay_set_boundaries                    = 928 # (overlay_set_boundaries, <overlay_id>, <min_value>, <max_value>),
overlay_set_area_size                     = 929 # (overlay_set_area_size, <overlay_id>, <position_no>), #position's x and y values are used
overlay_set_mesh_rotation                 = 930 # (overlay_set_mesh_rotation, <overlay_id>, <position_no>), #position's rotation values are used for rotations around x, y and z axis
overlay_add_item                          = 931 # (overlay_add_item, <overlay_id>, <string_id>), # adds an item to the combo box
overlay_animate_to_color                  = 932 # (overlay_animate_to_color, <overlay_id>, <duration-in-1/1000-seconds>, <color>), #alpha value will not be used
overlay_animate_to_alpha                  = 933 # (overlay_animate_to_alpha, <overlay_id>, <duration-in-1/1000-seconds>, <color>), #only alpha value will be used
overlay_animate_to_highlight_color        = 934 # (overlay_animate_to_highlight_color, <overlay_id>, <duration-in-1/1000-seconds>, <color>), #alpha value will not be used
overlay_animate_to_highlight_alpha        = 935 # (overlay_animate_to_highlight_alpha, <overlay_id>, <duration-in-1/1000-seconds>, <color>), #only alpha value will be used
overlay_animate_to_size                   = 936 # (overlay_animate_to_size, <overlay_id>, <duration-in-1/1000-seconds>, <position_no>), #position's x and y values are used as
overlay_animate_to_position               = 937 # (overlay_animate_to_position, <overlay_id>, <duration-in-1/1000-seconds>, <position_no>), #position's x and y values are used as
create_image_button_overlay_with_tableau_material = 938 # (create_image_button_overlay_with_tableau_material, <destination>, <mesh_id>, <tableau_material_id>, <value>), #returns overlay id. value is passed to tableau_material
                                                        # when mesh_id is -1, a default mesh is generated automatically
create_mesh_overlay_with_tableau_material = 939 # (create_mesh_overlay_with_tableau_material, <destination>, <mesh_id>, <tableau_material_id>, <value>), #returns overlay id. value is passed to tableau_material
                                                        # when mesh_id is -1, a default mesh is generated automatically
create_game_button_overlay                = 940 # (create_game_button_overlay, <destination>, <string_id>), #returns overlay id
create_in_game_button_overlay             = 941 # (create_in_game_button_overlay, <destination>, <string_id>), #returns overlay id
create_number_box_overlay                 = 942 # (create_number_box_overlay, <destination>, <min_value>, <max_value>), #returns overlay id
create_listbox_overlay                    = 943 # (create_list_box_overlay, <destination>), #returns overlay id
create_mesh_overlay_with_item_id          = 944 # (create_mesh_overlay_with_item_id, <destination>, <item_id>), #returns overlay id.
set_container_overlay                     = 945 # (set_container_overlay, <overlay_id>), #sets the container overlay that new overlays will attach to. give -1 to reset
overlay_get_position                      = 946 # (overlay_get_position, <destination>, <overlay_id>),
overlay_set_display                       = 947 # (overlay_set_display, <overlay_id>, <value>), #shows/hides overlay (1 = show, 0 = hide)
create_combo_label_overlay                = 948 # (create_combo_label_overlay, <destination>), #returns overlay id
overlay_obtain_focus                      = 949 # (overlay_obtain_focus, <overlay_id>), #works for textboxes only

overlay_set_tooltip                       = 950 # (overlay_set_tooltip, <overlay_id>, <string_id>),
overlay_set_container_overlay             = 951 # (overlay_set_container_overlay, <overlay_id>, <container_overlay_id>), # -1 to reset
overlay_set_additional_render_height      = 952 # (overlay_set_additional_render_height, <overlay_id>, <height_adder>),
overlay_set_material                      = 956 # (overlay_set_material, <overlay_id>, <string_no>),

show_object_details_overlay               = 960 # (show_object_details_overlay, <value>), #0 = hide, 1 = show

show_item_details                         = 970 # (show_item_details, <item_id>, <position_no>, <price_multiplier>), #price_multiplier is percent, usually returned by script_game_get_item_[buy/sell]_price_factor
close_item_details                        = 971 # (close_item_details),
show_item_details_with_modifier           = 972 # (show_item_details_with_modifier, <item_id>, <item_modifier>, <position_no>, <price_multiplier>), #price_multiplier is percent, usually returned by script_game_get_item_[buy/sell]_price_factor

context_menu_add_item                     = 980 # (right_mouse_menu_add_item, <string_id>, <value>), #must be called only inside script_game_right_mouse_menu_get_buttons
auto_save                                 = 985 # (auto_save),
allow_ironman                             = 988 # (allow_ironman, <value>), # 1 = allow, 0 = disallow
get_average_game_difficulty               = 990 # (get_average_game_difficulty, <destination>),
get_level_boundary                        = 991 # (get_level_boundary, <destination>, <level_no>),


#-------------------------
# Mission Condition types
#-------------------------
all_enemies_defeated      = 1003 # (all_enemies_defeated),
race_completed_by_player  = 1004 # (race_completed_by_player),
num_active_teams_le       = 1005 # (num_active_teams_le,<value>),
main_hero_fallen          = 1006 # (main_hero_fallen),


#----------------------------
# NEGATIONS
#----------------------------
neg          = 0x80000000	 # (neg|<operation>),
this_or_next = 0x40000000	 # (this_or_next|<operation>),


lt           = neg | ge # less than		-- (lt,<value>,<value>),
neq          = neg | eq # not equal to		-- (neq,<value>,<value>),
le           = neg | gt # less or equal to	-- (le,<value>,<value>),

#-------------------------------------------------------------------------------------------
# CONSEQUENCE OPERATIONS                                                                   -
#-------------------------------------------------------------------------------------------
finish_party_battle_mode        = 1019 # (finish_party_battle_mode),
set_party_battle_mode           = 1020 # (set_party_battle_mode),

set_camera_follow_party         = 1021 # (set_camera_follow_party,<party_id>), #Works on map only.
start_map_conversation          = 1025 # (start_map_conversation,<troop_id>),
rest_for_hours                  = 1030 # (rest_for_hours,<rest_period>,[time_speed],[remain_attackable]),
rest_for_hours_interactive      = 1031 # (rest_for_hours_interactive,<rest_period>,[time_speed],[remain_attackable]),

add_xp_to_troop                 = 1062 # (add_xp_to_troop,<value>,[troop_id]),
add_gold_as_xp                  = 1063 # (add_gold_as_xp,<value>,[troop_id]),
add_xp_as_reward                = 1064 # (add_xp_as_reward,<value>),

add_gold_to_party               = 1070 # party_id should be different from 0
			       # (add_gold_to_party,<value>,<party_id>),

set_party_creation_random_limits= 1080 # (set_party_creation_random_limits, <min_value>, <max_value>), (values should be between 0, 100)

troop_set_note_available        = 1095 # (troop_set_note_available, <troop_id>, <value>), #1 = available, 0 = not available
faction_set_note_available      = 1096 # (faction_set_note_available, <faction_id>, <value>), #1 = available, 0 = not available
party_set_note_available        = 1097 # (party_set_note_available, <party_id>, <value>), #1 = available, 0 = not available
quest_set_note_available        = 1098 # (quest_set_note_available, <quest_id>, <value>), #1 = available, 0 = not available



#1090-1091-1092 is taken, see below (info_page)
spawn_around_party              = 1100 # ID of spawned party is put into reg(0)
			       # (spawn_around_party,<party_id>,<party_template_id>),
set_spawn_radius                = 1103 # (set_spawn_radius,<value>),

display_debug_message           = 1104 # (display_debug_message,<string_id>,[hex_colour_code]), #displays message only in debug mode, but writes to rgl_log.txt in both release and debug modes when edit mode is enabled
display_log_message             = 1105 # (display_log_message,<string_id>,[hex_colour_code]),
display_message                 = 1106 # (display_message,<string_id>,[hex_colour_code]),
set_show_messages               = 1107 # (set_show_messages,<value>), #0 disables window messages 1 re-enables them.

add_troop_note_tableau_mesh     = 1108 # (add_troop_note_tableau_mesh,<troop_id>,<tableau_material_id>),
add_faction_note_tableau_mesh   = 1109 # (add_faction_note_tableau_mesh,<faction_id>,<tableau_material_id>),
add_party_note_tableau_mesh     = 1110 # (add_party_note_tableau_mesh,<party_id>,<tableau_material_id>),
add_quest_note_tableau_mesh     = 1111 # (add_quest_note_tableau_mesh,<quest_id>,<tableau_material_id>),
add_info_page_note_tableau_mesh = 1090 # (add_info_page_note_tableau_mesh,<info_page_id>,<tableau_material_id>),
add_troop_note_from_dialog      = 1114 # (add_troop_note_from_dialog,<troop_id>,<note_slot_no>, <value>), #There are maximum of 8 slots. value = 1 -> shows when the note is added
add_faction_note_from_dialog    = 1115 # (add_faction_note_from_dialog,<faction_id>,<note_slot_no>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_party_note_from_dialog      = 1116 # (add_party_note_from_dialog,<party_id>,<note_slot_no>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_quest_note_from_dialog      = 1112 # (add_quest_note_from_dialog,<quest_id>,<note_slot_no>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_info_page_note_from_dialog  = 1091 # (add_info_page_note_from_dialog,<info_page_id>,<note_slot_no>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_troop_note_from_sreg        = 1117 # (add_troop_note_from_sreg,<troop_id>,<note_slot_no>,<string_id>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_faction_note_from_sreg      = 1118 # (add_faction_note_from_sreg,<faction_id>,<note_slot_no>,<string_id>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_party_note_from_sreg        = 1119 # (add_party_note_from_sreg,<party_id>,<note_slot_no>,<string_id>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_quest_note_from_sreg        = 1113 # (add_quest_note_from_sreg,<quest_id>,<note_slot_no>,<string_id>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added
add_info_page_note_from_sreg    = 1092 # (add_info_page_note_from_sreg,<info_page_id>,<note_slot_no>,<string_id>, <value>), #There are maximum of 8 slots value = 1 -> shows when the note is added

tutorial_box                    = 1120 # (tutorial_box,<string_id>,<string_id>), #deprecated use dialog_box instead.
dialog_box                      = 1120 # (dialog_box,<text_string_id>,<title_string_id>),
question_box                    = 1121 # (question_box,<string_id>, [<yes_string_id>], [<no_string_id>]),
tutorial_message                = 1122 # (tutorial_message,<string_id>, <color>, <auto_close_time>), #set string_id = -1 for hiding the message
tutorial_message_set_position   = 1123 # (tutorial_message_set_position, <position_x>, <position_y>), 
tutorial_message_set_size       = 1124 # (tutorial_message_set_size, <size_x>, <size_y>), 
tutorial_message_set_center_justify = 1125 # (tutorial_message_set_center_justify, <val>), #set not 0 for center justify, 0 for not center justify
tutorial_message_set_background = 1126 # (tutorial_message_set_background, <value>), #1 = on, 0 = off, default is off

set_tooltip_text                = 1130 #  (set_tooltip_text, <string_id>),


reset_price_rates               = 1170 # (reset_price_rates),
set_price_rate_for_item         = 1171 # (set_price_rate_for_item,<item_id>,<value_percentage>),
set_price_rate_for_item_type    = 1172 # (set_price_rate_for_item_type,<item_type_id>,<value_percentage>),

party_join                      = 1201 # (party_join),
party_join_as_prisoner          = 1202 # (party_join_as_prisoner),
troop_join                      = 1203 # (troop_join,<troop_id>),
troop_join_as_prisoner          = 1204 # (troop_join_as_prisoner,<troop_id>),

remove_member_from_party        = 1210 # (remove_member_from_party,<troop_id>,[party_id]),
remove_regular_prisoners        = 1211 # (remove_regular_prisoners,<party_id>),
remove_troops_from_companions   = 1215 # (remove_troops_from_companions,<troop_id>,<value>),
remove_troops_from_prisoners    = 1216 # (remove_troops_from_prisoners,<troop_id>,<value>),

heal_party                      = 1225 # (heal_party,<party_id>),

disable_party                   = 1230 # (disable_party,<party_id>),
enable_party                    = 1231 # (enable_party,<party_id>),
remove_party                    = 1232 # (remove_party,<party_id>), #remove only active spawned parties or you will corrupt the game! Non-spawned parties may be disabled...
add_companion_party             = 1233 # (add_companion_party,<troop_id_hero>),

add_troop_to_site               = 1250 # (add_troop_to_site,<troop_id>,<scene_id>,<entry_no>),
remove_troop_from_site          = 1251 # (remove_troop_from_site,<troop_id>,<scene_id>),
modify_visitors_at_site         = 1261 # (modify_visitors_at_site,<scene_id>),
reset_visitors                  = 1262 # (reset_visitors),
set_visitor                     = 1263 # (set_visitor,<entry_no>,<troop_id>,[<dna>]),
set_visitors                    = 1264 # (set_visitors,<entry_no>,<troop_id>,<number_of_troops>),
add_visitors_to_current_scene   = 1265 # (add_visitors_to_current_scene,<entry_no>,<troop_id>,<number_of_troops>, <team_no>, <group_no>), #team no and group no are used in multiplayer mode only. default team in entry is used in single player mode
scene_set_day_time              = 1266 # (scene_set_day_time, <value>), #value in hours (0-23), must be called within ti_before_mission_start triggers

set_relation                    = 1270 # (set_relation,<faction_id>,<faction_id>,<value>),
faction_set_name                = 1275 # (faction_set_name, <faction_id>, <string_id>),
faction_set_color               = 1276 # (faction_set_color, <faction_id>, <value>),
faction_get_color               = 1277 # (faction_get_color, <color>, <faction_id>)

#Quest stuff
start_quest              = 1280 # (start_quest,<quest_id>),
complete_quest           = 1281 # (complete_quest,<quest_id>),
succeed_quest            = 1282 # (succeed_quest,<quest_id>), #also concludes the quest
fail_quest               = 1283 # (fail_quest,<quest_id>), #also concludes the quest
cancel_quest             = 1284 # (cancel_quest,<quest_id>),

set_quest_progression    = 1285 # (set_quest_progression,<quest_id>,<value>),

conclude_quest           = 1286 # (conclude_quest,<quest_id>),

setup_quest_text         = 1290 # (setup_quest_text,<quest_id>),
setup_quest_giver        = 1291 # (setup_quest_giver,<quest_id>, <string_id>),


#encounter outcomes.
start_encounter            = 1300 # (start_encounter,<party_id>),
leave_encounter            = 1301 # (leave_encounter),
encounter_attack           = 1302 # (encounter_attack),
select_enemy               = 1303 # (select_enemy,<value>),
set_passage_menu           = 1304 # (set_passage_menu,<value>),
auto_set_meta_mission_at_end_commited = 1305 # (auto_set_meta_mission_at_end_commited),

#simulate_battle            = 1305 # (simulate_battle,<value>),
end_current_battle         = 1307 # (end_current_battle),



set_mercenary_source_party = 1320 # selects party from which to buy mercenaries
				   # (set_mercenary_source_party,<party_id>),


set_merchandise_modifier_quality = 1490	        # Quality rate in percentage (average quality = 100),
						# (set_merchandise_modifier_quality,<value>),
set_merchandise_max_value = 1491		# (set_merchandise_max_value,<value>),
reset_item_probabilities = 1492		        # (reset_item_probabilities),
set_item_probability_in_merchandise = 1493	# (set_item_probability_in_merchandise,<itm_id>,<value>),

#active Troop
#set_active_troop                       = 1050
troop_set_name                         = 1501   # (troop_set_name, <troop_id>, <string_no>),
troop_set_plural_name                  = 1502   # (troop_set_plural_name, <troop_id>, <string_no>),
troop_set_face_key_from_current_profile= 1503   # (troop_set_face_key_from_current_profile, <troop_id>),
troop_set_type                         = 1505	# (troop_set_type,<troop_id>,<gender>),
troop_get_type                         = 1506   # (troop_get_type,<destination>,<troop_id>),
troop_is_hero                          = 1507   # (troop_is_hero,<troop_id>),
troop_is_wounded                       = 1508   # (troop_is_wounded,<troop_id>), #only for heroes!
troop_set_auto_equip                   = 1509   # (troop_set_auto_equip,<troop_id>,<value>),#disables otr enables auto-equipping
troop_ensure_inventory_space           = 1510	# (troop_ensure_inventory_space,<troop_id>,<value>),
troop_sort_inventory                   = 1511	# (troop_sort_inventory,<troop_id>),
troop_add_merchandise                  = 1512	# (troop_add_merchandise,<troop_id>,<item_type_id>,<value>),
troop_add_merchandise_with_faction     = 1513	# (troop_add_merchandise_with_faction,<troop_id>,<faction_id>,<item_type_id>,<value>), #faction_id is given to check if troop is eligible to produce that item
troop_get_xp                           = 1515   # (troop_get_xp, <destination>, <troop_id>),
troop_get_class                        = 1516   # (troop_get_class, <destination>, <troop_id>),
troop_set_class                        = 1517 # (troop_set_class, <troop_id>, <value>),

troop_raise_attribute                  = 1520	# (troop_raise_attribute,<troop_id>,<attribute_id>,<value>),
troop_raise_skill                      = 1521	# (troop_raise_skill,<troop_id>,<skill_id>,<value>),
troop_raise_proficiency                = 1522	# (troop_raise_proficiency,<troop_id>,<proficiency_no>,<value>),
troop_raise_proficiency_linear         = 1523	# raises weapon proficiencies linearly without being limited by weapon master skill
						# (troop_raise_proficiency,<troop_id>,<proficiency_no>,<value>),

troop_add_proficiency_points           = 1525   # (troop_add_proficiency_points,<troop_id>,<value>),					
troop_add_gold                         = 1528	# (troop_add_gold,<troop_id>,<value>),
troop_remove_gold                      = 1529	# (troop_remove_gold,<troop_id>,<value>),
troop_add_item                         = 1530	# (troop_add_item,<troop_id>,<item_id>,[modifier]),
troop_remove_item                      = 1531	# (troop_remove_item,<troop_id>,<item_id>),
troop_clear_inventory                  = 1532	# (troop_clear_inventory,<troop_id>),
troop_equip_items                      = 1533   # (troop_equip_items,<troop_id>), #equips the items in the inventory automatically
troop_inventory_slot_set_item_amount   = 1534   # (troop_inventory_slot_set_item_amount,<troop_id>,<inventory_slot_no>,<value>),
troop_inventory_slot_get_item_amount   = 1537   # (troop_inventory_slot_get_item_amount,<destination>,<troop_id>,<inventory_slot_no>),
troop_inventory_slot_get_item_max_amount = 1538  # (troop_inventory_slot_get_item_max_amount,<destination>,<troop_id>,<inventory_slot_no>),

troop_add_items                        = 1535	# (troop_add_items,<troop_id>,<item_id>,<number>),
troop_remove_items                     = 1536	# puts cost of items to reg0
                                                # (troop_remove_items,<troop_id>,<item_id>,<number>),
troop_loot_troop                       = 1539	# (troop_loot_troop,<target_troop>,<source_troop_id>,<probability>), 

troop_get_inventory_capacity           = 1540	# (troop_get_inventory_capacity,<destination>,<troop_id>),
troop_get_inventory_slot               = 1541	# (troop_get_inventory_slot,<destination>,<troop_id>,<inventory_slot_no>),
troop_get_inventory_slot_modifier      = 1542	# (troop_get_inventory_slot_modifier,<destination>,<troop_id>,<inventory_slot_no>),
troop_set_inventory_slot               = 1543	# (troop_set_inventory_slot,<troop_id>,<inventory_slot_no>,<value>),
troop_set_inventory_slot_modifier      = 1544	# (troop_set_inventory_slot_modifier,<troop_id>,<inventory_slot_no>,<value>),
troop_set_faction                      = 1550 # (troop_set_faction,<troop_id>,<faction_id>),
troop_set_age                          = 1555 # (troop_set_age, <troop_id>, <age_slider_pos>),  #Enter a value between 0..100
troop_set_health                       = 1560	# (troop_set_health,<troop_id>,<relative health (0-100)>),

troop_get_upgrade_troop                = 1561   # (troop_get_upgrade_troop,<destination>,<troop_id>,<upgrade_path>), #upgrade_path can be: 0 = get first node, 1 = get second node (returns -1 if not available)

#Items...
item_get_type                          = 1570   # (item_get_type, <destination>, <item_id>), #returned values are listed at header_items.py (values starting with itp_type_)

#Parties...
party_get_num_companions               = 1601	# (party_get_num_companions,<destination>,<party_id>),
party_get_num_prisoners                = 1602	# (party_get_num_prisoners,<destination>,<party_id>),
party_set_flags                        = 1603   # (party_set_flags, <party_id>, <flag>, <clear_or_set>), #sets flags like pf_default_behavior. see header_parties.py for flags.
party_set_marshal                      = 1604   # (party_set_marshal, <party_id>, <value>)
party_set_extra_text                   = 1605   # (party_set_extra_text,<party_id>, <string>)
party_set_aggressiveness               = 1606   # (party_set_aggressiveness, <party_id>, <number>),
party_set_courage                      = 1607   # (party_set_courage, <party_id>, <number>),
party_get_current_terrain              = 1608	# (party_get_current_terrain,<destination>,<party_id>),
party_get_template_id                  = 1609	# (party_get_template_id,<destination>,<party_id>),

party_add_members                      = 1610	# (party_add_members,<party_id>,<troop_id>,<number>), #returns number added in reg0
party_add_prisoners                    = 1611	# (party_add_prisoners,<party_id>,<troop_id>,<number>),#returns number added in reg0
party_add_leader                       = 1612	# (party_add_leader,<party_id>,<troop_id>,[<number>]),
party_force_add_members                = 1613	# (party_force_add_members,<party_id>,<troop_id>,<number>),
party_force_add_prisoners              = 1614	# (party_force_add_prisoners,<party_id>,<troop_id>,<number>),

party_remove_members                   = 1615	# stores number removed to reg0
						# (party_remove_members,<party_id>,<troop_id>,<number>),
party_remove_prisoners                 = 1616	# stores number removed to reg0
						# (party_remove_members,<party_id>,<troop_id>,<number>),
party_clear                            = 1617	# (party_clear,<party_id>),
party_wound_members                    = 1618	# (party_wound_members,<party_id>,<troop_id>,<number>),
party_remove_members_wounded_first     = 1619	# stores number removed to reg0
						# (party_remove_members_wounded_first,<party_id>,<troop_id>,<number>),

party_set_faction                      = 1620	# (party_set_faction,<party_id>,<faction_id>),
party_relocate_near_party              = 1623	# (party_relocate_near_party,<party_id>,<target_party_id>,<value_spawn_radius>),

party_get_position                     = 1625	# (party_get_position,<position_no>,<party_id>),
party_set_position                     = 1626	# (party_set_position,<party_id>,<position_no>),
map_get_random_position_around_position= 1627	# (map_get_random_position_around_position,<dest_position_no>,<source_position_no>,<radius>),
map_get_land_position_around_position  = 1628	# (map_get_land_position_around_position,<dest_position_no>,<source_position_no>,<radius>),
map_get_water_position_around_position = 1629	# (map_get_water_position_around_position,<dest_position_no>,<source_position_no>,<radius>),


party_count_members_of_type            = 1630	# (party_count_members_of_type,<destination>,<party_id>,<troop_id>),
party_count_companions_of_type         = 1631	# (party_count_companions_of_type,<destination>,<party_id>,<troop_id>),
party_count_prisoners_of_type          = 1632	# (party_count_prisoners_of_type,<destination>,<party_id>,<troop_id>),

party_get_free_companions_capacity     = 1633   # (party_get_free_companions_capacity,<destination>,<party_id>),
party_get_free_prisoners_capacity      = 1634   # (party_get_free_prisoners_capacity,<destination>,<party_id>),

party_get_ai_initiative                = 1638	# (party_get_ai_initiative,<destination>,<party_id>), #result is between 0-100
party_set_ai_initiative                = 1639	# (party_set_ai_initiative,<party_id>,<value>), #value is between 0-100
party_set_ai_behavior                  = 1640	# (party_set_ai_behavior,<party_id>,<ai_bhvr>),
party_set_ai_object                    = 1641	# (party_set_ai_object,<party_id>,<party_id>),
party_set_ai_target_position           = 1642	# (party_set_ai_target_position,<party_id>,<position_no>),
party_set_ai_patrol_radius             = 1643	# (party_set_ai_patrol_radius,<party_id>,<radius_in_km>),
party_ignore_player                    = 1644   # (party_ignore_player, <party_id>,<duration_in_hours>), #don't pursue player party for this duration
party_set_bandit_attraction            = 1645   # (party_set_bandit_attraction, <party_id>,<attaraction>), #set how attractive a target the party is for bandits (0..100)
party_get_helpfulness                  = 1646   # (party_get_helpfulness,<destination>,<party_id>),
party_set_helpfulness                  = 1647   # (party_set_helpfulness, <party_id>, <number>), #tendency to help friendly parties under attack. (0-10000, 100 default.)
party_set_ignore_with_player_party     = 1648   # (party_set_ignore_with_player_party, <party_id>, <value>),
party_get_ignore_with_player_party     = 1649   # (party_get_ignore_with_player_party, <party_id>),

party_get_num_companion_stacks         = 1650   # (party_get_num_companion_stacks,<destination>,<party_id>),
party_get_num_prisoner_stacks          = 1651   # (party_get_num_prisoner_stacks, <destination>,<party_id>),
party_stack_get_troop_id               = 1652   # (party_stack_get_troop_id,      <destination>,<party_id>,<stack_no>),
party_stack_get_size                   = 1653   # (party_stack_get_size,          <destination>,<party_id>,<stack_no>),
party_stack_get_num_wounded            = 1654   # (party_stack_get_num_wounded,   <destination>,<party_id>,<stack_no>),
party_stack_get_troop_dna              = 1655   # (party_stack_get_troop_dna,     <destination>,<party_id>,<stack_no>),
party_prisoner_stack_get_troop_id      = 1656   # (party_get_prisoner_stack_troop,<destination>,<party_id>,<stack_no>),
party_prisoner_stack_get_size          = 1657   # (party_get_prisoner_stack_size, <destination>,<party_id>,<stack_no>),
party_prisoner_stack_get_troop_dna     = 1658   # (party_prisoner_stack_get_troop_dna, <destination>,<party_id>,<stack_no>),

party_attach_to_party                  = 1660   # (party_attach_to_party, <party_id>, <party_id to attach to>),
party_detach                           = 1661   # (party_detach, <party_id>),
party_collect_attachments_to_party     = 1662   # (party_collect_attachments_to_party, <party_id>, <destination party_id>),
party_quick_attach_to_current_battle   = 1663   # (party_quick_attach_to_current_battle, <party_id>, <side (0:players side, 1:enemy side)>),

party_get_cur_town                     = 1665   # (party_get_cur_town, <destination>, <party_id>),

party_leave_cur_battle                 = 1666   # (party_leave_cur_battle, <party_id>),
party_set_next_battle_simulation_time  = 1667   # (party_set_next_battle_simulation_time,<party_id>,<next_simulation_time_in_hours>),

party_set_name                         = 1669   # (party_set_name, <party_id>, <string_no>),

party_add_xp_to_stack                  = 1670   # (party_add_xp_to_stack, <party_id>, <stack_no>, <xp_amount>),

party_get_morale                       = 1671   # (party_get_morale, <destination>,<party_id>),
party_set_morale                       = 1672   # (party_set_morale, <party_id>, <value>), #value is clamped to range [0...100].

party_upgrade_with_xp                  = 1673   # (party_upgrade_with_xp, <party_id>, <xp_amount>, <upgrade_path>), #upgrade_path can be:
                                                                                                                    #0 = choose random, 1 = choose first, 2 = choose second
party_add_xp                           = 1674   # (party_add_xp, <party_id>, <xp_amount>),

party_add_template                     = 1675   # (party_add_template, <party_id>, <party_template_id>, [reverse_prisoner_status]),

party_set_icon                         = 1676   # (party_set_icon, <party_id>, <map_icon_id>),
party_set_banner_icon                  = 1677   # (party_set_banner_icon, <party_id>, <map_icon_id>),
party_add_particle_system              = 1678   # (party_add_particle_system, <party_id>, <particle_system_id>),
party_clear_particle_systems           = 1679   # (party_clear_particle_systems, <party_id>),

party_get_battle_opponent              = 1680   # (party_get_battle_opponent, <destination>, <party_id>),
party_get_icon                         = 1681   # (party_get_icon, <destination>, <party_id>),
party_set_extra_icon                   = 1682   # (party_set_extra_icon, <party_id>, <map_icon_id>, <up_down_distance_fixed_point>, <up_down_frequency_fixed_point>, <rotate_frequency_fixed_point>, <fade_in_out_frequency_fixed_point>), #frequencies are in number of revolutions per second

party_get_skill_level                  = 1685   # (party_get_skill_level, <destination>, <party_id>, <skill_no>),
agent_get_speed                        = 1689   # (agent_get_speed, <position_no>, <agent_id>), #will return speed in x and y
get_battle_advantage                   = 1690   # (get_battle_advantage, <destination>),
set_battle_advantage                   = 1691   # (set_battle_advantage, <value>),

agent_refill_wielded_shield_hit_points = 1692   # (agent_refill_wielded_shield_hit_points, <agent_id>),
agent_is_in_special_mode               = 1693   # (agent_is_in_special_mode,<agent_id>),
party_get_attached_to                  = 1694   # (party_get_attached_to, <destination>, <party_id>),
party_get_num_attached_parties         = 1695   # (party_get_num_attached_parties, <destination>, <party_id>),
party_get_attached_party_with_rank     = 1696   # (party_get_attached_party_with_rank, <destination>, <party_id>, <attached_party_no>),
inflict_casualties_to_party_group      = 1697   # (inflict_casualties_to_party, <parent_party_id>, <attack_rounds>, <party_id_to_add_causalties_to>), 
distribute_party_among_party_group     = 1698   # (distribute_party_among_party_group, <party_to_be_distributed>, <group_root_party>),
agent_is_routed                        = 1699   # (agent_is_routed,<agent_id>),

#Agents

#store_distance_between_positions,
#position_is_behind_poisiton,
get_player_agent_no                    = 1700	# (get_player_agent_no,<destination>),
get_player_agent_kill_count            = 1701	# (get_player_agent_kill_count,<destination>,[get_wounded]), #Set second value to non-zero to get wounded count. returns lifetime kill counts
agent_is_alive                         = 1702	# (agent_is_alive,<agent_id>),
agent_is_wounded                       = 1703	# (agent_is_wounded,<agent_id>),
agent_is_human                         = 1704	# (agent_is_human,<agent_id>),
get_player_agent_own_troop_kill_count  = 1705   # (get_player_agent_own_troop_kill_count,<destination>,[get_wounded]), #Set second value to non-zero to get wounded count
agent_is_ally                          = 1706	# (agent_is_ally,<agent_id>),
agent_is_non_player                    = 1707   # (agent_is_non_player, <agent_id>),
agent_is_defender                      = 1708	# (agent_is_defender,<agent_id>),
agent_is_active                        = 1712   # (agent_is_active,<agent_id>),
#agent_is_routed                        = 1699   # (agent_is_routed,<agent_id>),
#agent_is_in_special_mode               = 1693   # (agent_is_in_special_mode,<agent_id>),

agent_get_look_position                = 1709   # (agent_get_look_position, <position_no>, <agent_id>),
agent_get_position                     = 1710	# (agent_get_position,<position_no>,<agent_id>),
agent_set_position                     = 1711	# (agent_set_position,<agent_id>,<position_no>),
#agent_get_speed                        = 1689   # (agent_get_speed, <position_no>, <agent_id>), #will return speed in x and y
#agent_is_active                        = 1712   # (agent_is_active,<agent_id>),
agent_set_look_target_agent            = 1713 # (agent_set_look_target_agent, <agent_id>, <agent_id>), #second agent_id is the target
agent_get_horse                        = 1714	# (agent_get_horse,<destination>,<agent_id>),
agent_get_rider                        = 1715	# (agent_get_rider,<destination>,<agent_id>),
agent_get_party_id                     = 1716	# (agent_get_party_id,<destination>,<agent_id>),
agent_get_entry_no                     = 1717	# (agent_get_entry_no,<destination>,<agent_id>),
agent_get_troop_id                     = 1718	# (agent_get_troop_id,<destination>, <agent_id>),
agent_get_item_id                      = 1719	# (agent_get_item_id,<destination>, <agent_id>), (works only for horses, returns -1 otherwise)

store_agent_hit_points                 = 1720	# set absolute to 1 to retrieve actual hps, otherwise will return relative hp in range [0..100]
						# (store_agent_hit_points,<destination>,<agent_id>,[absolute]),
agent_set_hit_points                   = 1721	# set absolute to 1 if value is absolute, otherwise value will be treated as relative number in range [0..100]
						# (agent_set_hit_points,<agent_id>,<value>,[absolute]),
agent_deliver_damage_to_agent          = 1722	# (agent_deliver_damage_to_agent, <agent_id_deliverer>, <agent_id>, <value>, [item_id]), #if value <= 0, then damage will be calculated using the weapon item. # item_id is the item that the damage is delivered. can be ignored.
agent_get_kill_count                   = 1723   # (agent_get_kill_count,<destination>,<agent_id>,[get_wounded]), #Set second value to non-zero to get wounded count
agent_get_player_id                    = 1724   # (agent_get_player_id,<destination>,<agent_id>),
agent_set_invulnerable_shield          = 1725 # (agent_set_invulnerable_shield, <agent_id>),
agent_get_wielded_item                 = 1726	# (agent_get_wielded_item,<destination>,<agent_id>,<hand_no>),
agent_get_ammo                         = 1727	# (agent_get_ammo,<destination>,<agent_id>, <value>), #value = 1 gets ammo for wielded item, value = 0 gets ammo for all items
#agent_get_ammo_for_slot                = 1825	# (agent_get_ammo_for_slot, <destination>, <agent_id>, <slot_no>), #slot no can be between 0-3
agent_refill_ammo                      = 1728	# (agent_refill_ammo,<agent_id>),
#agent_refill_wielded_shield_hit_points = 1692   # (agent_refill_wielded_shield_hit_points, <agent_id>),
agent_has_item_equipped                = 1729	# (agent_has_item_equipped,<agent_id>,<item_id>),

agent_set_scripted_destination         = 1730	# (agent_set_scripted_destination,<agent_id>,<position_no>,<auto_set_z_to_ground_level>,<no_rethink>), #auto_set_z_to_ground_level can be 0 (false) or 1 (true), no_rethink = 1 to save resources
agent_get_scripted_destination         = 1731   # (agent_get_scripted_destination,<position_no>,<agent_id>),
agent_force_rethink                    = 1732 # (agent_force_rethink, <agent_id>),
agent_set_no_death_knock_down_only     = 1733 # (agent_set_no_death_knock_down_only, <agent_id>, <value>), #0 for disable, 1 for enable
agent_set_horse_speed_factor           = 1734 # (agent_set_horse_speed_factor, <agent_id>, <speed_multiplier-in-1/100>),
agent_clear_scripted_mode              = 1735	# (agent_clear_scripted_mode,<agent_id>),
agent_set_speed_limit                  = 1736   # (agent_set_speed_limit,<agent_id>,<speed_limit(kilometers/hour)>), #Affects AI only 
agent_ai_set_always_attack_in_melee    = 1737   # (agent_ai_set_always_attack_in_melee, <agent_id>,<value>), #to be used in sieges so that agents don't wait on the ladder.
agent_get_simple_behavior              = 1738   # (agent_get_simple_behavior, <destination>, <agent_id>), #constants are written in header_mission_templates.py, starting with aisb_
agent_get_combat_state                 = 1739   # (agent_get_combat_state, <destination>, <agent_id>),

agent_set_animation                    = 1740   # (agent_set_animation, <agent_id>, <anim_id>, [channel_no]), #channel_no default is 0. Top body only animations should have channel_no value as 1.
agent_set_stand_animation              = 1741   # (agent_set_stand_action, <agent_id>, <anim_id>),
agent_set_walk_forward_animation       = 1742   # (agent_set_walk_forward_action, <agent_id>, <anim_id>),
agent_set_animation_progress           = 1743   # (agent_set_animation_progress, <agent_id>, <value_fixed_point>), #value should be between 0-1 (as fixed point)
agent_set_look_target_position         = 1744   # (agent_set_look_target_position, <agent_id>, <position_no>),
agent_set_attack_action                = 1745   # (agent_set_attack_action, <agent_id>, <value>, <value>), #value: -2 = clear any attack action, 0 = thrust, 1 = slashright, 2 = slashleft, 3 = overswing - second value 0 = ready and release, 1 = ready and hold
agent_set_defend_action                = 1746   # (agent_set_defend_action, <agent_id>, <value>, <duration-in-1/1000-seconds>), #value_1: -2 = clear any defend action, 0 = defend_down, 1 = defend_right, 2 = defend_left, 3 = defend_up
agent_set_wielded_item                 = 1747   # (agent_set_wielded_item, <agent_id>, <item_id>),
agent_set_scripted_destination_no_attack = 1748	# (agent_set_scripted_destination_no_attack,<agent_id>,<position_no>,<auto_set_z_to_ground_level>), #auto_set_z_to_ground_level can be 0 (false) or 1 (true)
agent_fade_out                         = 1749   # (agent_fade_out, <agent_id>),
agent_play_sound                       = 1750   # (agent_play_sound, <agent_id>, <sound_id>),
agent_start_running_away               = 1751   # (agent_start_running_away, <agent_id>, [position_no]), # if position no is entered, agent will run away to that location. pos0 is not allowed (will be ignored).
agent_stop_running_away                = 1752   # (agent_stop_run_away, <agent_id>),
agent_ai_set_aggressiveness            = 1753   # (agent_ai_set_aggressiveness, <agent_id>, <value>), #100 is the default aggressiveness. higher the value, less likely to run back
agent_set_kick_allowed                 = 1754   # (agent_set_kick_allowed, <agent_id>, <value>), #0 for disable, 1 for allow

remove_agent                           = 1755   # (remove_agent, <agent_id>),

agent_get_attached_scene_prop          = 1756   # (agent_get_attached_scene_prop, <destination>, <agent_id>)
agent_set_attached_scene_prop          = 1757   # (agent_set_attached_scene_prop, <agent_id>, <scene_prop_id>)
agent_set_attached_scene_prop_x        = 1758   # (agent_set_attached_scene_prop_x, <agent_id>, <value>)
#agent_set_attached_scene_prop_y        = 1809   # (agent_set_attached_scene_prop_y, <agent_id>, <value>)
agent_set_attached_scene_prop_z        = 1759   # (agent_set_attached_scene_prop_z, <agent_id>, <value>)

agent_get_time_elapsed_since_removed   = 1760   # (agent_get_time_elapsed_since_dead, <destination>, <agent_id>),
agent_get_number_of_enemies_following  = 1761   # (agent_get_number_of_enemies_following, <destination>, <agent_id>),

agent_set_no_dynamics                  = 1762   # (agent_set_no_dynamics, <agent_id>, <value>), #0 = turn dynamics off, 1 = turn dynamics on (required for cut-scenes)

agent_get_attack_action                = 1763   # (agent_get_attack_action, <destination>, <agent_id>), #returned values: free = 0, readying_attack = 1, releasing_attack = 2, completing_attack_after_hit = 3, attack_parried = 4, reloading = 5, after_release = 6, cancelling_attack = 7
agent_get_defend_action                = 1764   # (agent_get_defend_action, <destination>, <agent_id>), #returned values: free = 0, parrying = 1, blocking = 2

agent_get_group                        = 1765   # (agent_get_group, <destination>, <agent_id>),
agent_set_group                        = 1766   # (agent_set_group, <agent_id>, <value>),

agent_get_action_dir                   = 1767   # (agent_get_action_dir, <destination>, <agent_id>), #invalid = -1, down = 0, right = 1, left = 2, up = 3
agent_get_animation                    = 1768   # (agent_get_animation, <destination>, <agent_id>, <body_part), #0 = lower body part, 1 = upper body part
agent_is_in_parried_animation          = 1769   # (agent_is_in_parried_animation, <agent_id>),

agent_get_team                         = 1770   # (agent_get_team, <destination>, <agent_id>),
agent_set_team                         = 1771   # (agent_set_team, <agent_id>, <value>),

agent_get_class                        = 1772   # (agent_get_class ,<destination>, <agent_id>),
agent_get_division                     = 1773   # (agent_get_division ,<destination>, <agent_id>),
agent_unequip_item                     = 1774	  # (agent_unequip_item, <agent_id>, <item_id>, [weapon_slot_no]), #weapon_slot_no is optional, and can be between 1-4 (used only for weapons, not armor). in either case, item_id has to be set correctly.

class_is_listening_order               = 1775   # (class_is_listening_order, <team_no>, <class>), #defined only for classes 0-8
agent_set_ammo                         = 1776   # (agent_set_ammo,<agent_id>,<item_id>,<value>), #value = a number between 0 and maximum ammo

agent_add_offer_with_timeout           = 1777   # (agent_add_offer_with_timeout, <agent_id>, <agent_id>, <duration-in-1/1000-seconds>), #second agent_id is offerer, 0 value for duration is an infinite offer
agent_check_offer_from_agent           = 1778   # (agent_check_offer_from_agent, <agent_id>, <agent_id>), #second agent_id is offerer

agent_equip_item                       = 1779	  # (agent_equip_item, <agent_id>, <item_id>, [weapon_slot_no],[modifier]), #for weapons, agent needs to have an empty weapon slot. weapon_slot_no is optional, and can be between 1-4 (used only for weapons, not armor).

entry_point_get_position               = 1780   # (entry_point_get_position, <position_no>, <entry_no>),
entry_point_set_position               = 1781   # (entry_point_set_position, <entry_no>, <position_no>),
entry_point_is_auto_generated          = 1782  	# (entry_point_is_auto_generated, <entry_no>),

agent_set_division                     = 1783   # (agent_set_division, <agent_id>, <value>),

team_get_hold_fire_order               = 1784   # (team_get_hold_fire_order, <destination>, <team_no>, <sub_class>),
team_get_movement_order                = 1785   # (team_get_movement_order, <destination>, <team_no>, <sub_class>),
team_get_riding_order                  = 1786   # (team_get_riding_order, <destination>, <team_no>, <sub_class>),
team_get_weapon_usage_order            = 1787   # (team_get_weapon_usage_order, <destination>, <team_no>, <sub_class>),
teams_are_enemies                      = 1788   # (teams_are_enemies, <team_no>, <team_no_2>), 
team_give_order                        = 1790   # (team_give_order, <team_no>, <sub_class>, <order_id>),
team_set_order_position                = 1791   # (team_set_order_position, <team_no>, <sub_class>, <position_no>),
team_get_leader                        = 1792   # (team_get_leader, <destination>, <team_no>),
team_set_leader                        = 1793   # (team_set_leader, <team_no>, <new_leader_agent_id>),
team_get_order_position                = 1794   # (team_get_order_position, <position_no>, <team_no>, <sub_class>),
team_set_order_listener                = 1795   # (team_set_order_listener, <team_no>, <sub_class>, <value>), #merge with old listeners if value is non-zero #clear listeners if sub_class is less than zero
team_set_relation                      = 1796   # (team_set_relation, <team_no>, <team_no_2>, <value>), # -1 for enemy, 1 for friend, 0 for neutral

close_order_menu                       = 1789   # (close_order_menu),
set_rain                               = 1797   # (set_rain,<rain-type>,<strength>), (rain_type: 1= rain, 2=snow ; strength: 0 - 100)
set_fog_distance                       = 1798   # (set_fog_distance, <distance_in_meters>, [fog_color]),
get_scene_boundaries                   = 1799   # (get_scene_boundaries, <position_min>, <position_max>),

scene_prop_enable_after_time           = 1800   # (scene_prop_enable_after_time, <scene_prop_id>, <value>)
scene_prop_has_agent_on_it             = 1801   # (scene_prop_has_agent_on_it, <scene_prop_id>, <agent_id>)

agent_clear_relations_with_agents      = 1802   # (agent_clear_relations_with_agents, <agent_id>),
agent_add_relation_with_agent          = 1803   # (agent_add_relation_with_agent, <agent_id>, <agent_id>, <value>), #-1 = enemy, 0 = neutral (no friendly fire at all), 1 = ally

agent_get_item_slot                    = 1804   # (agent_get_item_slot, <destination>, <agent_id>, <value>), value between 0-7, order is weapon1, weapon2, weapon3, weapon4, head_armor, body_armor, leg_armor, hand_armor
ai_mesh_face_group_show_hide           = 1805   # (ai_mesh_face_group_show_hide, <group_no>, <value>), # 1 for enable, 0 for disable

agent_is_alarmed                       = 1806   # (agent_is_alarmed, <agent_id>),
agent_set_is_alarmed                   = 1807   # (agent_set_is_alarmed, <agent_id>, <value>), # 1 for enable, 0 for disable
agent_stop_sound                       = 1808   # (agent_stop_sound, <agent_id>),
agent_set_attached_scene_prop_y        = 1809   # (agent_set_attached_scene_prop_y, <agent_id>, <value>)

scene_prop_get_num_instances           = 1810	# (scene_prop_get_num_instances, <destination>, <scene_prop_id>),
scene_prop_get_instance                = 1811	# (scene_prop_get_instance, <destination>, <scene_prop_id>, <instance_no>),
scene_prop_get_visibility              = 1812   # (scene_prop_get_visibility, <destination>, <scene_prop_id>),
scene_prop_set_visibility              = 1813   # (scene_prop_set_visibility, <scene_prop_id>, <value>),
scene_prop_set_hit_points              = 1814   # (scene_prop_set_hit_points, <scene_prop_id>, <value>),
scene_prop_get_hit_points              = 1815   # (scene_prop_get_hit_points, <destination>, <scene_prop_id>),
scene_prop_get_max_hit_points          = 1816   # (scene_prop_get_max_hit_points, <destination>, <scene_prop_id>),
scene_prop_get_team                    = 1817   # (scene_prop_get_team, <value>, <scene_prop_id>),
scene_prop_set_team                    = 1818   # (scene_prop_set_team, <scene_prop_id>, <value>),
scene_prop_set_prune_time              = 1819   # (scene_prop_set_prune_time, <scene_prop_id>, <value>), # prune time can only be set to objects that are already on the prune queue. static objects are not affected by this operation.
scene_prop_set_cur_hit_points          = 1820   # (scene_prop_set_cur_hit_points, <scene_prop_id>, <value>),

scene_prop_fade_out                    = 1822   # (scene_prop_fade_out, <scene_prop_id>, <fade_out_time>)
scene_prop_fade_in                     = 1823   # (scene_prop_fade_in, <scene_prop_id>, <fade_in_time>)

agent_get_ammo_for_slot                = 1825	# (agent_get_ammo_for_slot, <destination>, <agent_id>, <slot_no>), #slot no can be between 0-3
agent_is_in_line_of_sight              = 1826 # (agent_is_in_line_of_sight, <agent_id>, <position_no>), # rotation of the position register is not used.
agent_deliver_damage_to_agent_advanced = 1827	# (agent_deliver_damage_to_agent_advanced, <destination>, <agent_id_deliverer>, <agent_id>, <value>, [item_id]), #if value <= 0, then damage will be calculated using the weapon item. # item_id is the item that the damage is delivered. can be ignored.
#this advanced mode of agent_deliver_damage_to_agent has 2 differences. 1- the delivered damage is returned. 2- the damage delivery is done after checking the relationship between agents. this might cause no damage, or even damage to the shooter agent because of a friendly fire.
team_get_gap_distance				   = 1828   # (team_get_gap_distance, <destination>, <team_no>, <sub_class>),

add_missile                            = 1829	# (add_missile, <agent_id>, <starting_position>, <starting_speed_fixed_point>, <weapon_item_id>, <weapon_item_modifier>, <missile_item_id>, <missile_item_modifier>), # starting position also contains the direction of the arrow

scene_item_get_num_instances           = 1830	# (scene_item_get_num_instances, <destination>, <item_id>),
scene_item_get_instance                = 1831	# (scene_item_get_instance, <destination>, <item_id>, <instance_no>),
scene_spawned_item_get_num_instances   = 1832	# (scene_spawned_item_get_num_instances, <destination>, <item_id>),
scene_spawned_item_get_instance        = 1833	# (scene_spawned_item_get_instance, <destination>, <item_id>, <instance_no>),
scene_allows_mounted_units             = 1834   # (scene_allows_mounted_units),

class_set_name                         = 1837 # (class_set_name, <sub_class>, <string_id>),

prop_instance_is_valid                 = 1838 # (prop_instance_is_valid, <scene_prop_id>),
prop_instance_get_variation_id         = 1840	# (prop_instance_get_variation_id, <destination>, <scene_prop_id>),
prop_instance_get_variation_id_2       = 1841	# (prop_instance_get_variation_id_2, <destination>, <scene_prop_id>),


prop_instance_get_position             = 1850	# (prop_instance_get_position, <position_no>, <scene_prop_id>),
prop_instance_get_starting_position    = 1851	# (prop_instance_get_starting_position, <position_no>, <scene_prop_id>),
prop_instance_get_scale                = 1852	# (prop_instance_get_scale, <position_no>, <scene_prop_id>),
prop_instance_get_scene_prop_kind      = 1853   # (prop_instance_get_scene_prop_type, <destination>, <scene_prop_id>)
prop_instance_set_scale                = 1854 # (prop_instance_set_scale, <scene_prop_id>, <value_x_fixed_point>, <value_y_fixed_point>, <value_z_fixed_point>),
prop_instance_set_position             = 1855	# (prop_instance_set_position, <scene_prop_id>, <position_no>, [dont_send_to_clients]),
#dont_send_to_clients default is 0, therefore it is sent to clients. if you are just doing some physics checks with scene props, then don't send them to clients
prop_instance_animate_to_position      = 1860	# (prop_instance_animate_to_position, <scene_prop_id>, position, <duration-in-1/100-seconds>),
prop_instance_stop_animating           = 1861	# (prop_instance_stop_animating, <scene_prop_id>),
prop_instance_is_animating             = 1862   # (prop_instance_is_animating, <destination>, <scene_prop_id>),
prop_instance_get_animation_target_position = 1863    # (prop_instance_get_animation_target_position, <pos>, <scene_prop_id>)
prop_instance_enable_physics           = 1864   # (prop_instance_enable_physics, <scene_prop_id>, <value>), #0 for disable, 1 for enable
prop_instance_rotate_to_position       = 1865	# (prop_instance_rotate_to_position, <scene_prop_id>, position, <duration-in-1/100-seconds>, <total_rotate_angle>),
prop_instance_initialize_rotation_angles = 1866   # (prop_instance_initialize_rotation_angles, <scene_prop_id>),
prop_instance_refill_hit_points        = 1870 # (prop_instance_refill_hit_points, <scene_prop_id>), 

prop_instance_dynamics_set_properties  = 1871 # (prop_instance_dynamics_set_properties,<scene_prop_id>,mass_friction),
prop_instance_dynamics_set_velocity    = 1872 # (prop_instance_dynamics_set_velocity,<scene_prop_id>,linear_velocity),
prop_instance_dynamics_set_omega       = 1873 # (prop_instance_dynamics_set_omega,<scene_prop_id>,angular_velocity),
prop_instance_dynamics_apply_impulse   = 1874 # (prop_instance_dynamics_apply_impulse,<scene_prop_id>,impulse_force),

prop_instance_receive_damage           = 1877 # (prop_instance_receive_damage, <scene_prop_id>, <agent_id>, <damage_value>),

prop_instance_intersects_with_prop_instance = 1880 # (prop_instance_intersects_with_prop_instance, <scene_prop_id>, <scene_prop_id>), #give second scene_prop_id as -1 to check all scene props.
#cannot check polygon-to-polygon physics models, but can check any other combinations between sphere, capsule and polygon physics models.

prop_instance_play_sound               = 1881 # (prop_instance_play_sound, <scene_prop_id>, <sound_id>, [flags]), # sound flags can be given
prop_instance_stop_sound               = 1882 # (prop_instance_stop_sound, <scene_prop_id>),

prop_instance_clear_attached_missiles  = 1885 # (prop_instance_clear_attached_missiles, <scene_prop_id>), # Works only with dynamic scene props (non-retrievable missiles)

prop_instance_add_particle_system      = 1886 # (prop_instance_add_particle_system, <scene_prop_id>, <par_sys_id>, <position_no>), # position is local, not global.
prop_instance_stop_all_particle_systems= 1887 # (prop_instance_stop_all_particle_systems, <scene_prop_id>),


replace_prop_instance                  = 1889   # (replace_prop_instance, <scene_prop_id>, <new_scene_prop_id>),
replace_scene_props                    = 1890   # (replace_scene_props, <old_scene_prop_id>,<new_scene_prop_id>),
replace_scene_items_with_scene_props   = 1891   # (replace_scene_items_with_scene_props, <old_item_id>,<new_scene_prop_id>),

cast_ray                               = 1900   # (cast_ray, <destination>, <hit_position_register>, <ray_position_register>, [<ray_length_fixed_point>]), #Casts a ray of length [<ray_length_fixed_point>] starting from <ray_position_register> and stores the closest hit position into <hit_position_register> (fails if no hits). If the body hit is a prop instance, its id will be stored into <destination>

#---------------------------
# Mission Consequence types
#---------------------------

set_mission_result                     = 1906	# (set_mission_result,<value>),
finish_mission                         = 1907	# (finish_mission, <delay_in_seconds>),
jump_to_scene                          = 1910	# (jump_to_scene,<scene_id>,<entry_no>),
set_jump_mission                       = 1911	# (set_jump_mission,<mission_template_id>),
set_jump_entry                         = 1912	# (set_jump_entry,<entry_no>),
start_mission_conversation             = 1920	# (start_mission_conversation,<troop_id>),
add_reinforcements_to_entry            = 1930	# (add_reinforcements_to_entry,<mission_template_entry_no>,<value>),

mission_enable_talk                    = 1935   # (mission_enable_talk), #can talk with troops during battles
mission_disable_talk                   = 1936   # (mission_disable_talk), #disables talk option for the mission

mission_tpl_entry_set_override_flags   = 1940   # (mission_tpl_entry_set_override_flags, <mission_template_id>, <entry_no>, <value>),
mission_tpl_entry_clear_override_items = 1941   # (mission_tpl_entry_clear_override_items, <mission_template_id>, <entry_no>),
mission_tpl_entry_add_override_item    = 1942   # (mission_tpl_entry_add_override_item, <mission_template_id>, <entry_no>, <item_kind_id>),
mission_tpl_are_all_agents_spawned     = 1943   # (mission_tpl_are_all_agents_spawned), #agents >300 may keep spawning after ti_after_mission_start (still fires .1 second too early)

set_current_color                      = 1950	# red, green, blue: a value of 255 means 100%
					          # (set_current_color,<value>,<value>,<value>),
set_position_delta                     = 1955	# x, y, z
                                                  # (set_position_delta,<value>,<value>,<value>),
add_point_light                        = 1960	# (add_point_light,[flicker_magnitude],[flicker_interval]), #flicker_magnitude between 0 and 100, flicker_interval is in 1/100 seconds
add_point_light_to_entity              = 1961	# (add_point_light_to_entity,[flicker_magnitude],[flicker_interval]), #flicker_magnitude between 0 and 100, flicker_interval is in 1/100 seconds
particle_system_add_new                = 1965	# (particle_system_add_new,<par_sys_id>,[position_no]),
particle_system_emit                   = 1968	# (particle_system_emit,<par_sys_id>,<value_num_particles>,<value_period>),
particle_system_burst                  = 1969	# (particle_system_burst,<par_sys_id>,<position_no>,[percentage_burst_strength]),

set_spawn_position                     = 1970   # (set_spawn_position, <position_no>), 
spawn_item                             = 1971   # (spawn_item, <item_kind_id>, <item_modifier>, [seconds_before_pruning]), #if seconds_before_pruning = 0 then item never gets pruned
spawn_agent                            = 1972	# (spawn_agent,<troop_id>), (stores agent_id in reg0)
spawn_horse                            = 1973	# (spawn_horse,<item_kind_id>, <item_modifier>),  (stores agent_id in reg0)
spawn_scene_prop                       = 1974   # (spawn_scene_prop, <scene_prop_id>),  (stores prop_instance_id in reg0)

particle_system_burst_no_sync		   = 1975	# (particle_system_burst_without_sync,<par_sys_id>,<position_no>,[percentage_burst_strength]),

spawn_item_without_refill              = 1976   # (spawn_item_without_refill, <item_kind_id>, <item_modifier>, [seconds_before_pruning]), #if seconds_before_pruning = 0 then item never gets pruned
agent_get_item_cur_ammo                = 1977	# (agent_get_item_cur_ammo, <destination>, <agent_id>, <slot_no>)

cur_item_add_mesh                      = 1964   # (cur_item_add_mesh, <mesh_name_string_no>, [<lod_begin>], [<lod_end>]), #only call inside ti_on_init_item in module_items # lod values are optional. lod_end is not included.
cur_item_set_material                  = 1978   # (cur_item_set_material, <string_no>, <sub_mesh_no>, [<lod_begin>], [<lod_end>]), #only call inside ti_on_init_item in module_items # lod values are optional. lod_end is not included.

cur_tableau_add_tableau_mesh           = 1980   # (cur_tableau_add_tableau_mesh, <tableau_material_id>, <value>, <position_register_no>), #value is passed to tableau_material
cur_item_set_tableau_material          = 1981   # (cur_item_set_tableu_material, <tableau_material_id>, <instance_code>), #only call inside ti_on_init_item in module_items; instance_code is simply passed as a parameter to the tableau
cur_scene_prop_set_tableau_material    = 1982   # (cur_scene_prop_set_tableau_material, <tableau_material_id>, <instance_code>), #only call inside ti_on_init_scene_prop in module_scene_props; instance_code is simply passed as a parameter to the tableau
cur_map_icon_set_tableau_material      = 1983   # (cur_map_icon_set_tableau_material, <tableau_material_id>, <instance_code>), #only call inside ti_on_init_map_icon in module_scene_props; instance_code is simply passed as a parameter to the tableau
cur_tableau_render_as_alpha_mask       = 1984   # (cur_tableau_render_as_alpha_mask)
cur_tableau_set_background_color       = 1985   # (cur_tableau_set_background_color, <value>),
cur_agent_set_banner_tableau_material  = 1986   # (cur_agent_set_banner_tableau_material, <tableau_material_id>)
cur_tableau_set_ambient_light          = 1987   # (cur_tableau_set_ambient_light, <red_fixed_point>, <green_fixed_point>, <blue_fixed_point>),
cur_tableau_set_camera_position        = 1988   # (cur_tableau_set_camera_position, <position_no>),
cur_tableau_set_camera_parameters      = 1989   # (cur_tableau_set_camera_parameters, <is_perspective>, <camera_width_times_1000>, <camera_height_times_1000>, <camera_near_times_1000>, <camera_far_times_1000>),
cur_tableau_add_point_light            = 1990   # (cur_tableau_add_point_light, <map_icon_id>, <position_no>, <red_fixed_point>, <green_fixed_point>, <blue_fixed_point>),
cur_tableau_add_sun_light              = 1991   # (cur_tableau_add_sun_light, <map_icon_id>, <position_no>, <red_fixed_point>, <green_fixed_point>, <blue_fixed_point>),
cur_tableau_add_mesh                   = 1992   # (cur_tableau_add_mesh, <mesh_id>, <position_no>, <value_fixed_point>, <value_fixed_point>),
                                                # first value fixed point is the scale factor, second value fixed point is alpha. use 0 for default values
cur_tableau_add_mesh_with_vertex_color = 1993   # (cur_tableau_add_mesh_with_vertex_color, <mesh_id>, <position_no>, <value_fixed_point>, <value_fixed_point>, <value>),
                                                # first value fixed point is the scale factor, second value fixed point is alpha. value is vertex color. use 0 for default values. vertex_color has no default value.

cur_tableau_add_map_icon               = 1994   # (cur_tableau_add_map_icon, <map_icon_id>, <position_no>, <value_fixed_point>),
                                                # value fixed point is the scale factor
                                                
cur_tableau_add_troop                  = 1995   # (cur_tableau_add_troop, <troop_id>, <position_no>, <animation_id>, <instance_no>), #if instance_no value is 0 or less, then the face is not generated randomly (important for heroes)
cur_tableau_add_horse                  = 1996   # (cur_tableau_add_horse, <item_id>, <position_no>, <animation_id>),
cur_tableau_set_override_flags         = 1997   # (cur_tableau_set_override_flags, <value>),
cur_tableau_clear_override_items       = 1998   # (cur_tableau_clear_override_items),
cur_tableau_add_override_item          = 1999   # (cur_tableau_add_override_item, <item_kind_id>),
cur_tableau_add_mesh_with_scale_and_vertex_color = 2000   # (cur_tableau_add_mesh_with_scale_and_vertex_color, <mesh_id>, <position_no>, <position_no>, <value_fixed_point>, <value>),
                                                # second position_no is x,y,z scale factors (with fixed point values). value fixed point is alpha. value is vertex color. use 0 for default values. scale and vertex_color has no default values.
 
mission_cam_set_mode                   = 2001   # (mission_cam_set_mode, <mission_cam_mode>, <duration-in-1/1000-seconds>, <value>), # when leaving manual mode, duration defines the animation time from the initial position to the new position. set as 0 for instant camera position update
                                                                                                                                    # if value = 0, then camera velocity will be linear. else it will be non-linear
mission_get_time_speed                 = 2002   # (mission_get_time_speed, <destination_fixed_point>),
mission_set_time_speed                 = 2003   # (mission_set_time_speed, <value_fixed_point>), #this works only when cheat mode is enabled
mission_time_speed_move_to_value       = 2004   # (mission_speed_move_to_value, <value_fixed_point>, <duration-in-1/1000-seconds>), #this works only when cheat mode is enabled
mission_set_duel_mode                  = 2006   # (mission_set_duel_mode, <value>), #value: 0 = off, 1 = on

mission_cam_set_screen_color           = 2008   #(mission_cam_set_screen_color, <value>), #value is color together with alpha
mission_cam_animate_to_screen_color    = 2009   #(mission_cam_animate_to_screen_color, <value>, <duration-in-1/1000-seconds>), #value is color together with alpha

mission_cam_get_position               = 2010   # (mission_cam_get_position, <position_register_no>),
mission_cam_set_position               = 2011   # (mission_cam_set_position, <position_register_no>),
mission_cam_animate_to_position        = 2012   # (mission_cam_animate_to_position, <position_register_no>, <duration-in-1/1000-seconds>, <value>), # if value = 0, then camera velocity will be linear. else it will be non-linear
mission_cam_get_aperture               = 2013   # (mission_cam_get_aperture, <destination>),
mission_cam_set_aperture               = 2014   # (mission_cam_set_aperture, <value>),
mission_cam_animate_to_aperture        = 2015   # (mission_cam_animate_to_aperture, <value>, <duration-in-1/1000-seconds>, <value>), # if value = 0, then camera velocity will be linear. else it will be non-linear
mission_cam_animate_to_position_and_aperture = 2016   # (mission_cam_animate_to_position_and_aperture, <position_register_no>, <value>, <duration-in-1/1000-seconds>, <value>), # if value = 0, then camera velocity will be linear. else it will be non-linear
mission_cam_set_target_agent           = 2017   # (mission_cam_set_target_agent, <agent_id>, <value>), #if value = 0 then do not use agent's rotation, else use agent's rotation
mission_cam_clear_target_agent         = 2018   # (mission_cam_clear_target_agent),
mission_cam_set_animation              = 2019   # (mission_cam_set_animation, <anim_id>),

talk_info_show                         = 2020   # (talk_info_show, <hide_or_show>), :0=hide 1=show
talk_info_set_relation_bar             = 2021   # (talk_info_set_relation_bar, <value>), :set relation bar to a value between -100 to 100, enter an invalid value to hide the bar.
talk_info_set_line                     = 2022   # (talk_info_set_line, <line_no>, <string_no>)

#mesh related
set_background_mesh                    = 2031   # (set_background_mesh, <mesh_id>),
set_game_menu_tableau_mesh             = 2032   # (set_game_menu_tableau_mesh, <tableau_material_id>, <value>, <position_register_no>), #value is passed to tableau_material
                                                # position contains the following information: x = x position of the mesh, y = y position of the mesh, z = scale of the mesh

#change_window types.
change_screen_return                   = 2040	# (change_screen_return),
change_screen_loot                     = 2041	# (change_screen_loot, <troop_id>),
change_screen_trade                    = 2042	# (change_screen_trade, <troop_id>),
change_screen_exchange_members         = 2043	# (change_screen_exchange_members, [0,1 = exchange_leader], [party_id]), #if party id is not given, current party will be used
change_screen_trade_prisoners          = 2044	# (change_screen_trade_prisoners),
change_screen_buy_mercenaries          = 2045	# (change_screen_buy_mercenaries),
change_screen_view_character           = 2046	# (change_screen_view_character),
change_screen_training                 = 2047	# (change_screen_training),
change_screen_mission                  = 2048	# (change_screen_mission),
change_screen_map_conversation         = 2049   # (change_screen_map_conversation, <troop_id>),
                                                # Starts the mission, same as (change_screen_mission). However once the mission starts, player will get into dialog with the specified troop, and once the dialog ends, the mission will automatically end.
change_screen_exchange_with_party      = 2050   # (change_screen_exchange_with_party, <party_id>),
change_screen_equip_other              = 2051	# (change_screen_equip_other, <troop_id>),
change_screen_map                      = 2052
change_screen_notes                    = 2053   # (change_screen_notes, <note_type>, <object_id>), #Note type can be 1 = troops, 2 = factions, 3 = parties, 4 = quests, 5 = info_pages
change_screen_quit                     = 2055   # (change_screen_quit),
change_screen_give_members             = 2056   # (change_screen_give_members, [party_id]), #if party id is not given, current party will be used
change_screen_controls                 = 2057   # (change_screen_controls),
change_screen_options                  = 2058   # (change_screen_options),

jump_to_menu                           = 2060	# (jump_to_menu,<menu_id>),
disable_menu_option                    = 2061   # (disable_menu_option),

agent_get_damage_modifier              = 2065 # (agent_get_damage_modifier, <destination>, <agent_id>), # output value is in percentage, 100 is default
agent_get_accuracy_modifier            = 2066 # (agent_get_accuracy_modifier, <destination>, <agent_id>), # output value is in percentage, 100 is default, value can be between [0..1000]
agent_get_speed_modifier               = 2067 # (agent_get_speed_modifier, <destination>, <agent_id>), # output value is in percentage, 100 is default, value can be between [0..1000]
agent_get_reload_speed_modifier        = 2068 # (agent_get_reload_speed_modifier, <destination>, <agent_id>), # output value is in percentage, 100 is default, value can be between [0..1000]
agent_get_use_speed_modifier           = 2069 # (agent_get_use_speed_modifier, <destination>, <agent_id>), # output value is in percentage, 100 is default, value can be between [0..1000]

store_trigger_param                    = 2070  # (store_trigger_param, <destination>, <trigger_param_no>),
store_trigger_param_1                  = 2071  # (store_trigger_param_1,<destination>),
store_trigger_param_2                  = 2072  # (store_trigger_param_2,<destination>),
store_trigger_param_3                  = 2073  # (store_trigger_param_3,<destination>),
set_trigger_result                     = 2075  # (set_trigger_result, <value>),

agent_get_bone_position                = 2076 # (agent_get_bone_position, <position_no>, <agent_no>, <bone_no>, [<local_or_global>]), # returns position of bone. Option 0 for local to agent position, 1 for global

agent_ai_set_interact_with_player      = 2077 # (agent_ai_set_interact_with_player, <agent_no>, <value>), # 0 for disable, 1 for enable.

agent_ai_get_look_target               = 2080 # (agent_ai_get_look_target, <destination>, <agent_id>),
agent_ai_get_move_target               = 2081 # (agent_ai_get_move_target, <destination>, <agent_id>),
agent_ai_get_behavior_target           = 2082 # (agent_ai_get_behavior_target, <destination>, <agent_id>),
agent_ai_set_can_crouch                = 2083 # (agent_ai_set_can_crouch, <agent_id>, <value>), # 0 for false, 1 for true.

agent_set_max_hit_points               = 2090	# set absolute to 1 if value is absolute, otherwise value will be treated as relative number in range [0..100]
						# (agent_set_max_hit_points,<agent_id>,<value>,[absolute]),
agent_set_damage_modifier              = 2091   # (agent_set_damage_modifier, <agent_id>, <value>), # value is in percentage, 100 is default
agent_set_accuracy_modifier            = 2092   # (agent_set_accuracy_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_speed_modifier               = 2093   # (agent_set_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_reload_speed_modifier        = 2094   # (agent_set_reload_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_use_speed_modifier           = 2095   # (agent_set_use_speed_modifier, <agent_id>, <value>), # value is in percentage, 100 is default, value can be between [0..1000]
agent_set_visibility                   = 2096   # (agent_set_visibility, <agent_id>, <value>), # 0 for invisible, 1 for visible.
agent_get_crouch_mode                  = 2097   # (agent_get_crouch_mode, <destination>, <agent_id>),
agent_set_crouch_mode                  = 2098   # (agent_set_crouch_mode, <agent_id>, <value>), # 0-1
agent_set_ranged_damage_modifier       = 2099   # (agent_set_ranged_damage_modifier, <agent_id>, <value>), # value is in percentage, 100 is default

val_lshift             = 2100 # (val_lshift, <destination>, <value>), # shifts the bits of destination to left by value amount.
val_rshift             = 2101 # (val_rshift, <destination>, <value>), # shifts the bits of destination to right by value amount.

val_add                = 2105	#dest, operand ::       dest = dest + operand
				# (val_add,<destination>,<value>),
val_sub                = 2106	#dest, operand ::       dest = dest + operand
				# (val_sub,<destination>,<value>),
val_mul                = 2107	#dest, operand ::       dest = dest * operand
				# (val_mul,<destination>,<value>),
val_div                = 2108	#dest, operand ::       dest = dest / operand
				# (val_div,<destination>,<value>),
val_mod                = 2109	#dest, operand ::       dest = dest mod operand
				# (val_mod,<destination>,<value>),
val_min                = 2110	#dest, operand ::       dest = min(dest, operand)
				# (val_min,<destination>,<value>),
val_max                = 2111	#dest, operand ::       dest = max(dest, operand)
				# (val_max,<destination>,<value>),
val_clamp              = 2112	#dest, operand ::       dest = max(min(dest,<upper_bound> - 1),<lower_bound>)
				# (val_clamp,<destination>,<lower_bound>, <upper_bound>),
val_abs                = 2113  #dest          ::       dest = abs(dest)
                                # (val_abs,<destination>),
val_or                 = 2114   #dest, operand ::       dest = dest | operand
				# (val_or,<destination>,<value>),
val_and                = 2115   #dest, operand ::       dest = dest & operand
				# (val_and,<destination>,<value>),
store_or               = 2116   #dest, op1, op2 :      dest = op1 | op2
                                # (store_or,<destination>,<value>,<value>),
store_and              = 2117   #dest, op1, op2 :      dest = op1 & op2
                                # (store_and,<destination>,<value>,<value>),

store_mod              = 2119	#dest, op1, op2 :      dest = op1 % op2
				# (store_mod,<destination>,<value>,<value>),
store_add              = 2120	#dest, op1, op2 :      dest = op1 + op2
				# (store_add,<destination>,<value>,<value>),
store_sub              = 2121	#dest, op1, op2 :      dest = op1 - op2
				# (store_sub,<destination>,<value>,<value>),
store_mul              = 2122	#dest, op1, op2 :      dest = op1 * op2
				# (store_mul,<destination>,<value>,<value>),
store_div              = 2123	#dest, op1, op2 :      dest = op1 / op2
				# (store_div,<destination>,<value>,<value>),

set_fixed_point_multiplier      = 2124 # (set_fixed_point_multiplier, <value>),
                                        # sets the precision of the values that are named as value_fixed_point or destination_fixed_point.
                                        # Default is 1 (every fixed point value will be regarded as an integer)

store_sqrt             = 2125  # (store_sqrt, <destination_fixed_point>, <value_fixed_point>), takes square root of the value
store_pow              = 2126  # (store_pow, <destination_fixed_point>, <value_fixed_point>, <value_fixed_point), takes square root of the value
                                #dest, op1, op2 :      dest = op1 ^ op2
store_sin              = 2127  # (store_sin, <destination_fixed_point>, <value_fixed_point>), takes sine of the value that is in degrees
store_cos              = 2128  # (store_cos, <destination_fixed_point>, <value_fixed_point>), takes cosine of the value that is in degrees
store_tan              = 2129  # (store_tan, <destination_fixed_point>, <value_fixed_point>), takes tangent of the value that is in degrees

convert_to_fixed_point = 2130  # (convert_to_fixed_point, <destination_fixed_point>), multiplies the value with the fixed point multiplier
convert_from_fixed_point= 2131 # (convert_from_fixed_point, <destination>), divides the value with the fixed point multiplier

assign                 = 2133	# had to put this here so that it can be called from conditions.
				# (assign,<destination>,<value>),
shuffle_range          = 2134	# (shuffle_range,<reg_no>,<reg_no>),

store_random           = 2135	# deprecated, use store_random_in_range instead.
store_random_in_range  = 2136	# gets random number in range [range_low,range_high] excluding range_high 
				# (store_random_in_range,<destination>,<range_low>,<range_high>),

store_asin             = 2140  # (store_asin, <destination_fixed_point>, <value_fixed_point>),
store_acos             = 2141  # (store_acos, <destination_fixed_point>, <value_fixed_point>),
store_atan             = 2142  # (store_atan, <destination_fixed_point>, <value_fixed_point>),
store_atan2            = 2143  # (store_atan2, <destination_fixed_point>, <value_fixed_point>, <value_fixed_point>), #first value is y, second is x

store_troop_gold       = 2149	# (store_troop_gold,<destination>,<troop_id>),

store_num_free_stacks           = 2154 # (store_num_free_stacks,<destination>,<party_id>),
store_num_free_prisoner_stacks  = 2155 # (store_num_free_prisoner_stacks,<destination>,<party_id>),

store_party_size                = 2156	# (store_party_size,<destination>,[party_id]),
store_party_size_wo_prisoners   = 2157	# (store_party_size_wo_prisoners,<destination>,[party_id]),
store_troop_kind_count          = 2158 # deprecated, use party_count_members_of_type instead
store_num_regular_prisoners     = 2159	# (store_mum_regular_prisoners,<destination>,<party_id>),

store_troop_count_companions    = 2160	# (store_troop_count_companions,<destination>,<troop_id>,[party_id]),
store_troop_count_prisoners     = 2161	# (store_troop_count_prisoners,<destination>,<troop_id>,[party_id]),
store_item_kind_count           = 2165	# (store_item_kind_count,<destination>,<item_id>,[troop_id]),

store_free_inventory_capacity   = 2167	# (store_free_inventory_capacity,<destination>,[troop_id]),

store_skill_level               = 2170	# (store_skill_level,<destination>,<skill_id>,[troop_id]),
store_character_level           = 2171	# (store_character_level,<destination>,[troop_id]),
store_attribute_level           = 2172	# (store_attribute_level,<destination>,<troop_id>,<attribute_id>),

store_troop_faction             = 2173	# (store_troop_faction,<destination>,<troop_id>),
store_faction_of_troop          = 2173	# (store_troop_faction,<destination>,<troop_id>),
store_troop_health              = 2175	# (store_troop_health,<destination>,<troop_id>,[absolute]),
                                        # set absolute to 1 to get actual health; otherwise this will return percentage health in range (0-100)

store_proficiency_level         = 2176	# (store_proficiency_level,<destination>,<troop_id>,<attribute_id>),

					# (store_troop_health,<destination>,<troop_id>,[absolute]),
store_relation                  = 2190	# (store_relation,<destination>,<faction_id_1>,<faction_id_2>),
set_conversation_speaker_troop  = 2197  # (set_conversation_speaker_troop, <troop_id>),
                                        # Allows to dynamically switch speaking troops during the dialog when developer doesn't know in advance who will be doing the speaking. Should be placed in post-talk code section of dialog entry.
set_conversation_speaker_agent  = 2198  # (set_conversation_speaker_troop, <agent_id>),
                                        # Allows to dynamically switch speaking agents during the dialog when developer doesn't know in advance who will be doing the speaking. Should be placed in post-talk code section of dialog entry.
store_conversation_agent        = 2199 # (store_conversation_agent,<destination>),
                                        # Stores identifier of agent who is currently speaking.
store_conversation_troop        = 2200 # (store_conversation_troop,<destination>),
                                         # Stores identifier of troop who is currently speaking.
store_partner_faction           = 2201 # (store_partner_faction,<destination>),
store_encountered_party         = 2202 # (store_encountered_party,<destination>),
store_encountered_party2        = 2203 # (store_encountered_party2,<destination>),
store_faction_of_party          = 2204 # (store_faction_of_party, <destination>, <party_id>),
set_encountered_party           = 2205 # (set_encountered_party,<destination>),


#store_current_town              = 2210 # deprecated, use store_current_scene instead
#store_current_site              = 2211 # deprecated, use store_current_scene instead
store_current_scene             = 2211 # (store_current_scene,<destination>),

store_zoom_amount               = 2220 # (store_zoom_amount, <destination_fixed_point>),
set_zoom_amount                 = 2221 # (set_zoom_amount, <value_fixed_point>),
is_zoom_disabled                = 2222 # (is_zoom_disabled),

store_item_value                = 2230 # (store_item_value,<destination>,<item_id>),
store_troop_value               = 2231 # (store_troop_value,<destination>,<troop_id>),

store_partner_quest             = 2240 # (store_partner_quest,<destination>),
store_random_quest_in_range     = 2250 # (store_random_quest_in_range,<destination>,<lower_bound>,<upper_bound>),
store_random_troop_to_raise     = 2251 # (store_random_troop_to_raise,<destination>,<lower_bound>,<upper_bound>),
store_random_troop_to_capture   = 2252	# (store_random_troop_to_capture,<destination>,<lower_bound>,<upper_bound>),
store_random_party_in_range     = 2254	# (store_random_party_in_range,<destination>,<lower_bound>,<upper_bound>),
store01_random_parties_in_range = 2255 # stores two random, different parties in a range to reg0 and reg1.
					# (store01_random_parties_in_range,<lower_bound>,<upper_bound>),
store_random_horse              = 2257	# (store_random_horse,<destination>)
store_random_equipment          = 2258	# (store_random_equipment,<destination>)
store_random_armor              = 2259	# (store_random_armor,<destination>)
store_quest_number              = 2261 # (store_quest_number,<destination>,<quest_id>),
store_quest_item                = 2262	# (store_quest_item,<destination>,<item_id>),
store_quest_troop               = 2263	# (store_quest_troop,<destination>,<troop_id>),

store_current_hours             = 2270 # (store_current_hours,<destination>),
store_time_of_day               = 2271	# (store_time_of_day,<destination>),
store_current_day               = 2272	# (store_current_day,<destination>),
is_currently_night              = 2273	# (is_currently_night),

store_distance_to_party_from_party = 2281	# (store_distance_to_party_from_party,<destination>,<party_id>,<party_id>),

get_party_ai_behavior                 = 2290	# (get_party_ai_behavior,<destination>,<party_id>),
get_party_ai_object                   = 2291	# (get_party_ai_object,<destination>,<party_id>),
party_get_ai_target_position          = 2292	# (party_get_ai_target_position,<position_no>,<party_id>),
get_party_ai_current_behavior         = 2293   # (get_party_ai_current_behavior,<destination>,<party_id>),
get_party_ai_current_object           = 2294	# (get_party_ai_current_object,<destination>,<party_id>),


store_num_parties_created             = 2300	# (store_num_parties_created,<destination>,<party_template_id>),
store_num_parties_destroyed           = 2301	# (store_num_parties_destroyed,<destination>,<party_template_id>),
store_num_parties_destroyed_by_player = 2302	# (store_num_parties_destroyed_by_player,<destination>,<party_template_id>),


# Searching operations.
store_num_parties_of_template   = 2310	# (store_num_parties_of_template,<destination>,<party_template_id>),
store_random_party_of_template  = 2311	# fails if no party exists with tempolate_id (expensive)
					# (store_random_party_of_template,<destination>,<party_template_id>),

str_is_empty                    = 2318 # (str_is_empty, <string_register>),
str_clear                       = 2319 # (str_clear, <string_register>)
str_store_string                = 2320	# (str_store_string,<string_register>,<string_id>),
str_store_string_reg            = 2321	# (str_store_string_reg,<string_register>,<string_no>), #copies one string register to another.
str_store_troop_name            = 2322	# (str_store_troop_name,<string_register>,<troop_id>),
str_store_troop_name_plural     = 2323	# (str_store_troop_name_plural,<string_register>,<troop_id>),
str_store_troop_name_by_count   = 2324	# (str_store_troop_name_by_count,<string_register>,<troop_id>,<number>),
str_store_item_name             = 2325	# (str_store_item_name,<string_register>,<item_id>),
str_store_item_name_plural      = 2326	# (str_store_item_name_plural,<string_register>,<item_id>),
str_store_item_name_by_count    = 2327	# (str_store_item_name_by_count,<string_register>,<item_id>),
str_store_party_name            = 2330	# (str_store_party_name,<string_register>,<party_id>),
str_store_agent_name            = 2332	# (str_store_agent_name,<string_register>,<agent_id>),
str_store_faction_name          = 2335	# (str_store_faction_name,<string_register>,<faction_id>),
str_store_quest_name            = 2336	# (str_store_quest_name,<string_register>,<quest_id>),
str_store_info_page_name        = 2337	# (str_store_info_page_name,<string_register>,<info_page_id>),
str_store_date                  = 2340 # (str_store_date,<string_register>,<number_of_hours_to_add_to_the_current_date>),
str_store_troop_name_link       = 2341 # (str_store_troop_name_link,<string_register>,<troop_id>),
str_store_party_name_link       = 2342 # (str_store_party_name_link,<string_register>,<party_id>),
str_store_faction_name_link     = 2343 # (str_store_faction_name_link,<string_register>,<faction_id>),
str_store_quest_name_link       = 2344 # (str_store_quest_name_link,<string_register>,<quest_id>),
str_store_info_page_name_link   = 2345 # (str_store_info_page_name_link,<string_register>,<info_page_id>),
str_store_class_name            = 2346 # (str_store_class_name,<stribg_register>,<class_id>)
str_store_player_username       = 2350 # (str_store_player_username,<string_register>,<player_id>), #used in multiplayer mode only
str_store_server_password       = 2351 # (str_store_server_password, <string_register>),
str_store_server_name           = 2352 # (str_store_server_name, <string_register>),
str_store_welcome_message       = 2353 # (str_store_welcome_message, <string_register>),

str_encode_url                  = 2355 # (str_encode_url, <string_register>),

#mission ones:
store_remaining_team_no         = 2360	# (store_remaining_team_no,<destination>),

store_mission_timer_a_msec = 2365	# (store_mission_timer_a_msec,<destination>),
store_mission_timer_b_msec = 2366	# (store_mission_timer_b_msec,<destination>),
store_mission_timer_c_msec = 2367	# (store_mission_timer_c_msec,<destination>),

store_mission_timer_a = 2370	# (store_mission_timer_a,<destination>),
store_mission_timer_b = 2371	# (store_mission_timer_b,<destination>),
store_mission_timer_c = 2372	# (store_mission_timer_c,<destination>),

reset_mission_timer_a = 2375	# (reset_mission_timer_a),
reset_mission_timer_b = 2376	# (reset_mission_timer_b),
reset_mission_timer_c = 2377	# (reset_mission_timer_c),

set_cheer_at_no_enemy = 2379    # (set_cheer_at_no_enemy, <value>), # values:0->do not cheer (do as commander says), 1->cheer

store_enemy_count     = 2380 # (store_enemy_count,<destination>),
store_friend_count    = 2381 # (store_friend_count,<destination>),
store_ally_count      = 2382 # (store_ally_count,<destination>),
store_defender_count  = 2383 # (store_defender_count,<destination>),
store_attacker_count  = 2384 # (store_attacker_count,<destination>),
store_normalized_team_count = 2385 #(store_normalized_team_count,<destination>, <team_no>), #Counts the number of agents belonging to a team
                                                                                            # and normalizes the result regarding battle_size and advantage.
set_postfx                  = 2386
set_river_shader_to_mud     = 2387 #changes river material for muddy env
show_troop_details          = 2388 # (show_troop_details, <troop_id>, <position>, <troop_price>)
set_skybox                  = 2389 # (set_skybox, <non_hdr_skybox_index>, <hdr_skybox_index>)	#forces selected skybox for a scene, use -1 to disable 
set_startup_sun_light       = 2390 # (set_startup_sun_light, <r>, <g>, <b>)	#changes the sun light color
set_startup_ambient_light   = 2391 # (set_startup_ambient_light, <r>, <g>, <b>)	#changes the ambient light color
set_startup_ground_ambient_light = 2392 # (set_startup_ground_ambient_light, <r>, <g>, <b>)	#changes the ground ambient light color
rebuild_shadow_map          = 2393 # (rebuild_shadow_map),

get_startup_sun_light       = 2394  # (get_startup_sun_light, <position_no>),
get_startup_ambient_light   = 2395  # (get_startup_ambient_light, <position_no>),
get_startup_ground_ambient_light = 2396 # (get_startup_ground_ambient_light, <position_no>),

set_shader_param_int        = 2400 # (set_shader_param_int, <parameter_name>, <value>),	#Sets the int shader parameter <parameter_name> to <value>
set_shader_param_float			= 2401 # (set_shader_param_float, <parameter_name>, <value>),	#Sets the float shader parameter <parameter_name> to <value>
set_shader_param_float4			= 2402 # (set_shader_param_float4, <parameter_name>, <valuex>, <valuey>, <valuez>, <valuew>),	#Sets the float4 shader parameter <parameter_name> to <valuex/y/z/w>
set_shader_param_float4x4		= 2403 # (set_shader_param_float4x4, <parameter_name>, [0][0], [0][1], [0][2], [1][0], [1][1], [1][2], [2][0], [2][1], [2][2], [3][0], [3][1], [3][2]),	#Sets the float4x4 shader parameter <parameter_name> to the given values .w components are 0001 by default

prop_instance_deform_to_time              = 2610 # (prop_instance_deform_to_time, <prop_instance_no>, <value>), # value gives the vertex animation time.
prop_instance_deform_in_range             = 2611 # (prop_instance_deform_in_range, <prop_instance_no>, <start_frame>, <end_frame>, <duration-in-1/1000-seconds>), #play animation from start frame to end frame
prop_instance_deform_in_cycle_loop        = 2612 # (prop_instance_deform_in_cycle_loop, <prop_instance_no>, <start_frame>, <end_frame>, <duration-in-1/1000-seconds> #cyclical animation within start-end frame
prop_instance_get_current_deform_progress = 2615 # (prop_instance_get_current_deform_progress, <destination>, <prop_instance_no>), #returns a percentage value between 0 and 100 if animation is still in progress. returns 100 otherwise.
prop_instance_get_current_deform_frame    = 2616 # (prop_instance_get_current_deform_frame, <destination>, <prop_instance_no>), #returns current frame with round to nearest
prop_instance_set_material                = 2617 # (prop_instance_set_material, <prop_instance_no>, <sub_mesh_no>, <string_register>), #give sub mesh as -1 to change all meshes' materials.

agent_ai_get_num_cached_enemies       = 2670 # (agent_ai_get_num_cached_enemies, <destination>, <agent_no>),  #nearby enemies, nearest to farthest
agent_ai_get_cached_enemy             = 2671 # (agent_ai_get_cached_enemy, <destination>, <agent_no>, <cache_index>), #this operation may return -1 if the cached enemy is not active anymore

item_get_weight                       = 2700 # (item_get_weight, <destination_fixed_point>, <item_kind_no>), #Stores <item_kind_no>'s weight into <destination_fixed_point>
item_get_value                        = 2701 # (item_get_value, <destination>, <item_kind_no>), #Stores <item_kind_no>'s value into <destination>
item_get_difficulty                   = 2702 # (item_get_difficulty, <destination>, <item_kind_no>), #Stores <item_kind_no>'s difficulty into <destination>
item_get_head_armor                   = 2703 # (item_get_head_armor, <destination>, <item_kind_no>), #Stores <item_kind_no>'s head armor into <destination>
item_get_body_armor                   = 2704 # (item_get_body_armor, <destination>, <item_kind_no>), #Stores <item_kind_no>'s body armor into <destination>
item_get_leg_armor                    = 2705 # (item_get_leg_armor, <destination>, <item_kind_no>), #Stores <item_kind_no>'s leg armor into <destination>
item_get_hit_points                   = 2706 # (item_get_hit_points, <destination>, <item_kind_no>), #Stores <item_kind_no>'s hit points into <destination>
item_get_weapon_length                = 2707 # (item_get_weapon_length, <destination>, <item_kind_no>), #Stores <item_kind_no>'s weapon length into <destination>
item_get_speed_rating                 = 2708 # (item_get_speed_rating, <destination>, <item_kind_no>), #Stores <item_kind_no>'s speed rating into <destination>
item_get_missile_speed                = 2709 # (item_get_missile_speed, <destination>, <item_kind_no>), #Stores <item_kind_no>'s missile speed into <destination>
item_get_max_ammo                     = 2710 # (item_get_max_ammo, <destination>, <item_kind_no>), #Stores <item_kind_no>'s max ammo into <destination>
item_get_accuracy                     = 2711 # (item_get_accuracy, <destination>, <item_kind_no>), #Stores <item_kind_no>'s accuracy into <destination>
item_get_shield_height                = 2712 # (item_get_shield_height, <destination_fixed_point>, <item_kind_no>), #Stores <item_kind_no>'s shield height into <destination>
item_get_horse_scale                  = 2713 # (item_get_horse_scale, <destination_fixed_point>, <item_kind_no>), #Stores <item_kind_no>'s horse scale into <destination>
item_get_horse_speed                  = 2714 # (item_get_horse_speed, <destination>, <item_kind_no>), #Stores <item_kind_no>'s horse speed into <destination>
item_get_horse_maneuver               = 2715 # (item_get_horse_maneuver, <destination>, <item_kind_no>), #Stores <item_kind_no>'s horse maneuver into <destination>
item_get_food_quality                 = 2716 # (item_get_food_quality, <destination>, <item_kind_no>), #Stores <item_kind_no>'s food quality into <destination>
item_get_abundance                    = 2717 # (item_get_abundance, <destination>, <item_kind_no>), #Stores <item_kind_no>'s abundance into <destination>
item_get_thrust_damage                = 2718 # (item_get_thrust_damage, <destination>, <item_kind_no>), #Stores <item_kind_no>'s thrust damage into <destination>
item_get_thrust_damage_type           = 2719 # (item_get_thrust_damage_type, <destination>, <item_kind_no>), #Stores <item_kind_no>'s thrust damage type into <destination>
item_get_swing_damage                 = 2720 # (item_get_swing_damage, <destination>, <item_kind_no>), #Stores <item_kind_no>'s thrust damage into <destination>
item_get_swing_damage_type            = 2721 # (item_get_swing_damage_type, <destination>, <item_kind_no>), #Stores <item_kind_no>'s thrust damage type into <destination>
item_get_horse_charge_damage          = 2722 # (item_get_horse_charge_damage, <destination>, <item_kind_no>), #Stores <item_kind_no>'s thrust damage into <destination>
item_has_property                     = 2723 # (item_has_property, <item_kind_no>, <property>), #Fails if <item_kind_no> doesn't have <property>
item_has_capability                   = 2724 # (item_has_capability, <item_kind_no>, <capability>), #Fails if <item_kind_no> doesn't have <capability>
item_has_modifier                     = 2725 # (item_has_modifier, <item_kind_no>, <item_modifier_no>), #Fails if <item_modifier_no> is not a valid modifier for <item_kind_no> # use imod_xxx instead of imodbit_xxx
item_has_faction                      = 2726 # (item_has_faction, <item_kind_no>, <faction_no>), #Fails if <item_kind_no> doesn't have <faction_no> in its faction list

str_store_player_face_keys            = 2747 # (str_store_player_face_keys, <string_no>, <player_id>), #Stores <player_id>'s face key into string.
player_set_face_keys                  = 2748 # (player_set_face_keys, <player_id>, <string_no>), #Sets <player_id>'s face keys from string.
str_store_troop_face_keys             = 2750 # (str_store_troop_face_keys, <string_no>, <troop_no>, [<alt>]), #Stores <troop_no>'s face key into string. if [<alt>] is non-zero the second pair of face keys is stored
troop_set_face_keys                   = 2751 # (troop_set_face_keys, <troop_no>, <string_no>, [<alt>]), #Sets <troop_no>'s face keys from string. if [<alt>] is non-zero the second pair of face keys is set.
face_keys_get_hair                    = 2752 # (face_keys_get_hair, <destination>, <string_no>), #Stores face key's hair value into <destination>
face_keys_set_hair                    = 2753 # (face_keys_set_hair, <string_no>, <value>), #Sets face key's hair value
face_keys_get_beard                   = 2754 # (face_keys_get_beard, <destination>, <string_no>), #Stores face key's beard value into <destination>
face_keys_set_beard                   = 2755 # (face_keys_set_beard, <string_no>, <value>), #Sets face key's beard value
face_keys_get_face_texture            = 2756 # (face_keys_get_face_texture, <destination>, <string_no>), #Stores face key's face texture value into <destination>
face_keys_set_face_texture            = 2757 # (face_keys_set_face_texture, <string_no>, <value>), #Sets face key's face texture value
face_keys_get_hair_texture            = 2758 # (face_keys_get_hair_texture, <destination>, <string_no>), #Stores face key's hair texture value into <destination>
face_keys_set_hair_texture            = 2759 # (face_keys_set_hair_texture, <string_no>, <value>), #Sets face key's hair texture value
face_keys_get_hair_color              = 2760 # (face_keys_get_hair_color, <destination>, <string_no>), #Stores face key's hair color value into <destination>
face_keys_set_hair_color              = 2761 # (face_keys_set_hair_color, <string_no>, <value>), #Sets face key's hair color value
face_keys_get_age                     = 2762 # (face_keys_get_age, <destination>, <string_no>), #Stores face key's age value into <destination>
face_keys_set_age                     = 2763 # (face_keys_set_age, <string_no>, <value>), #Sets face key's age value
face_keys_get_skin_color              = 2764 # (face_keys_get_skin_color, <destination>, <string_no>), #Stores face key's skin color value into <destination>
face_keys_set_skin_color              = 2765 # (face_keys_set_skin_color, <string_no>, <value>), #Sets face key's skin color value
face_keys_get_morph_key               = 2766 # (face_keys_get_morph_key, <destination>, <string_no>, <key_no>), #Stores face key's morph key value (0-7) into <destination>
face_keys_set_morph_key               = 2767 # (face_keys_set_morph_key, <string_no>, <key_no>, <value>), #Sets face key's morph key value (0-7)


#-------------------------------------------


lhs_operations = [try_for_range,
                  try_for_range_backwards,
                  try_for_parties,
                  try_for_agents,
                  try_for_prop_instances,
                  try_for_players,
                  store_script_param_1,
                  store_script_param_2,
                  store_script_param,
                  store_repeat_object,
				  get_operation_set_version,
                  get_global_cloud_amount,
                  get_global_haze_amount,
                  options_get_damage_to_player,
                  options_get_damage_to_friends,
                  options_get_combat_ai,
                  options_get_campaign_ai,
                  options_get_combat_speed,
				  options_get_battle_size,
                  profile_get_banner_id,
                  get_achievement_stat,
                  get_max_players,
                  player_get_team_no,
                  player_get_troop_id,
                  player_get_agent_id,
                  player_get_gold,
                  multiplayer_get_my_team,
                  multiplayer_get_my_troop,
                  multiplayer_get_my_gold,
                  multiplayer_get_my_player,
                  player_get_score,
                  player_get_kill_count,
                  player_get_death_count,
                  player_get_ping,
                  player_get_is_muted,
                  player_get_unique_id,
                  player_get_gender,
                  player_get_item_id,
                  player_get_banner_id,
                  game_get_reduce_campaign_ai,
                  multiplayer_find_spawn_point,
                  team_get_bot_kill_count,
                  team_get_bot_death_count,
                  team_get_kill_count,
                  team_get_score,
                  team_get_faction,
                  player_get_value_of_original_items,
                  server_get_renaming_server_allowed,
                  server_get_changing_game_type_allowed,
                  server_get_friendly_fire,
                  server_get_control_block_dir,
                  server_get_combat_speed,
                  server_get_add_to_game_servers_list,
                  server_get_ghost_mode,
                  server_get_max_num_players,
                  server_get_melee_friendly_fire,
                  server_get_friendly_fire_damage_self_ratio,
                  server_get_friendly_fire_damage_friend_ratio,
                  server_get_anti_cheat,
                  troop_get_slot,
                  party_get_slot,
                  faction_get_slot,
                  scene_get_slot,
                  party_template_get_slot,
                  agent_get_slot,
                  quest_get_slot,
                  item_get_slot,
                  player_get_slot,
                  team_get_slot,
                  scene_prop_get_slot,
                  store_last_sound_channel,
                  get_angle_between_positions,
                  get_distance_between_positions,
                  get_distance_between_positions_in_meters,
                  get_sq_distance_between_positions,
                  get_sq_distance_between_positions_in_meters,
                  get_sq_distance_between_position_heights,                  
                  position_get_x,
                  position_get_y,
                  position_get_z,
                  position_get_scale_x,
                  position_get_scale_y,
                  position_get_scale_z,
                  position_get_rotation_around_z,
                  position_normalize_origin,
                  position_get_rotation_around_x,
                  position_get_rotation_around_y,
                  position_get_distance_to_terrain,
                  position_get_distance_to_ground_level,
                  create_text_overlay,
                  create_mesh_overlay,
                  create_button_overlay,
                  create_image_button_overlay,
                  create_slider_overlay,
                  create_progress_overlay,
                  create_combo_button_overlay,
                  create_text_box_overlay,
                  create_check_box_overlay,
                  create_simple_text_box_overlay,
                  create_image_button_overlay_with_tableau_material,
                  create_mesh_overlay_with_tableau_material,
                  create_game_button_overlay,
                  create_in_game_button_overlay,
                  create_number_box_overlay, 
                  create_listbox_overlay,
                  create_mesh_overlay_with_item_id,
                  overlay_get_position,
                  create_combo_label_overlay,
                  get_average_game_difficulty,
                  get_level_boundary,
                  faction_get_color,
                  troop_get_type,
                  troop_get_xp,
                  troop_get_class,
                  troop_inventory_slot_get_item_amount,
                  troop_inventory_slot_get_item_max_amount,
                  troop_get_inventory_capacity,
                  troop_get_inventory_slot,
                  troop_get_inventory_slot_modifier,
                  troop_get_upgrade_troop,
                  item_get_type,
                  item_get_missile_speed,
                  party_get_num_companions,
                  party_get_num_prisoners,
                  party_get_current_terrain,
                  party_get_template_id,
                  party_count_members_of_type,
                  party_count_companions_of_type,
                  party_count_prisoners_of_type,
                  party_get_free_companions_capacity,
                  party_get_free_prisoners_capacity,
                  party_get_helpfulness,
                  party_get_ignore_with_player_party,
                  party_get_ai_initiative,
                  party_get_num_companion_stacks,
                  party_get_num_prisoner_stacks,
                  party_stack_get_troop_id,
                  party_stack_get_size,
                  party_stack_get_num_wounded,
                  party_stack_get_troop_dna,
                  party_prisoner_stack_get_troop_id,
                  party_prisoner_stack_get_size,
                  party_prisoner_stack_get_troop_dna,
                  party_get_cur_town,
                  party_get_morale,
                  party_get_battle_opponent,
                  party_get_icon,
                  party_get_skill_level,
                  get_battle_advantage,
                  party_get_attached_to,
                  party_get_num_attached_parties,
                  party_get_attached_party_with_rank,
                  get_player_agent_no,
                  get_player_agent_kill_count,
                  get_player_agent_own_troop_kill_count,
                  agent_get_horse,
                  agent_get_rider,
                  agent_get_party_id,
                  agent_get_entry_no,
                  agent_get_troop_id,
                  agent_get_item_id,
                  store_agent_hit_points,
                  agent_get_kill_count,
                  agent_get_player_id,
                  agent_get_wielded_item,
                  agent_get_ammo,
                  agent_get_simple_behavior,
                  agent_get_combat_state,
                  agent_get_attached_scene_prop,
                  agent_get_time_elapsed_since_removed,
                  agent_get_number_of_enemies_following,
                  agent_get_attack_action,
                  agent_get_defend_action,
                  agent_get_group,
                  agent_get_action_dir,
                  agent_get_animation,
                  agent_get_team,
                  agent_get_class,
                  agent_get_division,                  
                  team_get_hold_fire_order,
                  team_get_movement_order,
                  team_get_riding_order,
                  team_get_weapon_usage_order,
                  team_get_leader,
                  agent_get_item_slot,
                  scene_prop_get_num_instances,
                  scene_prop_get_instance,
                  scene_prop_get_visibility,
                  scene_prop_get_hit_points,
                  scene_prop_get_max_hit_points,
                  scene_prop_get_team,
                  agent_get_ammo_for_slot,
                  agent_deliver_damage_to_agent_advanced,
                  team_get_gap_distance,
                  # add_missile,    MOTO causes local variable unused warnings?
                  scene_item_get_num_instances,
                  scene_item_get_instance,
                  scene_spawned_item_get_num_instances,
                  scene_spawned_item_get_instance,
                  prop_instance_get_variation_id,
                  prop_instance_get_variation_id_2,
                  prop_instance_get_position,
                  prop_instance_get_starting_position,
                  prop_instance_get_scale,
                  prop_instance_get_scene_prop_kind,
                  prop_instance_is_animating,
                  prop_instance_get_animation_target_position,
                  cast_ray,
                  agent_get_item_cur_ammo,
                  mission_get_time_speed,
                  mission_cam_get_aperture,
                  agent_get_damage_modifier,
                  agent_get_accuracy_modifier,
                  agent_get_speed_modifier,
                  agent_get_reload_speed_modifier,
                  agent_get_use_speed_modifier,
                  store_trigger_param,
                  store_trigger_param_1,
                  store_trigger_param_2,
                  store_trigger_param_3,
                  agent_ai_get_look_target,
                  agent_ai_get_move_target,
                  agent_ai_get_behavior_target,
                  agent_get_crouch_mode,
                  store_or,
                  store_and,
                  store_mod,
                  store_add,
                  store_sub,
                  store_mul,
                  store_div,
                  store_sqrt,
                  store_pow,
                  store_sin,
                  store_cos,
                  store_tan,
                  assign,
                  store_random,
                  store_random_in_range,
                  store_asin,
                  store_acos,
                  store_atan,
                  store_atan2,
                  store_troop_gold,
                  store_num_free_stacks,
                  store_num_free_prisoner_stacks,
                  store_party_size,
                  store_party_size_wo_prisoners,
                  store_troop_kind_count,
                  store_num_regular_prisoners,
                  store_troop_count_companions,
                  store_troop_count_prisoners,
                  store_item_kind_count,
                  store_free_inventory_capacity,
                  store_skill_level,
                  store_character_level,
                  store_attribute_level,
                  store_troop_faction,
                  store_troop_health,
                  store_proficiency_level,
                  store_relation,
                  store_conversation_agent,
                  store_conversation_troop,
                  store_partner_faction,
                  store_encountered_party,
                  store_encountered_party2,
                  store_faction_of_party,
                  store_current_scene,
                  store_zoom_amount,
                  store_item_value,
                  store_troop_value,
                  store_partner_quest,
                  store_random_quest_in_range,
                  store_random_troop_to_raise,
                  store_random_troop_to_capture,
                  store_random_party_in_range,
                  store_random_horse,
                  store_random_equipment,
                  store_random_armor,
                  store_quest_number,
                  store_quest_item,
                  store_quest_troop,
                  store_current_hours,
                  store_time_of_day,
                  store_current_day,
                  store_distance_to_party_from_party,
                  get_party_ai_behavior,
                  get_party_ai_object,
                  get_party_ai_current_behavior,
                  get_party_ai_current_object,
                  store_num_parties_created,
                  store_num_parties_destroyed,
                  store_num_parties_destroyed_by_player,
                  store_num_parties_of_template,
                  store_random_party_of_template,
                  store_remaining_team_no,
                  store_mission_timer_a_msec,
                  store_mission_timer_b_msec,
                  store_mission_timer_c_msec,
                  store_mission_timer_a,
                  store_mission_timer_b,
                  store_mission_timer_c,
                  store_enemy_count,
                  store_friend_count,
                  store_ally_count,
                  store_defender_count,
                  store_attacker_count,
                  store_normalized_team_count,
				  prop_instance_get_current_deform_progress,
				  prop_instance_get_current_deform_frame,
				  agent_ai_get_num_cached_enemies,
				  agent_ai_get_cached_enemy,
                  item_get_weight,
                  item_get_value,
                  item_get_difficulty,
                  item_get_head_armor,
                  item_get_body_armor,
                  item_get_leg_armor,
                  item_get_hit_points,
                  item_get_weapon_length,
                  item_get_speed_rating,
                  item_get_missile_speed,
                  item_get_max_ammo,
                  item_get_accuracy,
                  item_get_shield_height,
                  item_get_horse_scale,
                  item_get_horse_speed,
                  item_get_horse_maneuver,
                  item_get_food_quality,
                  item_get_abundance,
                  item_get_thrust_damage,
                  item_get_thrust_damage_type,
                  item_get_swing_damage,
                  item_get_swing_damage_type,
                  item_get_horse_charge_damage,
                  get_startup_sun_light,
                  get_startup_ambient_light,
                  get_startup_ground_ambient_light,
                  face_keys_get_hair,
                  face_keys_get_beard,
                  face_keys_get_face_texture,
                  face_keys_get_hair_texture,
                  face_keys_get_hair_color,
                  face_keys_get_age,
                  face_keys_get_skin_color,
                  face_keys_get_morph_key
                  ]
global_lhs_operations = [val_lshift,
                         val_rshift,
                         val_add,
                         val_sub,
                         val_mul,
                         val_div,
                         val_max,
                         val_min,
                         val_mod
                         ]

can_fail_operations = [ge,
                       eq,
                       gt,
                       is_between,
                       entering_town,
                       map_free,
                       encountered_party_is_attacker,
                       conversation_screen_is_active,
                       in_meta_mission,
                       troop_is_hero,
                       troop_is_wounded,
                       key_is_down,
                       key_clicked,
                       game_key_is_down,
                       game_key_clicked,
                       hero_can_join,
                       hero_can_join_as_prisoner,
                       party_can_join,
                       party_can_join_as_prisoner,
                       troops_can_join,
                       troops_can_join_as_prisoner,
                       party_can_join_party,
                       main_party_has_troop,
                       party_is_in_town,
                       party_is_in_any_town,
                       party_is_active,
                       player_has_item,
                       troop_has_item_equipped,
                       troop_is_mounted,
                       troop_is_guarantee_ranged,
                       troop_is_guarantee_horse,
                       player_is_active,
                       multiplayer_is_server,
                       multiplayer_is_dedicated_server,
                       game_in_multiplayer_mode,
                       player_is_admin,
                       player_is_busy_with_menus,
                       player_item_slot_is_picked_up,
                       check_quest_active,
                       check_quest_finished,
                       check_quest_succeeded,
                       check_quest_failed,
                       check_quest_concluded,
                       is_trial_version,
                       is_edit_mode_enabled,
                       troop_slot_eq,
                       party_slot_eq,
                       faction_slot_eq,
                       scene_slot_eq,
                       party_template_slot_eq,
                       agent_slot_eq,
                       quest_slot_eq,
                       item_slot_eq,
                       player_slot_eq,
                       team_slot_eq,
                       scene_prop_slot_eq,
                       troop_slot_ge,
                       party_slot_ge,
                       faction_slot_ge,
                       scene_slot_ge,
                       party_template_slot_ge,
                       agent_slot_ge,
                       quest_slot_ge,
                       item_slot_ge,
                       player_slot_ge,
                       team_slot_ge,
                       scene_prop_slot_ge,
                       position_has_line_of_sight_to_position,
                       position_is_behind_position,
                       is_presentation_active,
                       all_enemies_defeated,
                       race_completed_by_player,
                       num_active_teams_le,
                       main_hero_fallen,
                       lt,
                       neq,
                       le,
                       teams_are_enemies,
                       agent_is_alive,
                       agent_is_wounded,
                       agent_is_human,
                       agent_is_ally,
                       agent_is_non_player,
                       agent_is_defender,
                       agent_is_active,
                       agent_is_routed,
                       agent_is_in_special_mode,
                       agent_is_in_parried_animation,
                       class_is_listening_order,
                       agent_check_offer_from_agent,
                       entry_point_is_auto_generated,
                       scene_prop_has_agent_on_it,
                       agent_is_alarmed,
                       agent_is_in_line_of_sight,
                       scene_prop_get_instance,
                       scene_item_get_instance,
                       scene_allows_mounted_units,
                       prop_instance_is_valid,
                       cast_ray,
                       prop_instance_intersects_with_prop_instance,
                       agent_has_item_equipped,
                       map_get_land_position_around_position,
                       map_get_water_position_around_position,
					   mission_tpl_are_all_agents_spawned,
                       is_zoom_disabled,
                       is_currently_night,
                       store_random_party_of_template,
                       str_is_empty,
					   item_has_property,
                       item_has_capability,
                       item_has_modifier,
                       item_has_faction
                       ]
