91 if (cache_current !=
config->
Current || floorcache_firstrun ==
true)
94 cache_current_s =
ToString(cache_current);
96 if (cache_height != floor->
Height || floorcache_firstrun ==
true)
98 cache_height = floor->
Height;
99 cache_height_s =
ToString(cache_height);
101 if (cache_fullheight != floor->
FullHeight() || floorcache_firstrun ==
true)
104 cache_fullheight_s =
ToString(cache_fullheight);
106 if (cache_interfloorheight != floor->
InterfloorHeight || floorcache_firstrun ==
true)
109 cache_interfloorheight_s =
ToString(cache_interfloorheight);
111 if (cache_base != floor->
GetBase() || floorcache_firstrun ==
true)
114 cache_base_s =
ToString(cache_base);
117 floorcache_firstrun =
false;
131 if (parent->getfloordata ==
true)
143 if (parent->FunctionProc() ==
true)
148 std::string value = GetAfterEquals(
LineData, equals);
157 std::string str =
Calc(value);
170 std::string str =
Calc(value);
183 std::string str =
Calc(value);
243 int params = SplitAfterEquals(
LineData,
false);
250 if (GetRange(tempdata[
line], start, end) ==
true)
252 for (
int k = start; k <= end; k++)
258 std::string str =
Calc(tempdata[
line]);
289 int params = SplitData(
LineData, 9);
291 if (params != 12 && params != 14)
292 return ScriptError(
"Incorrect number of parameters");
301 for (
int i = 2; i <= 10; i++)
304 return ScriptError(
"Invalid value: " + tempdata[i]);
306 if (warn_deprecated ==
true)
311 for (
int i = 2; i <= 12; i++)
316 return ScriptError(
"Invalid value: " + tempdata[i]);
326 StoreCommand(floor->
AddFloor(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
config->
ReverseAxis,
false,
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
true));
328 StoreCommand(floor->
AddFloor(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToBool(tempdata[9]),
ToBool(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToBool(tempdata[13])));
336 int params = SplitData(
LineData, 14);
338 if (params != 12 && params != 14)
339 return ScriptError(
"Incorrect number of parameters");
348 for (
int i = 3; i <= 11; i++)
353 return ScriptError(
"Invalid value: " + tempdata[i]);
355 if (warn_deprecated ==
true)
360 for (
int i = 3; i <= 13; i++)
367 return ScriptError(
"Invalid value: " + tempdata[i]);
387 StoreCommand(level->
AddFloor(tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
config->
ReverseAxis,
false,
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
true));
389 StoreCommand(level->
AddFloor(tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToBool(tempdata[10]),
ToBool(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13])));
392 return ScriptError(
"Invalid shaft " + tempdata[0]);
400 int params = SplitData(
LineData, 14);
402 if (params != 12 && params != 14)
403 return ScriptError(
"Incorrect number of parameters");
412 for (
int i = 3; i <= 11; i++)
417 return ScriptError(
"Invalid value: " + tempdata[i]);
419 if (warn_deprecated ==
true)
424 for (
int i = 3; i <= 13; i++)
431 return ScriptError(
"Invalid value: " + tempdata[i]);
451 StoreCommand(level->
AddFloor(tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
config->
ReverseAxis,
false,
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
true));
453 StoreCommand(level->
AddFloor(tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToBool(tempdata[10]),
ToBool(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13])));
456 return ScriptError(
"Invalid stairwell " + tempdata[0]);
464 int params = SplitData(
LineData, 19);
466 if (params != 11 && params != 13)
467 return ScriptError(
"Incorrect number of parameters");
476 for (
int i = 2; i <= 10; i++)
479 return ScriptError(
"Invalid value: " + tempdata[i]);
481 if (warn_deprecated ==
true)
486 for (
int i = 2; i <= 12; i++)
491 return ScriptError(
"Invalid value: " + tempdata[i]);
501 StoreCommand(floor->
AddInterfloorFloor(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
config->
ReverseAxis,
false,
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
true));
503 StoreCommand(floor->
AddInterfloorFloor(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToBool(tempdata[9]),
ToBool(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12])));
511 int params = SplitData(
LineData, 8);
514 return ScriptError(
"Incorrect number of parameters");
517 for (
int i = 2; i <= 12; i++)
520 return ScriptError(
"Invalid value: " + tempdata[i]);
528 StoreCommand(floor->
AddWall(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToBool(tempdata[13])));
536 int params = SplitData(
LineData, 13);
539 return ScriptError(
"Incorrect number of parameters");
542 for (
int i = 0; i <= 13; i++)
547 return ScriptError(
"Invalid value: " + tempdata[i]);
565 StoreCommand(level->
AddWall(tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13])));
568 return ScriptError(
"Invalid shaft " + tempdata[0]);
576 int params = SplitData(
LineData, 14);
579 return ScriptError(
"Incorrect number of parameters");
582 for (
int i = 0; i <= 13; i++)
587 return ScriptError(
"Invalid value: " + tempdata[i]);
605 StoreCommand(level->
AddWall(tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13])));
608 return ScriptError(
"Invalid stairwell " + tempdata[0]);
616 int params = SplitData(
LineData, 18);
619 return ScriptError(
"Incorrect number of parameters");
622 for (
int i = 2; i <= 12; i++)
625 return ScriptError(
"Invalid value: " + tempdata[i]);
633 StoreCommand(floor->
AddInterfloorWall(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12])));
641 int params = SplitData(
LineData, 14);
644 return ScriptError(
"Incorrect number of parameters");
647 for (
int i = 2; i <= 9; i++)
650 return ScriptError(
"Invalid value: " + tempdata[i]);
657 StoreCommand(floor->
ColumnWallBox(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToBool(tempdata[10]),
ToBool(tempdata[11]),
ToBool(tempdata[12]),
ToBool(tempdata[13])));
665 int params = SplitData(
LineData, 15);
668 return ScriptError(
"Incorrect number of parameters");
671 for (
int i = 2; i <= 9; i++)
674 return ScriptError(
"Invalid value: " + tempdata[i]);
681 StoreCommand(floor->
ColumnWallBox2(tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToBool(tempdata[10]),
ToBool(tempdata[11]),
ToBool(tempdata[12]),
ToBool(tempdata[13])));
689 int params = SplitAfterEquals(
LineData,
false);
693 std::vector<int> callbutton_elevators;
698 if (GetRange(tempdata[
line], start, end))
700 for (
int k = start; k <= end; k++)
705 callbutton_elevators.emplace_back(k);
710 std::string str =
Calc(tempdata[
line]);
717 callbutton_elevators.emplace_back(data);
722 std::sort(callbutton_elevators.begin(), callbutton_elevators.end());
741 for (
size_t i = 0; i < callbutton_elevators.size(); i++)
745 callbutton_controller = controller->
Number;
753 if (callbutton_controller == 0)
757 int params = SplitData(
LineData, 18);
770 for (
int i = 3; i <= 11; i++)
772 if (i == 6 || i == 9)
775 return ScriptError(
"Invalid value: " + tempdata[i]);
777 if (warn_deprecated ==
true)
780 else if (compat == 2)
782 for (
int i = 5; i <= 13; i++)
784 if (i == 8 || i == 11)
787 return ScriptError(
"Invalid value: " + tempdata[i]);
789 if (warn_deprecated ==
true)
792 else if (compat == 3)
794 for (
int i = 6; i <= 14; i++)
796 if (i == 9 || i == 12)
799 return ScriptError(
"Invalid value: " + tempdata[i]);
801 if (warn_deprecated ==
true)
807 return ScriptError(
"Incorrect number of parameters");
809 for (
int i = 7; i <= 15; i++)
811 if (i == 10 || i == 13)
814 return ScriptError(
"Invalid value: " + tempdata[i]);
825 callstation = floor->
AddCallButtons(callbutton_controller,
"",
"", tempdata[0], tempdata[1], tempdata[1], tempdata[2], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]), tempdata[6],
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToBool(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]));
826 else if (compat == 2)
827 callstation = floor->
AddCallButtons(callbutton_controller,
"",
"", tempdata[0], tempdata[1], tempdata[2], tempdata[3], tempdata[4],
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]), tempdata[8],
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]));
828 else if (compat == 3)
829 callstation = floor->
AddCallButtons(callbutton_controller, tempdata[0], tempdata[0], tempdata[1], tempdata[2], tempdata[3], tempdata[4], tempdata[5],
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]), tempdata[9],
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToBool(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]));
831 callstation = floor->
AddCallButtons(callbutton_controller, tempdata[0], tempdata[1], tempdata[2], tempdata[3], tempdata[4], tempdata[5], tempdata[6],
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]), tempdata[10],
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToBool(tempdata[13]),
ToFloat(tempdata[14]),
ToFloat(tempdata[15]));
848 int params = SplitData(
LineData, 10);
850 if (params < 13 || params > 14)
851 return ScriptError(
"Incorrect number of parameters");
860 for (
int i = 0; i <= 12; i++)
865 return ScriptError(
"Invalid value: " + tempdata[i]);
868 if (warn_deprecated ==
true)
873 for (
int i = 0; i <= 13; i++)
878 return ScriptError(
"Invalid value: " + tempdata[i]);
898 StoreCommand(level->
AddStairs(tempdata[1], tempdata[2], tempdata[2], tempdata[3],
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToInt(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12])));
900 StoreCommand(level->
AddStairs(tempdata[1], tempdata[2], tempdata[3], tempdata[4],
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToInt(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13])));
903 return ScriptError(
"Invalid stairwell " + tempdata[0]);
911 int params = SplitData(
LineData, 8);
913 if (params < 10 || params == 11 || params > 14)
914 return ScriptError(
"Incorrect number of parameters");
921 for (
int i = 1; i <= 9; i++)
924 return ScriptError(
"Invalid value: " + tempdata[i]);
930 for (
int i = 3; i <= 11; i++)
933 return ScriptError(
"Invalid value: " + tempdata[i]);
939 for (
int i = 3; i <= 12; i++)
942 return ScriptError(
"Invalid value: " + tempdata[i]);
948 for (
int i = 4; i <= 13; i++)
951 return ScriptError(
"Invalid value: " + tempdata[i]);
958 parent->CheckFile(
"data/" + tempdata[0]);
959 parent->CheckFile(
"data/" + tempdata[1]);
962 if (compat > 0 && warn_deprecated ==
true)
970 std::string face_direction;
971 std::string open_direction;
974 direction =
ToInt(tempdata[2]);
976 direction =
ToInt(tempdata[4]);
978 direction =
ToInt(tempdata[5]);
979 GetDirectionStrings(direction, face_direction, open_direction);
985 door = floor->
AddDoor(
"",
"",
"",
false, tempdata[0], tempdata[0],
ToFloat(tempdata[1]), face_direction, open_direction,
true, 0, 0,
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]), 0, 0);
987 door = floor->
AddDoor(
"", tempdata[0], tempdata[1],
false, tempdata[2], tempdata[2],
ToFloat(tempdata[3]), face_direction, open_direction,
true, 0, 0,
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]), 0, 0);
989 door = floor->
AddDoor(
"", tempdata[0], tempdata[1],
false, tempdata[2], tempdata[2],
ToFloat(tempdata[3]), face_direction, open_direction,
true,
ToFloat(tempdata[5]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]), 0, 0);
991 door = floor->
AddDoor(
"", tempdata[0], tempdata[1],
ToBool(tempdata[2]), tempdata[3], tempdata[3],
ToFloat(tempdata[4]), face_direction, open_direction,
true,
ToFloat(tempdata[6]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]), 0, 0);
1004 int params = SplitData(
LineData, 14);
1006 if (params < 11 || params == 12 || params > 15)
1007 return ScriptError(
"Incorrect number of parameters");
1014 for (
int i = 0; i <= 10; i++)
1019 return ScriptError(
"Invalid value: " + tempdata[i]);
1025 for (
int i = 0; i <= 12; i++)
1030 return ScriptError(
"Invalid value: " + tempdata[i]);
1036 for (
int i = 0; i <= 13; i++)
1041 return ScriptError(
"Invalid value: " + tempdata[i]);
1047 for (
int i = 0; i <= 14; i++)
1052 return ScriptError(
"Invalid value: " + tempdata[i]);
1059 parent->CheckFile(
"data/" + tempdata[1]);
1060 parent->CheckFile(
"data/" + tempdata[2]);
1063 if (compat > 0 && warn_deprecated ==
true)
1082 std::string face_direction;
1083 std::string open_direction;
1086 direction =
ToInt(tempdata[3]);
1087 else if (compat == 2 || compat == 3)
1088 direction =
ToInt(tempdata[5]);
1090 direction =
ToInt(tempdata[6]);
1091 GetDirectionStrings(direction, face_direction, open_direction);
1096 door = level->
AddDoor(
"",
"",
"",
false, tempdata[1], tempdata[1],
ToFloat(tempdata[2]), face_direction, open_direction,
true, 0, 0,
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]), 0, 0);
1098 door = level->
AddDoor(
"", tempdata[1], tempdata[2],
false, tempdata[3], tempdata[3],
ToFloat(tempdata[4]), face_direction, open_direction,
true, 0, 0,
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]), 0, 0);
1100 door = level->
AddDoor(
"", tempdata[1], tempdata[2],
false, tempdata[3], tempdata[3],
ToFloat(tempdata[4]), face_direction, open_direction,
true,
ToFloat(tempdata[6]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]), 0, 0);
1102 door = level->
AddDoor(
"", tempdata[1], tempdata[2],
ToBool(tempdata[3]), tempdata[4], tempdata[4],
ToFloat(tempdata[5]), face_direction, open_direction,
true,
ToFloat(tempdata[7]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]), 0, 0);
1110 return ScriptError(
"Invalid stairwell " + tempdata[0]);
1118 int params = SplitData(
LineData, 16);
1121 return ScriptError(
"Incorrect number of parameters");
1124 for (
int i = 0; i <= 14; i++)
1129 return ScriptError(
"Invalid value: " + tempdata[i]);
1133 parent->CheckFile(
"data/" + tempdata[1]);
1134 parent->CheckFile(
"data/" + tempdata[2]);
1152 std::string face_direction;
1153 std::string open_direction;
1154 int direction =
ToInt(tempdata[6]);
1155 GetDirectionStrings(direction, face_direction, open_direction);
1157 Door* door = level->
AddDoor(
"", tempdata[1], tempdata[2],
ToBool(tempdata[3]), tempdata[4], tempdata[4],
ToFloat(tempdata[5]), face_direction, open_direction,
true,
ToFloat(tempdata[7]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]), 0, 0);
1165 return ScriptError(
"Invalid shaft " + tempdata[0]);
1173 int params = SplitData(
LineData, 16);
1176 return ScriptError(
"Incorrect number of parameters");
1179 for (
int i = 4; i <= 13; i++)
1182 return ScriptError(
"Invalid value: " + tempdata[i]);
1186 parent->CheckFile(
"data/" + tempdata[0]);
1187 parent->CheckFile(
"data/" + tempdata[1]);
1194 std::string face_direction;
1195 std::string open_direction;
1196 int direction =
ToInt(tempdata[5]);
1197 GetDirectionStrings(direction, face_direction, open_direction);
1200 Door* door = floor->
AddDoor(
"", tempdata[0], tempdata[1],
ToBool(tempdata[2]), tempdata[3], tempdata[3],
ToFloat(tempdata[4]), face_direction, open_direction,
true,
ToFloat(tempdata[6]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]), 0, 0,
true);
1213 int params = SplitData(
LineData, 24);
1215 if (params != 18 && params != 19)
1216 return ScriptError(
"Incorrect number of parameters");
1218 bool compat =
false;
1223 for (
int i = 9; i <= 17; i++)
1230 return ScriptError(
"Invalid value: " + tempdata[i]);
1233 if (warn_deprecated ==
true)
1238 for (
int i = 10; i <= 18; i++)
1245 return ScriptError(
"Invalid value: " + tempdata[i]);
1250 if (!GetElevatorCar(tempdata[0], floor->
Number, elevator, car))
1258 StoreCommand(floor->
AddDirectionalIndicator(elevator, car,
ToBool(tempdata[1]),
false,
ToBool(tempdata[2]),
ToBool(tempdata[3]), tempdata[4], tempdata[5], tempdata[6], tempdata[7], tempdata[8],
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]), tempdata[12],
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
ToBool(tempdata[15]),
ToFloat(tempdata[16]),
ToFloat(tempdata[17])));
1260 StoreCommand(floor->
AddDirectionalIndicator(elevator, car,
ToBool(tempdata[1]),
ToBool(tempdata[2]),
ToBool(tempdata[3]),
ToBool(tempdata[4]), tempdata[5], tempdata[6], tempdata[7], tempdata[8], tempdata[9],
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]), tempdata[13],
ToFloat(tempdata[14]),
ToFloat(tempdata[15]),
ToBool(tempdata[16]),
ToFloat(tempdata[17]),
ToFloat(tempdata[18])));
1268 int params = SplitData(
LineData, 13);
1270 if (params != 5 && params != 6 && params != 10)
1271 return ScriptError(
"Incorrect number of parameters");
1281 return ScriptError(
"SetShaftDoors must be used before AddShaftDoor");
1286 for (
int i = 1; i <= 9; i++)
1291 return ScriptError(
"Invalid value: " + tempdata[i]);
1296 for (
int i = 1; i <= 4; i++)
1301 return ScriptError(
"Invalid value: " + tempdata[i]);
1306 for (
int i = 1; i <= 5; i++)
1311 return ScriptError(
"Invalid value: " + tempdata[i]);
1315 if (compat > 0 && warn_deprecated ==
true)
1318 int elevator, carnum;
1319 if (!GetElevatorCar(tempdata[0], floor->
Number, elevator, carnum))
1342 int params = SplitData(
LineData, 18);
1344 if (params < 8 && params > 10)
1345 return ScriptError(
"Incorrect number of parameters");
1356 for (
int i = 3; i <= 7; i++)
1359 return ScriptError(
"Invalid value: " + tempdata[i]);
1361 if (warn_deprecated ==
true)
1364 else if (compat == 2)
1366 for (
int i = 4; i <= 8; i++)
1369 return ScriptError(
"Invalid value: " + tempdata[i]);
1374 for (
int i = 5; i <= 9; i++)
1377 return ScriptError(
"Invalid value: " + tempdata[i]);
1382 if (!GetElevatorCar(tempdata[0], floor->
Number, elevator, car))
1390 StoreCommand(floor->
AddFloorIndicator(elevator, car,
ToBool(tempdata[1]), tempdata[2], tempdata[3], tempdata[4],
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9])));
1391 else if (compat == 1)
1392 StoreCommand(floor->
AddFloorIndicator(elevator, car,
ToBool(tempdata[1]),
"Button",
"", tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7])));
1393 else if (compat == 2)
1394 StoreCommand(floor->
AddFloorIndicator(elevator, car,
ToBool(tempdata[1]), tempdata[2],
"", tempdata[3],
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8])));
1402 int params = SplitData(
LineData, 15);
1404 if (params < 10 || params > 11)
1405 return ScriptError(
"Incorrect number of parameters");
1407 bool compat =
false;
1413 for (
int i = 1; i <= 9; i++)
1418 return ScriptError(
"Invalid value: " + tempdata[i]);
1426 floor->
AddFillerWalls(tempdata[0],
ToFloat(tempdata[1]),
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToBool(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
false);
1428 floor->
AddFillerWalls(tempdata[0],
ToFloat(tempdata[1]),
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToBool(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToBool(tempdata[10]));
1437 int params = SplitData(
LineData, 9);
1439 if (params != 5 && params != 6 && params != 13 && params != 17)
1440 return ScriptError(
"Incorrect number of parameters");
1442 bool partial =
false;
1443 bool compat =
false;
1444 if (params == 5 || params == 6)
1446 if (params == 5 || params == 13)
1450 if (partial ==
true)
1452 for (
int i = 2; i <= 4; i++)
1455 return ScriptError(
"Invalid value: " + tempdata[i]);
1462 for (
int i = 2; i <= 12; i++)
1465 return ScriptError(
"Invalid value: " + tempdata[i]);
1467 if (warn_deprecated ==
true)
1472 for (
int i = 2; i <= 16; i++)
1478 return ScriptError(
"Invalid value: " + tempdata[i]);
1484 parent->CheckFile(
"data/" + tempdata[1]);
1492 if (partial ==
true)
1495 StoreCommand(floor->
AddSound(tempdata[0], tempdata[1],
Vector3(
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4])),
true,
ToFloat(tempdata[5]),
ToInt(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]), 0.0, 360, 360, 1.0,
Vector3(
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]))));
1499 if (partial ==
true)
1502 StoreCommand(floor->
AddSound(tempdata[0], tempdata[1],
Vector3(
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4])),
ToBool(tempdata[5]),
ToFloat(tempdata[6]),
ToInt(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
Vector3(
ToFloat(tempdata[14]),
ToFloat(tempdata[15]),
ToFloat(tempdata[16]))));
1511 int params = SplitData(
LineData, 9);
1514 return ScriptError(
"Incorrect number of parameters");
1517 for (
int i = 2; i <= 6; i++)
1520 return ScriptError(
"Invalid value: " + tempdata[i]);
1535 int params = SplitData(
LineData, 22);
1537 if (params != 18 && params != 19)
1538 return ScriptError(
"Incorrect number of parameters");
1541 bool compat =
false;
1545 if (warn_deprecated ==
true)
1549 for (
int i = 1; i <= params - 1; i++)
1556 return ScriptError(
"Invalid value: " + tempdata[i]);
1559 int elevator, carnum;
1560 if (!GetElevatorCar(tempdata[0], floor->
Number, elevator, carnum))
1571 StoreCommand(car->
AddShaftDoorComponent(
ToInt(tempdata[1]),
config->
Current, tempdata[2], tempdata[3], tempdata[4],
ToFloat(tempdata[5]), tempdata[6],
ToFloat(tempdata[7]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
ToFloat(tempdata[15]),
ToFloat(tempdata[16]),
ToFloat(tempdata[17])));
1573 StoreCommand(car->
AddShaftDoorComponent(
ToInt(tempdata[1]),
config->
Current, tempdata[2], tempdata[3], tempdata[4],
ToFloat(tempdata[5]), tempdata[6],
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
ToFloat(tempdata[15]),
ToFloat(tempdata[16]),
ToFloat(tempdata[17]),
ToFloat(tempdata[18])));
1581 int params = SplitData(
LineData, 16);
1583 bool legacy =
false;
1586 return ScriptError(
"Incorrect number of parameters");
1592 if (warn_deprecated ==
true)
1600 return ScriptError(
"Invalid value: " + tempdata[1]);
1602 int elevator, carnum;
1603 if (!GetElevatorCar(tempdata[0], floor->
Number, elevator, carnum))
1613 if (params == 2 || legacy ==
true)
1615 else if (params == 3)
1625 if (parent->NoModels ==
true)
1629 int params = SplitData(
LineData, 9);
1631 if (params != 14 && params != 15)
1632 return ScriptError(
"Incorrect number of parameters");
1634 bool compat =
false;
1641 for (
int i = 2; i <= 13; i++)
1646 return ScriptError(
"Invalid value: " + tempdata[i]);
1648 if (warn_deprecated ==
true)
1653 for (
int i = 3; i <= 14; i++)
1658 return ScriptError(
"Invalid value: " + tempdata[i]);
1663 parent->CheckFile(
"data/" + tempdata[1]);
1675 model = floor->
AddModel(tempdata[0], tempdata[1],
false,
Vector3(
ToFloat(tempdata[2]),
ToFloat(tempdata[3]),
ToFloat(tempdata[4])),
Vector3(
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7])),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToBool(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]));
1677 model = floor->
AddModel(tempdata[0], tempdata[1],
ToBool(tempdata[2]),
Vector3(
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5])),
Vector3(
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8])),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]));
1690 if (parent->NoModels ==
true)
1694 int params = SplitData(
LineData, 15);
1696 if (params != 15 && params != 16)
1697 return ScriptError(
"Incorrect number of parameters");
1699 bool compat =
false;
1706 for (
int i = 3; i <= 14; i++)
1711 return ScriptError(
"Invalid value: " + tempdata[i]);
1713 if (warn_deprecated ==
true)
1718 for (
int i = 4; i <= 15; i++)
1723 return ScriptError(
"Invalid value: " + tempdata[i]);
1728 parent->CheckFile(
"data/" + tempdata[2]);
1751 model = level->
AddModel(tempdata[1], tempdata[2],
false,
Vector3(
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5])),
Vector3(
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8])),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]));
1753 model = level->
AddModel(tempdata[1], tempdata[2],
ToBool(tempdata[3]),
Vector3(
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6])),
Vector3(
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9])),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToBool(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
ToFloat(tempdata[15]));
1762 return ScriptError(
"Invalid stairwell " + tempdata[0]);
1769 if (parent->NoModels ==
true)
1773 int params = SplitData(
LineData, 14);
1775 if (params != 15 && params != 16)
1776 return ScriptError(
"Incorrect number of parameters");
1778 bool compat =
false;
1785 for (
int i = 3; i <= 14; i++)
1790 return ScriptError(
"Invalid value: " + tempdata[i]);
1792 if (warn_deprecated ==
true)
1797 for (
int i = 4; i <= 15; i++)
1802 return ScriptError(
"Invalid value: " + tempdata[i]);
1807 parent->CheckFile(
"data/" + tempdata[2]);
1829 model = level->
AddModel(tempdata[1], tempdata[2],
false,
Vector3(
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5])),
Vector3(
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8])),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]));
1831 model = level->
AddModel(tempdata[1], tempdata[2],
ToBool(tempdata[3]),
Vector3(
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6])),
Vector3(
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9])),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToBool(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
ToFloat(tempdata[15]));
1840 return ScriptError(
"Invalid shaft " + tempdata[0]);
1848 int params = SplitData(
LineData, 17);
1851 return ScriptError(
"Incorrect number of parameters");
1854 bool compat =
false;
1859 if (warn_deprecated ==
true)
1868 for (
int i = 3; i <= end; i++)
1871 return ScriptError(
"Invalid value: " + tempdata[i]);
1874 std::vector<std::string> action_array, tex_array;
1875 int slength, parameters;
1878 slength = (int)tempdata.size();
1879 parameters = slength - (end + 1);
1882 if (
IsEven(parameters) ==
false)
1883 return ScriptError(
"Incorrect number of parameters");
1885 for (
int i = (end + 1); i < slength - (parameters / 2); i++)
1886 action_array.emplace_back(tempdata[i]);
1887 for (
int i = slength - (parameters / 2); i < slength; i++)
1888 tex_array.emplace_back(tempdata[i]);
1891 parent->CheckFile(
"data/" + tempdata[1]);
1899 control = floor->
AddControl(tempdata[0], tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]), 1, action_array, tex_array);
1901 control = floor->
AddControl(tempdata[0], tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToInt(tempdata[8]), action_array, tex_array);
1918 int params = SplitData(
LineData, 21);
1921 return ScriptError(
"Incorrect number of parameters");
1924 bool compat =
false;
1929 if (warn_deprecated ==
true)
1938 for (
int i = 0; i <= end; i++)
1943 return ScriptError(
"Invalid value: " + tempdata[i]);
1946 std::vector<std::string> action_array, tex_array;
1947 int slength, parameters;
1950 slength = (int)tempdata.size();
1951 parameters = slength - (end + 1);
1954 if (
IsEven(parameters) ==
false)
1955 return ScriptError(
"Incorrect number of parameters");
1957 for (
int i = (end + 1); i < slength - (parameters / 2); i++)
1958 action_array.emplace_back(tempdata[i]);
1959 for (
int i = slength - (parameters / 2); i < slength; i++)
1960 tex_array.emplace_back(tempdata[i]);
1963 parent->CheckFile(
"data/" + tempdata[1]);
1981 control = level->
AddControl(tempdata[1], tempdata[2], tempdata[3],
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]), 1, action_array, tex_array);
1983 control = level->
AddControl(tempdata[1], tempdata[2], tempdata[3],
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToInt(tempdata[9]), action_array, tex_array);
1995 return ScriptError(
"Invalid shaft " + tempdata[0]);
2003 int params = SplitData(
LineData, 21);
2006 return ScriptError(
"Incorrect number of parameters");
2009 bool compat =
false;
2014 if (warn_deprecated ==
true)
2023 for (
int i = 0; i <= end; i++)
2028 return ScriptError(
"Invalid value: " + tempdata[i]);
2031 std::vector<std::string> action_array, tex_array;
2032 int slength, parameters;
2035 slength = (int)tempdata.size();
2036 parameters = slength - (end + 1);
2039 if (
IsEven(parameters) ==
false)
2040 return ScriptError(
"Incorrect number of parameters");
2042 for (
int i = (end + 1); i < slength - (parameters / 2); i++)
2043 action_array.emplace_back(tempdata[i]);
2044 for (
int i = slength - (parameters / 2); i < slength; i++)
2045 tex_array.emplace_back(tempdata[i]);
2048 parent->CheckFile(
"data/" + tempdata[1]);
2066 control = level->
AddControl(tempdata[1], tempdata[2], tempdata[3],
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]), 1, action_array, tex_array);
2068 control = level->
AddControl(tempdata[1], tempdata[2], tempdata[3],
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToInt(tempdata[9]), action_array, tex_array);
2080 return ScriptError(
"Invalid stairwell " + tempdata[0]);
2088 int params = SplitData(
LineData, 11);
2091 return ScriptError(
"Incorrect number of parameters");
2094 for (
int i = 2; i <= 7; i++)
2097 return ScriptError(
"Invalid value: " + tempdata[i]);
2100 std::vector<std::string> action_array;
2103 for (
int i = 8; i < params; i++)
2104 action_array.emplace_back(tempdata[i]);
2107 parent->CheckFile(
"data/" + tempdata[1]);
2203 int params = SplitData(
LineData, 4);
2206 return ScriptError(
"Incorrect number of parameters");
2209 for (
int i = 0; i <= 5; i++)
2212 return ScriptError(
"Invalid value: " + tempdata[i]);
2228 int params = SplitData(
LineData, 7);
2231 return ScriptError(
"Incorrect number of parameters");
2234 for (
int i = 0; i <= 5; i++)
2237 return ScriptError(
"Invalid value: " + tempdata[i]);
2253 int params = SplitData(
LineData, 17);
2255 if (params != 15 && params != 17)
2256 return ScriptError(
"Incorrect number of parameters");
2258 bool compat =
false;
2265 for (
int i = 2; i <= 13; i++)
2271 return ScriptError(
"Invalid value: " + tempdata[i]);
2275 parent->CheckFile(
"data/" + tempdata[0]);
2279 for (
int i = 4; i <= 15; i++)
2285 return ScriptError(
"Invalid value: " + tempdata[i]);
2289 parent->CheckFile(
"data/" + tempdata[2]);
2298 if (compat ==
false)
2299 door = floor->
AddRevolvingDoor(tempdata[0],
ToBool(tempdata[1]), tempdata[2], tempdata[3],
ToFloat(tempdata[4]),
ToBool(tempdata[5]),
ToInt(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
ToFloat(tempdata[15]),
ToBool(tempdata[16]));
2301 door = floor->
AddRevolvingDoor(
"",
false, tempdata[0], tempdata[1],
ToFloat(tempdata[2]),
ToBool(tempdata[3]),
ToInt(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToBool(tempdata[14]));
2319 int params = SplitData(
LineData, 13);
2321 if (params < 15 || params > 16)
2322 return ScriptError(
"Incorrect number of parameters");
2324 bool compat =
false;
2331 for (
int i = 1; i <= 14; i++)
2336 return ScriptError(
"Invalid value: " + tempdata[i]);
2339 if (warn_deprecated ==
true)
2345 for (
int i = 1; i <= 15; i++)
2350 return ScriptError(
"Invalid value: " + tempdata[i]);
2361 StoreCommand(floor->
AddEscalator(tempdata[0],
ToInt(tempdata[1]),
ToFloat(tempdata[2]), tempdata[3], tempdata[4], tempdata[4], tempdata[5],
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToInt(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14])));
2363 StoreCommand(floor->
AddEscalator(tempdata[0],
ToInt(tempdata[1]),
ToFloat(tempdata[2]), tempdata[3], tempdata[4], tempdata[5], tempdata[6],
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToFloat(tempdata[11]),
ToInt(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
ToFloat(tempdata[15])));
2372 int params = SplitData(
LineData, 17);
2375 return ScriptError(
"Incorrect number of parameters");
2378 for (
int i = 1; i <= 13; i++)
2383 return ScriptError(
"Invalid value: " + tempdata[i]);
2392 StoreCommand(floor->
AddMovingWalkway(tempdata[0],
ToInt(tempdata[1]),
ToFloat(tempdata[2]), tempdata[3], tempdata[4], tempdata[5],
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToInt(tempdata[10]),
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13])));
2402 return ScriptError(
"Floor altitude or height has not been set");