_parent = -4; _susie = -4; _menu_state = UnknownEnum.Value_0; _stats = -4; _input_enabled = false; _confirm_buffer = 3; _cancel_buffer = 3; _columns = []; _columns_index = 0; _row_index = 0; _description = -4; _bg_alpha = 0; _logo_alpha = 0; _logo_x = camerax() + 280; _header_text = stringsetloc("Made by Lancer Industries", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_34_0"); _header_text_x = camerax() + 280; _header_text_alpha = 0; _subheader_text = stringsetloc("(Which Was Made Up Slightly Earlier)", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_38_0"); _subheader_text_x = camerax() + 280; _subheader_text_alpha = 0; _confirm_text = ""; _confirm_options = []; _confirm_options_index = 0; _clean_up = false; init = function(arg0) { _parent = arg0; scr_lerpvar("_bg_alpha", _bg_alpha, 0.8, 20); scr_lerpvar("_logo_x", _logo_x, camerax() + (view_wport[0] / 2), 20); scr_lerpvar("_logo_alpha", _logo_alpha, 1, 20); scr_script_delayed(scr_lerpvar, 50, "_header_text_x", _header_text_x, camerax() + (view_wport[0] / 2), 20); scr_script_delayed(scr_lerpvar, 50, "_header_text_alpha", _header_text_alpha, 1, 20); scr_script_delayed(scr_lerpvar, 110, "_subheader_text_x", _subheader_text_x, camerax() + (view_wport[0] / 2), 20); scr_script_delayed(scr_lerpvar, 110, "_subheader_text_alpha", _subheader_text_alpha, 1, 20); scr_script_delayed(scr_lerpvar, 180, "_header_text_x", camerax() + (view_wport[0] / 2), _header_text_x, 20); scr_script_delayed(scr_lerpvar, 180, "_header_text_alpha", 1, 0, 20); scr_script_delayed(scr_lerpvar, 180, "_subheader_text_x", camerax() + (view_wport[0] / 2), _subheader_text_x, 20); scr_script_delayed(scr_lerpvar, 180, "_subheader_text_alpha", 1, 0, 20); scr_script_delayed(show_menu, 190); }; enable_input = function() { _input_enabled = true; }; disable_input = function() { _input_enabled = false; }; get_current_option = function() { return _columns[_columns_index][_row_index][0]; }; has_outfit_part = function() { return array_length(_columns[_columns_index][_row_index]) > 1; }; get_current_outfit_part = function() { return _columns[_columns_index][_row_index][1]; }; get_current_description = function() { return _columns[_columns_index][_row_index][2]; }; confirm = function(arg0) { snd_play(snd_select); if (_menu_state == UnknownEnum.Value_1) { var option = get_current_option(); if (option.can_scroll()) { _menu_state = UnknownEnum.Value_2; disable_input(); highlight_option(); if (has_outfit_part()) { var outfit_part = get_current_outfit_part(); outfit_part.enable(); var outfit_description = get_current_description(); outfit_description.enable(); } option.enable_input(); option.enable_h_scroll(); hide_default_description(); reset_buffer(); } else { disable_input(); show_confirm(); } } else if (_menu_state == UnknownEnum.Value_2) { cancel(); } else if (_menu_state == UnknownEnum.Value_3) { if (_confirm_options_index == 0) close_menu(); else cancel(); } }; cancel = function() { snd_play(snd_swing); if (_menu_state == UnknownEnum.Value_2) { _menu_state = UnknownEnum.Value_1; if (has_outfit_part()) { var outfit_part = get_current_outfit_part(); outfit_part.disable(); } highlight_option(); show_default_description(); enable_input(); enable_select(); reset_buffer(); } else if (_menu_state == UnknownEnum.Value_3) { with (obj_ch5_LW07_thrashfit_menu_option) clean_up(); with (obj_ch5_LW07_thrashfit_susie_part) clean_up(); with (obj_ch5_LW07_thrashfit_description) clean_up(); with (obj_ch5_LW07_thrashfit_stats) clean_up(); hide_default_description(); _columns = []; _columns_index = 0; _row_index = 0; show_menu(); } }; clean_up = function() { _clean_up = true; with (obj_ch5_LW07_thrashfit_menu_option) clean_up(); with (obj_ch5_LW07_thrashfit_susie_part) clean_up(); with (obj_ch5_LW07_thrashfit_description) clean_up(); with (obj_ch5_LW07_thrashfit_stats) clean_up(); hide_default_description(); instance_destroy(); exit; }; show_default_description = function() { if (_description != -4) exit; global.typer = 36; var default_text = stringsetsubloc("*Select w`/ ~1.&*Change w`/ ~2&*or ~3.", scr_get_input_name(4), scr_get_input_name(1), scr_get_input_name(3), "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_209_0"); if (global.gamepad_type == "N/A") default_text = stringsetsubloc("Select w`/ ~1. Change w`/ ~2 or ~3.", scr_get_input_name(4), scr_get_input_name(1), scr_get_input_name(3), "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_213_0"); msgset(0, default_text); var ja_offset = (global.lang == "ja") ? 9 : 0; _description = instance_create(680 + ja_offset, 300, obj_writer); _description.depth = depth - 10; _description.autoaster = 0; _description.drawaster = 0; _description.charline = 14; _description.hspace = (global.lang == "ja") ? 30 : 15; _description.vspace = 40; _description.rate = 1; _description.preventcskip = 1; _description.skippable = 0; _description.disablebutton1 = 1; }; hide_default_description = function() { with (_description) instance_destroy(); _description = -4; }; close_menu = function() { _parent.trigger_event("close_menu"); clean_up(); }; trigger_event = function(arg0, arg1 = []) { switch (arg0) { case "confirm": confirm(arg1); break; case "cancel": cancel(arg1); break; } }; create_option = function(arg0, arg1, arg2, arg3) { var option = [arg0, arg1, arg2, arg3]; return option; }; highlight_option = function() { for (var i = 0; i < array_length(_columns); i++) { for (var j = 0; j < array_length(_columns[i]); j++) { option = _columns[i][j][0]; option.unhighlight(); if (array_length(_columns[i][j]) > 1) { var outfit_part = _columns[i][j][1]; outfit_part.disable(); var outfit_description = _columns[i][j][2]; outfit_description.disable(); } } } _row_index = clamp(_row_index, 0, array_length(_columns[_columns_index]) - 1); var option = get_current_option(); option.highlight(); }; reset_buffer = function() { _confirm_buffer = 3; _cancel_buffer = 3; }; enable_select = function() { if (_menu_state == UnknownEnum.Value_1) { for (var i = 0; i < array_length(_columns); i++) { for (var j = 0; j < array_length(_columns[i]); j++) { option = _columns[i][j][0]; option.disable_select(); option.unhighlight(); if (array_length(_columns[i][j]) > 1) { var outfit_description = _columns[i][j][2]; outfit_description.disable(); } } } _row_index = clamp(_row_index, 0, array_length(_columns[_columns_index]) - 1); var option = get_current_option(); option.enable_select(); option.highlight(); } else if (_menu_state == UnknownEnum.Value_3) { if (_clean_up) exit; for (var i = 0; i < array_length(_confirm_options); i++) { option = _confirm_options[i]; option.disable_select(); option.unhighlight(); } var option = _confirm_options[_confirm_options_index]; option.enable_select(); option.highlight(); } }; show_menu = function() { if (_menu_state == UnknownEnum.Value_1) exit; _menu_state = UnknownEnum.Value_1; _stats = instance_create(0, 0, obj_ch5_LW07_thrashfit_stats); _stats.depth = depth - 10; _stats.init(); var options_left = [create_option(stringsetloc("HAIR", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_346_0"), 4335, UnknownEnum.Value_1421, 40), create_option(stringsetloc("SHIRT", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_347_0"), 2109, UnknownEnum.Value_1422, 30), create_option(stringsetloc("PANT", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_348_0"), 4240, UnknownEnum.Value_1423, 20)]; var options_right = [create_option(stringsetloc("HAT", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_352_0"), 1727, UnknownEnum.Value_1424, 50), create_option(stringsetloc("SHO", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_353_0"), 6556, UnknownEnum.Value_1425, 10)]; var options_y = cameray() + 300; var options_line_height = 40; for (var i = 0; i < array_length(options_left); i++) { var label = options_left[i][0]; var sprite = options_left[i][1]; var flag = options_left[i][2]; var depth_order = options_left[i][3]; var sprite_info = sprite_get_info(sprite); var frames = sprite_info.num_subimages; var option_names = []; for (var j = 0; j < frames; j++) option_names[array_length(option_names)] = "0" + string(j); var new_option = instance_create(0, options_y + (i * options_line_height), obj_ch5_LW07_thrashfit_menu_option); new_option.init(id, label, option_names, flag); new_option.disable_input(); new_option.depth = depth - 10; var new_part = instance_create(0, 0, obj_ch5_LW07_thrashfit_susie_part); new_part.init(sprite, flag); new_part.depth = depth - depth_order; var new_description = instance_create(0, 0, obj_ch5_LW07_thrashfit_description); new_description.depth = depth - 10; new_description.init(id, flag); _columns[0][array_length(_columns[0])] = [new_option, new_part, new_description]; } for (var i = 0; i < array_length(options_right); i++) { var label = options_right[i][0]; var sprite = options_right[i][1]; var flag = options_right[i][2]; var depth_order = options_right[i][3]; var sprite_info = sprite_get_info(sprite); var frames = sprite_info.num_subimages; var option_names = []; for (var j = 0; j < frames; j++) option_names[array_length(option_names)] = "0" + string(j); var new_option = instance_create(0, options_y + (i * options_line_height), obj_ch5_LW07_thrashfit_menu_option); ja_offset = (global.lang == "ja") ? 16 : 0; new_option.init(id, label, option_names, flag, 170 + ja_offset); new_option.disable_input(); new_option.depth = depth - 10; var new_part = instance_create(0, 0, obj_ch5_LW07_thrashfit_susie_part); new_part.init(sprite, flag); new_part.depth = depth - depth_order; var new_description = instance_create(0, 0, obj_ch5_LW07_thrashfit_description); new_description.depth = depth - 10; new_description.init(id, flag); _columns[1][array_length(_columns[1])] = [new_option, new_part, new_description]; } var end_option = instance_create(0, options_y + (array_length(options_right) * options_line_height), obj_ch5_LW07_thrashfit_menu_option); var ja_offset = (global.lang == "ja") ? 16 : 0; end_option.init(id, stringsetloc("END", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_432_0"), [], -1, 170 + ja_offset); end_option.depth = depth - 10; _columns[1][array_length(_columns[1])] = [end_option]; enable_select(); show_default_description(); enable_input(); }; show_confirm = function() { if (_menu_state == UnknownEnum.Value_3) exit; _menu_state = UnknownEnum.Value_3; with (obj_ch5_LW07_thrashfit_menu_option) clean_up(); with (obj_ch5_LW07_thrashfit_description) clean_up(); hide_default_description(); _confirm_text = stringsetloc("This is Susie's outfit.#Is that OK?", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_42_0"); if (scr_thrashfit_is_duck()) _confirm_text = stringsetloc("This outfit sucks ass.#Is that OK?", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_459_0"); var yes_option = instance_create(0, cameray() + 380, obj_ch5_LW07_thrashfit_menu_option); yes_option.init(id, stringsetloc("YES", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_463_0"), [], -1, 180); yes_option.depth = depth - 10; var no_option = instance_create(0, cameray() + 380, obj_ch5_LW07_thrashfit_menu_option); no_option.init(id, stringsetloc("NO", "obj_ch5_LW07_thrashfit_menu_slash_Create_0_gml_467_0"), [], -1, 280); no_option.depth = depth - 10; _confirm_options = [yes_option, no_option]; _confirm_options_index = 0; enable_select(); enable_input(); }; enum UnknownEnum { Value_0, Value_1, Value_2, Value_3, Value_1421 = 1421, Value_1422, Value_1423, Value_1424, Value_1425 }