Skyscrapersim 2.0 RC5
I've been using this version for a while and it's working very well, I'm putting out this RC5 release due to the Bullet issues with the last release. This version is using the latest Bullet3 physics/collisions library but is using the old character controller, so it should work much better now. I've been adding a lot of safety checks to the simulator, to prevent crashes, and I've also made a number of crash fixes.
I've added the ability to pause sim engines, which is mainly used if one is causing issues.
I've reenabled the AddShaftTrigger and AddStairsTrigger commands due to how the sim engine has been modernized over time, originally these would've caused load on the simulator so they were disabled.
The old sky system works again, it had been neglected but has been fixed up.
The Object Info window now lets you enable/disable objects, this doesn't work on everything (such as manager objects).
If the Bounds option is used in the building, the sim engine will no longer allow you to create objects and move things outside of the sim engine boundaries. This is mainly to prevent issues in the future where objects might be outside of the boundaries but loaded into a large simulation with multiple buildings, causing the objects to overlap into other buildings.
Other things are mainly to prepare the app for release, such as enhancements to the user's guide.
I found that the AddServicedFloor() function in the C++ code caused an out-of-bounds write issue, which would cause memory corruption. I don't think that function is used much, but on older releases it would probably result in random crashes.
A serious issue was fixed involving buildings that have Bounds coordinates that don't overlap the origin (0, 0, 0). These buildings should now work properly again.
Changelog for 2.0:
- SBS: added pointer safety checks to elevator car's Loop() function
- VM: SwitchEngines() function should not switch to engines in a paused state
- GUI: added a Paused checkbox to the Engine Manager, to pause/suspend sim engines
- VM: added support for pausing/suspending sim engines
- SBS: added a force mode to movement and set position functions, currently used by Floor objects. Force mode allows objects to pass outside of the simulator engine boundaries.
- SBS: added GetCenter() function, which returns the position of the bounds center
- PolyMesh: CreateWallBox() and AddPolygon() functions should report and exit if attempting to create an object outside of the sim engine boundaries
- PolyMesh: if attempting to create walls/floors outside of the engine bounds, only report if specified.
- SBS: fixed an issue with call stations not appearing on sim engines that have off-cener bounds, the call station needs to be moved to a position within the engine bounds before creating walls
- SBS: added GetAreaTrigger() function
- SBS: rewrote a trigger IsOutside() function and added a variant of IsInside()
- SBS: prevent movement and setposition outside of sim engine boundaries
- PolyMesh: report an error if attempting to create a wall outside of engine boundaries
- PolyMesh: DynamicMesh should report as itself
- SBS: Abort DynamicMesh mesh creation if provided scenenode doesn't exist. This avoids a crash if there's an issue with the scenenode.
- GUI: resized text boxes in Engine Manager window
- GUI: updated Object Info sizing
- SBS: added object IsEnabled() function support to remaining objects
- GUI: added "Is Movable" and Enabled checkbox to Object Info window, the checkbox still needs an IsEnabled() implementation from Object in SBS
- GUI: resized the Move Object window's coordinates display boxes
- GUI: sound manager crash fixes, for when sound is disabled
- SBS: fixed an array index issue in Escalator's CreateSteps() function
- SBS: fixed an out-of-bounds write in elevator door's AddServicedFloor() function
- SBS: Fix CreateButtonPanel() function declaration
- SBS: added pointer safety checks to GetFloorNumber() function
- SBS: updated banner to reflect new license file name
- SBS: only print memory report on startup when in verbose mode
- PolyMesh: code cleanups and safety checks for Wall object
- PolyMesh: move wall initialization code into wall object constructor
- HAL: Use size_t for renderer name processing
- VM: when cleaning up empty engine slots, make sure engine count is greater than 0
- HAL: clean up filtermode code
- SBS: remade CreateSky() function, this fixes the old sky system
- Some initialization fixes for the old skybox system
- SBS: shaft and stairwell objects should not use the mesh as their parent, use the shaft/stairwell level instead. Fixes some crashes.
- ScriptProc: fix parameter handling of AddShaftTrigger command
- GUI: check sound handle before access, to prevent a crash
- SBS: re-enabled AddShaftTrigger and AddStairsTrigger commands; they should perform more efficiently due to recent engine code modernization
- VM: simplify display output of ListPlayingSounds() function
- Guide: added SBS page
- Guide: added "Starting Skyscraper" page
- ScriptProc: added side tiling and name parameters to AddExternalDoor command
- ScriptProc: added name parameters to door commands
- ScriptProc: added side tiling parameters to AddStairsDoor and AddDoor commands
- ScriptProc: fixed side tiling parameters of AddShaftStdDoor command
- SBS: moved some system functions into Utility object
- added user's guide page on VR support
- SBS: add texture override support to AddPolygon function, which allows texture overrides to work in the AddPolygon, AddCustomWall, AddCustomFloor, and AddTriangleWall commands
See also
- Previous build
- Next build
- Development Builds