77 str =
LineData.substr(loc1 + 1, loc2 - loc1 - 1);
81 if (IfProc(str) ==
true)
103 if (parent->FunctionProc() ==
true)
113 int params = SplitData(
LineData, 16);
116 return ScriptError(
"Incorrect number of parameters");
119 for (
int i = 3; i <= 13; i++)
122 return ScriptError(
"Invalid value: " + tempdata[i]);
125 std::string meshname =
SetCaseCopy(tempdata[0],
false);
138 if (meshname ==
"floor")
145 else if (meshname ==
"external" || meshname ==
"landscape" || meshname ==
"buildings")
159 StoreCommand(
Simcore->
AddTriangleWall(mesh, tempdata[1], tempdata[2],
ToFloat(tempdata[3]), voffset1,
ToFloat(tempdata[5]),
ToFloat(tempdata[6]), voffset2,
ToFloat(tempdata[8]),
ToFloat(tempdata[9]), voffset3,
ToFloat(tempdata[11]),
ToFloat(tempdata[12]),
ToFloat(tempdata[13])));
168 int params = SplitData(
LineData, 8);
171 return ScriptError(
"Incorrect number of parameters");
174 for (
int i = 3; i <= 13; i++)
177 return ScriptError(
"Invalid value: " + tempdata[i]);
180 std::string meshname =
SetCaseCopy(tempdata[0],
false);
192 StoreCommand(
Simcore->
AddWall(mesh, 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])));
200 int params = SplitData(
LineData, 9);
202 if (params != 12 && params != 14)
203 return ScriptError(
"Incorrect number of parameters");
212 for (
int i = 3; i <= 11; i++)
215 return ScriptError(
"Invalid value: " + tempdata[i]);
217 if (warn_deprecated ==
true)
222 for (
int i = 3; i <= 13; i++)
228 return ScriptError(
"Invalid value: " + tempdata[i]);
232 std::string meshname =
SetCaseCopy(tempdata[0],
false);
245 StoreCommand(
Simcore->
AddFloor(mesh, 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));
247 StoreCommand(
Simcore->
AddFloor(mesh, 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])));
255 int params = SplitData(
LineData, 10);
258 return ScriptError(
"Incorrect number of parameters");
261 for (
int i = 2; i <= 8; i++)
264 return ScriptError(
"Invalid value: " + tempdata[i]);
280 int params = SplitData(
LineData, 4);
283 return ScriptError(
"Incorrect number of parameters");
286 for (
int i = 1; i <= 6; i++)
289 return ScriptError(
"Invalid value: " + tempdata[i]);
292 MeshObject *mesh = GetMeshObject(tempdata[0]);
313 std::string str = GetBeforeEquals(
LineData,
false);
316 if (str ==
"base" || str ==
"floor" || str ==
"height" || str ==
"interfloorheight" || str ==
"fullheight" || str ==
"elevator" || str ==
"minx" || str ==
"maxx" || str ==
"minz" || str ==
"maxz" || str ==
"number" || str.substr(0, 4) ==
"param" || str ==
"floorname" || str ==
"floortype" || str ==
"floorid" || str ==
"description")
317 return ScriptError(
"Cannot use system variable name");
321 std::string value =
Calc(GetAfterEquals(
LineData, equals));
325 for (
int i = 0; i < (int)parent->variables.size(); i++)
327 if (parent->variables[i].name == str)
339 variable.
value = value;
340 parent->variables.emplace_back(variable);
341 value = variable.
value;
346 parent->variables[index].name = str;
347 parent->variables[index].value = value;
348 value = parent->variables[index].value;
352 engine->
Report(
"Variable '" + str +
"' set to " + value);
360 int params = SplitData(
LineData, 15);
363 return ScriptError(
"Incorrect number of parameters");
366 for (
int i = 3; i <= 10; i++)
369 return ScriptError(
"Invalid value: " + tempdata[i]);
372 std::string meshname =
SetCaseCopy(tempdata[0],
false);
387 if (meshname ==
"floor")
389 else if (meshname ==
"external" || meshname ==
"landscape" || meshname ==
"buildings")
393 StoreCommand(
Simcore->
CreateWallBox2(mesh, tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]), voffset,
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
ToBool(tempdata[12]),
ToBool(tempdata[13]),
ToBool(tempdata[14])));
402 int params = SplitData(
LineData, 14);
405 return ScriptError(
"Incorrect number of parameters");
408 for (
int i = 3; i <= 10; i++)
411 return ScriptError(
"Invalid value: " + tempdata[i]);
414 std::string meshname =
SetCaseCopy(tempdata[0],
false);
429 if (meshname ==
"floor")
431 else if (meshname ==
"external" || meshname ==
"landscape" || meshname ==
"buildings")
435 StoreCommand(
Simcore->
CreateWallBox(mesh, tempdata[1], tempdata[2],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]), voffset,
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
ToBool(tempdata[12]),
ToBool(tempdata[13]),
ToBool(tempdata[14])));
444 int params = SplitData(
LineData, 14);
447 return ScriptError(
"Incorrect number of parameters");
449 bool relative_option =
false, relative =
false;
452 relative_option =
true;
453 relative =
ToBool(tempdata[3]);
458 if (relative_option ==
true)
461 for (
int i = start; i < params; i++)
464 return ScriptError(
"Invalid value: " + tempdata[i]);
467 std::string meshname =
SetCaseCopy(tempdata[0],
false);
482 if (relative ==
true)
484 if (meshname ==
"floor")
486 else if (meshname ==
"external" || meshname ==
"landscape" || meshname ==
"buildings")
489 else if (relative_option ==
false)
497 for (
int i = start; i < params - 2; i += 3)
509 int params = SplitData(
LineData, 15);
512 for (
int i = 3; i < params; i++)
515 return ScriptError(
"Invalid value: " + tempdata[i]);
518 std::string meshname =
SetCaseCopy(tempdata[0],
false);
533 if (meshname ==
"floor")
535 else if (meshname ==
"external" || meshname ==
"landscape" || meshname ==
"buildings")
539 std::vector<Vector2> varray;
540 for (
int i = 3; i < params - 3; i += 2)
552 int params = SplitData(
LineData, 11);
555 for (
int i = 3; i < params; i++)
558 return ScriptError(
"Invalid value: " + tempdata[i]);
561 std::string meshname =
SetCaseCopy(tempdata[0],
false);
581 if (meshname ==
"floor")
583 else if (meshname ==
"external" || meshname ==
"landscape" || meshname ==
"buildings")
588 for (
int i = 3; i < params - 2; i += 3)
600 int params = SplitData(
LineData, 9);
602 if (params != 5 && params != 6)
603 return ScriptError(
"Incorrect number of parameters");
612 for (
int i = 0; i <= 5; i++)
615 return ScriptError(
"Invalid value: " + tempdata[i]);
617 if (warn_deprecated ==
true)
622 for (
int i = 0; i <= 4; i++)
625 return ScriptError(
"Invalid value: " + tempdata[i]);
629 int startfloor, endfloor;
632 startfloor =
ToInt(tempdata[4]);
633 endfloor =
ToInt(tempdata[5]);
637 startfloor =
ToInt(tempdata[3]);
638 endfloor =
ToInt(tempdata[4]);
641 if (startfloor < -Simcore->Basements)
663 int params = SplitData(
LineData, 9);
666 return ScriptError(
"Incorrect number of parameters");
669 for (
int i = 0; i <= 6; i++)
672 return ScriptError(
"Invalid value: " + tempdata[i]);
676 int shaftnum =
ToInt(tempdata[0]);
678 return ScriptError(
"Invalid shaft " + tempdata[0]);
696 std::string str = GetBeforeEquals(
LineData);
703 int params = SplitAfterEquals(
LineData,
false);
710 if (
IsBoolean(tempdata[params - 1]) ==
true)
712 if (
ToBool(tempdata[params - 1]) ==
true)
719 if (tempdata[
line].find(
"-", 1) > 0)
723 std::string str1 = tempdata[
line].substr(0, tempdata[
line].find(
"-", 1));
724 std::string str2 = tempdata[
line].substr(tempdata[
line].find(
"-", 1) + 1);
737 for (
int k = start; k <= end; k++)
759 std::string str = GetBeforeEquals(
LineData);
766 int params = SplitAfterEquals(
LineData,
false);
773 if (GetRange(tempdata[
line], start, end))
775 for (
int k = start; k <= end; k++)
797 std::string str = GetBeforeEquals(
LineData);
804 int params = SplitAfterEquals(
LineData,
false);
811 if (GetRange(tempdata[
line], start, end))
813 for (
int k = start; k <= end; k++)
835 std::string str = GetBeforeEquals(
LineData);
843 std::string value = GetAfterEquals(
LineData, equals);
853 int params = SplitData(
LineData, 16);
856 return ScriptError(
"Incorrect number of parameters");
859 for (
int i = 0; i <= 4; i++)
862 return ScriptError(
"Invalid value: " + tempdata[i]);
877 int params = SplitData(
LineData, 13);
880 return ScriptError(
"Incorrect number of parameters");
883 for (
int i = 0; i <= 6; i++)
886 return ScriptError(
"Invalid value: " + tempdata[i]);
889 int stairwell =
ToInt(tempdata[0]);
891 return ScriptError(
"Invalid stairwell " + tempdata[0]);
909 std::string str = GetBeforeEquals(
LineData);
918 int params = SplitAfterEquals(
LineData,
false);
925 if (GetRange(tempdata[
line], start, end))
927 for (
int k = start; k <= end; k++)
949 std::string str = GetBeforeEquals(
LineData);
957 std::string strvalue = GetAfterEquals(
LineData, equals);
964 if (
ToBool(strvalue) ==
true)
969 if (strvalue ==
"inside")
971 else if (strvalue ==
"always")
986 std::string value = GetAfterEquals(
LineData, equals);
998 std::string value = GetAfterEquals(
LineData, equals);
1008 int params = SplitAfterEquals(
LineData);
1011 return ScriptError(
"Incorrect number of parameters");
1026 int params = SplitData(
LineData, 18);
1029 return ScriptError(
"Incorrect number of parameters");
1032 for (
int i = 0; i <= 8; i++)
1035 return ScriptError(
"Invalid value: " + tempdata[i]);
1048 int params = SplitData(
LineData, 19);
1051 return ScriptError(
"Incorrect number of parameters");
1054 for (
int i = 3; i <= 14; i++)
1061 return ScriptError(
"Invalid value: " + tempdata[i]);
1064 texturemanager->SetTextureMapping2(tempdata[0], tempdata[1], tempdata[2],
Vector2(
ToFloat(tempdata[3]),
ToFloat(tempdata[4])),
1073 int check = (int)
LineData.find(
"=", 0);
1079 std::string value = GetAfterEquals(
LineData, equals);
1081 texturemanager->ResetTextureMapping(
ToBool(value));
1089 int params = SplitData(
LineData, 17);
1091 if (params != 4 && params != 5)
1092 return ScriptError(
"Incorrect number of parameters");
1096 texturemanager->SetPlanarMapping(
ToBool(tempdata[0]),
1099 ToBool(tempdata[3]),
false);
1100 if (warn_deprecated ==
true)
1105 texturemanager->SetPlanarMapping(
ToBool(tempdata[0]),
1118 if (warn_deprecated ==
true)
1121 int check = (int)
LineData.find(
"=", 0);
1125 std::string value = GetAfterEquals(
LineData, equals);
1133 int found = (int)linecheck.find(
"isect(", 0);
1138 if (loc1 < 0 || loc2 < 0)
1143 for (
size_t i = 0; i < tempdata.size(); i++)
1145 buffer =
Calc(tempdata[i]);
1146 tempdata[i] = buffer;
1148 if (tempdata.size() < 8 || tempdata.size() > 8)
1149 return ScriptError(
"Incorrect number of parameters");
1152 for (
int i = 2; i <= 7; i++)
1155 return ScriptError(
"Invalid value: " + tempdata[i]);
1158 MeshObject *mesh = GetMeshObject(tempdata[0]);
1172 found = linecheck.find(
"isect(", 0);
1176 found = linecheck.find(
"endpoint(", 0);
1181 if (loc1 < 0 || loc2 < 0)
1186 for (
size_t i = 0; i < tempdata.size(); i++)
1188 buffer =
Calc(tempdata[i]);
1189 tempdata[i] = buffer;
1191 if (tempdata.size() != 4)
1192 return ScriptError(
"Incorrect number of parameters");
1195 for (
int i = 0; i <= 3; i++)
1198 return ScriptError(
"Invalid value: " + tempdata[i]);
1211 found = linecheck.find(
"endpoint(", 0);
1218 int params = SplitData(
LineData, 15);
1221 return ScriptError(
"Incorrect number of parameters");
1225 return ScriptError(
"Invalid value: " + tempdata[2]);
1229 std::string meshname =
SetCaseCopy(tempdata[0],
false);
1256 int params = SplitAfterEquals(
LineData);
1259 return ScriptError(
"Incorrect number of parameters");
1261 texturemanager->SetAutoSize(
ToBool(tempdata[0]),
1269 int params = SplitData(
LineData, 16,
false);
1272 return ScriptError(
"Incorrect number of parameters");
1274 texturemanager->SetTextureOverride(tempdata[0], tempdata[1], tempdata[2], tempdata[3], tempdata[4], tempdata[5]);
1281 int params = SplitData(
LineData, 12,
false);
1284 return ScriptError(
"Incorrect number of parameters");
1287 for (
int i = 0; i <= 5; i++)
1290 return ScriptError(
"Invalid value: " + tempdata[i]);
1293 texturemanager->SetTextureFlip(
ToInt(tempdata[0]),
ToInt(tempdata[1]),
ToInt(tempdata[2]),
ToInt(tempdata[3]),
ToInt(tempdata[4]),
ToInt(tempdata[5]));
1301 int params = SplitData(
LineData, 6,
false);
1304 return ScriptError(
"Incorrect number of parameters");
1316 int params = SplitData(
LineData, 17);
1319 return ScriptError(
"Incorrect number of parameters");
1322 for (
int i = 0; i <= 5; i++)
1325 return ScriptError(
"Invalid value: " + tempdata[i]);
1341 int params = SplitData(
LineData, 9);
1343 if (params != 5 && params != 6 && params != 13 && params != 17)
1344 return ScriptError(
"Incorrect number of parameters");
1346 bool partial =
false;
1347 bool compat =
false;
1348 if (params == 5 || params == 6)
1350 if (params == 5 || params == 13)
1354 if (partial ==
true)
1356 for (
int i = 2; i <= 4; i++)
1359 return ScriptError(
"Invalid value: " + tempdata[i]);
1366 for (
int i = 2; i <= 12; i++)
1369 return ScriptError(
"Invalid value: " + tempdata[i]);
1371 if (warn_deprecated ==
true)
1376 for (
int i = 2; i <= 16; i++)
1382 return ScriptError(
"Invalid value: " + tempdata[i]);
1388 parent->CheckFile(
"data/" + tempdata[1]);
1396 if (partial ==
true)
1399 StoreCommand(
Simcore->
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]))));
1403 if (partial ==
true)
1406 StoreCommand(
Simcore->
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]))));
1415 int params = SplitData(
LineData, 9);
1418 return ScriptError(
"Incorrect number of parameters");
1421 for (
int i = 2; i <= 6; i++)
1424 return ScriptError(
"Invalid value: " + tempdata[i]);
1438 if (parent->NoModels ==
true)
1442 int params = SplitData(
LineData, 9);
1444 if (params != 14 && params != 15)
1445 return ScriptError(
"Incorrect number of parameters");
1447 bool compat =
false;
1454 for (
int i = 2; i <= 13; i++)
1459 return ScriptError(
"Invalid value: " + tempdata[i]);
1461 if (warn_deprecated ==
true)
1466 for (
int i = 3; i <= 14; i++)
1471 return ScriptError(
"Invalid value: " + tempdata[i]);
1476 parent->CheckFile(
"data/" + tempdata[1]);
1488 model =
Simcore->
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]));
1490 model =
Simcore->
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]));
1504 int params = SplitData(
LineData, 10);
1507 return ScriptError(
"Incorrect number of parameters");
1509 std::vector<Object*> objects;
1510 std::string tmpname = tempdata[1];
1512 if (tmpname ==
"global")
1513 objects.emplace_back(
Simcore);
1517 std::vector<std::string> actparams;
1520 for (
int i = 3; i < params; i++)
1522 actparams.emplace_back(tempdata[i]);
1526 if (objects.size() > 0)
1542 int params = SplitData(
LineData, 16);
1545 return ScriptError(
"Incorrect number of parameters");
1547 std::vector<Object*> objects;
1548 std::string tmpname = tempdata[1];
1550 if (tmpname ==
"global")
1551 objects.emplace_back(
Simcore);
1555 if (objects.size() > 0)
1566 int params = SplitData(
LineData, 19);
1569 return ScriptError(
"Incorrect number of parameters");
1571 std::vector<Object*> objects;
1572 std::string tmpname = tempdata[1];
1574 if (tmpname ==
"global")
1575 objects.emplace_back(
Simcore);
1579 if (objects.size() > 0)
1590 int params = SplitData(
LineData, 17);
1593 return ScriptError(
"Incorrect number of parameters");
1596 bool compat =
false;
1605 if (warn_deprecated ==
true)
1610 for (
int i = 3; i <= end; i++)
1613 return ScriptError(
"Invalid value: " + tempdata[i]);
1616 std::vector<std::string> action_array, tex_array;
1617 int slength, parameters;
1620 slength = (int)tempdata.size();
1621 parameters = slength - (end + 1);
1624 if (
IsEven(parameters) ==
false)
1625 return ScriptError(
"Incorrect number of parameters");
1627 for (
int i = (end + 1); i < slength - (parameters / 2); i++)
1628 action_array.emplace_back(tempdata[i]);
1629 for (
int i = slength - (parameters / 2); i < slength; i++)
1630 tex_array.emplace_back(tempdata[i]);
1633 parent->CheckFile(
"data/" + tempdata[1]);
1641 control =
Simcore->
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);
1643 control =
Simcore->
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);
1660 int params = SplitData(
LineData, 11);
1663 return ScriptError(
"Incorrect number of parameters");
1666 for (
int i = 2; i <= 7; i++)
1669 return ScriptError(
"Invalid value: " + tempdata[i]);
1672 std::vector<std::string> action_array;
1675 for (
int i = 8; i < params; i++)
1676 action_array.emplace_back(tempdata[i]);
1679 parent->CheckFile(
"data/" + tempdata[1]);
1695 int params = SplitData(
LineData, 9);
1698 return ScriptError(
"Incorrect number of parameters");
1702 return ScriptError(
"Invalid value: " + tempdata[1]);
1705 std::string name = tempdata[0];
1712 Floor *floorobj = 0;
1720 if (obj->
GetType() ==
"Floor")
1721 floorobj =
static_cast<Floor*
>(obj);
1722 if (obj->
GetType() ==
"Elevator")
1723 elevatorobj =
static_cast<Elevator*
>(obj);
1724 if (obj->
GetType() ==
"ElevatorCar")
1726 if (obj->
GetType() ==
"Shaft Level")
1728 if (obj->
GetType() ==
"Stairwell Level")
1731 sbs =
static_cast<::
SBS::SBS*
>(obj);
1734 elevatorcarobj = elevatorobj->
GetCar(0);
1743 else if (elevatorcarobj)
1761 int params = SplitData(
LineData, 14);
1764 return ScriptError(
"Incorrect number of parameters");
1767 for (
int i = 2; i <= 4; i++)
1770 return ScriptError(
"Invalid value: " + tempdata[i]);
1773 std::string name = tempdata[0];
1780 Floor *floorobj = 0;
1788 if (obj->
GetType() ==
"Floor")
1789 floorobj =
static_cast<Floor*
>(obj);
1790 if (obj->
GetType() ==
"Elevator")
1791 elevatorobj =
static_cast<Elevator*
>(obj);
1792 if (obj->
GetType() ==
"ElevatorCar")
1794 if (obj->
GetType() ==
"Shaft Level")
1796 if (obj->
GetType() ==
"Stairwell Level")
1799 sbs =
static_cast<::
SBS::SBS*
>(obj);
1802 elevatorcarobj = elevatorobj->
GetCar(0);
1811 light = floorobj->
GetLight(tempdata[1]);
1813 light = elevatorcarobj->
GetLight(tempdata[1]);
1815 light = shaftobj->
GetLight(tempdata[1]);
1817 light = stairsobj->
GetLight(tempdata[1]);
1819 light = sbs->
GetLight(tempdata[1]);
1822 return ScriptError(
"Invalid light " + tempdata[1] +
" in " + name);
1834 int params = SplitData(
LineData, 17);
1837 return ScriptError(
"Incorrect number of parameters");
1840 for (
int i = 2; i <= 4; i++)
1843 return ScriptError(
"Invalid value: " + tempdata[i]);
1846 std::string name = tempdata[0];
1853 Floor *floorobj = 0;
1861 if (obj->
GetType() ==
"Floor")
1862 floorobj =
static_cast<Floor*
>(obj);
1863 if (obj->
GetType() ==
"Elevator")
1864 elevatorobj =
static_cast<Elevator*
>(obj);
1865 if (obj->
GetType() ==
"ElevatorCar")
1867 if (obj->
GetType() ==
"Shaft Level")
1869 if (obj->
GetType() ==
"Stairwell Level")
1872 sbs =
static_cast<::
SBS::SBS*
>(obj);
1875 elevatorcarobj = elevatorobj->
GetCar(0);
1884 light = floorobj->
GetLight(tempdata[1]);
1886 light = elevatorcarobj->
GetLight(tempdata[1]);
1888 light = shaftobj->
GetLight(tempdata[1]);
1890 light = stairsobj->
GetLight(tempdata[1]);
1892 light = sbs->
GetLight(tempdata[1]);
1895 return ScriptError(
"Invalid light " + tempdata[1] +
" in " + name);
1907 int params = SplitData(
LineData, 20);
1910 return ScriptError(
"Incorrect number of parameters");
1913 for (
int i = 2; i <= 5; i++)
1916 return ScriptError(
"Invalid value: " + tempdata[i]);
1919 std::string name = tempdata[0];
1926 Floor *floorobj = 0;
1934 if (obj->
GetType() ==
"Floor")
1935 floorobj =
static_cast<Floor*
>(obj);
1936 if (obj->
GetType() ==
"Elevator")
1937 elevatorobj =
static_cast<Elevator*
>(obj);
1938 if (obj->
GetType() ==
"ElevatorCar")
1940 if (obj->
GetType() ==
"Shaft Level")
1942 if (obj->
GetType() ==
"Stairwell Level")
1945 sbs =
static_cast<::
SBS::SBS*
>(obj);
1948 elevatorcarobj = elevatorobj->
GetCar(0);
1957 light = floorobj->
GetLight(tempdata[1]);
1959 light = elevatorcarobj->
GetLight(tempdata[1]);
1961 light = shaftobj->
GetLight(tempdata[1]);
1963 light = stairsobj->
GetLight(tempdata[1]);
1965 light = sbs->
GetLight(tempdata[1]);
1968 return ScriptError(
"Invalid light " + tempdata[1] +
" in " + name);
1980 int params = SplitData(
LineData, 18);
1983 return ScriptError(
"Incorrect number of parameters");
1986 for (
int i = 2; i <= 4; i++)
1989 return ScriptError(
"Invalid value: " + tempdata[i]);
1992 std::string name = tempdata[0];
1999 Floor *floorobj = 0;
2007 if (obj->
GetType() ==
"Floor")
2008 floorobj =
static_cast<Floor*
>(obj);
2009 if (obj->
GetType() ==
"Elevator")
2010 elevatorobj =
static_cast<Elevator*
>(obj);
2011 if (obj->
GetType() ==
"ElevatorCar")
2013 if (obj->
GetType() ==
"Shaft Level")
2015 if (obj->
GetType() ==
"Stairwell Level")
2018 sbs =
static_cast<::
SBS::SBS*
>(obj);
2021 elevatorcarobj = elevatorobj->
GetCar(0);
2030 light = floorobj->
GetLight(tempdata[1]);
2032 light = elevatorcarobj->
GetLight(tempdata[1]);
2034 light = shaftobj->
GetLight(tempdata[1]);
2036 light = stairsobj->
GetLight(tempdata[1]);
2038 light = sbs->
GetLight(tempdata[1]);
2041 return ScriptError(
"Invalid light " + tempdata[1] +
" in " + name);
2053 int params = SplitData(
LineData, 18);
2056 return ScriptError(
"Incorrect number of parameters");
2059 for (
int i = 2; i <= 4; i++)
2062 return ScriptError(
"Invalid value: " + tempdata[i]);
2065 std::string name = tempdata[0];
2072 Floor *floorobj = 0;
2080 if (obj->
GetType() ==
"Floor")
2081 floorobj =
static_cast<Floor*
>(obj);
2082 if (obj->
GetType() ==
"Elevator")
2083 elevatorobj =
static_cast<Elevator*
>(obj);
2084 if (obj->
GetType() ==
"ElevatorCar")
2086 if (obj->
GetType() ==
"Shaft Level")
2088 if (obj->
GetType() ==
"Stairwell Level")
2091 sbs =
static_cast<::
SBS::SBS*
>(obj);
2094 elevatorcarobj = elevatorobj->
GetCar(0);
2103 light = floorobj->
GetLight(tempdata[1]);
2105 light = elevatorcarobj->
GetLight(tempdata[1]);
2107 light = shaftobj->
GetLight(tempdata[1]);
2109 light = stairsobj->
GetLight(tempdata[1]);
2111 light = sbs->
GetLight(tempdata[1]);
2114 return ScriptError(
"Invalid light " + tempdata[1] +
" in " + name);
2126 int params = SplitData(
LineData, 10);
2129 return ScriptError(
"Incorrect number of parameters");
2132 for (
int i = 2; i <= 4; i++)
2135 return ScriptError(
"Invalid value: " + tempdata[i]);
2138 std::string name = tempdata[0];
2145 Floor *floorobj = 0;
2153 if (obj->
GetType() ==
"Floor")
2154 floorobj =
static_cast<Floor*
>(obj);
2155 if (obj->
GetType() ==
"Elevator")
2156 elevatorobj =
static_cast<Elevator*
>(obj);
2157 if (obj->
GetType() ==
"ElevatorCar")
2159 if (obj->
GetType() ==
"Shaft Level")
2161 if (obj->
GetType() ==
"Stairwell Level")
2164 sbs =
static_cast<::
SBS::SBS*
>(obj);
2167 elevatorcarobj = elevatorobj->
GetCar(0);
2176 light = floorobj->
GetLight(tempdata[1]);
2178 light = elevatorcarobj->
GetLight(tempdata[1]);
2180 light = shaftobj->
GetLight(tempdata[1]);
2182 light = stairsobj->
GetLight(tempdata[1]);
2184 light = sbs->
GetLight(tempdata[1]);
2187 return ScriptError(
"Invalid light " + tempdata[1] +
" in " + name);
2199 int params = SplitData(
LineData, 17);
2202 return ScriptError(
"Incorrect number of parameters");
2205 for (
int i = 2; i <= 10; i++)
2211 return ScriptError(
"Invalid value: " + tempdata[i]);
2214 std::string name = tempdata[0];
2221 Floor *floorobj = 0;
2228 if (obj->
GetType() ==
"Floor")
2229 floorobj =
static_cast<Floor*
>(obj);
2230 if (obj->
GetType() ==
"Elevator")
2231 elevatorobj =
static_cast<Elevator*
>(obj);
2232 if (obj->
GetType() ==
"ElevatorCar")
2234 if (obj->
GetType() ==
"Shaft Level")
2236 if (obj->
GetType() ==
"Stairwell Level")
2240 elevatorcarobj = elevatorobj->
GetCar(0);
2248 else if (elevatorcarobj)
2264 int params = SplitData(
LineData, 14);
2267 return ScriptError(
"Incorrect number of parameters");
2272 return ScriptError(
"Object not found: parent " + tempdata[0] +
", name " + tempdata[1]);
2277 return ScriptError(
"Invalid camera texture " + tempdata[1] +
" in " + tempdata[0]);
2293 int params = SplitData(
LineData, 15);
2296 return ScriptError(
"Incorrect number of parameters");
2299 for (
int i = 7; i <= 20; i++)
2305 return ScriptError(
"Invalid value: " + tempdata[i]);
2308 std::string name = tempdata[0];
2315 Floor *floorobj = 0;
2323 if (obj->
GetType() ==
"Floor")
2324 floorobj =
static_cast<Floor*
>(obj);
2325 if (obj->
GetType() ==
"Elevator")
2326 elevatorobj =
static_cast<Elevator*
>(obj);
2327 if (obj->
GetType() ==
"ElevatorCar")
2329 if (obj->
GetType() ==
"Shaft Level")
2331 if (obj->
GetType() ==
"Stairwell Level")
2333 if (obj->
GetType() ==
"DoorManager")
2337 elevatorcarobj = elevatorobj->
GetCar(0);
2347 door = floorobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
false,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2348 else if (elevatorcarobj)
2349 door = elevatorcarobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
false,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2351 door = shaftobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
false,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2353 door = stairsobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
false,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2354 else if (managerobj)
2355 door = managerobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
false,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2370 int params = SplitData(
LineData, 11);
2373 return ScriptError(
"Incorrect number of parameters");
2376 for (
int i = 7; i <= 20; i++)
2382 return ScriptError(
"Invalid value: " + tempdata[i]);
2385 std::string name = tempdata[0];
2392 Floor *floorobj = 0;
2400 if (obj->
GetType() ==
"Floor")
2401 floorobj =
static_cast<Floor*
>(obj);
2402 if (obj->
GetType() ==
"Elevator")
2403 elevatorobj =
static_cast<Elevator*
>(obj);
2404 if (obj->
GetType() ==
"ElevatorCar")
2406 if (obj->
GetType() ==
"Shaft Level")
2408 if (obj->
GetType() ==
"Stairwell Level")
2410 if (obj->
GetType() ==
"DoorManager")
2414 elevatorcarobj = elevatorobj->
GetCar(0);
2424 door = floorobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
true,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2425 else if (elevatorcarobj)
2426 door = elevatorcarobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
true,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2428 door = shaftobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
true,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2430 door = stairsobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
true,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2431 else if (managerobj)
2432 door = managerobj->
AddDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]), tempdata[5], tempdata[6],
ToFloat(tempdata[7]), tempdata[8], tempdata[9],
true,
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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2447 int params = SplitData(
LineData, 17);
2450 return ScriptError(
"Incorrect number of parameters");
2452 std::string name = tempdata[0];
2459 Floor *floorobj = 0;
2467 if (obj->
GetType() ==
"Floor")
2468 floorobj =
static_cast<Floor*
>(obj);
2469 if (obj->
GetType() ==
"Elevator")
2470 elevatorobj =
static_cast<Elevator*
>(obj);
2471 if (obj->
GetType() ==
"ElevatorCar")
2473 if (obj->
GetType() ==
"Shaft Level")
2475 if (obj->
GetType() ==
"Stairwell Level")
2477 if (obj->
GetType() ==
"DoorManager")
2481 elevatorcarobj = elevatorobj->
GetCar(0);
2491 door = floorobj->
CreateDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]));
2492 else if (elevatorcarobj)
2493 door = elevatorcarobj->
CreateDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]));
2495 door = shaftobj->
CreateDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]));
2497 door = stairsobj->
CreateDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]));
2498 else if (managerobj)
2499 door = managerobj->
CreateDoor(tempdata[1], tempdata[2], tempdata[3],
ToBool(tempdata[4]));
2511 int params = SplitData(
LineData, 20);
2514 return ScriptError(
"Incorrect number of parameters");
2517 for (
int i = 5; i <= 20; i++)
2523 return ScriptError(
"Invalid value: " + tempdata[i]);
2526 std::string name = tempdata[0];
2533 Floor *floorobj = 0;
2541 if (obj->
GetType() ==
"Floor")
2542 floorobj =
static_cast<Floor*
>(obj);
2543 if (obj->
GetType() ==
"Elevator")
2544 elevatorobj =
static_cast<Elevator*
>(obj);
2545 if (obj->
GetType() ==
"ElevatorCar")
2547 if (obj->
GetType() ==
"Shaft Level")
2549 if (obj->
GetType() ==
"Stairwell Level")
2551 if (obj->
GetType() ==
"DoorManager")
2555 elevatorcarobj = elevatorobj->
GetCar(0);
2564 door = floorobj->
GetDoor(tempdata[1]);
2566 door = elevatorcarobj->
GetDoor(tempdata[1]);
2568 door = shaftobj->
GetDoor(tempdata[1]);
2570 door = stairsobj->
GetDoor(tempdata[1]);
2572 door = managerobj->
GetDoor(tempdata[1]);
2575 return ScriptError(
"Invalid door " + tempdata[1] +
" in " + name);
2577 door->
AddDoorComponent(tempdata[2], tempdata[3], tempdata[4],
ToFloat(tempdata[5]), tempdata[6], tempdata[7],
ToBool(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]),
ToFloat(tempdata[19]),
ToFloat(tempdata[20]));
2586 int params = SplitData(
LineData, 11);
2589 return ScriptError(
"Incorrect number of parameters");
2591 std::string name = tempdata[0];
2598 Floor *floorobj = 0;
2606 if (obj->
GetType() ==
"Floor")
2607 floorobj =
static_cast<Floor*
>(obj);
2608 if (obj->
GetType() ==
"Elevator")
2609 elevatorobj =
static_cast<Elevator*
>(obj);
2610 if (obj->
GetType() ==
"ElevatorCar")
2612 if (obj->
GetType() ==
"Shaft Level")
2614 if (obj->
GetType() ==
"Stairwell Level")
2616 if (obj->
GetType() ==
"DoorManager")
2620 elevatorcarobj = elevatorobj->
GetCar(0);
2629 door = floorobj->
GetDoor(tempdata[1]);
2631 door = elevatorcarobj->
GetDoor(tempdata[1]);
2633 door = shaftobj->
GetDoor(tempdata[1]);
2635 door = stairsobj->
GetDoor(tempdata[1]);
2637 door = managerobj->
GetDoor(tempdata[1]);
2640 return ScriptError(
"Invalid door " + tempdata[1] +
" in " + name);
2654 int params = SplitData(
LineData, 9);
2657 return ScriptError(
"Incorrect number of parameters");
2659 std::string name = tempdata[0];
2666 Floor *floorobj = 0;
2674 if (obj->
GetType() ==
"Floor")
2675 floorobj =
static_cast<Floor*
>(obj);
2676 if (obj->
GetType() ==
"Elevator")
2677 elevatorobj =
static_cast<Elevator*
>(obj);
2678 if (obj->
GetType() ==
"ElevatorCar")
2680 if (obj->
GetType() ==
"Shaft Level")
2682 if (obj->
GetType() ==
"Stairwell Level")
2684 if (obj->
GetType() ==
"DoorManager")
2688 elevatorcarobj = elevatorobj->
GetCar(0);
2697 door = floorobj->
GetDoor(tempdata[1]);
2699 door = elevatorcarobj->
GetDoor(tempdata[1]);
2701 door = shaftobj->
GetDoor(tempdata[1]);
2703 door = stairsobj->
GetDoor(tempdata[1]);
2705 door = managerobj->
GetDoor(tempdata[1]);
2708 return ScriptError(
"Invalid door " + tempdata[1] +
" in " + name);
2720 int params = SplitData(
LineData, 13);
2723 return ScriptError(
"Incorrect number of parameters");
2725 std::string name = tempdata[0];
2732 Floor *floorobj = 0;
2740 if (obj->
GetType() ==
"Floor")
2741 floorobj =
static_cast<Floor*
>(obj);
2742 if (obj->
GetType() ==
"Elevator")
2743 elevatorobj =
static_cast<Elevator*
>(obj);
2744 if (obj->
GetType() ==
"ElevatorCar")
2746 if (obj->
GetType() ==
"Shaft Level")
2748 if (obj->
GetType() ==
"Stairwell Level")
2750 if (obj->
GetType() ==
"DoorManager")
2754 elevatorcarobj = elevatorobj->
GetCar(0);
2763 door = floorobj->
GetDoor(tempdata[1]);
2765 door = elevatorcarobj->
GetDoor(tempdata[1]);
2767 door = shaftobj->
GetDoor(tempdata[1]);
2769 door = stairsobj->
GetDoor(tempdata[1]);
2771 door = managerobj->
GetDoor(tempdata[1]);
2774 return ScriptError(
"Invalid door " + tempdata[1] +
" in " + name);
2786 int params = SplitData(
LineData, 11);
2788 if (params != 8 && params != 14)
2789 return ScriptError(
"Incorrect number of parameters");
2792 for (
int i = 2; i <= 7; i++)
2795 return ScriptError(
"Invalid value: " + tempdata[i]);
2799 for (
int i = 11; i <= 13; i++)
2802 return ScriptError(
"Invalid value: " + tempdata[i]);
2806 std::string name = tempdata[0];
2813 Floor *floorobj = 0;
2821 if (obj->
GetType() ==
"Floor")
2822 floorobj =
static_cast<Floor*
>(obj);
2823 if (obj->
GetType() ==
"Elevator")
2824 elevatorobj =
static_cast<Elevator*
>(obj);
2825 if (obj->
GetType() ==
"ElevatorCar")
2827 if (obj->
GetType() ==
"Shaft Level")
2829 if (obj->
GetType() ==
"Stairwell Level")
2832 sbs =
static_cast<::
SBS::SBS*
>(obj);
2835 elevatorcarobj = elevatorobj->
GetCar(0);
2855 return ScriptError(
"Invalid primitive " + tempdata[1] +
" in " + name);
2870 prim->
Attach(tempdata[1], pos, rot);
2878 int params = SplitData(
LineData, 12);
2881 return ScriptError(
"Incorrect number of parameters");
2883 std::string name = tempdata[0];
2890 Floor *floorobj = 0;
2898 if (obj->
GetType() ==
"Floor")
2899 floorobj =
static_cast<Floor*
>(obj);
2900 if (obj->
GetType() ==
"Elevator")
2901 elevatorobj =
static_cast<Elevator*
>(obj);
2902 if (obj->
GetType() ==
"ElevatorCar")
2904 if (obj->
GetType() ==
"Shaft Level")
2906 if (obj->
GetType() ==
"Stairwell Level")
2909 sbs =
static_cast<::
SBS::SBS*
>(obj);
2912 elevatorcarobj = elevatorobj->
GetCar(0);
2932 return ScriptError(
"Invalid primitive " + tempdata[1] +
" in " + name);
2943 int params = SplitData(
LineData, 11);
2945 if (params < 7 || params > 13)
2946 return ScriptError(
"Incorrect number of parameters");
2948 std::string name = tempdata[0];
2955 Floor *floorobj = 0;
2963 if (obj->
GetType() ==
"Floor")
2964 floorobj =
static_cast<Floor*
>(obj);
2965 if (obj->
GetType() ==
"Elevator")
2966 elevatorobj =
static_cast<Elevator*
>(obj);
2967 if (obj->
GetType() ==
"ElevatorCar")
2969 if (obj->
GetType() ==
"Shaft Level")
2971 if (obj->
GetType() ==
"Stairwell Level")
2974 sbs =
static_cast<::
SBS::SBS*
>(obj);
2979 elevatorcarobj = elevatorobj->
GetCar(0);
2980 obj = elevatorcarobj;
2990 else if (elevatorcarobj)
3003 std::string type = tempdata[2];
3005 if (type ==
"plane")
3008 return ScriptError(
"Incorrect number of parameters");
3011 else if (type ==
"sphere")
3014 return ScriptError(
"Incorrect number of parameters");
3017 else if (type ==
"cylinder")
3020 return ScriptError(
"Incorrect number of parameters");
3023 else if (type ==
"torus")
3026 return ScriptError(
"Incorrect number of parameters");
3029 else if (type ==
"cone")
3032 return ScriptError(
"Incorrect number of parameters");
3035 else if (type ==
"tube")
3038 return ScriptError(
"Incorrect number of parameters");
3041 else if (type ==
"box")
3044 return ScriptError(
"Incorrect number of parameters");
3047 else if (type ==
"capsule")
3050 return ScriptError(
"Incorrect number of parameters");
3053 else if (type ==
"torusknot")
3056 return ScriptError(
"Incorrect number of parameters");
3059 else if (type ==
"icosphere")
3062 return ScriptError(
"Incorrect number of parameters");
3065 else if (type ==
"roundedbox")
3068 return ScriptError(
"Incorrect number of parameters");
3069 geometry->
CreateRoundedBox(obj, tempdata[1],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToInt(tempdata[9]),
ToInt(tempdata[10]),
ToInt(tempdata[11]),
ToBool(tempdata[12]));
3071 else if (type ==
"spring")
3074 return ScriptError(
"Incorrect number of parameters");
3075 geometry->
CreateSpring(obj, tempdata[1],
ToFloat(tempdata[3]),
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToInt(tempdata[9]),
ToInt(tempdata[10]),
ToBool(tempdata[11]));
3077 else if (type ==
"prism")
3080 return ScriptError(
"Incorrect number of parameters");
3092 int params = SplitData(
LineData, 12);
3095 return ScriptError(
"Incorrect number of parameters");
3097 std::string name = tempdata[0];
3104 Floor *floorobj = 0;
3112 if (obj->
GetType() ==
"Floor")
3113 floorobj =
static_cast<Floor*
>(obj);
3114 if (obj->
GetType() ==
"Elevator")
3115 elevatorobj =
static_cast<Elevator*
>(obj);
3116 if (obj->
GetType() ==
"ElevatorCar")
3118 if (obj->
GetType() ==
"Shaft Level")
3120 if (obj->
GetType() ==
"Stairwell Level")
3123 sbs =
static_cast<::
SBS::SBS*
>(obj);
3126 elevatorcarobj = elevatorobj->
GetCar(0);
3146 return ScriptError(
"Invalid primitive " + tempdata[1] +
" in " + name);
3157 int params = SplitData(
LineData, 13);
3160 return ScriptError(
"Incorrect number of parameters");
3162 std::string name = tempdata[0];
3169 Floor *floorobj = 0;
3177 if (obj->
GetType() ==
"Floor")
3178 floorobj =
static_cast<Floor*
>(obj);
3179 if (obj->
GetType() ==
"Elevator")
3180 elevatorobj =
static_cast<Elevator*
>(obj);
3181 if (obj->
GetType() ==
"ElevatorCar")
3183 if (obj->
GetType() ==
"Shaft Level")
3185 if (obj->
GetType() ==
"Stairwell Level")
3188 sbs =
static_cast<::
SBS::SBS*
>(obj);
3191 elevatorcarobj = elevatorobj->
GetCar(0);
3211 return ScriptError(
"Invalid primitive " + tempdata[1] +
" in " + name);
3222 int params = SplitData(
LineData, 12);
3224 if (params < 7 || params > 13)
3225 return ScriptError(
"Incorrect number of parameters");
3228 for (
int i = 2; i <= 9; i++)
3231 return ScriptError(
"Invalid value: " + tempdata[i]);
3234 std::string name = tempdata[0];
3241 Floor *floorobj = 0;
3249 if (obj->
GetType() ==
"Floor")
3250 floorobj =
static_cast<Floor*
>(obj);
3251 if (obj->
GetType() ==
"Elevator")
3252 elevatorobj =
static_cast<Elevator*
>(obj);
3253 if (obj->
GetType() ==
"ElevatorCar")
3255 if (obj->
GetType() ==
"Shaft Level")
3257 if (obj->
GetType() ==
"Stairwell Level")
3260 sbs =
static_cast<::
SBS::SBS*
>(obj);
3265 elevatorcarobj = elevatorobj->
GetCar(0);
3266 obj = elevatorcarobj;
3276 else if (elevatorcarobj)
3294 int params = SplitData(
LineData, 13);
3297 return ScriptError(
"Incorrect number of parameters");
3299 std::string name = tempdata[0];
3306 Floor *floorobj = 0;
3314 if (obj->
GetType() ==
"Floor")
3315 floorobj =
static_cast<Floor*
>(obj);
3316 if (obj->
GetType() ==
"Elevator")
3317 elevatorobj =
static_cast<Elevator*
>(obj);
3318 if (obj->
GetType() ==
"ElevatorCar")
3320 if (obj->
GetType() ==
"Shaft Level")
3322 if (obj->
GetType() ==
"Stairwell Level")
3325 sbs =
static_cast<::
SBS::SBS*
>(obj);
3328 elevatorcarobj = elevatorobj->
GetCar(0);
3348 return ScriptError(
"Invalid custom object " + tempdata[1] +
" in " + name);
3350 object->always_visible =
ToBool(tempdata[2]);
3359 int params = SplitData(
LineData, 12);
3361 if (params != 2 && params != 5)
3362 return ScriptError(
"Incorrect number of parameters");
3367 for (
int i = 2; i <= 4; i++)
3370 return ScriptError(
"Invalid value: " + tempdata[i]);
3374 std::string name = tempdata[0];
3381 Floor *floorobj = 0;
3389 if (obj->
GetType() ==
"Floor")
3390 floorobj =
static_cast<Floor*
>(obj);
3391 if (obj->
GetType() ==
"Elevator")
3392 elevatorobj =
static_cast<Elevator*
>(obj);
3393 if (obj->
GetType() ==
"ElevatorCar")
3395 if (obj->
GetType() ==
"Shaft Level")
3397 if (obj->
GetType() ==
"Stairwell Level")
3400 sbs =
static_cast<::
SBS::SBS*
>(obj);
3403 elevatorcarobj = elevatorobj->
GetCar(0);
3423 return ScriptError(
"Invalid custom object " + tempdata[1] +
" in " + name);
3437 int params = SplitData(
LineData, 11);
3440 return ScriptError(
"Incorrect number of parameters");
3443 for (
int i = 4; i <= 14; i++)
3446 return ScriptError(
"Invalid value: " + tempdata[i]);
3449 std::string name = tempdata[0];
3456 Floor *floorobj = 0;
3464 if (obj->
GetType() ==
"Floor")
3465 floorobj =
static_cast<Floor*
>(obj);
3466 if (obj->
GetType() ==
"Elevator")
3467 elevatorobj =
static_cast<Elevator*
>(obj);
3468 if (obj->
GetType() ==
"ElevatorCar")
3470 if (obj->
GetType() ==
"Shaft Level")
3472 if (obj->
GetType() ==
"Stairwell Level")
3475 sbs =
static_cast<::
SBS::SBS*
>(obj);
3478 elevatorcarobj = elevatorobj->
GetCar(0);
3498 return ScriptError(
"Invalid custom object " + tempdata[1] +
" in " + name);
3500 StoreCommand(
Simcore->
AddWall(object->
GetMeshObject(), tempdata[2], 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]),
ToFloat(tempdata[14])));
3509 int params = SplitData(
LineData, 11);
3512 return ScriptError(
"Incorrect number of parameters");
3515 for (
int i = 4; i <= 14; i++)
3521 return ScriptError(
"Invalid value: " + tempdata[i]);
3524 std::string name = tempdata[0];
3531 Floor *floorobj = 0;
3539 if (obj->
GetType() ==
"Floor")
3540 floorobj =
static_cast<Floor*
>(obj);
3541 if (obj->
GetType() ==
"Elevator")
3542 elevatorobj =
static_cast<Elevator*
>(obj);
3543 if (obj->
GetType() ==
"ElevatorCar")
3545 if (obj->
GetType() ==
"Shaft Level")
3547 if (obj->
GetType() ==
"Stairwell Level")
3550 sbs =
static_cast<::
SBS::SBS*
>(obj);
3553 elevatorcarobj = elevatorobj->
GetCar(0);
3573 return ScriptError(
"Invalid custom object " + tempdata[1] +
" in " + name);
3575 StoreCommand(
Simcore->
AddFloor(object->
GetMeshObject(), tempdata[2], tempdata[3],
ToFloat(tempdata[4]),
ToFloat(tempdata[5]),
ToFloat(tempdata[6]),
ToFloat(tempdata[7]),
ToFloat(tempdata[8]),
ToFloat(tempdata[9]),
ToFloat(tempdata[10]),
ToBool(tempdata[11]),
ToBool(tempdata[12]),
ToFloat(tempdata[13]),
ToFloat(tempdata[14]),
false));
3584 int params = SplitData(
LineData, 14);
3587 return ScriptError(
"Incorrect number of parameters");
3590 for (
int i = 4; i <= 11; i++)
3593 return ScriptError(
"Invalid value: " + tempdata[i]);
3596 std::string name = tempdata[0];
3603 Floor *floorobj = 0;
3611 if (obj->
GetType() ==
"Floor")
3612 floorobj =
static_cast<Floor*
>(obj);
3613 if (obj->
GetType() ==
"Elevator")
3614 elevatorobj =
static_cast<Elevator*
>(obj);
3615 if (obj->
GetType() ==
"ElevatorCar")
3617 if (obj->
GetType() ==
"Shaft Level")
3619 if (obj->
GetType() ==
"Stairwell Level")
3622 sbs =
static_cast<::
SBS::SBS*
>(obj);
3625 elevatorcarobj = elevatorobj->
GetCar(0);
3645 return ScriptError(
"Invalid custom object " + tempdata[1] +
" in " + name);
3647 StoreCommand(
Simcore->
CreateWallBox(object->
GetMeshObject(), tempdata[2], 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]),
ToBool(tempdata[12]),
ToBool(tempdata[13]),
ToBool(tempdata[14]),
ToBool(tempdata[15]),
ToBool(tempdata[16])));
3656 int params = SplitData(
LineData, 14);
3659 return ScriptError(
"Incorrect number of parameters");
3662 for (
int i = 4; i <= 11; i++)
3665 return ScriptError(
"Invalid value: " + tempdata[i]);
3668 std::string name = tempdata[0];
3675 Floor *floorobj = 0;
3683 if (obj->
GetType() ==
"Floor")
3684 floorobj =
static_cast<Floor*
>(obj);
3685 if (obj->
GetType() ==
"Elevator")
3686 elevatorobj =
static_cast<Elevator*
>(obj);
3687 if (obj->
GetType() ==
"ElevatorCar")
3689 if (obj->
GetType() ==
"Shaft Level")
3691 if (obj->
GetType() ==
"Stairwell Level")
3694 sbs =
static_cast<::
SBS::SBS*
>(obj);
3697 elevatorcarobj = elevatorobj->
GetCar(0);
3717 return ScriptError(
"Invalid custom object " + tempdata[1] +
" in " + name);
3719 StoreCommand(
Simcore->
CreateWallBox2(object->
GetMeshObject(), tempdata[2], 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]),
ToBool(tempdata[12]),
ToBool(tempdata[13]),
ToBool(tempdata[14]),
ToBool(tempdata[15]),
ToBool(tempdata[16])));
3728 int params = SplitData(
LineData, 7);
3731 return ScriptError(
"Incorrect number of parameters");
3734 for (
int i = 1; i <= 4; i++)
3737 return ScriptError(
"Invalid value: " + tempdata[i]);
3740 std::string name = tempdata[0];
3761 int params = SplitData(
LineData, 12);
3764 return ScriptError(
"Incorrect number of parameters");
3767 for (
int i = 1; i <= 3; i++)
3770 return ScriptError(
"Invalid value: " + tempdata[i]);
3773 std::string name = tempdata[0];
3794 int params = SplitData(
LineData, 5);
3797 return ScriptError(
"Incorrect number of parameters");
3800 for (
int i = 1; i <= 4; i++)
3803 return ScriptError(
"Invalid value: " + tempdata[i]);
3806 std::string name = tempdata[0];
3827 int params = SplitData(
LineData, 12);
3830 return ScriptError(
"Incorrect number of parameters");
3833 for (
int i = 1; i <= 3; i++)
3836 return ScriptError(
"Invalid value: " + tempdata[i]);
3839 std::string name = tempdata[0];
3860 int params = SplitData(
LineData, 13);
3863 return ScriptError(
"Incorrect number of parameters");
3867 return ScriptError(
"Invalid value: " + tempdata[1]);
3869 std::string name = tempdata[0];
3887 if (linecheck.substr(0, 19) ==
"setpositionrelative")
3890 int params = SplitData(
LineData, 20);
3893 return ScriptError(
"Incorrect number of parameters");
3896 for (
int i = 1; i <= 3; i++)
3899 return ScriptError(
"Invalid value: " + tempdata[i]);
3902 std::string name = tempdata[0];
3923 int params = SplitData(
LineData, 17);
3926 return ScriptError(
"Incorrect number of parameters");
3928 MeshObject *mesh = GetMeshObject(tempdata[0]);
3942 int params = SplitData(
LineData, 7);
3945 return ScriptError(
"Incorrect number of parameters");
3949 return ScriptError(
"Invalid value: " + tempdata[0]);
3966 int params = SplitData(
LineData, 8);
3969 return ScriptError(
"Incorrect number of parameters");
3972 for (
int i = 0; i <= 1; i++)
3975 return ScriptError(
"Invalid value: " + tempdata[i]);
4000 return ScriptError(
"Incorrect number of parameters");
4019 return ScriptError(
"Incorrect number of parameters");
4034 int params = SplitData(
LineData, 9);
4037 return ScriptError(
"Incorrect number of parameters");
4040 for (
int i = 0; i <= 2; i++)
4043 return ScriptError(
"Invalid value: " + tempdata[i]);
4055 return ScriptError(
"Incorrect number of parameters");
4136 int params = SplitData(
LineData, 14);
4139 return ScriptError(
"Incorrect number of parameters");
4142 for (
int i = 3; i <= 5; i++)
4145 return ScriptError(
"Invalid value: " + tempdata[i]);
4151 return ScriptError(
"Object not found: parent " + tempdata[0] +
", name " + tempdata[1]);
void Teleport(Real X, Real Y, Real Z)
void GotoFloor(int floor, bool disable_current=true)
MeshObject * GetMeshObject()
void SetLocked(int side, int keyid)
Door * GetDoor(const std::string &name)
Door * CreateDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool rotate)
Door * AddDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool open_state, const std::string &texture, const std::string &side_texture, Real thickness, const std::string &face_direction, const std::string &open_direction, bool rotate, Real open_speed, Real close_speed, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, Real tw, Real th, Real side_tw, Real side_th)
DoorWrapper * FinishDoor(bool open_state)
void AutoClose(int interval)
DoorWrapper * AddDoorComponent(const std::string &name, const std::string &texture, const std::string &sidetexture, Real thickness, const std::string &face_direction, const std::string &open_direction, bool OpenClockwise, Real OpenSpeed, Real CloseSpeed, Real x1, Real z1, Real x2, Real z2, Real height, Real voffset, Real tw, Real th, Real side_tw, Real side_th)
Door * AddDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool open_state, const std::string &texture, const std::string &side_texture, Real thickness, const std::string &face_direction, const std::string &open_direction, bool rotate, Real open_speed, Real close_speed, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, Real tw, Real th, Real side_tw, Real side_th)
Door * CreateDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool rotate)
Primitive * GetPrimitive(std::string name)
CustomObject * GetCustomObject(std::string name)
Light * AddLight(const std::string &name, int type)
Primitive * AddPrimitive(const std::string &name)
CustomObject * AddCustomObject(const std::string &name, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1)
CameraTexture * AddCameraTexture(const std::string &name, int quality, Real fov, const Vector3 &position, bool use_rotation, const Vector3 &rotation)
Light * GetLight(const std::string &name)
ElevatorDoor * GetDoor(int number)
ElevatorCar * GetCar(int number)
Primitive * GetPrimitive(std::string name)
void ShowInfo(bool detailed=true, bool display_header=true)
Light * GetLight(const std::string &name)
CameraTexture * AddCameraTexture(const std::string &name, int quality, Real fov, const Vector3 &position, bool use_rotation, const Vector3 &rotation)
Door * CreateDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool rotate)
Real GetBase(bool relative=false)
Light * AddLight(const std::string &name, int type)
Primitive * AddPrimitive(const std::string &name)
CustomObject * AddCustomObject(const std::string &name, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1)
Door * GetDoor(const std::string &name)
CustomObject * GetCustomObject(std::string name)
Door * AddDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool open_state, const std::string &texture, const std::string &side_texture, Real thickness, const std::string &face_direction, const std::string &open_direction, bool rotate, Real open_speed, Real close_speed, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, Real tw, Real th, Real side_tw, Real side_th, bool external=false)
Ogre::MeshPtr CreatePrism(Object *parent, const std::string &name, Real radius, Real height, unsigned int sides, unsigned int segments_height, bool capped)
Ogre::MeshPtr CreateCylinder(Object *parent, const std::string &name, Real radius, Real height, Real utile, Real vtile, unsigned int segments_base, unsigned int segments_height, bool capped)
Ogre::MeshPtr CreatePlane(Object *parent, const std::string &name, Real size_x, Real size_y, unsigned int segments_x, unsigned int segments_y, Real utile, Real vtile)
Ogre::MeshPtr CreateRoundedBox(Object *parent, const std::string &name, Real size_x, Real size_y, Real size_z, Real chamfer_size, Real utile, Real vtile, unsigned int segments_x, unsigned int segments_y, unsigned int segments_z, bool capped)
Ogre::MeshPtr CreateSpring(Object *parent, const std::string &name, Real radius_circle, Real radius_helix, Real height, Real round, Real utile, Real vtile, unsigned int segments_circle, unsigned int segments_path, bool capped)
Ogre::MeshPtr CreateTorus(Object *parent, const std::string &name, Real radius, Real section_radius, Real utile, Real vtile)
Ogre::MeshPtr CreateBox(Object *parent, const std::string &name, Real size_x, Real size_y, Real size_z, Real utile, Real vtile, unsigned int segments_x, unsigned int segments_y, unsigned int segments_z)
Ogre::MeshPtr CreateTube(Object *parent, const std::string &name, Real inner_radius, Real outer_radius, Real height, Real utile, Real vtile, unsigned int segments_base, unsigned int segments_height)
Ogre::MeshPtr CreateIcoSphere(Object *parent, const std::string &name, Real radius, Real utile, Real vtile, unsigned int iterations)
Ogre::MeshPtr CreateCapsule(Object *parent, const std::string &name, Real radius, Real height, unsigned int rings, Real utile, Real vtile, unsigned int segments, unsigned int segments_height, bool capped)
Ogre::MeshPtr CreateCone(Object *parent, const std::string &name, Real radius, Real height, Real utile, Real vtile, unsigned int segments_base, unsigned int segments_height)
Ogre::MeshPtr CreateSphere(Object *parent, const std::string &name, Real radius, Real utile, Real vtile, unsigned int rings, unsigned int segments)
Ogre::MeshPtr CreateTorusKnot(Object *parent, const std::string &name, Real radius, Real section_radius, Real utile, Real vtile, unsigned int segments_circle, unsigned int seg_section, int p, int q)
void SetDirection(const Vector3 &direction)
void SetColor(Real color_r=1.0f, Real color_g=1.0f, Real color_b=1.0f)
void SetAttenuation(Real att_range=100000.f, Real att_constant=1.f, Real att_linear=0.f, Real att_quadratic=0.f)
void SetSpotlightRange(Real spot_inner_angle=30.f, Real spot_outer_angle=40.f, Real spot_falloff=1.f)
void SetSpecularColor(Real color_r=0.0f, Real color_g=0.0f, Real color_b=0.0f)
void SetLocked(bool value, int keyid)
Vector3 GetWallExtents(const std::string &name, Real altitude, bool get_max)
Wall * GetWallByName(std::string name)
void Cut(Vector3 start, Vector3 end, bool cutwalls, bool cutfloors, int checkwallnumber=0, bool reset_check=true)
Vector3 GetPoint(const std::string &wallname, const Vector3 &start, const Vector3 &end)
Wall * CreateWallObject(const std::string &name)
void EnablePhysics(bool value, Real restitution=0, Real friction=0, Real mass=0)
virtual void Report(const std::string &message)
virtual void SetRotation(const Vector3 &rotation)
virtual void Move(const Vector3 &vector, Real speed=1.0)
virtual void SetPositionY(Real value)
virtual Vector3 GetPosition(bool relative=false)
void SetPositionRelative(const Vector3 &position)
const std::string & GetType()
virtual void Rotate(const Vector3 &vector, Real speed=1.0)
virtual void SetPosition(const Vector3 &position)
void SetTexture(const std::string &texture)
bool Attach(const std::string &meshname, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1, bool enable_physics=false, Real restitution=0, Real friction=0, Real mass=0)
Action * AddAction(const std::string &name, std::vector< Object * > &action_parents, const std::string &command, const std::vector< std::string > ¶meters)
Shaft * GetShaft(int number)
Reverb * AddReverb(const std::string &name, const std::string &type, const Vector3 &position, Real min_distance, Real max_distance)
Light * GetLight(std::string name)
bool Mount(const std::string &filename, const std::string &path)
Shaft * CreateShaft(int number, Real CenterX, Real CenterZ, int startfloor, int endfloor)
bool RemoveActionParent(const std::string &name, std::vector< Object * > &parents)
Sound * AddSound(const std::string &name, const std::string &filename, const Vector3 &position, bool loop=true, Real volume=1.0, int speed=100, Real min_distance=1.0, Real max_distance=-1.0, Real doppler_level=0.0, Real cone_inside_angle=360, Real cone_outside_angle=360, Real cone_outside_volume=1.0, const Vector3 &direction=Vector3(0, 0, 0))
CustomObject * GetCustomObject(std::string name)
void AddFloorAutoArea(Vector3 start, Vector3 end)
Wall * AddFloor(MeshObject *mesh, const std::string &name, const std::string &texture, Real thickness, Real x1, Real z1, Real x2, Real z2, Real altitude1, Real altitude2, bool reverse_axis, bool texture_direction, Real tw, Real th, bool legacy_behavior=false)
Floor * GetFloor(int number)
bool RunAction(const std::string &name)
Stairwell * GetStairwell(int number)
TextureManager * GetTextureManager()
Wall * AddCustomFloor(MeshObject *mesh, const std::string &name, const std::string &texture, std::vector< Vector2 > &varray, Real altitude, Real tw, Real th)
Wall * CreateWallBox2(MeshObject *mesh, const std::string &name, const std::string &texture, Real CenterX, Real CenterZ, Real WidthX, Real LengthZ, Real height_in, Real voffset, Real tw, Real th, bool inside=true, bool outside=true, bool top=true, bool bottom=true, bool autosize=true)
Primitive * AddPrimitive(const std::string &name)
Object * GetObjectOfParent(std::string parent_name, std::string name, const std::string &type, bool case_sensitive=true)
Wall * AddCustomWall(MeshObject *mesh, const std::string &name, const std::string &texture, PolyArray &varray, Real tw, Real th)
Model * AddModel(const std::string &name, const std::string &filename, bool center, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1, bool enable_physics=false, Real restitution=0, Real friction=0, Real mass=0)
Primitive * GetPrimitive(std::string name)
Wall * AddTriangleWall(MeshObject *mesh, const std::string &name, const std::string &texture, Real x1, Real y1, Real z1, Real x2, Real y2, Real z2, Real x3, Real y3, Real z3, Real tw, Real th)
bool AddActionParent(const std::string &name, std::vector< Object * > &parents)
Wall * AddWall(MeshObject *mesh, const std::string &name, const std::string &texture, Real thickness, Real x1, Real z1, Real x2, Real z2, Real height_in1, Real height_in2, Real altitude1, Real altitude2, Real tw, Real th)
Trigger * AddTrigger(const std::string &name, const std::string &sound_file, const Vector3 &area_min, const Vector3 &area_max, std::vector< std::string > &action_names)
GeometryController * GetGeometry()
CustomObject * AddCustomObject(const std::string &name, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1)
bool SetWallOrientation(std::string direction)
bool SetFloorOrientation(std::string direction)
void AddPolygon(Wall *wallobject, const std::string &texture, PolyArray &varray, Real tw, Real th)
void DrawWalls(bool MainN, bool MainP, bool SideN, bool SideP, bool Top, bool Bottom)
SoundSystem * GetSoundSystem()
Wall * AddGround(const std::string &name, const std::string &texture, Real x1, Real z1, Real x2, Real z2, Real altitude, int tile_x, int tile_z)
Object * GetObject(int number)
Wall * CreateWallBox(MeshObject *mesh, const std::string &name, const std::string &texture, Real x1, Real x2, Real z1, Real z2, Real height_in, Real voffset, Real tw, Real th, bool inside=true, bool outside=true, bool top=true, bool bottom=true, bool autosize=true)
Stairwell * CreateStairwell(int number, Real CenterX, Real CenterZ, int startfloor, int endfloor)
Light * AddLight(const std::string &name, int type)
std::vector< Object * > GetObjectRange(const std::string &expression)
bool DeleteObject(Object *object)
Control * AddControl(const std::string &name, const std::string &sound, const std::string &direction, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, int selection_position, std::vector< std::string > &action_names, std::vector< std::string > &textures)
Door * GetDoor(const std::string &name)
Primitive * GetPrimitive(std::string name)
CustomObject * AddCustomObject(const std::string &name, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1)
CustomObject * GetCustomObject(std::string name)
Primitive * AddPrimitive(const std::string &name)
Door * AddDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool open_state, const std::string &texture, const std::string &side_texture, Real thickness, const std::string &face_direction, const std::string &open_direction, bool rotate, Real open_speed, Real close_speed, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, Real tw, Real th, Real side_tw, Real side_th)
Light * AddLight(const std::string &name, int type)
Light * GetLight(const std::string &name)
Door * CreateDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool rotate)
CameraTexture * AddCameraTexture(const std::string &name, int quality, Real fov, const Vector3 &position, bool use_rotation, const Vector3 &rotation)
void AddShowInterfloor(int floor)
void CutFloors(bool relative, const Vector2 &start, const Vector2 &end, Real startvoffset, Real endvoffset)
void SetShowFull(bool value)
void AddShowFloor(int floor)
void AddShowOutside(int floor)
void ShowPlayingSounds(bool verbose=true)
Primitive * GetPrimitive(std::string name)
CustomObject * GetCustomObject(std::string name)
Primitive * AddPrimitive(const std::string &name)
Light * GetLight(const std::string &name)
Door * AddDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool open_state, const std::string &texture, const std::string &side_texture, Real thickness, const std::string &face_direction, const std::string &open_direction, bool rotate, Real open_speed, Real close_speed, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, Real tw, Real th, Real side_tw, Real side_th)
CameraTexture * AddCameraTexture(const std::string &name, int quality, Real fov, const Vector3 &position, bool use_rotation, const Vector3 &rotation)
CustomObject * AddCustomObject(const std::string &name, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1)
Light * AddLight(const std::string &name, int type)
Door * CreateDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool rotate)
Door * GetDoor(const std::string &name)
void CutFloors(bool relative, const Vector2 &start, const Vector2 &end, Real startvoffset, Real endvoffset)
void AddShowFloor(int floor)
void SetShowFull(int value)
Vector2 GetEndPoint(const Vector2 &StartPoint, Real angle, Real distance)
void Report(const std::string &message)
int Run(std::string &LineData)
CommandsSection(ScriptProcessor *parent)
static const int sNextLine
static const int sContinue
int ScriptWarning(std::string message)
static const int sCheckFloors
void StoreCommand(::SBS::Object *object)
std::string Calc(const std::string &expression)
static const int sSkipReset
std::vector< Vector3 > PolyArray
bool IsBoolean(std::string string)
bool StartsWithNoCase(const std::string &string, const std::string &check_string)
void SplitString(std::vector< std::string > &dest_array, const std::string &original_string, char separator)
int ToInt(const std::string &string)
void SetCase(std::string &string, bool uppercase)
std::string ToString(int number)
std::string SetCaseCopy(std::string string, bool uppercase)
Real ToFloat(const std::string &string)
void TrimString(std::string &string)
bool ToBool(std::string string)
bool IsNumeric(const wxString &string)