48 SetValues(
"FloorManager",
"Floor Manager",
true);
61 for (
size_t i = 0; i <
Array.size(); i++)
65 Array[i].object->parent_deleting =
true;
66 delete Array[i].object;
93 Array.emplace_back(floor);
105 return (
int)
Array.size();
116 if (
Array.size() > 0)
122 if (floor.
number == number)
139 if (-(number + 1) < (
int)
Array.size())
141 floor =
Array[-(number + 1)];
142 if (floor.
number == number)
162 for (
size_t i = 0; i <
Array.size(); i++)
164 if (
Array[i].number == number)
179 if (index < 0 || index >= (
int)
Array.size())
182 return Array[index].object;
187 for (
size_t i = 0; i <
Array.size(); i++)
191 if (
Array[i].object->ID ==
id)
192 return Array[i].object;
200 for (
size_t i = 0; i <
Array.size(); i++)
204 if (
Array[i].object->NumberID ==
id)
205 return Array[i].object;
214 for (
size_t i = 0; i <
Array.size(); i++)
216 if (
Array[i].
object == floor)
218 if (
Array[i].object->Number < 0)
236 for (
size_t i = 0; i <
Array.size(); i++)
255 SetValues(
"ElevatorManager",
"Elevator Manager",
true);
265 for (
size_t i = 0; i <
Array.size(); i++)
269 Array[i].object->parent_deleting =
true;
270 delete Array[i].object;
286 Array.emplace_back(elev);
293 return (
int)
Array.size();
300 if (number < 1 || number >
GetCount())
306 if ((
int)
Array.size() > number - 1)
309 if (
Array[number - 1].number == number)
311 if (
Array[number - 1].
object)
326 for (
size_t i = 0; i <
Array.size(); i++)
328 if (
Array[i].number == number)
343 if (index < 0 || index >= (
int)
Array.size())
346 return Array[index].object;
352 for (
size_t i = 0; i <
Array.size(); i++)
354 if (
Array[i].
object == elevator)
370 for (
size_t i = 0; i <
Array.size(); i++)
377 Array[i].object->Enabled(value);
392 SetValues(
"ShaftManager",
"Shaft Manager",
true,
false);
402 for (
size_t i = 0; i <
Array.size(); i++)
406 Array[i].object->parent_deleting =
true;
407 delete Array[i].object;
417 for (
size_t i = 0; i <
Array.size(); i++)
419 if (
Array[i].number == number)
428 if (_startfloor > _endfloor)
430 ReportError(
"CreateShaft: starting floor is greater than ending floor");
436 std::string num =
ToString(_startfloor);
437 ReportError(
"CreateShaft: Invalid starting floor " + num);
442 std::string num =
ToString(_endfloor);
443 ReportError(
"CreateShaft: Invalid ending floor " + num);
449 shaft.
object =
new Shaft(
this, number, CenterX, CenterZ, _startfloor, _endfloor);
450 Array.emplace_back(shaft);
457 return (
int)
Array.size();
464 if (number < 1 || number >
GetCount())
470 if ((
int)
Array.size() > number - 1)
473 if (
Array[number - 1].number == number)
475 if (
Array[number - 1].
object)
490 for (
size_t i = 0; i <
Array.size(); i++)
492 if (
Array[i].number == number)
507 if (index < 0 || index >= (
int)
Array.size())
510 return Array[index].object;
516 for (
size_t i = 0; i <
Array.size(); i++)
518 if (
Array[i].
object == shaft)
533 for (
size_t i = 0; i <
Array.size(); i++)
547 SetValues(
"StairwellManager",
"Stairwell Manager",
true,
false);
557 for (
size_t i = 0; i <
Array.size(); i++)
561 Array[i].object->parent_deleting =
true;
562 delete Array[i].object;
572 for (
size_t i = 0; i <
Array.size(); i++)
574 if (
Array[i].number == number)
577 ReportError(
"Stairwell " + num +
" already exists");
583 if (_startfloor > _endfloor)
585 ReportError(
"CreateStairwell: starting floor is greater than ending floor");
590 std::string num =
ToString(_startfloor);
591 ReportError(
"CreateStairwell: Invalid starting floor " + num);
596 std::string num =
ToString(_endfloor);
597 ReportError(
"CreateStairwell: Invalid ending floor " + num);
603 stairs.
object =
new Stairwell(
this, number, CenterX, CenterZ, _startfloor, _endfloor);
604 Array.emplace_back(stairs);
611 return (
int)
Array.size();
618 if (number < 1 || number >
GetCount())
624 if ((
int)
Array.size() > number - 1)
627 if (
Array[number - 1].number == number)
629 if (
Array[number - 1].
object)
644 for (
size_t i = 0; i <
Array.size(); i++)
646 if (
Array[i].number == number)
661 if (index < 0 || index >= (
int)
Array.size())
664 return Array[index].object;
670 for (
size_t i = 0; i <
Array.size(); i++)
672 if (
Array[i].
object == stairs)
687 for (
size_t i = 0; i <
Array.size(); i++)
701 SetValues(
"DoorManager",
"Door Manager",
true);
712 for (
size_t i = 0; i <
Array.size(); i++)
716 Array[i]->parent_deleting =
true;
727Door*
DoorManager::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)
729 int number = (int)
Array.size() + 1;
733 Door* door =
new Door(
this,
wrapper, name, open_sound, close_sound, rotate);
734 door->
CreateDoor(open_state, texture, side_texture, thickness, face_direction, open_direction, open_speed, close_speed, CenterX, CenterZ, width, height, voffset, tw, th, side_tw, side_th);
735 Array.emplace_back(door);
741 int number = (int)
Array.size() + 1;
745 Door* door =
new Door(
this,
wrapper, name, open_sound, close_sound, rotate);
746 Array.emplace_back(door);
752 for (
size_t i = 0; i <
Array.size(); i++)
764 for (
size_t i = 0; i <
Array.size(); i++)
766 if (
Array[i] == door)
777 return (
int)
Array.size();
782 if (index < 0 || index >= (
int)
Array.size())
798 SetValues(
"RevolvingDoorManager",
"Revolving Door Manager",
true);
809 for (
size_t i = 0; i <
Array.size(); i++)
813 Array[i]->parent_deleting =
true;
824RevolvingDoor*
RevolvingDoorManager::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)
826 int number = (int)
Array.size() + 1;
828 name =
"RevolvingDoor " +
ToString(number);
830 RevolvingDoor* door =
new RevolvingDoor(
this,
wrapper, name, run, soundfile, texture, thickness, clockwise, segments, speed, rotation, CenterX, CenterZ, width, height, voffset, tw, th);
831 Array.emplace_back(door);
839 for (
size_t i = 0; i <
Array.size(); i++)
841 if (
Array[i] == door)
852 return (
int)
Array.size();
857 if (index < 0 || index >= (
int)
Array.size())
873 SetValues(
"VehicleManager",
"Vehicle Manager",
true);
883 for (
size_t i = 0; i <
Array.size(); i++)
887 Array[i].object->parent_deleting =
true;
888 delete Array[i].object;
904 Array.emplace_back(v);
911 return (
int)
Array.size();
918 if (number < 1 || number >
GetCount())
924 if ((
int)
Array.size() > number - 1)
927 if (
Array[number - 1].number == number)
929 if (
Array[number - 1].
object)
944 for (
size_t i = 0; i <
Array.size(); i++)
946 if (
Array[i].number == number)
961 if (index < 0 || index >= (
int)
Array.size())
964 return Array[index].object;
970 for (
size_t i = 0; i <
Array.size(); i++)
972 if (
Array[i].
object == vehicle)
994 SetValues(
"ControllerManager",
"Controller Manager",
true,
false);
1004 for (
size_t i = 0; i <
Array.size(); i++)
1006 if (
Array[i].
object)
1008 Array[i].object->parent_deleting =
true;
1009 delete Array[i].object;
1011 Array[i].object = 0;
1019 for (
size_t i = 0; i <
Array.size(); i++)
1021 if (
Array[i].number == number)
1023 std::string num =
ToString(number);
1024 ReportError(
"Controller " + num +
" already exists");
1030 controller.
number = number;
1032 Array.emplace_back(controller);
1033 return controller.
object;
1039 return (
int)
Array.size();
1046 if (number < 1 || number >
GetCount())
1052 if ((
int)
Array.size() > number - 1)
1055 if (
Array[number - 1].number == number)
1057 if (
Array[number - 1].
object)
1072 for (
size_t i = 0; i <
Array.size(); i++)
1074 if (
Array[i].number == number)
1089 if (index < 0 || index >= (
int)
Array.size())
1092 return Array[index].object;
1098 for (
size_t i = 0; i <
Array.size(); i++)
1100 if (
Array[i].
object == controller)
ControllerManager(Object *parent)
void Remove(DispatchController *controller)
DispatchController * GetIndex(int index)
DispatchController * get_result
DispatchController * Create(int number)
DispatchController * Get(int number)
Door * GetDoor(const std::string &name)
void RemoveDoor(Door *door)
std::vector< Door * > Array
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)
DoorManager(Object *parent)
Door * GetIndex(int index)
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)
void Enabled(bool value, MeshObject *client=0)
ElevatorManager(Object *parent)
Elevator * GetIndex(int index)
void EnableAll(bool value)
Elevator * Create(int number)
void Remove(Elevator *elevator)
Elevator * Get(int number)
Floor * GetByID(const std::string &id)
FloorManager(Object *parent)
Floor * Create(int number)
void EnableAll(bool value)
Floor * GetByNumberID(const std::string &id)
Floor * GetIndex(int index)
void Remove(Floor *floor)
DynamicMesh * columnframes
DynamicMesh * interfloors
const std::string & GetName()
virtual bool ReportError(const std::string &message)
SceneNode * GetSceneNode()
void SetValues(const std::string &type, const std::string &name, bool is_permanent, bool is_movable=true)
void EnableLoop(bool value)
void RemoveDoor(RevolvingDoor *door)
RevolvingDoorManager(Object *parent)
std::vector< RevolvingDoor * > Array
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)
RevolvingDoor * GetIndex(int index)
bool IsValidFloor(int floor)
void Remove(Shaft *shaft)
Shaft * GetIndex(int index)
ShaftManager(Object *parent)
Shaft * Create(int number, Real CenterX, Real CenterZ, int _startfloor, int _endfloor)
void EnableAll(bool value)
void EnableWhole(bool value, bool EnableShaftDoors, bool force=false)
void Remove(Stairwell *stairs)
void EnableAll(bool value)
Stairwell * Create(int number, Real CenterX, Real CenterZ, int _startfloor, int _endfloor)
StairwellManager(Object *parent)
Stairwell * GetIndex(int index)
Stairwell * Get(int number)
void EnableWhole(bool value, bool force=false)
VehicleManager(Object *parent)
Vehicle * Create(int number)
Vehicle * Get(int number)
void Remove(Vehicle *elevator)
Vehicle * GetIndex(int index)
std::string ToString(int number)
#define SBS_PROFILE(name)
DispatchController * object