/* * This file was auto-generated using 'silver-reversing-sct' tool * to better understand the scripts presented, one is encouraged to * view the catalogs at: * https://github.com/nadavshemesh/silver-reversing-sct/blob/master/docs/index.md * * Any further information and support of this project please visit: * https://github.com/nadavshemesh/silver-reversing-sct */ ._DATA init_position { 10730, -39, -1632 } init_position1 { 5811, -39, -2669 } init_position2 { 5811, -39, -1487 } init_position3 { 7405, -39, -3263 } init_position4 { 6790, -39, -2732 } init_position5 { 5896, 1825, -3633 } init_position6 { 5640, 1825, -3522 } NVILLOW 0 NVILLAGER 0 init_position7 { 8486, -40, -1225 } init_position8 { 9874, -40, -5830 } fx_position { 8157, 105, -1292 } ai_script1 { 0, 8010, -40, -1191, 5, 100, 1, NVILLOW, 3, VAR_33, 0, 5, 275, 3, VAR_34, 0, 5, 100, 3, VAR_35, 0, 0, 10269, -40, -5485, 5, 100, 3, VAR_36, 0, 0, 10104, -40, -1028, 1, NVILLAGER, 5, 275, 3, VAR_37, 0, 7, 8 } VAR_33 "no" VAR_34 "laugh" VAR_35 "no" VAR_36 "scratch2" VAR_37 "scratch2" ai_script { 0, 5889, 525, -6889, 3, VAR_39, 0, 0, 8486, -40, -1225, 1, NVILLOW, 3, VAR_40, 0, 5, 50, 7, 8 } VAR_39 "scratch2" VAR_40 "no" wandering_gen_script { 0, 0, 0, 1, -1, 8, 2, 12, 156, -1, 14, 0, 1, 1, 18, 25, -1 } init_position9 { 6905, -39, -3322 } VAR_48 VAR_49 VAR_49 "ACT_2" arr { VAR_51, VAR_52, VAR_53, VAR_54, VAR_55, VAR_56, VAR_57 } VAR_51 "GENERIC1" VAR_52 "GENERIC6" VAR_53 "ACT_6" VAR_54 "ACT_8" VAR_55 "GENERIC3" VAR_56 { 1599357761, -1431699400 } VAR_57 "GENERIC2" index -1 VAR_66 { 0, 0 } init_position10 { 8004, -40, -1559 } VAR_80 VAR_81 VAR_81 "ACT_2" arr_1 { VAR_84, VAR_85, VAR_86, VAR_87, VAR_88 } VAR_83 VAR_89 VAR_84 "ACT_3" VAR_85 "ACT_4" VAR_86 "GENERIC4" VAR_87 "ACT_5" VAR_88 "GENERIC5" VAR_89 "ACT_9" index_1 -1 VAR_95 { 0, 0 } position { 8150, 105, -1277 } ._on_load call load_sound_set(int 6) /* play the sound 'hoot' */ call play_loaded_sound(int 13, int -1, int 6, int 0) var frog_sound_ref = call play_loaded_sound(int 198, int -1, int 0, int 0) call set_sound_volume(var frog_sound_ref, int 20) if(gamevar *scene_info_p+1 == int 1) { /* play the sound 'lforstlp' */ call play_loaded_sound(int 12, int -1, int 6, int 0) } call stop_bgm(int 1) execute SCRIPT_9 execute SCRIPT_10 execute SCRIPT_13 switch(gamevar room_state) { case 1 execute SCRIPT_4 break case 2 execute SCRIPT_7 break } ._infinite_loop execute SCRIPT_3 execute SCRIPT_11 execute SCRIPT_14 switch(gamevar room_state) { case 1 execute SCRIPT_5 break case 2 execute SCRIPT_8 break } ._on_exit execute SCRIPT_15 execute SCRIPT_12 switch(gamevar room_state) { case 1 break case 2 break } ._SCRIPT_3 gamevar script_object = var VAR_0 if(gamevar *psys_p+1) { if(call ! randomize_int(int 0, int 10)) { var frog_sound_ref = call play_loaded_sound /* 'frogs' */ (int 197, int 0, int 0, int 0) call set_sound_volume(var frog_sound_ref, int 15) } } if(gamevar script_time > var VAR_116) { var VAR_116 = gamevar script_time + int 60 + call randomize_int(int 0, int 40) var VAR_115 = int 1 + call randomize_int(int 0, int 5) call play_loaded_sound(var VAR_115, int 0, int 6, int 0) } if(gamevar *scene_info_p+1 == int 1) { if(gamevar script_time > var VAR_117) { var VAR_117 = gamevar script_time + int 80 + call randomize_int(int 0, int 40) var VAR_115 = int 6 + call randomize_int(int 0, int 6) call play_loaded_sound(var VAR_115, int 0, int 6, int 0) } } ._SCRIPT_4 var DAVID = call get_char_handle(int 65536) var GRANDAD = call get_char_handle(int 393216) var start_grunt = call create_enemy(int 156, int 1, var &init_position, int 85) var grunt_wooden_shield = call create_enemy(int 99, int 2, "j,", int 30) var start_grunt1 = call create_enemy(int 156, int 3, var &init_position1, int 65) var grunt_wooden_shield1 = call create_enemy(int 99, int 4, var &init_position2, int 65) var start_grunt2 = call create_enemy(int 156, int 5, var &init_position3, int 250) var start_grunt3 = call create_enemy(int 156, int 6, var &init_position4, int 170) var grunt_wooden_shield2 = call create_enemy(int 99, int 7, var &init_position5, int 295) var grunt_wooden_shield3 = call create_enemy(int 99, int 8, var &init_position6, int 60) call func_106(var start_grunt, int 1, int 0, int 1) call func_50(var start_grunt, int 131) call func_106(var grunt_wooden_shield, int 1, int 0, int 1) call func_50(var grunt_wooden_shield, int 131) call func_106(var start_grunt2, int 1, int 0, int 2) call func_50(var start_grunt2, int 131) call func_106(var start_grunt3, int 1, int 0, int 2) call func_50(var start_grunt3, int 131) call func_106(var grunt_wooden_shield2, int 1, int 0, int 3) call func_50(var grunt_wooden_shield2, int 131) call func_106(var grunt_wooden_shield3, int 1, int 0, int 3) call func_50(var grunt_wooden_shield3, int 131) call func_106(var start_grunt1, int 1, int 0, int 3) call func_50(var start_grunt1, int 131) call func_106(var grunt_wooden_shield1, int 1, int 0, int 3) call func_50(var grunt_wooden_shield1, int 131) gamevar play_sting = int 1 gamevar play_battle_music = int 1 execute SCRIPT_6 call reset_local_timer() ._SCRIPT_5 switch(var VAR_24) { case 0 var VAR_24 = int 1 break case 1 if(call is_char_handle_in_level(int 4128769 /* SGRUNT */ )&&call is_char_handle_in_level(int 4128770 /* SGRUNT */ )) { } else { if(call is_char_handle_in_level(int 4128773 /* SGRUNT */ )) { gamevar script_object = var start_grunt2 if(gamevar *character_combat_p+1 == int 0) { if(call func_37(var DAVID, int 6)) { call char_attack(var start_grunt2, var GRANDAD) } else { call char_attack(var start_grunt2, var DAVID) } call set_char_running(var start_grunt2) } } if(call is_char_handle_in_level(int 4128774 /* SGRUNT */ )) { gamevar script_object = var start_grunt3 if(gamevar *character_combat_p+1 == int 0) { if(call func_37(var DAVID, int 6)) { call char_attack(var start_grunt3, var GRANDAD) } else { call char_attack(var start_grunt3, var DAVID) } call set_char_running(var start_grunt3) } } } if(call is_char_handle_in_level(int 4128773 /* SGRUNT */ )&&call is_char_handle_in_level(int 4128774 /* SGRUNT */ )) { } else { if(call is_char_handle_in_level(int 4128775 /* SGRUNT */ )) { gamevar script_object = var grunt_wooden_shield2 if(gamevar *character_combat_p+1 == int 0) { if(call func_37(var DAVID, int 6)) { call char_attack(var grunt_wooden_shield2, var GRANDAD) } else { call char_attack(var grunt_wooden_shield2, var DAVID) } call set_char_running(var grunt_wooden_shield2) } } if(call is_char_handle_in_level(int 4128776 /* SGRUNT */ )) { gamevar script_object = var grunt_wooden_shield3 if(gamevar *character_combat_p+1 == int 0) { if(call func_37(var DAVID, int 6)) { call char_attack(var grunt_wooden_shield3, var GRANDAD) } else { call char_attack(var grunt_wooden_shield3, var DAVID) } call set_char_running(var grunt_wooden_shield3) } } } if(call is_char_handle_in_level(int 4128775 /* SGRUNT */ )&&call is_char_handle_in_level(int 4128776 /* SGRUNT */ )) { } else { if(call is_char_handle_in_level(int 4128771 /* SGRUNT */ )) { gamevar script_object = var start_grunt1 if(gamevar *character_combat_p+1 == int 0) { if(call func_37(var DAVID, int 6)) { call char_attack(var start_grunt1, var GRANDAD) } else { call char_attack(var start_grunt1, var DAVID) } call set_char_running(var start_grunt1) } } if(call is_char_handle_in_level(int 4128772 /* SGRUNT */ )) { gamevar script_object = var grunt_wooden_shield1 if(gamevar *character_combat_p+1 == int 0) { if(call func_37(var DAVID, int 6)) { call char_attack(var grunt_wooden_shield1, var GRANDAD) } else { call char_attack(var grunt_wooden_shield1, var DAVID) } call set_char_running(var grunt_wooden_shield1) } } } if(call ! is_char_handle_in_level(int 4128769 /* SGRUNT */ )&&call ! is_char_handle_in_level(int 4128770 /* SGRUNT */ )&&call ! is_char_handle_in_level(int 4128771 /* SGRUNT */ )&&call ! is_char_handle_in_level(int 4128772 /* SGRUNT */ )&&call ! is_char_handle_in_level(int 4128773 /* SGRUNT */ )&&call ! is_char_handle_in_level(int 4128774 /* SGRUNT */ )&&call ! is_char_handle_in_level(int 4128775 /* SGRUNT */ )&&call ! is_char_handle_in_level(int 4128776 /* SGRUNT */ )) { gamevar room_state = int 2 call reset_local_timer() var VAR_24 = int 0 } break case 2 break } ._SCRIPT_6 var VAR_0 = call play_3d_fx("SPARK", var &fx_position, int 0, int 0) var NVILLAGER = call create_char(var &init_position7, "NVILLAGER", int 265, int 13) var NVILLAGRB = call create_char(var &init_position8, "NVILLAGRB", int 101, int 13) call set_char_init_state(var NVILLAGER, int 13) call play_char_ai_script(var NVILLAGER, var &ai_script) call set_char_running(var NVILLAGER) call set_char_init_state(var NVILLAGRB, int 13) call play_char_ai_script(var NVILLAGRB, var &ai_script1) ._SCRIPT_7 execute SCRIPT_6 call load_char("sgrunt") call run_wandering_generator(var &wandering_gen_script, int 100) var VAR_24 = int 0 call reset_local_timer() ._SCRIPT_8 ._SCRIPT_9 if(gamevar *scene_info_p+1 == int 1) { gamevar SMACKER_X = int 272 gamevar SMACKER_Y = int 168 call play_2d_anim("crowd1", int 1, int 1, int 0) gamevar SMACKER_X = int 248 gamevar SMACKER_Y = int 416 call play_2d_anim("crowd2", int 1, int 1, int 0) gamevar SMACKER_X = int 544 gamevar SMACKER_Y = int 280 call play_2d_anim("crowd3", int 1, int 1, int 0) gamevar SMACKER_X = int 656 gamevar SMACKER_Y = int 192 call play_2d_anim("crowd4", int 1, int 1, int 0) } ._SCRIPT_10 var NVILOWFAT = call create_char(var &init_position9, "NVILOWFAT", int 350, int 13) call add_item_to_char(var NVILOWFAT, int 40 /* apple */ , int 0, int 0) call add_item_to_char(var NVILOWFAT, int 41 /* veggies */ , int 0, int 0) call add_item_to_char(var NVILOWFAT, int 42 /* bread */ , int 0, int 0) call add_item_to_char(var NVILOWFAT, int 43 /* cheese */ , int 0, int 0) if(call func_bf(int 333, gamevar CURRENT_LEVEL, gamevar CURRENT_SCENE)) { call log_string("old food topic from history") call load_pos_from_room_memory(int 333, var &VAR_59) var index = var VAR_60 } if(var VAR_58 == int -1) { var VAR_47 = var VAR_48 } else { var VAR_47 = @arr[gamevar room_state - int 2] } call func_10c(var NVILOWFAT, var VAR_47) if(call func_bf(int 448, gamevar CURRENT_LEVEL, gamevar CURRENT_SCENE)) { call load_pos_from_room_memory(int 448, var &VAR_59) switch(var VAR_60) { case 2 call add_item_to_char(var NVILOWFAT, int 47 /* drumstik */ , int 0, int 0) call add_item_to_char(var NVILOWFAT, int 46 /* pie */ , int 0, int 0) case 1 call add_item_to_char(var NVILOWFAT, int 44 /* cake */ , int 0, int 0) call add_item_to_char(var NVILOWFAT, int 45 /* deadmous */ , int 0, int 0) break } call save_pos_to_room_memory(int 448, var VAR_60, int 0, int 0) } ._SCRIPT_11 switch(var VAR_65) { case 0 if(call func_127(var NVILOWFAT)) { var VAR_66 = int 0 var VAR_65 ++ } break case 1 switch(call func_4a()) { case 1 call func_db() call start_dialog("VFT_SEL", "ALL") var VAR_65 = int 3 break case 0 call func_db() call start_dialog("V_VFTNO", var VAR_47) var VAR_65 ++ break } var VAR_66 = int 0 break case 2 if(call get_input_sys() != int 4) { var index ++ var index = var VAR_58 % int 7 var VAR_47 = @arr[var VAR_58] call func_10c(var NVILOWFAT, var VAR_47) var VAR_66 = int 0 var VAR_65 = int 0 } break case 3 if(call get_input_sys() != int 4) { if(gamevar items_bought) { call start_dialog("V_VFTYES", var VAR_47) } else { if(call func_6c(var NVILOWFAT)) { call log_string("didn't want anything") call start_dialog("V_VFTNO", var VAR_47) } else { call log_string("couldn't afford anything") call start_dialog("V_VFTNOM", var VAR_47) } } var VAR_66 = int 0 var VAR_65 ++ } break case 4 if(call get_input_sys() != int 4) { var index ++ var index = var index % int 7 var VAR_47 = @arr[var index] call func_10c(var NVILOWFAT, var VAR_47) var VAR_66 = int 0 var VAR_65 = int 0 } break } var VAR_66 ++ ._SCRIPT_12 var VAR_59 = int 333 var VAR_60 = var index var VAR_61 = int 0 var VAR_62 = int 0 call func_4d(int 333, var &VAR_59, "verdante", "exbarrac") if(var NVILOWFAT) { call remove_char(var NVILOWFAT) } ._SCRIPT_13 var NVILLOW = call create_char(var &init_position10, "NVILLOW", int 40, int 13) if(call func_bf(int 222, gamevar CURRENT_LEVEL, gamevar CURRENT_SCENE)) { call load_pos_from_room_memory(int 222, var &VAR_59) var index_1 = var VAR_60 } if(call ! func_bf(int 111, gamevar CURRENT_LEVEL, gamevar CURRENT_SCENE)) { call log_string("no weapons") var VAR_78 = int 0 } else { call log_string("has weapons") var VAR_78 = int 1 call load_pos_from_room_memory(int 111, var &VAR_59) if(var VAR_90 == int -1) { var VAR_79 = var VAR_80 } else { var VAR_79 = @arr_1[var VAR_90] } if(gamevar control_char_p) { if(var VAR_60 != int 2) { if(call create_item(int 14 /* triobow */ )) { var VAR_60 = int 2 } } } switch(var VAR_60) { case 2 call add_item_to_char(var NVILLOW, int 109 /* quiverb */ , int 0, int 0) case 1 call add_item_to_char(var NVILLOW, int 12 /* thaxe */ , int 0, int 0) case 0 call add_item_to_char(var NVILLOW, int 9 /* thknife */ , int 0, int 0) call add_item_to_char(var NVILLOW, int 108 /* quiver */ , int 0, int 0) break } call save_pos_to_room_memory(int 111, var VAR_60, int 0, int 0) call func_10c(var NVILLOW, var VAR_79) } ._SCRIPT_14 if(var ! VAR_78) { exit_script } switch(var VAR_94) { case 0 if(call func_127(var NVILLOW)) { var VAR_95 = int 0 var VAR_94 ++ } break case 1 switch(call func_4a()) { case 1 call func_db() call start_dialog("VOW_SEL", "ALL") var VAR_94 = int 3 break case 0 call func_db() call start_dialog("V_VOWNO", var VAR_79) var VAR_94 ++ break } var VAR_95 = int 0 break case 2 if(call get_input_sys() != int 4) { var index_1 ++ var index_1 = var index_1 % int 6 var VAR_79 = @arr_1[var index_1] call func_10c(var NVILLOW, var VAR_79) call char_turn_to_pos(var NVILLOW, var &position) var VAR_95 = int 0 var VAR_94 = int 5 } break case 3 if(call get_input_sys() != int 4) { if(gamevar items_bought) { if(var VAR_79 == var VAR_83) { call log_string("!!!!! SPECIAL CASE !!!!!") var VAR_97 = call get_char_handle_id(gamevar control_char_p) switch(var VAR_97) { case 65536 call start_dialog("V_DVDYES", var VAR_79) break case 786432 call start_dialog("V_SEKYES", var VAR_79) break case 196608 call start_dialog("V_VIVYES", var VAR_79) break case 327680 call start_dialog("V_JUGYES", var VAR_79) break case 262144 call start_dialog("V_CAGYES", var VAR_79) break case 131072 call start_dialog("V_CHIYES", var VAR_79) break } } else { call start_dialog("V_VOWYES", var VAR_79) } } else { if(call func_6c(var NVILLOW)) { call log_string("didn't want anything") call start_dialog("V_VOWNO", var VAR_79) } else { call log_string("couldn't afford anything") call start_dialog("V_VOWNOM", var VAR_79) } } var VAR_95 = int 0 var VAR_94 ++ } break case 4 if(call get_input_sys() != int 4) { var index_1 ++ var index_1 = var index_1 % int 6 var VAR_79 = @arr_1[var index_1] call func_10c(var NVILLOW, var VAR_79) call char_turn_to_pos(var NVILLOW, var &position) var VAR_95 = int 0 var VAR_94 = int 5 } break case 5 if(var VAR_95 > int 30) { var VAR_95 = int 0 var VAR_94 = int 0 } break } var VAR_95 ++ ._SCRIPT_15 var VAR_59 = int 222 var VAR_60 = var index_1 var VAR_61 = int 0 var VAR_62 = int 0 call func_4d(int 222, var &VAR_59, "verdante", "exbarrac") if(var NVILLOW) { call remove_char(var NVILLOW) }