|
1
|
iniwrite = ossafe_ini_open("dr.ini");
|
|
2
|
_NEWNAME = ini_read_string("G" + string(MENUCOORD[2]), "Name", "------");
|
|
3
|
_NEWTIME = ini_read_real("G" + string(MENUCOORD[2]), "Time", 0);
|
|
4
|
var room_id = ini_read_real("G" + string(MENUCOORD[2]), "Room", scr_get_id_by_room_index(room));
|
|
5
|
if (room_id < 10000)
|
|
6
|
{
|
|
7
|
room_index = room_id;
|
|
8
|
var room_offset = room_index;
|
|
9
|
if (room_index < 0)
|
|
10
|
room_offset = 0 + room_index;
|
|
11
|
room_id = room_offset;
|
|
12
|
room_id += 10000;
|
|
13
|
}
|
|
14
|
var room_index = scr_get_valid_roomscr_get_valid_room
function scr_get_valid_room(arg0, arg1, arg2 = 0)
{
var chapter = arg0;
var room_id = arg1;
var plot = arg2;
var current_room = new scr_valid_room(scr_get_room_by_id(room_id), plot);
var valid_rooms;
if (chapter == 1)
valid_rooms = [new scr_valid_room(2, 0), new scr_valid_room(35, 11), new scr_valid_room(40, 11), new scr_valid_room(45, 16), new scr_valid_room(49, 33), new scr_valid_room(59, 42), new scr_valid_room(68, 55), new scr_valid_room(71, 55), new scr_valid_room(73, 60), new scr_valid_room(82, 75), new scr_valid_room(90, 75), new scr_valid_room(96, 120), new scr_valid_room(97, 130), new scr_valid_room(107, 156), new scr_valid_room(114, 165), new scr_valid_room(123, 165), new scr_valid_room(126, 175), new scr_valid_room(111, 156), new scr_valid_room(56, 0)];
var is_valid = false;
for (var i = 0; i < array_length_1d(valid_rooms); i++)
{
if (scr_get_id_by_room_index(current_room.room_index) == scr_get_id_by_room_index(valid_rooms[i].room_index))
{
is_valid = true;
break;
}
}
if (!is_valid)
{
current_room.room_index++;
for (var i = 0; i < array_length_1d(valid_rooms); i++)
{
if (scr_get_id_by_room_index(current_room.room_index) == scr_get_id_by_room_index(valid_rooms[i].room_index))
{
is_valid = true;
break;
}
}
}
if (!is_valid)
current_room.room_index--;
return current_room.room_index;
}
function scr_valid_room(arg0, arg1) constructor
{
room_index = arg0;
plot = arg1;
}
function scr_add_valid_room(arg0, arg1, arg2) constructor
{
} (1, room_id);
|
|
15
|
_NEWROOM = room_index;
|
|
16
|
_NEWLEVEL = ini_read_real("G" + string(MENUCOORD[2]), "Level", 0);
|
|
17
|
_NEWDATE = ini_read_real("G" + string(MENUCOORD[2]), "Date", 0);
|
|
18
|
_NEWINITLANG = ini_read_real("G" + string(MENUCOORD[2]), "InitLang", 0);
|
|
19
|
_NEWURABOSS = ini_read_real("G" + string(MENUCOORD[2]), "UraBoss", 0);
|
|
20
|
_NEWVERSION = ini_read_string("G" + string(MENUCOORD[2]), "Version", "0");
|
|
21
|
ini_write_string("G" + string(MENUCOORD[3]), "Name", _NEWNAME);
|
|
22
|
ini_write_real("G" + string(MENUCOORD[3]), "Time", _NEWTIME);
|
|
23
|
ini_write_real("G" + string(MENUCOORD[3]), "Room", scr_get_id_by_room_index(_NEWROOM));
|
|
24
|
ini_write_real("G" + string(MENUCOORD[3]), "Level", _NEWLEVEL);
|
|
25
|
ini_write_real("G" + string(MENUCOORD[3]), "Date", _NEWDATE);
|
|
26
|
ini_write_real("G" + string(MENUCOORD[3]), "InitLang", _NEWINITLANG);
|
|
27
|
ini_write_real("G" + string(MENUCOORD[3]), "UraBoss", _NEWURABOSS);
|
|
28
|
ini_write_string("G" + string(MENUCOORD[3]), "Version", _NEWVERSION);
|
|
29
|
ossafe_ini_close();
|
|
30
|
var result = scr_get_ura_value(global.chapter, MENUCOORD[2]);
|
|
31
|
scr_store_ura_result(global.chapter, MENUCOORD[3], result);
|
|
32
|
FILE[MENUCOORD[3]] = 1;
|
|
33
|
PLACE[MENUCOORD[3]] = PLACE[MENUCOORD[2]];
|
|
34
|
TIME[MENUCOORD[3]] = TIME[MENUCOORD[2]];
|
|
35
|
NAME[MENUCOORD[3]] = NAME[MENUCOORD[2]];
|
|
36
|
LEVEL[MENUCOORD[3]] = LEVEL[MENUCOORD[2]];
|
|
37
|
INITLANG[MENUCOORD[3]] = INITLANG[MENUCOORD[2]];
|
|
38
|
TIME_STRING[MENUCOORD[3]] = TIME_STRING[MENUCOORD[2]];
|
|
39
|
if (!global.is_console)
|
|
40
|
{
|
|
41
|
file_copy("filech1_" + string(MENUCOORD[2]), "filech1_" + string(MENUCOORD[3]));
|
|
42
|
if (file_exists("keyconfig_" + string(MENUCOORD[2]) + ".ini"))
|
|
43
|
file_copy("keyconfig_" + string(MENUCOORD[2]) + ".ini", "keyconfig_" + string(MENUCOORD[3]) + ".ini");
|
|
44
|
}
|
|
45
|
else
|
|
46
|
{
|
|
47
|
var file_to_copy = ds_map_find_value(global.savedata, "filech1_" + string(MENUCOORD[2]));
|
|
48
|
var new_filename = "filech1_" + string(MENUCOORD[3]);
|
|
49
|
var new_file = ossafe_file_text_open_write(new_filename);
|
|
50
|
ds_map_set(new_file, "data", file_to_copy);
|
|
51
|
ossafe_file_text_close(new_file);
|
|
52
|
ossafe_savedata_save();
|
|
53
|
if (ossafe_file_exists("keyconfig_" + string(MENUCOORD[2]) + ".ini"))
|
|
54
|
{
|
|
55
|
ossafe_ini_open("keyconfig_" + string(MENUCOORD[2]) + ".ini");
|
|
56
|
var copy_border = ini_read_string("BORDER", "TYPE", global.screen_border_id);
|
|
57
|
var copy_controls_list = [];
|
|
58
|
var shoulder_reassign = obj_gamecontroller.gamepad_shoulderlb_reassign;
|
|
59
|
for (var i = 0; i < 10; i += 1)
|
|
60
|
copy_controls_list[i] = ini_read_real("GAMEPAD_CONTROLS", string(i), global.input_g[i]);
|
|
61
|
shoulder_reassign = ini_read_real("SHOULDERLB_REASSIGN", "SHOULDERLB_REASSIGN", obj_gamecontroller.gamepad_shoulderlb_reassign);
|
|
62
|
ossafe_ini_close();
|
|
63
|
ossafe_ini_open("keyconfig_" + string(MENUCOORD[3]) + ".ini");
|
|
64
|
ini_write_string("BORDER", "TYPE", copy_border);
|
|
65
|
for (var i = 0; i < 10; i += 1)
|
|
66
|
ini_write_real("GAMEPAD_CONTROLS", string(i), copy_controls_list[i]);
|
|
67
|
ini_read_real("SHOULDERLB_REASSIGN", "SHOULDERLB_REASSIGN", shoulder_reassign);
|
|
68
|
ossafe_ini_close();
|
|
69
|
}
|
|
70
|
}
|
|
71
|
with (obj_event_manager)
|
|
72
|
trigger_event(UnknownEnum.Value_0, UnknownEnum.Value_28);
|
|
73
|
|
|
74
|
enum UnknownEnum
|
|
75
|
{
|
|
76
|
Value_0,
|
|
77
|
Value_28 = 28
|
|
78
|
}
|