Skyscrapersim 2.0 RC5

From Skyscraper Wiki
Revision as of 12:15, 23 July 2025 by MelvinMan10 (talk | contribs)
Jump to navigation Jump to search

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:

  1. SBS: added pointer safety checks to elevator car's Loop() function
  2. VM: SwitchEngines() function should not switch to engines in a paused state
  3. GUI: added a Paused checkbox to the Engine Manager, to pause/suspend sim engines
  4. VM: added support for pausing/suspending sim engines
  5. 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.
  6. SBS: added GetCenter() function, which returns the position of the bounds center
  7. PolyMesh: CreateWallBox() and AddPolygon() functions should report and exit if attempting to create an object outside of the sim engine boundaries
  8. PolyMesh: if attempting to create walls/floors outside of the engine bounds, only report if specified.
  9. 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
  10. SBS: added GetAreaTrigger() function
  11. SBS: rewrote a trigger IsOutside() function and added a variant of IsInside()
  12. SBS: prevent movement and setposition outside of sim engine boundaries
  13. PolyMesh: report an error if attempting to create a wall outside of engine boundaries
  14. PolyMesh: DynamicMesh should report as itself
  15. SBS: Abort DynamicMesh mesh creation if provided scenenode doesn't exist. This avoids a crash if there's an issue with the scenenode.
  16. GUI: resized text boxes in Engine Manager window
  17. GUI: updated Object Info sizing
  18. SBS: added object IsEnabled() function support to remaining objects
  19. GUI: added "Is Movable" and Enabled checkbox to Object Info window, the checkbox still needs an IsEnabled() implementation from Object in SBS
  20. GUI: resized the Move Object window's coordinates display boxes
  21. GUI: sound manager crash fixes, for when sound is disabled
  22. SBS: fixed an array index issue in Escalator's CreateSteps() function
  23. SBS: fixed an out-of-bounds write in elevator door's AddServicedFloor() function
  24. SBS: Fix CreateButtonPanel() function declaration
  25. SBS: added pointer safety checks to GetFloorNumber() function
  26. SBS: updated banner to reflect new license file name
  27. SBS: only print memory report on startup when in verbose mode
  28. PolyMesh: code cleanups and safety checks for Wall object
  29. PolyMesh: move wall initialization code into wall object constructor
  30. HAL: Use size_t for renderer name processing
  31. VM: when cleaning up empty engine slots, make sure engine count is greater than 0
  32. HAL: clean up filtermode code
  33. SBS: remade CreateSky() function, this fixes the old sky system
  34. Some initialization fixes for the old skybox system
  35. SBS: shaft and stairwell objects should not use the mesh as their parent, use the shaft/stairwell level instead. Fixes some crashes.
  36. ScriptProc: fix parameter handling of AddShaftTrigger command
  37. GUI: check sound handle before access, to prevent a crash
  38. SBS: re-enabled AddShaftTrigger and AddStairsTrigger commands; they should perform more efficiently due to recent engine code modernization
  39. VM: simplify display output of ListPlayingSounds() function
  40. Guide: added SBS page
  41. Guide: added "Starting Skyscraper" page
  42. ScriptProc: added side tiling and name parameters to AddExternalDoor command
  43. ScriptProc: added name parameters to door commands
  44. ScriptProc: added side tiling parameters to AddStairsDoor and AddDoor commands
  45. ScriptProc: fixed side tiling parameters of AddShaftStdDoor command
  46. SBS: moved some system functions into Utility object
  47. added user's guide page on VR support
  48. SBS: add texture override support to AddPolygon function, which allows texture overrides to work in the AddPolygon, AddCustomWall, AddCustomFloor, and AddTriangleWall commands

See also

External links