October 25 2024 build

From Skyscraper Wiki
Revision as of 17:26, 2 November 2024 by Elevator1512 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This article is legitimate.
It contains good-faith information, such as an existing building or content.
This article describes a development build of Skyscraper Simulator.
It contains good information related to Skyscraper Simulator.

This build introduces some new features which I'll go over, and fixes a number of issues.

I've added more work to the runloops feature, and enabled the related object Move and Rotate commands which were previously disabled. With this, you can now move and rotate objects not only on startup, but during runtime, such as have an object spin as the simulator is running. Eventually I'll extend the runloop support for more advanced object management, but already it's very nice. This introduces the Rotate, SetRotation, Move, SetPosition, SetPositionY, and SetPositionRelative script commands, and the "Simple - Custom Objects" building demonstrates how to move and rotate objects during runtime (see the runloop function at the bottom of the file to see how it works). I'm planning on eventually making it possible for each sim object to have it's own runloop and possibly startup/shutdown functions, but this will probably take time to implement. Keep in mind that while objects can be rotated on startup, not all of them properly support rotations, such as elevator doors.

The LoadAnimated command now supports only two animation frames, previously it required 3 or more. The previous build fixed an issue where this command was skipping a frame, so the command had been somewhat broken for a long time.

I've added building power management to Skyscraper which was a requested feature, and a checkbox for it has been added to the control panel. This is still being worked on, but should work well. Currently it switches off and on elevators, escalators, moving walkways, indicators, revolving doors, and elevator doors, each of those objects has it's own power management function in the C++ code.

I was testing Skyscraper on a system that had no sound support, and the FMOD (sound system) error message just showed a number for the reason (it was too cryptic), so I added more descriptive error messages for sound.

I found that the FMOD sound system is able to create reverbs, and so I added a Reverb simulator object which manages those reverbs. The reverbs help create more realistic sound environments, and are spheres that can be placed anywhere. Currently Floors, Elevator Cars, and the sim engine itself (SBS) can have reverbs which are automatically turned on and off. To see an example of an elevator car reverb, see the end of the Simple building's Elevator section. I've only done limited testing of this feature, so more testing is needed.

I've finished most of the C++ code moves from the frontend into the nanokernel (VM, or Virtual Manager), so that it's now responsible for managing the engine contexts and higher-level simulator functions. I've mentioned about it before, but it was created to be a form of hypervisor that manages the sim engines instances, it replaces the older frontend design where it was all together as part of the frontend code, now it's in it's own separate system. Eventually I'll try to make it operate more like a very basic operating system kernel, with instance CPU management and memory management, but this might take a while.

The patch file contains more files from the previous few builds, to help people upgrade more easily.

For more information on the other recent features, see the 10/21 build post.

Changelog:

  1. Fixed an issue where the elevator range was incorrect when interacting over all elevators
  2. Use hints in GetObject() to find references faster
  3. Fixed an issue where runloops would cause runtime scripting (via the console) to fail
  4. Enabled Rotate, SetRotation, Move, SetPosition, SetPositionY, and SetPositionRelative commands
  5. added object moves and rotations to Simple - Custom Objects building
  6. Allow a minimum of two frames for the LoadAnimated command
  7. Added building power state checkbox to control panel
  8. added power states for elevators, escalators, moving walkways, indicators, revolving doors, and elevator doors
  9. Turn off elevator fan and music when power is switched off
  10. Have elevator doors stop immediately (in normal running mode) when power is off
  11. Print verbose FMOD error messages
  12. Added GetMemoryUsage() texture manager function, and some initialization fixes
  13. Store texture and material sizes in the related texture index
  14. Add VM definition (Virtual Manager) to comments
  15. Added support for FMOD reverbs, based on 3D location (introduces Reverb objects)
  16. Made AddReverb commands for SBS, Floor and ElevatorCar objects
  17. Added deletion support to Custom Objects and Reverbs
  18. Add reverb to the Simple building's elevator
  19. Updated documentation for reverb commands, and made some related fixes
  20. Added code (currently disabled) to adjust the reverb wet value based on the listener's position to a sound object
  21. Added documentation for rotation and move commands
  22. Moved more engine management frontend code into VM
  23. Added more verbose messages to VM

See also

External links