162 for (
size_t i = 0; i <
ModelArray.size(); i++)
173 for (
size_t i = 0; i <
PrimArray.size(); i++)
195 for (
size_t i = 0; i <
lights.size(); i++)
199 lights[i]->parent_deleting =
true;
217 for (
size_t i = 0; i <
DoorArray.size(); i++)
228 for (
size_t i = 0; i <
RDoorArray.size(); i++)
265 for (
size_t i = 0; i <
sounds.size(); i++)
269 sounds[i]->parent_deleting =
true;
276 for (
size_t i = 0; i <
reverbs.size(); i++)
280 reverbs[i]->parent_deleting =
true;
317Wall*
Floor::AddFloor(
const std::string &name,
const std::string &texture,
Real thickness,
Real x1,
Real z1,
Real x2,
Real z2,
Real voffset1,
Real voffset2,
bool reverse_axis,
bool texture_direction,
Real tw,
Real th,
bool isexternal,
bool legacy_behavior)
323 if (isexternal ==
false)
326 sbs->
AddFloorMain(wall, name, texture, thickness, x1, z1, x2, z2,
GetBase(
true) + voffset1,
GetBase(
true) + voffset2, reverse_axis, texture_direction, tw, th,
true, legacy_behavior);
333 sbs->
AddFloorMain(wall, name, texture, thickness, x1, z1, x2, z2,
Altitude + voffset1,
Altitude + voffset2, reverse_axis, texture_direction, tw, th,
true, legacy_behavior);
339Wall*
Floor::AddInterfloorFloor(
const std::string &name,
const std::string &texture,
Real thickness,
Real x1,
Real z1,
Real x2,
Real z2,
Real voffset1,
Real voffset2,
bool reverse_axis,
bool texture_direction,
Real tw,
Real th,
bool legacy_behavior)
344 sbs->
AddFloorMain(wall, name, texture, thickness, x1, z1, x2, z2, voffset1, voffset2, reverse_axis, texture_direction, tw, th,
true, legacy_behavior);
348Wall*
Floor::AddWall(
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 voffset1,
Real voffset2,
Real tw,
Real th,
bool isexternal)
353 if (isexternal ==
false)
356 sbs->
AddWallMain(wall, name, texture, thickness, x1, z1, x2, z2, height_in1, height_in2,
GetBase(
true) + voffset1,
GetBase(
true) + voffset2, tw, th,
true);
363 sbs->
AddWallMain(wall, name, texture, thickness, x1, z1, x2, z2, height_in1, height_in2,
Altitude + voffset1,
Altitude + voffset2, tw, th,
true);
369Wall*
Floor::AddInterfloorWall(
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 voffset1,
Real voffset2,
Real tw,
Real th)
374 sbs->
AddWallMain(wall, name, texture, thickness, x1, z1, x2, z2, height_in1, height_in2, voffset1, voffset2, tw, th,
true);
477 for (
size_t i = 0; i <
ModelArray.size(); i++)
484 for (
size_t i = 0; i <
PrimArray.size(); i++)
505 for (
size_t i = 0; i <
DoorArray.size(); i++)
544 for (
size_t i = 0; i <
sounds.size(); i++)
548 if (
sounds[i]->GetLoopState() ==
true)
559 for (
size_t i = 0; i <
reverbs.size(); i++)
566 for (
size_t i = 0; i <
lights.size(); i++)
569 lights[i]->Enabled(value);
583CallStation*
Floor::AddCallButtons(
int controller,
const std::string &sound_file_up,
const std::string &sound_file_down,
const std::string &BackTexture,
const std::string &UpButtonTexture,
const std::string &UpButtonTexture_Lit,
const std::string &DownButtonTexture,
const std::string &DownButtonTexture_Lit,
Real CenterX,
Real CenterZ,
Real voffset,
const std::string &direction,
Real BackWidth,
Real BackHeight,
bool ShowBack,
Real tw,
Real th)
596 station->
Move(CenterX, 0, CenterZ);
597 station->
CreateCallButtons(sound_file_up, sound_file_down, BackTexture, UpButtonTexture, UpButtonTexture_Lit, DownButtonTexture, DownButtonTexture_Lit, direction, BackWidth, BackHeight, ShowBack, tw, th);
613void Floor::Cut(
const Vector3 &start,
const Vector3 &end,
bool cutwalls,
bool cutfloors,
bool fast,
int checkwallnumber,
bool prepare)
619 for (
size_t i = 0; i <
Level->
Walls.size(); i++)
628 sbs->
GetUtility()->
Cut(
Level->
Walls[i],
Vector3(start.x, start.y, start.z),
Vector3(end.x, end.y, end.z), cutwalls, cutfloors, checkwallnumber, reset);
637 sbs->
GetUtility()->
Cut(
Interfloor->
Walls[i],
Vector3(start.x, start.y, start.z),
Vector3(end.x, end.y, end.z), cutwalls, cutfloors, checkwallnumber,
false);
648 Cut(start, end, cutwalls, cutfloors,
false);
694 Group.emplace_back(number);
702 for (
size_t i = 0; i <
Group.size(); i++)
704 if (
Group[i] == number)
717 if (
Group.size() > 0)
719 for (
size_t i = 0; i <
Group.size(); i++)
774 if (
Group.size() > 0)
776 for (
size_t i = 0; i <
Group.size(); i++)
778 if (
Group[i] == floor)
785Door*
Floor::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)
791 if (face_direction ==
"left" || face_direction ==
"right")
795 z1 = CenterZ - (width / 2);
796 z2 = CenterZ + (width / 2);
800 x1 = CenterX - (width / 2);
801 x2 = CenterX + (width / 2);
807 if (external ==
false)
811 if (face_direction ==
"left" || face_direction ==
"right")
812 CutAll(
Vector3(x1 - 1, base + voffset, z1),
Vector3(x2 + 1, base + voffset + height, z2),
true,
false);
814 CutAll(
Vector3(x1, base + voffset, z1 - 1),
Vector3(x2, base + voffset + height, z2 + 1),
true,
false);
817 if (external ==
true)
818 return sbs->
GetDoorManager()->
AddDoor(name, open_sound, close_sound, open_state, texture, side_texture, thickness, face_direction, open_direction, rotate, open_speed, close_speed, CenterX, CenterZ, width, height,
Altitude + voffset, tw, th, side_tw, side_th);
825 door->
CreateDoor(open_state, texture, side_texture, thickness, face_direction, open_direction, open_speed, close_speed, CenterX, CenterZ, width, height, base + voffset, tw, th, side_tw, side_th);
830Door*
Floor::CreateDoor(std::string name,
const std::string &open_sound,
const std::string &close_sound,
bool rotate)
860 return ReportError(
"Invalid floor number specified - no adjacent floor");
871 return ReportError(
"Invalid floor number specified - no adjacent floor");
896Wall*
Floor::ColumnWallBox(
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,
bool outside,
bool top,
bool bottom)
900 return sbs->
CreateWallBox(
ColumnFrame, name, texture, x1, x2, z1, z2, height_in, voffset, tw, th, inside, outside, top, bottom,
true);
903Wall*
Floor::ColumnWallBox2(
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,
bool outside,
bool top,
bool bottom)
907 return sbs->
CreateWallBox2(
ColumnFrame, name, texture, CenterX, CenterZ, WidthX, LengthZ, height_in, voffset, tw, th, inside, outside, top, bottom,
true);
910FloorIndicator*
Floor::AddFloorIndicator(
int elevator,
int car,
bool relative,
const std::string &texture_prefix,
const std::string &blank_texture,
const std::string &direction,
Real CenterX,
Real CenterZ,
Real width,
Real height,
Real voffset)
914 if (relative ==
false)
916 FloorIndicator *ind =
new FloorIndicator(
this,
FloorIndicatorArray.size(), elevator, car, texture_prefix, blank_texture, direction, CenterX, CenterZ, width, height,
GetBase(
true) + voffset);
925 FloorIndicator *ind =
new FloorIndicator(
this,
FloorIndicatorArray.size(), elevator, car, texture_prefix, blank_texture, direction, elev->
GetPosition().x + CenterX, elev->
GetPosition().z + CenterZ, width, height,
GetBase(
true) + voffset);
977 std::vector<int> stations;
985 stations.emplace_back((
int)i);
1019void Floor::AddFillerWalls(
const std::string &texture,
Real thickness,
Real CenterX,
Real CenterZ,
Real width,
Real height,
Real voffset,
bool direction,
Real tw,
Real th,
bool isexternal)
1024 Real x1 = 0, x2 = 0, z1 = 0, z2 = 0, depth1 = 0, depth2 = 0;
1029 ReportError(
"AddFillerWalls: no wall height specified");
1040 depth1 = thickness / 2;
1041 depth2 = thickness / 2;
1049 if (direction ==
false)
1052 x1 = CenterX - depth1;
1053 x2 = CenterX + depth2;
1054 z1 = CenterZ - (width / 2);
1055 z2 = CenterZ + (width / 2);
1060 x1 = CenterX - (width / 2);
1061 x2 = CenterX + (width / 2);
1062 z1 = CenterZ - depth1;
1063 z2 = CenterZ + depth2;
1067 if (isexternal ==
false)
1073 sbs->
DrawWalls(
false,
true,
false,
false,
false,
false);
1074 if (direction ==
false)
1075 AddWall(
"FillerWallLeft", texture, 0, x1, z1, x2, z1, height, height, voffset, voffset, tw, th, isexternal);
1077 AddWall(
"FillerWallLeft", texture, 0, x1, z1, x1, z2, height, height, voffset, voffset, tw, th, isexternal);
1080 sbs->
DrawWalls(
true,
false,
false,
false,
false,
false);
1081 if (direction ==
false)
1082 AddWall(
"FillerWallRight", texture, 0, x1, z2, x2, z2, height, height, voffset, voffset, tw, th, isexternal);
1084 AddWall(
"FillerWallRight", texture, 0, x2, z1, x2, z2, height, height, voffset, voffset, tw, th, isexternal);
1086 AddFloor(
"FillerWallTop", texture, 0, x1, z1, x2, z2, height + voffset, height + voffset,
false,
false, tw, th, isexternal);
1090Sound*
Floor::AddSound(
const std::string &name,
const std::string &filename,
Vector3 position,
bool loop,
Real volume,
int speed,
Real min_distance,
Real max_distance,
Real doppler_level,
Real cone_inside_angle,
Real cone_outside_angle,
Real cone_outside_volume,
Vector3 direction)
1095 sounds.emplace_back(sound);
1098 sound->
Move(position.x,
GetBase(
true) + position.y, position.z);
1105 sound->
SetConeSettings(cone_inside_angle, cone_outside_angle, cone_outside_volume);
1106 sound->
Load(filename);
1118 std::string findname = name;
1120 std::vector<Sound*> soundlist;
1121 for (
size_t i = 0; i <
sounds.size(); i++)
1125 std::string name2 =
sounds[i]->GetName();
1127 if (findname == name2)
1128 soundlist.emplace_back(
sounds[i]);
1151 if (relative ==
false)
1167DirectionalIndicator*
Floor::AddDirectionalIndicator(
int elevator,
int car,
bool relative,
bool active_direction,
bool single,
bool vertical,
const std::string &BackTexture,
const std::string &uptexture,
const std::string &uptexture_lit,
const std::string &downtexture,
const std::string &downtexture_lit,
Real CenterX,
Real CenterZ,
Real voffset,
const std::string &direction,
Real BackWidth,
Real BackHeight,
bool ShowBack,
Real tw,
Real th)
1172 Report(
"adding directional indicator");
1179 if (relative ==
true)
1190 if (active_direction ==
false)
1197 DirectionalIndicator *indicator =
new DirectionalIndicator(
this, elevator, car,
Number, active_direction, single, vertical, BackTexture, uptexture, uptexture_lit, downtexture, downtexture_lit, x, z,
GetBase(
true) + voffset, direction, BackWidth, BackHeight, ShowBack, tw, th);
1225 SBS_PROFILE(
"Floor::UpdateDirectionalIndicators1");
1263 SBS_PROFILE(
"Floor::UpdateDirectionalIndicators2");
1311 for (
size_t i = 0; i <
DoorArray.size(); i++)
1364 for (
size_t i = 0; i <
DoorArray.size(); i++)
1378 for (
size_t i = 0; i <
sounds.size(); i++)
1391 for (
size_t i = 0; i <
lights.size(); i++)
1404 for (
size_t i = 0; i <
ModelArray.size(); i++)
1417 for (
size_t i = 0; i <
PrimArray.size(); i++)
1511 lights.emplace_back(light);
1517 for (
size_t i = 0; i <
lights.size(); i++)
1525Model*
Floor::AddModel(
const std::string &name,
const std::string &filename,
bool center,
Vector3 position,
Vector3 rotation,
Real max_render_distance,
Real scale_multiplier,
bool enable_physics,
Real restitution,
Real friction,
Real mass)
1528 Model* model =
new Model(
this, name, filename, center, position +
Vector3(0,
GetBase(
true), 0), rotation, max_render_distance, scale_multiplier, enable_physics, restitution, friction, mass);
1545 for (
size_t i = 0; i <
ModelArray.size(); i++)
1570 for (
size_t i = 0; i <
PrimArray.size(); i++)
1611Control*
Floor::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)
1614 std::vector<Action*> actionnull;
1615 Control* control =
new Control(
this, name,
false, sound, action_names, actionnull, textures, direction, width, height,
true, selection_position);
1616 control->
Move(CenterX,
GetBase(
true) + voffset, CenterZ);
1624 Trigger* trigger =
new Trigger(
this, name,
false, sound_file, area_min, area_max, action_names);
1635 return cameratexture;
1638Escalator*
Floor::AddEscalator(
const std::string &name,
int run,
Real speed,
const std::string &sound_file,
const std::string &riser_texture,
const std::string &tread_texture,
const std::string &direction,
Real CenterX,
Real CenterZ,
Real width,
Real risersize,
Real treadsize,
int num_steps,
Real voffset,
Real tw,
Real th)
1641 Escalator* escalator =
new Escalator(
this, name, run, speed, sound_file, riser_texture, tread_texture, direction, CenterX, CenterZ, width, risersize, treadsize, num_steps,
GetBase(
true) + voffset, tw, th);
1646MovingWalkway*
Floor::AddMovingWalkway(
const std::string &name,
int run,
Real speed,
const std::string &sound_file,
const std::string &texture,
const std::string &direction,
Real CenterX,
Real CenterZ,
Real width,
Real treadsize,
int num_steps,
Real voffset,
Real tw,
Real th)
1649 MovingWalkway* walkway =
new MovingWalkway(
this, name, run, speed, sound_file, texture, direction, CenterX, CenterZ, width, treadsize, num_steps,
GetBase(
true) + voffset, tw, th);
1671 if (display_header ==
true)
1678 if (detailed ==
true)
1691 std::vector<int> elevator_list, stairs_list, shaft_list;
1697 for (
size_t i = 0; i < elevator_list.size(); i++)
1699 elevs +=
ToString(elevator_list[i]);
1700 if (i < elevator_list.size() - 1)
1706 for (
size_t i = 0; i < stairs_list.size(); i++)
1708 stairs +=
ToString(stairs_list[i]);
1709 if (i < stairs_list.size() - 1)
1715 for (
size_t i = 0; i < shaft_list.size(); i++)
1718 if (i < shaft_list.size() - 1)
1723 if (display_header ==
true)
1728 if (display_header ==
true)
1729 Object::Report(
"Number(ID)\t----\tName\t----\tType\t----\tHeight\t----\tIFloorHeight\t----\tAltitude\t----\tBase\t----\tDescription");
1748 if (get_locals ==
true && type ==
"local")
1749 listing.emplace_back(elev->
Number);
1751 else if (get_express ==
true && type ==
"express")
1752 listing.emplace_back(elev->
Number);
1754 else if (get_service ==
true && type ==
"service")
1755 listing.emplace_back(elev->
Number);
1771 listing.emplace_back(stairs->
StairsNum);
1797 std::vector<int> list;
1800 for (
size_t i = 0; i < list.size(); i++)
1812 if (serviced ==
true && type == ElevatorType && station)
1828 std::vector<int> list, result;
1831 for (
size_t i = 0; i < list.size(); i++)
1837 if (include_service ==
false && type ==
"service")
1852 for (
size_t k = 0; k < result.size(); k++)
1855 if (result[k] == floor)
1863 result.emplace_back(floor);
1878 for (
size_t i = 0; i <
ModelArray.size(); i++)
1893 for (
size_t i = 0; i <
PrimArray.size(); i++)
1917RevolvingDoor*
Floor::AddRevolvingDoor(std::string name,
bool run,
const std::string &soundfile,
const std::string &texture,
Real thickness,
bool clockwise,
int segments,
Real speed,
Real rotation,
Real CenterX,
Real CenterZ,
Real width,
Real height,
Real voffset,
Real tw,
Real th,
bool external)
1920 if (external ==
true)
1921 return sbs->
GetRevolvingDoorManager()->
AddDoor(name, run, soundfile, texture, thickness, clockwise, segments, speed, rotation, CenterX, CenterZ, width, height,
Altitude + voffset, tw, th);
1925 name =
"RevolvingDoor " +
ToString(number);
1927 RevolvingDoor* door =
new RevolvingDoor(
this,
DoorWrapper, name, run, soundfile, texture, thickness, clockwise, segments, speed, rotation, CenterX, CenterZ, width, height,
GetBase(
true) + voffset, tw, th);
1936 for (
size_t i = 0; i <
RDoorArray.size(); i++)
1974 Reverb *reverb =
new Reverb(
this, name, type, position, min_distance, max_distance,
false);
1983 std::string findname = name;
1985 for (
size_t i = 0; i <
reverbs.size(); i++)
1989 std::string name2 =
reverbs[i]->GetName();
1991 if (findname == name2)
2003 for (
size_t i = 0; i <
reverbs.size(); i++)
2020 if (index >= 0 && index < (
int)
reverbs.size())
void SetController(int number)
bool CreateCallButtons(const std::string &sound_file_up, const std::string &sound_file_down, std::string BackTexture, const std::string &UpButtonTexture, const std::string &UpButtonTexture_Lit, const std::string &DownButtonTexture, const std::string &DownButtonTexture_Lit, const std::string &direction, Real BackWidth, Real BackHeight, bool ShowBack, Real tw, Real th)
void DownLight(bool value)
bool ServesFloor(int floor)
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 * CreateDoor(bool open_state, const std::string &texture, const std::string &side_texture, Real thickness, const std::string &face_direction, const std::string &open_direction, 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)
int GetServicedFloorCount()
bool IsServicedFloor(int floor, bool report=true)
int GetServicedFloor(int index)
ElevatorCar * GetCarForFloor(int number, bool report_on_failure=false)
bool IsServicedFloor(int floor, bool report=true)
void Update(bool blank=false)
DynamicMesh * GetColumnDynMesh()
DynamicMesh * GetIFloorDynMesh()
DynamicMesh * GetFloorDynMesh()
DirectionalIndicator * AddDirectionalIndicator(int elevator, int car, bool relative, bool active_direction, bool single, bool vertical, const std::string &BackTexture, const std::string &uptexture, const std::string &uptexture_lit, const std::string &downtexture, const std::string &downtexture_lit, Real CenterX, Real CenterZ, Real voffset, const std::string &direction, Real BackWidth, Real BackHeight, bool ShowBack, Real tw, Real th)
void AddGroupFloor(int number)
void UpdateFloorIndicators()
void RemoveFloorIndicator(FloorIndicator *indicator)
CallStation * AddCallButtons(int controller, const std::string &sound_file_up, const std::string &sound_file_down, const std::string &BackTexture, const std::string &UpButtonTexture, const std::string &UpButtonTexture_Lit, const std::string &DownButtonTexture, const std::string &DownButtonTexture_Lit, Real CenterX, Real CenterZ, Real voffset, const std::string &direction, Real BackWidth, Real BackHeight, bool ShowBack, Real tw, Real th)
std::vector< CustomObject * > CustomObjectArray
bool IsInGroup(int floor)
std::vector< Sound * > GetSound(const std::string &name)
void UpdateDirectionalIndicators()
CameraTexture * GetCameraTexture(int number)
MovingWalkway * AddMovingWalkway(const std::string &name, int run, Real speed, const std::string &sound_file, const std::string &texture, const std::string &direction, Real CenterX, Real CenterZ, Real width, Real treadsize, int num_steps, Real voffset, Real tw, Real th)
void RemoveCallStation(CallStation *station)
Reverb * GetReverb(const std::string &name)
std::vector< FloorIndicator * > FloorIndicatorArray
void RemoveLight(Light *light)
void RemoveDoor(Door *door)
std::string IndicatorTexture
Primitive * GetPrimitive(std::string name)
void ShowInfo(bool detailed=true, bool display_header=true)
Light * GetLight(const std::string &name)
void Cut(const Vector3 &start, const Vector3 &end, bool cutwalls, bool cutfloors, bool fast, int checkwallnumber=0, bool prepare=false)
Wall * AddInterfloorFloor(const std::string &name, const std::string &texture, Real thickness, Real x1, Real z1, Real x2, Real z2, Real voffset1, Real voffset2, bool reverse_axis, bool texture_direction, Real tw, Real th, bool legacy_behavior=false)
void RemoveMovingWalkway(MovingWalkway *walkway)
Reverb * AddReverb(const std::string &name, const std::string &type, const Vector3 &position, Real min_distance, Real max_distance)
Wall * AddInterfloorWall(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 voffset1, Real voffset2, Real tw, Real th)
void GetStairwellList(std::vector< int > &listing)
std::vector< Trigger * > TriggerArray
void GetShaftList(std::vector< int > &listing)
std::vector< Escalator * > EscalatorArray
CallStation * AddCallStation(int number)
Escalator * AddEscalator(const std::string &name, int run, Real speed, const std::string &sound_file, const std::string &riser_texture, const std::string &tread_texture, const std::string &direction, Real CenterX, Real CenterZ, Real width, Real risersize, Real treadsize, int num_steps, Real voffset, Real tw, Real th)
bool ReportError(const std::string &message)
Floor(Object *parent, FloorManager *manager, int number)
CameraTexture * AddCameraTexture(const std::string &name, int quality, Real fov, const Vector3 &position, bool use_rotation, const Vector3 &rotation)
void RemoveRevolvingDoor(RevolvingDoor *door)
std::vector< DirectionalIndicator * > DirIndicatorArray
std::vector< Door * > DoorArray
void SetAltitude(Real altitude)
Door * CreateDoor(std::string name, const std::string &open_sound, const std::string &close_sound, bool rotate)
void EnableInterfloor(bool value)
void RemoveControl(Control *control)
DynamicMesh * DoorWrapper
void AddFillerWalls(const std::string &texture, Real thickness, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, bool direction, Real tw, Real th, bool isexternal)
Sound * AddSound(const std::string &name, const std::string &filename, 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, Vector3 direction=Vector3(0, 0, 0))
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)
Model * GetModel(std::string name)
void EnableColumnFrame(bool value)
void RemoveCustomObject(CustomObject *object)
void RemoveReverb(Reverb *reverb)
Real GetBase(bool relative=false)
int GetCallStationCount()
Model * AddModel(const std::string &name, const std::string &filename, bool center, Vector3 position, Vector3 rotation, Real max_render_distance=0, Real scale_multiplier=1, bool enable_physics=false, Real restitution=0, Real friction=0, Real mass=0)
FloorIndicator * AddFloorIndicator(int elevator, int car, bool relative, const std::string &texture_prefix, const std::string &blank_texture, const std::string &direction, Real CenterX, Real CenterZ, Real width, Real height, Real voffset)
std::vector< CallStation * > CallStationArray
void RemoveDirectionalIndicator(DirectionalIndicator *indicator)
void RemoveSound(Sound *sound)
void RemoveGroupFloor(int number)
bool IsColumnFrameEnabled
Light * AddLight(const std::string &name, int type)
void RemoveTrigger(Trigger *trigger)
void RemoveCameraTexture(CameraTexture *cameratexture)
std::vector< Primitive * > PrimArray
std::vector< Light * > lights
void Report(const std::string &message)
CallStation * GetCallStation(int number)
void RemoveEscalator(Escalator *escalator)
std::vector< int > GetCallStations(int elevator)
void ReplaceTexture(const std::string &oldtexture, const std::string &newtexture)
ElevatorRoute * GetDirectRoute(int DestinationFloor, std::string ElevatorType)
std::vector< Sound * > sounds
void RemoveModel(Model *model)
Primitive * AddPrimitive(const std::string &name)
void GetElevatorList(std::vector< int > &listing, bool get_locals=true, bool get_express=true, bool get_service=true)
Trigger * AddTrigger(const std::string &name, const std::string &sound_file, Vector3 &area_min, Vector3 &area_max, std::vector< std::string > &action_names)
CustomObject * AddCustomObject(const std::string &name, const Vector3 &position, const Vector3 &rotation, Real max_render_distance=0, Real scale_multiplier=1)
void EnableGroup(bool value)
void CutAll(const Vector3 &start, const Vector3 &end, bool cutwalls, bool cutfloors, bool prepare=false)
std::vector< RevolvingDoor * > RDoorArray
std::vector< MovingWalkway * > MovingWalkwayArray
std::vector< Model * > ModelArray
std::vector< int > GetDirectFloors(bool include_service)
Door * GetDoor(const std::string &name)
RevolvingDoor * GetRevolvingDoor(int number)
void SetDirectionalIndicators(int elevator, int car, bool UpLight, bool DownLight)
Wall * ColumnWallBox2(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, bool outside, bool top, bool bottom)
RevolvingDoor * AddRevolvingDoor(std::string name, bool run, const std::string &soundfile, const std::string &texture, Real thickness, bool clockwise, int segments, Real speed, Real rotation, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, Real tw, Real th, bool external)
std::vector< Control * > ControlArray
std::vector< Reverb * > reverbs
void RemovePrimitive(Primitive *prim)
CustomObject * GetCustomObject(std::string name)
Wall * ColumnWallBox(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, bool outside, bool top, bool bottom)
Wall * AddWall(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 voffset1, Real voffset2, Real tw, Real th, bool isexternal)
Wall * AddFloor(const std::string &name, const std::string &texture, Real thickness, Real x1, Real z1, Real x2, Real z2, Real voffset1, Real voffset2, bool reverse_axis, bool texture_direction, Real tw, Real th, bool isexternal, bool legacy_behavior=false)
CallStation * GetCallStationForElevator(int elevator)
std::vector< CameraTexture * > CameraTextureArray
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)
std::vector< Wall * > Walls
bool ReplaceTexture(const std::string &oldtexture, const std::string &newtexture)
Wall * CreateWallObject(const std::string &name)
const std::string & GetName()
virtual bool ReportError(const std::string &message)
virtual void Report(const std::string &message)
void SetName(const std::string &name)
virtual Vector3 GetPosition(bool relative=false)
SceneNode * GetSceneNode()
void SetValues(const std::string &type, const std::string &name, bool is_permanent, bool is_movable=true)
virtual void Move(const Vector3 &vector, Real speed=1.0, bool force=false)
void EnableLoop(bool value)
virtual void SetPositionY(Real value, bool force=false)
RevolvingDoor * AddDoor(std::string name, bool run, const std::string &soundfile, const std::string &texture, Real thickness, bool clockwise, int segments, Real speed, Real rotation, Real CenterX, Real CenterZ, Real width, Real height, Real voffset, Real tw, Real th)
Shaft * GetShaft(int number)
Elevator * GetElevator(int number)
bool AddWallMain(Wall *wallobject, 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, bool autosize, bool report=true)
DoorManager * GetDoorManager()
DispatchController * GetController(int number)
bool AddFloorMain(Wall *wallobject, 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 autosize, bool legacy_behavior=false, bool report=true)
void ResetWalls(bool ToDefaults=false)
Floor * GetFloor(int number)
Stairwell * GetStairwell(int number)
void RemoveFloor(Floor *floor)
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, bool report=true)
void DrawWalls(bool MainN, bool MainP, bool SideN, bool SideP, bool Top, bool Bottom)
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, bool report=true)
RevolvingDoorManager * GetRevolvingDoorManager()
void Enabled(bool value, bool EnableShaftDoors)
bool Cut(bool relative, const Vector3 &start, const Vector3 &end, bool cutwalls, bool cutfloors, int checkwallnumber=0)
bool IsValidFloor(int floor)
Level * GetLevel(int floor)
bool Load(const std::string &filename, bool force=false)
bool Play(bool reset=true)
void SetSpeed(int percent)
void SetDopplerLevel(Real level)
void SetLoopState(bool value)
void SetConeSettings(Real inside_angle=360.0, Real outside_angle=360.0, Real outside_volume=1.0)
void SetVolume(Real value)
void SetDirection(const Vector3 &direction)
void SetDistances(Real min, Real max)
bool Cut(bool relative, const Vector3 &start, const Vector3 &end, bool cutwalls, bool cutfloors, int checkwallnumber=0)
bool IsValidFloor(int floor)
Level * GetLevel(int floor)
void Cut(Wall *wall, Vector3 start, Vector3 end, bool cutwalls, bool cutfloors, int checkwallnumber=0, bool reset_check=true)
void SetCase(std::string &string, bool uppercase)
std::string ToString(int number)
std::string SetCaseCopy(std::string string, bool uppercase)
#define SBS_PROFILE(name)