Skyscraper Wiki:Changelog: Difference between revisions

From Skyscraper Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
This is a changelog of every major update that eventhorizon has made to skyscrapersim. Note that this is not a complete list of everything
''To request any changes to this page, go to the [[Special:NewSection/Skyscraper Wiki talk:Changelog|discussion page]] above and discuss what needs changing.''
 
This is a changelog of every major update that eventhorizon has made to skyscrapersim. Note that this is not a complete list of everything.
== Version 1.12 (2.0 Alpha 12) ==
== Version 1.12 (2.0 Alpha 12) ==



Revision as of 09:23, 13 April 2024

To request any changes to this page, go to the discussion page above and discuss what needs changing.

This is a changelog of every major update that eventhorizon has made to skyscrapersim. Note that this is not a complete list of everything.

Version 1.12 (2.0 Alpha 12)

  1. (xteal/NoNoTeal) added a configurable People parameter to the INI file
  2. When AvailableForCall() does the final check on the queue direction, it should consider elevators on the same floor with queues empty to be available, maybe this situation should be moved into the IsIdle() function
  3. Fixed an issue where the check in GetArrivalDirection() would check the same floor, in this case, use the queue direction if still active
  4. The SameFloorArrival check code should take into account empty queues for the active queue direction
  5. When ReOpen is true and elevator re-opens on a floor, chime should not sound if ChimeOnArrival is false
  6. Turn off object detachment error messages
  7. Don't process a key down event if the key is actually up, this fixes a "stuck key" issue on some systems
  8. added new ID elevator parameter for Destination Dispatch
  9. Centralized same-floor notifications and re-opening
  10. Person route support for Destination Dispatch
  11. new "Simple - Double Decker DD" building
  12. new "Triton Center - Destination Dispatch" building
  13. disable button panels for Call Button objects in Enabled() function to improve performance
  14. new "Simple - Destination Dispatch" build, replacing the old Destination one
  15. support for Destination Dispatch elevators
  16. new CallStation object
  17. new DispatchController system
  18. Added verbose shaft door creation messages
  19. updated starting position for Dellerton Plaza building
  20. reverted the PolyMesh geometry system cleanups, due to performance problems
  21. made Level errors non-fatal
  22. fixed a script error in the Skyscrapersim Housing Estate building
  23. Object selection fixes for the People Manager dialog
  24. Updated guide to reflect collider filename change
  25. Upgraded the swimmingpool collider mesh format, and renamed it to a "collider.mesh" file in order to load properly
  26. Sizing fixes for CameraTexture dialog
  27. CameraTexture dialog fixes
  28. Fixed a crash when deleting elevator objects
  29. Added verbose messages to soundsystem and sounds
  30. Fix for the sound's GetSpeed() function
  31. new Sound Manager dialog
  32. Added an INI file setting to enable or disable the frame statistics on startup
  33. Render window now resizes properly on Linux when the scaling factor is not 100%

Version 1.11.2 (2.0 Alpha 11 Update 2)

  1. don't process a key down event if the key is actually up, this fixes a "stuck key" issue on some systems
  2. updated starting position for Dellerton Plaza building
  3. reverted the PolyMesh geometry system cleanups, due to performance problems
  4. made Level errors non-fatal
  5. fixed a script error in the Skyscrapersim Housing Estate building

Version 1.11.1 (2.0 Alpha 11 Update 1)

  1. Object selection fixes for the People Manager dialog
  2. Updated guide to reflect collider filename change
  3. Upgraded the swimmingpool collider mesh format, and renamed it to a "collider.mesh" file in order to load properly
  4. CameraTexture dialog fixes
  5. Fixed a crash when deleting elevator objects
  6. Render window now resizes properly on Linux when the scaling factor is not 100%

Version 1.11 (2.0 Alpha 11)

  1. fix FMOD version number reporting
  2. Only play floor sound during an elevator's standard arrival notification
  3. Exit app when Alt-F4 is pressed, this is a fix for Windows builds
  4. Added the ability to dump shaders to a folder, used for RTSS debugging
  5. Exit if a fatal render operation is encountered
  6. Consolidate ComputePlane functions into a single function
  7. Call button should store the call direction for the NotifyLate feature
  8. Elevator should always perform arrival notification if on the same floor as the call, unless NotifyEarly is -1
  9. use NotifyArrival() for callbuttons opening elevator on same floor
  10. elevators now follow the NotifyEarly and NotifyLate parameters if elevator is on the same floor
  11. Directional indicators no longer light up for non-calls when ChimeOnArrival is false
  12. Added support for setting separate early chime sounds
  13. Added a value of 3 to the NotifyEarly command, which combines both options 0 and 2, having the elevator notify/chime twice
  14. Fixed a cut issue on the Triton Center's floor 119 stairwell, where a ceiling piece prevented the user from going up to 120
  15. Added PressUp and PressDown callbutton actions, which play the press sound in addition to initiating the related call
  16. People objects now are able to play call button press sounds
  17. Added NotifyLate parameter to Elevator Editor
  18. added option to NotifyEarly to turn off standard elevator arrival notifications
  19. added elevator option NotifyLate which performs elevator car arrival notifications after the doors open
  20. The CreateCallButtons command can now specify separate up and down sounds
  21. Added AccelJerk and DecelJerk elevator parameters, which were missing
  22. Fixed a crash in the function processor, the crash would happen if a closing parenthesis ")" was specified before the function's closing parenthesis.
  23. camera pitch fix by NoNoTeal (contribution)
  24. Updated documentation for Windows builds
  25. Fix for the AlarmSoundStop parameter
  26. Switched CopyTexture() main function to blit instead of blitFromMemory, this appears to fix reported texture copying problems
  27. Exit with a script error if specifying an invalid level, this fixes a number of crashes
  28. Mention stairwell number in error messages
  29. Added more verbose error messages, and fixed another crash
  30. Added functions to enable/disable shadows on meshes and textures
  31. Fix for LoadTextureCropped command, the CopyTexture() function was doing a full-size texture copy when it was supposed to only copy a portion.
  32. Fixed a bug in GetMeshObject() where the shaft or stairwell number would be invalid if a model number was specified
  33. Added INI file option for ambient lighting
  34. Added lights to elevators in the Triton Center, and only have light creation message in verbose mode
  35. Renamed Stairs object to Stairwell
  36. Report on Shaft and Stairwell creation
  37. Switched Shaft and Stairwell objects over to Levels design
  38. Added a Simple CameraTexture demo building
  39. Added an elevator shaft security camera to the Triton Center
  40. Added CameraTextureControl dialog
  41. Added Action support for CameraTexture object, and added Triggers to both buildings to only turn on the camera when nearby the screen
  42. Added Action support for lights
  43. GetObject() will now search for the object name, and the "parent name:object name" combination to find a result
  44. Fixed a crash that would happen if a DynamicMesh mesh object was deleted after the related client's scenenode was deleted
  45. Have Echo option checked by default in Console window
  46. Delete flash timer in destructor
  47. Text box sizing fixes for Mac
  48. Show horizontal scrollbar in Console window
  49. Added Clear button to Console
  50. Fixed some initialization issues
  51. Added an INI option for shadows, and disabled by default
  52. Shadows are now working, but have a render error on startup
  53. Added an Ogre frame statistics bar
  54. Disable dynamic lighting on lit textures, in order to retain the lighting effect such as on indicators
  55. simplified light functions
  56. added SetDirection and LookAt scenenode functions, these need to be tested
  57. Properly compute normals for 3D geometry, this partially fixes lighting issues.
  58. Report loaded textures, no need for it to only be in verbose mode
  59. cleaned up the PolyMesh geometry system, mostly to remove the double-vector (multi-polygon) structures
  60. Removed Console's ability to hold positions, due to problems. Fixed the text display, and removed the "Fix Scroll" button.
  61. Changes for macOS (#8) (this was the first 3rd-party contribution to Skyscraper ever, I modified their changes and committed), this mainly fixes an issue with Retina displays.
  62. Reset view mode on SBS shutdown
  63. added a test light for the first floor, and one for each elevator
  64. Fix for a crash that would happen when Caelum fails to load, the user exits to the main menu and loads another building. In this, the default skybox will be loaded on that restart situation.
  65. Run malloc_trim to free memory to OS on individual sim engine shutdown also
  66. Free unused hardware buffers in UnloadSim()
  67. On Linux, release as much free memory as possible when exiting to the main menu, using malloc_trim()
  68. fixed an issue where the app would hang on Mac
  69. enhanced build system for Linux
  70. Mac version is now packaged properly
  71. make sure lighting is off by default on models
  72. added CPU architecture to Stats window
  73. updated Caelum resources to work with GL3+ renderer
  74. updated build system, mostly for Mac
  75. allow lighting to be turned on from INI file, as an experimental feature
  76. upgraded wxWidgets (the windowing system) from 3.0.2 to 3.2.1
  77. upgraded Ogre (the graphics rendering engine) from version 1.9 to 13 (aka 1.13)
  78. upgraded the FMod soundsystem
  79. enhanced Linux build system
  80. put source code on GitHub, with most of the development history
  81. removed svnrev (this added the svn revision to the Skyscraper version, removed due to the move to Git)
  82. increased size of main menu, and added a new background image (this may change in the near future)
  83. increased size of main window
  84. updated Linux build instructions
  85. removed the DirectX9 rendersystem plugin, because it doesn't work anymore, use OpenGL instead.
  86. Mesh needs to catch exceptions on unload, to prevent certain crashes
  87. Don't use deprecated double buffering function
  88. Removed compatibility support for Ogre 1.8
  89. Fix for mesh removal on shutdown
  90. Enable auto title
  91. Added support for running under Wayland (Xwayland)
  92. removed SVN ID tags
  93. Don't create Bullet character and shape if turned off

2018 and earlier development:

  1. call buttons now fail the active elevator if it encounters a movement processing error, fixing an issue where the call button would hang if an error occurred
  2. for controls, OnUnclick should not reverse the selection position if the previous action failed, since the reversal already took place
  3. added function name to SetHoistwayAccess errors
  4. (Sears Tower) removed the floor on 108
  5. (Sears Tower) shaft fixes
  6. (Sears Tower) switched freight elevator doors to center dualspeed
  7. (Sears Tower) interfloor fixes
  8. (Sears Tower) added freight elevators 4 to 6
  9. (Sears Tower) added freight elevators 2 and 3
  10. (Sears Tower) added additional freight elevator shafts, and others
  11. reset new_time variable when unloading sky system
  12. have sky system reload if the primary engine/building is reloaded
  13. added coordinates for Sears Tower
  14. added more deprecation warnings
  15. added separate riser texture and tread texture options for Stairs and Escalator objects, to help fix texture issues
  16. added INI file option to use the system time as default, if not specified in a building file
  17. put SkyName into Caelum INI file section
  18. trim off second's decimal point
  19. added a button to the Sky Control window to get the system time
  20. added ability to use system time as the DateTime value for buildings
  21. added ability to set the time scale (using the TimeScale value) for buildings
  22. elevator doors should not automatically enable nudge mode timer when Fire Service Phase 2 is on
  23. renamed Min/Max functions to simplify
  24. switch Swap usage to std::swap
  25. add missing parent_deleting flags
  26. properly store shaft cut values
  27. (Triton Center) added new objects to building
  28. added support for creating elevator and counterweight rails
  29. added CounterweightStartSound, CounterweightMoveSound and CounterweightStopSound elevator parameters
  30. added counterweight and rope textures
  31. added RopePosition and RopeTexture elevator parameters
  32. added GetExtents and ChangeHeight polygon functions
  33. (Simple building) extended shaft above building roof
  34. added CreateCounterweight function
  35. (Vehicle) the 'created' variable needs to be initialized
  36. require chassis to be created when creating vehicle
  37. added more checks to prevent crashes on vehicle creation
  38. make sure errors are reported when trying to recreate a vehicle with the same number
  39. (doxygen) disabled RTF and Man page formats
  40. allow deleting of walls in meshes such as "external" where SBS is the parent object
  41. don't create colliders for rope meshes - this also fixes the variable that switches off automatic collider creation
  42. added more profiler probes
  43. switched profiler box to text box
  44. added INI file keyboard configuration
  45. split keyboard configuration off to separate file
  46. check existence of camera object - this fixes a crash that happened when driving a vehicle to another sim engine
  47. DeleteWalls needs to clear Walls array when finished
  48. DeleteWalls needs to delete polygons before deleting wall object
  49. added GetBounds function
  50. added vehicle demo building
  51. font name fix
  52. added support for separate up and down elevator movement speeds
  53. don't report a generic error message when creating the primary car. This allows the specific error messages on car creation to be reported.
  54. added vehicle support
  55. added OgreBullet data
  56. added VehicleManager object
  57. adding support for crouching
  58. ensure that font texture coordinates are valid, to prevent a crash
  59. update to Visual Studio 2017
  60. support decoding of MP3 files, since the patent has expired
  61. GetUpControl and GetDownControl should search for control's action name instead of index number
  62. moved lock code to separate files
  63. build warning fixes
  64. added more tooltips to the Elevator Editor
  65. added support for updating status of all elevator controls either on startup or while running, so that the controls match the mode states
  66. partially reverted revision 4631; this fixes an issue where the nudge timer would fully reset every time the elevator doors re-open
  67. fix for OpenOnStart parameter, for it to work when an elevator is stopped on startup
  68. added RunState elevator parameter
  69. add error reason to sound init
  70. allow non-emergency stop in fire phase 1 recall mode. This fixes an issue where an elevator wouldn't recall when the mode is activated and the elevator is moving.
  71. converted 'float' values to Ogre's Real type (defaults to type 'double' precision)
  72. fixed an issue where the Caelum sky name wouldn't be reset for subsequentengines on startup
  73. added support for call button destination floors engines on startup (feature currently disabled)
  74. Integrated all engine reporting into ObjectBase class

Version 1.10.6 (2.0 Alpha 10 - Update 6)

  1. removed extra elevator enable
  2. elevators need to be enabled when camera attaches

Version 1.10.5 (2.0 Alpha 10 - Update 5)

  1. properly position escalator and walkway sounds
  2. use separate meshes for escalator and moving walkway steps
  3. use maximum rendering distance of 100 for escalator and moving walkway steps
  4. only move steps if near escalator or moving walkway
  5. return fix for Gotofloor action

Version 1.10.4 (2.0 Alpha 10 - Update 4)

  1. camera start position should not rely on a starting floor
  2. added Skylab building set
  3. added Ground building map
  4. runloop fixes
  5. added GotoFloor action support
  6. added teleporter action support
  7. fixed issue where a call panel would call in both directions if only a single down control was available

Version 1.10.3 (2.0 Alpha 10 - Update 3)

  1. step movement states should be reset when switching off escalator/moving walkway
  2. added action support for escalators and moving walkways
  3. position sounds correctly for escalators and moving walkways
  4. steps should reset values on startup


Version 1.10.2 (2.0 Alpha 10 - Update 2)

  1. fixes for escalator and moving walkway motion

Version 1.10.1 (2.0 Alpha 10 - Update 1)

  1. added support for moving walkways
  2. added support for escalators
  3. added Headless Mode for future use
  4. integrated reporting functions into Object
  5. integrated Enabled() function into Object
  6. fixes for vertical elevator door movement

Version 1.10 (2.0 Alpha 10)

  1. added support for revolving doors
  2. when in fire service phase 2 mode, only open phase 2's car doors on recall floor, not other cars
  3. added "PeakOff" action, and updated documentation
  4. reset mouse cursor when exiting to main menu
  5. FinishMove should turn on floor that the camera is active on, instead of the elevator's GotoFloor
  6. update naming of directional indicator meshes
  7. show main object name instead of mesh name, for click reports
  8. FinishDoors function should show a script error if it fails
  9. show an error if a scene node is not created properly
  10. when freelook is enabled in an engine, the mouse cursor needs to be updated when switching engines. This also consolidates the related freelook code into a function.
  11. values need to be cleared when switching engines
  12. fixes for reported issues with multi-car support
  13. for the "Elevator:Car" script parameter, if just the elevator is specified, the code should find the car that services the floor, instead of just using the first car
  14. added INI file and script "HoistwayAccessHold" option
  15. added object OnUnclick function, which is called when a mouse button is released on an object
  16. Hoistway Access mode now uses constant pressure on the switches to work, which can be turned off
  17. actions can now have a "hold" state, which requires that a control have constant pressure to prevent it from reverting to (normally) an "off" position. Used for Hoistway Access mode
  18. fixes for ShowMenu behavior and command line "no-menu" option
  19. added CheckScript mode, which allows scripts to be quickly checked for errors, instead of fully loading them
  20. fix for the "Stairwells" string match in the GetObjectRange function
  21. cleanups, found via cppcheck
  22. memory leak fix for Dynamic Mesh system - the mVertexElements array needs to be deleted on return
  23. (Scripts) added a check to ensure that a floor's altitude is properly set at the end of a Floor section
  24. (Scripts) move end-of-section code into per-section functions
  25. brought back ComputeNormal function, which was removed in revision 4679, due to precision issues causing certain walls to display improperly. The issue appears to be due to Ogre's Plane function calculating in double-precision mode, with the ComputeNormal calculating in single-precision, so a workaround has to be found for Ogre.
  26. character controller should remove itself from Bullet world on delete
  27. call buttons should not store pointers to control objects; this fix now allows for the call button's controls to be deleted
  28. call button actions can now be used from scripts, and details have been added to the guide
  29. add note about how leaving the "texture" parameter blank for the button panel, will hide the back
  30. revamped Call Button objects:
  31. -action system now supports Call Button actions
  32. -made Button Panel code generic (removed dependency on Elevator Cars), so that it can be used with multiple types of parents
  33. -switched Call Button object to use a Button Panel as it's button canvas
  34. objects need to unregister their dynamic runloops on deletion
  35. added virtual OnClick function for objects
  36. shut down resource manager on exit
  37. have character controller properly clean up objects when deleted
  38. call button timer should quickly fire on the first shot, before waiting a longer interval for future processing
  39. added support for dynamic runloops, which should help reduce per-frame loop overhead. This functionality allows objects to optionally register themselves with their parents to activate/deactivate their runloops, and then the parent calls a LoopChildren() function to run all registered child loops
  40. door movement now uses a standard parent runloop method, instead of a main simulator callback
  41. have call buttons use a Timer object for processing the call loop (frequency set to 1 second), instead of using a callback entry in the simulator root
  42. fixed a loop issue in the ProcessGotoFloor function that was causing some elevator cars to be skipped
  43. fixed problem in FinishMove function, where the call button arrival notification was only checking the arrival direction of the primary floor call, not ones for other cars
  44. when adding an elevator route, the car number should be reported if the elevator has more than 1 car
  45. when enabling Hoistway Access, require shaft doors to be open on the specified floor
  46. Hoistway Access switch should cause elevator to move, instead of separately using inspection service controls
  47. add profiling to ElevatorCar loop
  48. moved Camera loop code and timing code into standard Loop function
  49. renamed SBS MainLoop to standard object "Loop", and moved camera loop call to end of SBS loop
  50. have ResetBuilding function be used as the standard object's ResetState function, and have it also reset the camera state if the camera's active. This allows the SBS engine root to be reset, to reset the building state.
  51. removed SegmentPlane function
  52. removed and replaced old Classify function with an AABB test
  53. Cut function now skips polygons that are completely inside the cutting area, instead of needlessly processing over them and not getting cut results
  54. removed old point-on-polygon/findwall code
  55. removed old ComputeNormal function
  56. intersection functions need to convert the polygon's relative plane to absolute positioning
  57. fixed computing of stored polygon plane, and polygon intersection functions now used the stored plane instead of computing one
  58. engines shouldn't automatically make themselves the active engine on entry, if they're an ancestor of the active engine. This fixes issues where overlapping engines' activations would bounce back and forth, causing colliders to fall through the ground, and wrong engines being selected
  59. moved shared script section variables into a separate Config Handler object, mainly to fix an issue where the shared variables were never reset on script interpreter shutdown/startup
  60. make sure elevator's CreateElevator function returns with error if the primary car has an error
  61. added key switch textures for Hoistway Access
  62. added "selection_position" parameter to Control object (AddControl and AddActionControl commands), which allows you to specify the starting selection position
  63. added "Simple - Hoistway Access" building
  64. Move Object window needs to keep the SBS engine pointer current, otherwise a crash can happen when reloading a building
  65. split Script Processor out into multiple files and classes
  66. added Hoistway Access mode feature
  67. added missing ReOpen elevator parameter to script interpreter, and fixed script guide
  68. fixed an issue where nudge mode would not activate properly when an elevator in Fire Phase 2 mode was recalled to the lobby
  69. added top-level Ogre exception handler, which should help with error reports
  70. (Sears Tower) Express elevators are now real double-decker elevators
  71. added "Simple - Double Decker" building
  72. added elevator double-decker (multi-car) support
  73. fixed issue where an elevator in Fire Service Phase 2 mode wouldn't put doors into nudge mode, when recalled from lobby (Phase 1 mode re-enabled)
  74. added elevator ChimeOnArrival parameter
  75. make sure profiler is cleaned up when window exits
  76. update profiler statistics every 10 frames instead of continuously
  77. added more performance metrics for the Profiler
  78. properly group radio buttons in Elevator Editor
  79. CameraState should store FOV value, so that the camera's FOV will be persistent when switching engines
  80. added "Simple - Top Box" building
  81. if a texture load fails, the texture resource needs to be removed afterwards. This fixes an issue where the failed texture would show up as loaded, during a reload
  82. if elevator doors are open due to the elevator waiting in a peak mode, don't reset the door timers when a call button on the same floor is pressed
  83. (OpenGL only) use standard texture copy method if dimensions are the same, to try to remedy texture copy crashes mainly on systems with Intel graphics, with small non-pow2 textures
  84. set name of FMod audio client, used with PulseAudio on Linux
  85. enhanced setting of adjusted floor 0 altitudes
  86. if floor 0 is created after floor -1, adjust floor 0 based on floor -1's altitude
  87. when creating basement floors, if floor 0 is created first, properly calculate floor -1's altitude offset based on floor 0, instead of assuming a default value
  88. frontend size_t migrations, to simplify loop code
  89. disable double-buffer fps fix in Windows, due to an issue where the screen turns black on fullscreen
  90. removed old Windows-only CodeBlocks file, and rename Linux one
  91. added converted Mac icon, and added Mac bundle data into tools folder
  92. queue the creation of the progress dialog, to fix an issue on Mac where the main window would freeze if a building is autoloaded
  93. DeleteButtons should be run in Load function
  94. added building "open with" load support for Mac systems
  95. app should switch current working directory to executable's directory on start, which allows double-clicking on building files outside of the app to start
  96. added command line options for fullscreen and no-panel modes
  97. added command line options to disable the intro music, show version and enable verbose mode
  98. added command line options for showing/hiding the console and main menu
  99. added command line option support
  100. enabled large address flag for 32-bit builds, and also included the disabling of inline function expansions
  101. have GetLineInformation function also return function name
  102. have crash report show script interpreter state, if a script is loading
  103. moved global door code into new DoorManager object, to fix positioning issues
  104. CutAll function needs to remove floor's base offset for it to cut stairwell walls properly
  105. (Simple) added filler walls for the stairs doors
  106. fixed cut voffset for AddFillerWalls
  107. fixed Triton Center external filler walls, and added mention in script guide about the voffset value
  108. added "isexternal" parameter to AddFillerWalls script command
  109. (Triton Center) have exterior doors use new External Doors feature
  110. fix for AddShaftStdDoor command
  111. added AddExternalDoor script command
  112. (Glass Tower) service elevator button arrangement fix
  113. floor indicators need to use proper texture prefix when created
  114. when elevator doors are being manually opened (shift-click), shift-clicking again will stop the doors
  115. when an elevator checks if it's available for a call, the interlock check should skip the current elevator floor to prevent issues, since that check is done later
  116. disable the door sensor if the elevator is waiting in a peak mode
  117. elevator interlock check should be skipped if the elevator is waiting in a peak mode
  118. added an "always" value to the ShowFullStairs command, which allows a stairwell to always be fully shown, like the ShowFullShaft command does with shafts
  119. added INI file option to switch off the Dynamic Mesh's auto combiner
  120. wxWidgets string cleanups
  121. SwitchEngines function should try to switch to active engine's parent, if possible
  122. elevator doors should only set "hold" option if not moving manually
  123. for door re-openings, only issue a re-open on doors that are moving
  124. position command in Globals section needs to recursively move child engines when run
  125. fixed an issue where the Position command in the Globals script section wouldn't work for buildings loaded in nested Buildings sections
  126. have CutForEngine function pass engine cut operation to parent, mainly so that nested Buildings sections in code will cut the top-level engine properly
  127. child engine positions need to be set relative of their parent engine
  128. elevators should report that they're unavailable for a call if the interlock check fails. This fixes a potential call button lockup
  129. fixed triangle reindexing by adding proper validity checks, to fix a problem that arose when switching to an unsigned int type
  130. (Triton Center) added LevelingOpen parameter to elevators
  131. (Triton Center) use standard height measurements for doors and elevators, currently on hotel levels
  132. fixed an issue where the dynamic mesh's Prepare flag wasn't being handled properly
  133. (dynamic meshes) added support for automatically re-preparing meshes when changing textures, if multiple clients are referencing a specific submesh, to fix an issue where changing a texture would affect multiple client meshes
  134. active elevator status should be reset if active elevator becomes unavailable
  135. IsLeveled function needs to do a fuzzy check for the elevator's position, to overcome very slight differences with floor altitudes
  136. manually-created textures need to be removed on engine shutdown
  137. (Triton Center) fixed top of East Stairwell (on 141-142)
  138. manual texture creation calls should check for exceptions
  139. elevators should reset queues when switching off Independent Service mode
  140. use default pixel formats for textures, and automatically determine the type when creating a manual texture
  141. when changing a texture, the associated polygons need to have their material names updated, which fixes crashes related to failed geometry and submesh references
  142. prevent duplicate texture loads
  143. removed Caelum test material
  144. use default (write-only) texture type, for functions where reading is not needed
  145. make sure that the emergency stop status is cleared, in a situation where it could be initiated after the run of FinishMove()
  146. merged "Separate Vertices" branch, which separates out the SBS MeshObject's vertex tables into per-submesh tables
  147. reset elevator camera offset if outside vertical range
  148. build fixes for Ogre 1.10
  149. show renderer in Windows crash reports
  150. console will turn autoscroll off if user clicks at a location to stay at in the text box, and scroll will reenable when the "Auto Scroll" button is clicked
  151. fixed an issue where physical models would not properly stay in elevators
  152. header rework, to improve compiling performance
  153. created new TextureManager object, for texture-related functions
  154. added a Move button to the Engine Manager dialog, to allow moving sim engines
  155. show the control reference when pressing the F1 key
  156. changed 'faces' to 'triangles' for F2 key function
  157. added new Dynamic Meshes system, which automatically combines grouped mesh objects into a single mesh, if needed, to greatly improve performance
  158. when elevator number is changed, properly update the door count slider
  159. fixed typo in SetRotation code, causing X and Z issues during Y axis rotation
  160. added missing F8 key to docs
  161. merged divide-by-zero fixes - fixes a reported issue in the elevator deceleration (jerk rate calculation) code
  162. control panel needs to properly unregister on exit
  163. (OgreBullet) add proper isInWorld check to base collision object, instead of a rigid body variable
  164. (OgreBullet) manually update static collider bounding boxes, to improve performance
  165. adjust freelook speed for frame rate
  166. moved mainscreen code into separate file
  167. added event-driven keyboard and mouse input system
  168. reworked code that handles persistent shaft doors, so that they only stay persistent when the camera is active in that engine
  169. removed extra shaft door disable code, since mesh disabling code should be run after the simulator startup, to prevent new colliders being added to disabled meshes
  170. simplified triangle index array in PolyMesh system, to prevent an extra vertex copy operation. This removes the TriangleMesh type and reuses TriangleIndices instead
  171. moved Triangle code into separate header file, and added operator functions
  172. renamed TriangleType to Triangle, due to SBS namespace addition
  173. disable elevators in shafts that have ShowFloors disabled, when leaving/resetting building
  174. turn off shafts and stairwells when resetting building
  175. make sure destobject-specified models are custom models, not loaded models
  176. disable Caelum sky system when switching to wireframe mode, to hide the sky triangles
  177. added mention of subfolders for Buildings section Load command
  178. when switching to fullscreen on Windows, enable double-buffering on the window to fix performance issues
  179. have Global AddWall/AddFloor commands use a specified mesh object directly instead of processing a string internally - this also fixes a crash if no valid mesh was found in the functions.
  180. have AddGround also draw underside of landscape
  181. when inserting another script file, script should be loaded and inserted as a single block, instead of calling insert() for each line, which causes performance problems
  182. preallocate memory for script file data
  183. Floor or Elevator script section loops should report when they're finished
  184. global models can now be transported in elevators, since they now properly change parents
  185. added "Simple - Custom Models" building
  186. fixed issue where AddShaftModel and AddStairsModel commands were doing a file check for the wrong parameter, causing false error messages
  187. added support for custom models to be specified as a "DestObject" value, in global/floor/elevator sections, and even as part of a shaft or stairwell.
  188. added the ability to use the floor's Interfloor and ColumnFrame meshes, and also Shaft and Stairwell meshes as a script "destobject"
  189. added a "RelativeY" option to the AddCustomWall command, to allow for relative Y offsets in a floor section, making it compatible with other similar commands
  190. SetKey state wasn't being properly reset in the script interpreter
  191. objects created after the simulator start should be initialized properly
  192. added model centering code to OnInit function, to support custom model centering
  193. fixed an issue where AddTriangleWall wasn't adding the floor's offset to the 3rd Y value
  194. added support for creating custom models
  195. added scaling support for SBS geometry meshes
  196. prevent run of geometry processor if the mesh is a loaded model, and added more error message details
  197. fixed menu screen button corruption with double-precision Ogre
  198. replaced the old file selection dialog with a simplified building list dialog, which also fixes Mac issues associated with the old dialog
  199. modal windows should be created on the stack instead (fix for some object memory leaks)
  200. added Load Building dialog for the Engine Manager
  201. added bounds views to Engine Manager dialog
  202. clean up empty engine slots at the end of the list, when deleting an engine
  203. GetPoint and GetWallExtents functions should iterate through all wall polygons, instead of searching by name
  204. fixed a matching issue with the FindPolygon function, and moved their code into the Wall object
  205. engines should re-cut for child engines on reload
  206. moved RenderOnStartup override into Engine Context, to allow the option when reloading a building
  207. if a user walks outside of all engine boundaries, revert their movement so they stay within the active engine
  208. lots of fixes to support deleting engines. The system now keeps instance slots open when an engine is deleted, which can be reused later.
  209. fixed a major vector preallocation bug in the ProcessSubMesh function, causing severe slowdowns with EG881's Landscapes test
  210. added CreateWallObject and AddPolygon script commands
  211. have CreateWallBox and AddDoorwayWalls functions automatically create wall objects
  212. fixed an issue where the AddCustomWall, AddCustomFloor and AddTriangleWall commands were double-adjusting the stored per-texture sizing info. This bug appeared during the CS 1.8 development, and so is not present in Alpha 7.
  213. made new AddPolygon function, and moved the AddCustomWall functionality into it
  214. the AddTriangleWall, CreateWallBox and CreateWallBox2 commands weren't working properly when Elevator meshes were specified, due to being disabled from a Genmesh transition in 2010.
  215. Prepare() function should create 32-bit index buffers if the number of vertices goes outside of the 16-bit range, and especially to prevent a short integer overflow (fix for EG881's 'Landscapes' test)
  216. only have the primary engine create the old skybox
  217. have sound system properly handle engine offsets and rotations
  218. added parent/child support for engines, and added the ability for a parent engine to be cut for a child engine's bounds
  219. Font code needs to unload the generated texture and font, if an error occurs during font load. This fixes a crash that happens if a missing font's file is added after building load, and the building is reloaded.
  220. switch to other engines when entering their bounds, instead of waiting to leave the active engine's bounds
  221. added ToGlobal and FromGlobal functions (C++)
  222. fixed crashes in the Object Manager and Move Object windows, which were caused by the SBS pointer not being updated properly when a building is reloaded
  223. HitBeam function fixes for engine offsets
  224. added support for rotating SBS engines
  225. added support for relative orientations
  226. skip Buildings script section when reloading building
  227. added Swap functions (C++)
  228. fixed top interior wall of CreateWallBox function, which wasn't displaying properly (this bug appeared during the Ogre transition)
  229. added Texture Override support to the CreateWallBox commands
  230. reset camera position if attaching to an engine where the engine's camera is outside of it's bounds
  231. report when setting an active engine
  232. added building resets when moving between buildings
  233. added support for exporting and importing the camera state, to reapply camera settings when walking between engines
  234. added support for walking between engines, with automatic context switching
  235. make sure progress dialog is deleted on shutdown
  236. sync camera when attaching
  237. added "City Demo" building.
  238. have SBS engine and Engine Contexts report instance numbers on console
  239. only pause for SBS banner for the first instance
  240. if concurrent loading is off, make sure buildings load in order properly
  241. added the "Simple - Multiple Buildings" and "Simple - Concurrent" multi-building demos.
  242. added Position and Bounds script global commands
  243. added Buildings section to the script interpreter, for loading multiple buildings
  244. if trigger's Y values are both 0, essentially ignore the Y factors when testing for proximity
  245. add double type to ToString function - now builds with Ogre in double-precision mode
  246. removed the shift-click call button status change
  247. when the sim engine is moved, the camera needs to update itself properly so that it can move along with it
  248. sound objects in controls, triggers, callbuttons and doors are now only created if a sound file is specified
  249. discard wall objects that are created outside of engine boundaries
  250. added position-based IsInside function to Trigger object
  251. added support for cutting outside engine bounds
  252. added bounds variables and main proximity trigger to engine
  253. have manual modes not allow new movement if the elevator is already moving - fixes an issue where the elevator would suddenly come to a standstill if the direction button was pressed while stopping
  254. removed 'k' engine shutdown key assignment
  255. added support for manual elevator up/down movement switches, which use the same UpOn/UpOff and DownOn/DownOff commands as Inspection Mode, along with a demo building based on the original Simple Manual
  256. status indicators in the Elevator Editor window should update when the mode is changed, instead of when the -values are refreshed or changed from the window
  257. added the IsOnFloor and OnRecallFloor functions
  258. some fixes for issues with elevator Peak modes causing doors to fully close and re-open when call buttons are pressed
  259. (Regression fix for rev 4066) - properly reset Active Elevator variable when call button is no longer active
  260. (Regression fix for rev 4066) - call buttons should have separate Active Elevator variables for each call direction
  261. fixed an issue where an elevator wouldn't stop and open on the recall floor, if on that floor but not leveled
  262. elevators should have a separate status flag for manual stops, to prevent a conflict with the new stop-on-dequeue feature
  263. added CopyTexture functions, that use new code for blitting texture data, fixing issues with flickering and darker textures when loading additional buildings
  264. (Elevator Editor) Active Hall Direction box now shows the direction text along with the call type
  265. (Elevator Editor) combined Door Height and Door Width boxes into a single Door Size
  266. (Elevator Editor) added Type box
  267. (Elevator Editor) removed the Origin box (no longer used)
  268. (Bullet) updated with a minor initialization fix
  269. person object should use floor ID text instead of number
  270. cleanups of Object Information window - this also fixes some serious object initialization bugs
  271. cleaned up singleton variables in frontend; moved them into the object classes
  272. control panel windows should be created on-demand (performance improvement)
  273. have only main screen handle idle events - this and the previous change should result in minor performance improvements
  274. pause the control panel's timer when the progress bar is visible (performance improvement)
  275. when taking over a hall call, if elevator's routes are empty, stop the elevator when cancelling the hall call response
  276. added support for elevators that are closer and become available during an active hall call, to take over the call response.
  277. added function (C++) to cancel an elevator's hall call response route, if no related floor button has been pressed
  278. added function (C++) to return control/button light status
  279. in the control panel, timer object should be reinitialized, not deleted and recreated from the OnInit call in the timer notify function. This fixes an issue where the timer object was deleted and then code continued to run in it's Notify function
  280. fixed an issue where elevator service mode controls would get stuck if an elevator was switched into a different service mode, while the controls were set. This change has the elevator mode setting functions succeed instead of fail, if the mode is the same.
  281. person should update their Current Floor setting while riding in an elevator
  282. have person wait until doors are open before exiting elevator
  283. more status reporting for Person object
  284. have person stop route if hall call fails
  285. if a person presses a call button, and the call status becomes invalid while they're waiting (the button light switches off), have them stop their route
  286. if a person is in an elevator that switches into a service mode, have them exit that elevator and try the hall call again
  287. if fire phase 1 mode is enabled while a person is in an elevator, have them exit at the recall floor instead of their original destination, and cancel all routes
  288. (Triton Center) motor position fixes
  289. added GetDirectFloors function (C++), along with code to find some routes that would fail with previous tests
  290. have route functions keep track of direct connections; this improves performance
  291. added an indirect local elevator check, if a person needs to take a local elevator before reaching direct route elevators
  292. shutdown fix - the system was exiting to the main menu if the active engine was shut down, when it's supposed to switch to another engine
  293. fix to properly reset values in People Manager window, when selecting a different person
  294. if person is riding in elevator, show riding status
  295. for Person object, wait for elevator doors to open before pressing floor button
  296. fix person list refreshing when switching engines
  297. array size fix for GetPerson function - fixes a crash when the list only contains 1 person, and the user switches to a different engine
  298. new People Manager dialog
  299. script errors now show the engine context number of the error, if more than one engine is running
  300. script errors now show the building filename instead of the section number, which isn't needed due to the script context string
  301. new Engine Contexts system, along with the Engine Manager dialog, which allows multiple buildings to be loaded and run in parallel
  302. elevators should continue checking elevator availability in a QueuePending stage, if the elevator is on the same floor as the call, and the doors are open or opening/closing. This lets the elevator take the call and re-open in that situation
  303. objects without parent scenenodes should attach to engine scenenode, not scene root node
  304. moved scenenode-related code out into separate SceneNode object
  305. added OgreBullet project files to main solution, to simplify building process on Windows. The separate OgreBullet solution is no longer needed.
  306. make sure building is specified before trying to load building
  307. call buttons should update arrival notification if elevator is on same floor and opened
  308. call buttons should reprocess call if the elevator that is handling the active call becomes unavailable during movement
  309. Random Activity now uses the new people code, and the old functionality has been removed
  310. added routing functions, for Person object to find an elevator route to a floor
  311. have elevators notify call buttons on arrival
  312. added object validity functions
  313. switched to FMOD Studio for sound
  314. ToRemote/ToLocal functions should support turning off the Z-flip (for rescaling only)
  315. created ObjectBase class for lightweight objects (currently Actions and Polygons)
  316. removed singleton pointer and properly propagate and store engine pointer, through object parent parameters
  317. added Person object
  318. added elevator type parameter, and added to main building files
  319. added ShowLoadedSounds and ShowPlayingSounds script commands
  320. cache file listing in VerifyFile function, to fix a major performance bottleneck when a building is missing lots of files along with a large data folder existing
  321. print FMOD version number on initialization
  322. new Sound System code, which provides more efficient sound management
  323. timers and meshes should be permanent by default
  324. call buttons should reject call if related button does not exist
  325. added Cloudy and Overcast sky types
  326. have Caelum use SBS scaling factor
  327. converted elevator door movement to relative positioning; also fixes an issue with vertically-moving shaft doors from working properly
  328. cleanups for HitBeam function
  329. converted elevator door movement to relative positioning; also fixes an issue with vertically-moving shaft doors from working properly
  330. sound support should not be switched off when IntroMusic is set to false in the INI file
  331. fixed console reporting of missing files
  332. added sound unload function
  333. don't load main elevator sounds on first loop run, load right before playing
  334. if sound is disabled in frontend, sound in engine should also be disabled properly
  335. object removal functions in Shaft and Stairs objects were using a wrong index value
  336. reworked object array method for Door objects, in stairwell and shaft objects
  337. reject mp3 files on load
  338. fixed FindWithCase function
  339. reworked and cleaned up call button code
  340. fixed an issue in call button processing that prevented engine callbacks from being removed
  341. don't run elevator checks if elevator is disabled
  342. disable objects when disabling elevator
  343. don't try to create a collider scenenode if it already exists
  344. made a proper fix for an issue involving graphics corruption on Windows after a reload. The viewport needs to be updated properly on a reload.
  345. SBS should call Prepare() on engine start, not frontend
  346. set location and date/time for Triton Center and Glass Tower buildings
  347. added Coordinates and DateTime global options
  348. resized couches to be more realistic
  349. model offset needs to be adjusted according to the scale multiplier
  350. for models, box colliders are now centered properly, and use a separate scene node to make it work
  351. SBS now calls a cascading init on all objects from the Start() function
  352. renamed any standard object runloops to Loop()
  353. renamed Sound's Loop() function to SetLoopState
  354. made standard inherited OnInit and Loop object functions
  355. OgreBullet should be checking for existence of resource group and loaded names directly instead of keeping a file-based existence flag. This fixes an issue where debug colliders (F7 key) would not enable when reloading a building.
  356. camera object needs to run loops of attached models
  357. camera needs to run NotifyMove and NotifyRotate functions, to properly update carried objects (child objects)
  358. object destructor was removing scenenode from parent twice, causing a crash - I reworked the code in this function
  359. moved functionality of camera's view and state resets (F3 and F6) into camera class
  360. re-enable main system meshes when doing a position reset (F6)
  361. restore absolute positioning and orientation of object scenenode when changing parent object
  362. fixed issue in RemoveChild function, that caused the scene node removal portion to be skipped
  363. consolidated FileExists function code into VerifyFile function
  364. overhaul of VerifyFile function, to check for files within mount points properly
  365. cleanup and fix of GetMountPath function
  366. have functions use SBS conversion functions instead of others
  367. added ToBool function
  368. removed Sky Time Multiplier from Camera Control window
  369. new arrangement for control panel buttons
  370. added Sky Controller dialog
  371. prevent DirectX on 32-bit Windows from switching into single-point floating point precision, which was causing the Bullet-related bounce issues
  372. model meshes now update parent (main) object scenenode on physics-related position update
  373. don't try to create a new submesh when deleting indices
  374. added ToFloat and ToInt global functions
  375. consolidated global functions; ToString2 is now just ToString
  376. input string in RemoveAction function needs to have whitespace removed for compatibility
  377. switched from c-strings to std::strings for function parameters and return types
  378. DeleteObject function can delete generic object directly, instead of recasting
  379. added new ConvertTo function to Object
  380. added template-based IsType() function to Object
  381. removed object's "raw_object" value, which is no longer needed due to previous change
  382. objects now use static_cast or dynamic_cast instead of c-style casts
  383. fixed bad return in FindWallIntersect function
  384. consolidated camera's mesh hit beam code into main SBS object
  385. code cleanups
  386. added support for picking up models
  387. mesh HitBeam function should be converting direction to remote Ogre value, without a rescale
  388. objects can now report if they are global objects (children of engine object)
  389. added ability for non-global physics-enabled models to be moved into elevators, and to move along with the elevator, by dynamically changing parent object of model from floor to elevator, and vice versa
  390. added Shaft, Stairs and Model runloops
  391. added functions for dynamic removal/addition of models
  392. added ability for objects to switch parents
  393. IsInElevator function now optionally sets CameraOffset value
  394. added check for model's physics state
  395. added debugging options file for Visual C++
  396. updated project files for Visual C++ 2015
  397. rewrote GIF control extension detection code; fixes additional transparency issues. The previous code was not ensuring that the three values were adjacent, and was matching for non-adjacent values, causing malfunctions.
  398. functions that create new sim objects should return full type, instead of just a generic object
  399. removed unnecessary conversion in Freelook mode code
  400. have camera only disable camera gravity value, instead of physics gravity also
  401. camera delta values were being used twice causing erratic movement behavior when using Bullet. Have Bullet use a single variable timestep, to prevent movement skipping issues
  402. simplified camera movement code
  403. camera movement vector needs to be flipped on X axis if Bullet is disabled
  404. object OnMove and OnRotate functions now have a "parent" flag, to determine if a parent object called the update
  405. rotations should update collider position also - this fixes an issue where parent objects would rotate, and child colliders would not be updated with the new derived position
  406. make sure Ogre log manager has been created before trying to call it
  407. simplified use of frontend and SBS singleton variables
  408. moved frontend into "Skyscraper" namespace
  409. return type fix for OnRecallFloor() function
  410. WallPolygon class has been renamed Polygon
  411. cleanups and initialization fixes
  412. moved SBS system into it's own namespace
  413. (Sears Tower) added Freight Elevator 1, along with minor wall fixes
  414. (Sears Tower) split off upper service elevator into separate shaft, and fixed positioning of shafts 29, 30 and the new 32
  415. (Sears Tower) adjustments to shaft starting/ending levels
  416. updated Codeblocks project
  417. moved elevator recall floor check into separate function, and added a check for the "recall unavailable" flag - this fixes an issue where an elevator on the alternate recall floor would not recall to the standard recall floor along with other elevators
  418. fixed crash in elevator's DumpQueues function, due to wrong queue being used for Down Queue info
  419. moved direction status variable to SetLights function in both callbutton and directional indicator objects
  420. call buttons need to set all lights in group for each light change - this fixes an issue where a call button light would be switched off later due to elevators rejecting the call, but other lights in the group would remain on
  421. added escalator textures from EG881's Escalator2011 package
  422. elevators should accept hall calls if waiting in UpPeak or DownPeak mode
  423. new Escalator object
  424. added Relative Position item to Move Object window, and realigned text boxes
  425. elevator motor sounds are now children of shafts, fixing movement issues, where they were moving along with the elevator (due to new positioning system)
  426. misc positioning fixes and cleanups
  427. elevator music sound is now positioned properly on startup, instead of at start of play
  428. elevator object positioning cleanups
  429. fixed typo (extra '-1') in IntersectRay function, fixes wall click issues
  430. fixes to elevator CameraOffset value, to allow user to move on top of an elevator while it's moving
  431. elevators now use move functions to set altitude; user can now jump and move vertically in elevator
  432. added camera movement function that uses SetPosition instead of character movement
  433. more GIF transparency fixes; added parsing of packed field to properly get transparency flag
  434. removed Mac screen adjustment code, due to fixes in Ogre 1.9
  435. prevent GTK checks on OSX
  436. fixed issues with Mount command
  437. (Triton Center) transfer hallway fixes.
  438. (Triton Center) column frame work
  439. ComputeTextureMap function now rounds vector results, to prevent precision malfunctions in ComputeTextureSpace function
  440. added vector rounding functions
  441. added support for rounding numbers to a specified decimal place
  442. elevator's 'manualstop' setting should not enable if in a service mode
  443. an error dialog is now shown if messages can't be written to log
  444. fixed GIF transparency detection; should scan for extension marker instead of accessing directly
  445. (Sears Tower) shaft range fixes, and fixed issues with Zone 2 42-49 locals
  446. (Sears Tower) new exterior textures
  447. (Sears Tower) separated exterior into window frames and interfloor segments
  448. (Sears Tower) misc tweaks
  449. added references to floor slab heights to designguide.html
  450. add floor base to list report
  451. (Sears Tower) adjusted standard slab heights to be 12' 10" according to steel frame diagram
  452. (Sears Tower) repositioned stop buttons
  453. floor description fixes for Sears Tower and Observation Tower buildings
  454. (Sears Tower) zone 1 mechanical fixes
  455. (Sears Tower) increased interfloor heights to 3ft
  456. (Sears Tower) removed extra Call Cancel buttons
  457. visible mesh listing now shows submesh count
  458. added ListVisibleMeshes function and script command
  459. added description variable for floors
  460. added floorname, floorid and floortype variables to the floor section of the script interpreter
  461. added option to reset object state to the Object Information window, and made inactive Save Script button hidden
  462. removed separate Name variables, to use Object name instead
  463. removed redundant SetPolygonName function
  464. move polygon-specific code into polygon class
  465. made certain elements private in wall object
  466. rename "object" to "raw_object" in Object's SetValues function
  467. rename reference of "handle" to "polygon"
  468. moved polygon code to separate file
  469. added basic movement support to wall objects, which works by modifying vertices
  470. fixed a divide-by-zero issue in the elevator braking code
  471. make sure parent_deleting flag is set properly in destructors for all child objects
  472. elevator shaft door wrappers can now be deleted separately
  473. delay creation of elevator shaft door wrappers
  474. floor info now reports which stairwells and shafts span the floor
  475. moved floor info code into floor object
  476. floor information now shows a list of elevators that service the floor
  477. (Sears Tower) updated elevator button/control commands
  478. (Sears Tower) floors 90 and 100-102 are now locked
  479. (Sears Tower) split off separate upper service elevator, for floors 90-106
  480. ResetState functionality is now abstracted from the core Object class, and the implementation has been simplified
  481. added ability to reset elevator door states, mainly in case of door malfunction
  482. (Triton Center) lower level wall fixes
  483. (Triton Center) lobby positioning fixes
  484. (Glass Tower) fix extra instance of interior windows on 137
  485. found that the ObjectCount value wasn't being initialized before registering SBS root object
  486. simplified object system; object type is now inherited by sim objects
  487. don't turn on starting and ending floor shaft doors during elevator init
  488. elevator sounds need to be positioned from elevator center
  489. fixed positioning issue in stairs controls
  490. stairwell objects (models, action controls, etc) need to be offset of the floor base, not altitude
  491. MaxSmallRenderDistance now works due to new positioning system
  492. new object positioning system
  493. report error if no height specified in AddWallMain function
  494. report error and exit if no height specified when calling AddFillerWalls
  495. fixed invalid coordinate check in AddFloorMain function
  496. default texture tiling to 1.0 if 0 is specified during texture load
  497. wxWidgets 3.0 support
  498. added CameraTexture object
  499. added FindPolygon mesh function and simplified code
  500. moved GetPoint, GetWallExtents, and GetExtents functions to the MeshObject class
  501. elevator and floor creation should return created object
  502. don't leave top and bottom levels of shafts on - this doesn't appear to be needed anymore, and should increase rendering efficiency

Version 1.9.2 (2.0 Alpha 9 - Update 2)

  1. fix TriangleType element names
  2. turn off directional indicators if elevator is switching into a service mode, or is being switched off
  3. startup functions no longer crash if CreateElevator is never specified
  4. positioned elevator sounds properly
  5. need to initialize motor idle sound (fixes potential crashes)
  6. elevator door and chime sounds are now positioned properly at the door
  7. removed change_light parameter of AddRoute function, since the call type now handles this
  8. elevators now set queue-related call status for each call (car, hall and system), and they no longer chime if a related hall call is not active on that floor
  9. elevator queues can now store call-related information in addition to floor number
  10. (Glass Tower) added remaining interior atrium windows
  11. removed "SetUpIndicator" and "SetDownIndicator" buttons from elevator editor
  12. elevator door sensors are now set permanent to prevent crashes
  13. controls and triggers can now be made permanent
  14. AreDoorsMoving function now supports checking separate door types
  15. fixed an issue where the car idle (fan) sound would play when only shaft doors were opening
  16. elevator door name fixes
  17. door/sensor reset is now only done if doors are opened normally
  18. sensor and nudge modes are now switched off when manually opening doors
  19. for manual elevator doors, interlock error needs to reset direction value, otherwise a lockup may occur
  20. interior directional indicators are given the floor number to check for the existence of shaft doors
  21. elevator interior and exterior directional indicators are now controlled together from elevator's SetDirectionalIndicators function
  22. elevator should switch off directional indicators if leaving that floor
  23. added ShaftDoorsExist function to elevator
  24. added a shut-off timer to the directional indicator object, which will only start if associated elevator's AutoDoors is false, or no shaft doors exist on that floor
  25. rewrote ReplaceAll function, to work directly on the string reference to avoid copies
  26. in IfProc function, keep character references for performance
  27. optimization to the Cut function - only do name string copies when necessary
  28. sensor status variables need to be initialized first
  29. added more CS information to the texmap.cpp file
  30. GetPoint/isect functions are now working
  31. removed unnecessary vertex array copy from planar texture mapper
  32. wall object's plane calculations need to use full vertex list - this is the same issue as r3356
  33. added new ComputePlane function
  34. added StopDoors action
  35. fixed length values for a number of action names - fixes issues where door number parameters don't work
  36. fixed elevator's DoorsStopped function
  37. elevator will no longer move if doors are stopped and interlocks are enabled
  38. hold code in elevator's OpenDoor function will now only enable if an associated control has just been pressed
  39. caller objects are now passed to actions when running
  40. cleaned up elevator number text code for reports
  41. elevator doors now report if no timer reset will be performed due to blocked sensor
  42. triggers can now report their "inside" status
  43. elevator doors no longer reset door timers if sensors are blocked/triggered
  44. elevator door code cleanups
  45. control/trigger variable check_state was being handled in reverse
  46. added references to missing elevator action names
  47. in CreateWallBox function, don't try to create side walls if there's no thickness

Version 1.9.1 (2.0 Alpha 9 - Update 1)

  1. play elevator door open/close and message sounds on reversal
  2. change to Go function in rev 3171 broke FloorHold feature; relocated code to fix
  3. added more breaks and other cleanups
  4. cleanups to elevator functions involving door lookups
  5. prevent nudge mode from enabling if elevator doors were manually moved and stopped
  6. elevator door open buttons now can be held down to hold doors and released to reset door timer
  7. in DoorExists function, can't mix GetDoor and array (this was causing the DoorExists function to potentially malfunction)
  8. reordered section information area in script interpreter for the other changes to be made possible
  9. user variables now work in section lines such as "<Floors>", due to code reordering
  10. removed unneeded fire phase 1 check in call button code
  11. reordered call availability code, to properly report service and nudge modes
  12. overhauled nudge mode to enable timer when the situation allows it
  13. if mesh physics is enabled, use a box collider by default
  14. if model physics is enabled, mesh code should not try to load collider model
  15. (Bullet) position update is no longer needed in penetration recovery function, and causes issues
  16. (Bullet) turn off contact normal direction fix, which inverts some polygon normals incorrectly
  17. (Bullet) fixed penetration recovery by running it in the forward movement function, right after the setting of the original position, to prevent interference with stairs
  18. have call availability check properly report busy if doors are held, instead of for other reason
  19. elevator doors can now report their hold status
  20. added more "Invalid Door" errors to nudge and sensor functions
  21. reworked door sensor code to split into separate persistent enabled/disabled state, and temporary activated/deactivated state
  22. changed Alarm button in elevator editor to Hold Doors
  23. elevator door sensor and nudge functions now properly select door object
  24. NewElevator and NewFloor functions should use GetFloor function instead of their own check, for performance
  25. some functions in Shaft and Stairwell code weren't checking validity of floors
  26. in Calc function, lowered precedence of subtraction operator due to order conflicts with other operators
  27. cut function should flip coordinates if out of order
  28. F6 key would cause a crash if current camera floor was invalid (mainly in empty buildings)
  29. elevator sensor status is now only shown after startup or in verbose mode
  30. car idle, motor idle and music sounds now load sounds on first run if not loaded yet, instead of in CreateElevator function
  31. added motor idle sound code, which was started in rev 1603 but never finished
  32. don't try to create wall/floor sides and top if thickness is 0
  33. cleaned up wall/floor function return codes and some legacy stuff
  34. added checks to AddWallMain and AddFloorMain functions to print an error if coordinates are invalid
  35. added a zero normal check to the texture mapper
  36. planar mapper should be computing normal based on full polygon, not just first three vertices. This fixes some texture mapping errors
  37. reverted behavior change to ShaftShowOutside command from revision 3194
  38. make sure that floors grouped with the current camera floor are not switched off as part of the shaft and stairwell ShowFloors code
  39. (C++) SplitData function now verifies length of string properly
  40. reverted and remade the fix to prevent crashes if no parameters are specified for certain commands
  41. moved the missing file report to after the raising of the main window, to prevent it from being hidden on startup
  42. in Calc function, handle a calculation error as a silent error instead of ignoring it, to prevent infinite loops
  43. fixed an issue where clicks on call button panels would trigger a down call
  44. reworked elevator call availability code, to return busy or an error, to prevent call buttons from looping if all elevators won't service the call
  45. fixed an issue where DeleteRoute would report even if a route is not deleted
  46. in the Reload code, since the Load function can unload the simulator if it encounters an error, exit to the main menu if this happens to prevent a crash
  47. ensure that the Reload flag is turned off after a reload, which prevents future startup issues
  48. system meshes should be created on engine startup, not separately in script interpreter. This fixes startup crashes that happen if no valid data is in the script file
  49. door resets now report in verbose mode
  50. (C++) renamed ResetDoorTimer functions to Reset and ResetDoors
  51. sensors will only enable if using automatic doors (AutoDoors is true)
  52. added a new action "sensorreset" as part of previous fix
  53. fixed issue where door sensors would reset door holds. Door hold and reset functions now disable and re-enable sensors, and leave the sensor alone if the sensor is calling those functions.
  54. in Calc function, allow decimal numbers without 0's at start
  55. fixed a click position offset in Freelook mode on Mac, and also did minor cleanups to the related code
  56. reworked the floor indicator code, consolidating and separating it properly
  57. elevator indicators should be enabled/disabled along with the elevator
  58. floor and directional indicators can now be deleted by ctrl-alt-click
  59. fixed mesh name of floor indicators
  60. minor code cleanups
  61. fixed an issue where all related elevator shaft doors would respond to door bumper code, instead of just the elevator's floor. Also cleaned up the code.
  62. added missing dbghelp.dll file (Windows packaging)
  63. F2 key now prints more detailed render statistics
  64. fixed length of floating point output in ToString functions, for Visual C++
  65. don't treat textures in ChangeTexture function as filenames, just material names - this fixes a lot of performance problems
  66. (Triton Center) Hotel wall positioning fixes
  67. for call buttons, if all associated elevators are in a service mode, don't continue to search for more elevators; reset the call button instead
  68. fixed last report line from elevator's DumpQueues and DumpServicedFloors functions
  69. fixed an issue where floors listed in the ShowFloors or ShowOutside lists would be switched off when stopping and continuing at a floor
  70. fixed a crash that would occur if the Move button was pressed in the Object Manager if no selection was made

Version 1.9 (2.0 Alpha 9)

  1. added new Underground building
  2. cleanups in relation to ShowFloors arrays
  3. fixed a conflict between Group listings and ShowFloors lists, and cleaned up EnableFloorRange function
  4. the print command can now be specified by itself, to print a blank line
  5. many script commands would crash if given no parameters; this fixes the issue
  6. (Triton Center) 135th floor description fix
  7. made new floor list report and FloorInfo command, and migrated the ListAltitudes feature into that
  8. added Floor Information button to the control panel
  9. added current floor name to the control panel
  10. fixed an interior window positioning issue in the Simple building
  11. prevent shaft door reset if full shaft is enabled
  12. EnableGroup function in floor object will no longer touch shaft or stair objects if they're currently fully enabled
  13. disabled some warnings on Visual C++
  14. fixes to action array checks of Control and Trigger objects, to prevent crashes if no actions are associated with the object
  15. more elevator object checks for elevator editor
  16. reset door reference in elevator editor, to prevent issues if elevator is deleted
  17. added Mac key hints to control reference and readme
  18. the elevator editor's floor selector now only shows the related serviced floors
  19. (c++)reworked shaft door and elevator door ClickedObject code to newer design
  20. (c++)elevator shaft door wrapper objects now store associated floor number
  21. (c++)remade call button code in ClickedObject function, to remove legacy code
  22. call buttons can now be deleted using ctrl-alt-click
  23. controls can now be deleted by ctrl-alt-click
  24. objects are now deleted by ctrl-alt-click instead of just ctrl-click, to prevent interference with ctrl walking modifier
  25. added reporting to elevator door sensors
  26. added new actions for enabling and disabling elevator door sensors
  27. reworked action run code, to prevent duplicates
  28. call buttons now check if elevator objects are valid, to report accordingly
  29. brought back shift-click call button functionality, to change light status
  30. objects are now locked/unlocked by holding ctrl-shift and clicking instead of just shift-click, which fixes conflicts with using shift for running
  31. added transparent button background texture (transparent.png)
  32. elevators now update floor indicators and floor beep sounds when either passing a floor altitude, or beginning to level at a floor
  33. prevent elevators from updating floor number during leveling mode
  34. added more verbose file load error messages
  35. year update
  36. fixed Visual C++ 64-bit build options
  37. updated Visual C++ 2010 build parameters
  38. added message sound status checks, to prevent repeats
  39. removed Palace Hotel on author's request
  40. added support for sounds in call button objects
  41. added numeric checks to the Calc function, to fix issues with the Calc function hanging on filenames. Also removed the related work-around code for skipping parameters.
  42. fixes and cleanups to verbose output
  43. replaced elevator's message sound and floor sound objects with a single announcement sound object, and sounds using this are now queued to prevent overlapping
  44. added sound queuing support, using PlayQueued and ProcessQueue functions
  45. added reporting functions to Sound class
  46. elevators no longer play floor sounds (floor announcements) if on the same floor as hall call
  47. fixed crash that happened if the object move window was visible while the object was deleted
  48. (Triton Center) Shaft 17 (core utility shaft) now displays interfloors, bottom floor while inside it, and lights
  49. added ShaftShowInterfloors command
  50. Object Information window now displays correct line number information (adjusted for includes), and also related include filename
  51. split line number calculation portion of script error code into a separate function
  52. added List Textures button to control panel
  53. added script commands ListAltitudes and ListTextures
  54. texture listing now supports showing filename
  55. added more verbose output for texture loading functions
  56. fixed texture overrides; texture functions now unload previous material if a new one of the same name is specified
  57. (C++) added UnloadMaterial function and fixed UnloadTexture function
  58. (C++) split off texture multipler registration into separate functions
  59. (Triton Center) Residential service elevator texture orientation fix
  60. added emergency stop motor sound
  61. queued sound position option in sound code, to prevent repeat applies of the setting
  62. fixes for SetPlayPosition and GetPlayPosition in sound code for fmod, used by AutoAdjustSound
  63. added the AutoAdjustSound to the INI file, originally added in rev 1824
  64. added support for separate car and motor emergency stop sounds
  65. uninitialized value fixes (meshobject rotation)
  66. during an emergency stop, the car stop sound is played if an emergency stop sound isn't specified
  67. verbose mode now reports details on exactly which car/motor sounds are played, for start, move, and stop
  68. reworked elevator car/motor sound code and moved into separate functions
  69. renamed the "mainsound" sound object to "carsound"
  70. added support for a separate emergency stop car sound and speed multiplier
  71. fixed an issue where the elevator editor would display too much call button output in verbose mode
  72. split the create_walls option in the FinishDoors commands into separate doors_walls and track_walls options, and updated guide
  73. fixed issue where elevator nudge mode would become active if elevator was in fire phase 2 mode on alternate recall floor
  74. partial floor range in ShaftShowFloors command is now shown regardless of elevator moving
  75. added IsBoolean function (C++)
  76. enhancements to the ShaftShowFloors command
  77. button title fix (elevator editor)
  78. fixed issue where FinishDoors function was not properly reverting the DrawWalls state
  79. removed bounding box check in stairs code, since it was failing on stairwell floors that contained no geometry, but were still valid
  80. fixed "InStairwell" status
  81. interfloors are now shown for adjacent floors, in order to match the original design concept
  82. fixed columnframe and interfloor checkboxes in the mesh control dialog
  83. added Mesh Control dialog option to enable/disable interfloors
  84. added functions to enable/disable interfloors
  85. fixed main filename case
  86. fixed Caelum sky rotation
  87. changed Caelum start time to 10am instead of noon
  88. removed SkyMult INI file parameter, and the Caelum sky.os file now configures this
  89. added a check to make sure elevator serviced floors are valid for the associated shaft
  90. added basic group state check to floor object, to prevent repeated enables/disables during ShowFloors functionality
  91. floors now report in verbose mode when they're enabled/disabled
  92. fixed an issue where the ShaftShowFloors command would cause the destination floor to become disabled
  93. check floor enabled state before enabling/disabling floor and group
  94. mentioned reverse floor ranges in script guide
  95. fixed an issue where sound objects were playing during startup, and cleaned up related code
  96. removed full screen stay-on-top flag
  97. fixed an issue restoring fullscreen mode on Windows after a reload (using ctrl-r)
  98. added info on 'b' key FOV reset
  99. added binoculars FOV setting to the camera control window
  100. fixed a typo for the reload feature in the control reference
  101. added binoculars mode
  102. (Triton Center) fixed crossbracing texture tiling and some mechanical interfloors
  103. removed the Cut function's "checkstring" functionality, which reverts a "fix" from 2783 which broke filler walls in many existing buildings' elevators. The original functionality never really worked, and the removal of it appears to work fine
  104. data type fix for negative dest values. Also fixes an assertion in debug mode
  105. fixes to automatic filler walls function, to prevent z-fighting issues
  106. right-clicking controls now reverses direction of selection
  107. all shaft doors must now be fully closed for an elevator to move, when interlocks are enabled
  108. actions now return the status of the commands run
  109. controls and triggers will now only change position if the action succeeds
  110. controls/triggers with multiple parents or actions succeed if at least one action succeeds
  111. control/trigger sounds now only play if the position changes
  112. fixed a message loop in verbose mode if certain elevator sounds can't be loaded
  113. added more return codes and "loaded" status to sound code
  114. cleaned up elevator mode switching, so that certain modes must be explicitly disabled before enabling another mode
  115. ACP mode now uses standard queuing instead of Go function, which fixes a malfunction if used while another call is being handled
  116. the elevator Go function will now exit if elevator is already moving
  117. added floor ID reporting to Go function
  118. floor signs now take the shaft door offset into account when created
  119. added Renderer entry to Stats dialog
  120. fixed an issue where shaft doors would stay disabled if pressing F6 (resetting position) while in an elevator
  121. fixed logic behind 'force' parameter for shaft and stairs enable checks
  122. changed Glass Tower 138 floor sign to say "R", and also minor wall fix
  123. reload function now restores camera floor, gravity, collisions, and freelook options
  124. added elevator floor signs to the Glass Tower
  125. when deleting shafts, they must have associated elevators deleted manually first
  126. sensor actions created by elevator doors are now removed along with the doors
  127. floor deletions now fail if a shaft or stairwell depends on that floor
  128. fixes to GetFloorNumber function to allow deleting the current floor
  129. lots of reporting fixes and cleanups
  130. added shaft and stairs existence checks to EnableFloorRange
  131. elevators can now be deleted during runtime
  132. call buttons are now created with directions based on the combined range of all elevators, instead of just the first one specified.
  133. added a forced resize during a building reload for Linux - fixes rendering issues
  134. camera rotation values are now updated properly. This fixes the rotation display in the control panel, and also fixes rotations during a building reload
  135. call shutdown() on Ogre root instead of delete, to fix a crash on certain systems during shutdown
  136. fixed malfunction in trigger code due to an uninitialized position value
  137. fixed setback positionings in Sears Tower model in Triton Center
  138. added antennas to Sears Tower model in Triton Center
  139. tiling fix for Triton Center top (143) interfloor
  140. added missing keys to control reference
  141. added explanation of interfloor areas to script guide
  142. floor skip text can now be disabled by setting it with an empty value
  143. nudge setting in elevator editor now works properly on a per-door basis
  144. added door sensor item to elevator editor
  145. added "sides" graphic for script guide
  146. some needed fixes to the Observation Tower
  147. added floor signs to Simple building
  148. trim whitespace on GetAction() input string
  149. added option to change nudge option for door hold command, used by Sensor action
  150. added Sensor and Reset actions, used by sensors
  151. added support for elevator door sensors
  152. elevator parameters now properly calculate numbers
  153. repositioned Glass Tower's rooftop elevator motor
  154. moved Glass Tower roof structures to external mesh
  155. added use of VerifyFile to building file loader, to fix filename case sensitivity on Linux and Mac
  156. removed "starting time" entry from stats dialog
  157. fixed parameter count checks in script interpreter
  158. script includes now use VerifyFile which fixes case sensitivity issues on Linux and Mac
  159. file not found errors for script includes now handle exceptions properly
  160. moved Triton Center mech penthouse roof to separate floor
  161. fixed issue with cutstairwell and cutshaft commands introduced in rev 2047 (in Alpha 7), that caused external meshes to cut a floor too high
  162. removed unnecessary pauses
  163. added support for function nesting (calling functions within other functions)
  164. reworked the script error reporting code, to fix reported line number breakage when using nested includes
  165. updated guide to explain include and function behavior
  166. a warning is now shown in the console when a function is defined again, and the redefinition is skipped
  167. return empty strings instead of nulls for c-string functions. Fixes some crashes
  168. added atrium floor spacing in Glass Tower
  169. added progress dialog for script load
  170. added EndPoint function
  171. moved Print command to end, which allows certain command results to be printed properly
  172. added AddCustomFloor command
  173. (Glass Tower) added basic Peerless building and ground based on spotting blueprint from movie
  174. (major) fixed an issue where the submesh processor would skip, leaving unused triangle data. This was causing Prepare() to malfunction and sometimes visible corruption
  175. Action Viewer now displays multiple parents
  176. added ability to delete actions from the Action Viewer window, and fixed some cleanup issues involved in the deletions
  177. added AddActionParent and RemoveActionParent commands
  178. action viewer now refreshes list
  179. actions created by button panels are now deleted along with the panels
  180. walls of root object (SBS) meshes are now children of those meshes instead of root
  181. fixed a vector overrun in RemoveFloor function (element was removed before accessed)
  182. do not process geometry buffers if no data exists - fixes a crash on Windows
  183. manually deleting floors now deletes any walls created in the "external" mesh
  184. reset collisions when deleting objects, and clear last_collision value - this allows objects the user is touching (or standing on) to be deleted
  185. added check to prevent floors from being deleted out of order
  186. elevator doors can now be deleted properly during runtime
  187. added round math function
  188. added new math functions log2, ceil, flr, and rnd
  189. fix for texture distortion issues on main menu
  190. added option to turn off automatic filler/connection walls for elevator doors
  191. math function fix - removed the need for a space before the function names
  192. fixed default locale setting - this solves script error issues when running on machines with different locale settings
  193. texture functions now report in verbose mode only
  194. fixed StartsWith() function
  195. added advanced math functions to script interpreter
  196. added power-of operator to Calc function in script interpreter
  197. added Ogre 1.9 compatibility
  198. combined floors 65 and 66 in the Glass Tower
  199. cmake and source fixes for Ogre 1.9 compatibility
  200. orientation fix for old sky system
  201. added RenderOnStartup option, which renders the building as the script is processing on startup
  202. fixed an issue where most new meshes would need to be disabled and re-enabled to be visible
  203. cmake script fixes, and svnrev is now run automatically
  204. fixes to main window sizing
  205. fixed issues with main menu and mouse clicks being off on Mac, due to client size being different than window size
  206. fixed shutdown crash due to MainScreen::OnClose being called twice (mainly on Mac)
  207. made missing files dialog larger
  208. fixed issue where rotational degree values would show 360 instead of 0
  209. added OpenMessage and CloseMessage elevator parameters
  210. script processor now using main frontend loop for processing
  211. fixed an issue where main window would not resize back when exiting from fullscreen to main menu
  212. object list in objectinfo dialog now refreshes automatically
  213. switched DisableSound to a frontend option, which now changes it for the whole app
  214. removed unused options from INI file
  215. WalkBrake and RotateBrake options now work
  216. removed LookAccelerate, BodyDepth, LegsDepth options
  217. fixed GetObjectPosition() for elevator doors, so now their position shows up in the MoveObject window
  218. fixed Camera::Rotate() function; relative rotations now work in camera control window
  219. Bullet: disabled penetration recovery, which fixes issues with stairs stepping
  220. added frame smoothing feature, configurable in the INI file
  221. removal of wxWidgets code from the SBS library
  222. new SBS timer system
  223. added while statements
  224. added delete command
  225. added runaction command
  226. action names with spaces now work from scripts
  227. functions can now be called properly from IF/While statements
  228. added duplicate function check
  229. keycode fix for Mac version - fixes some key recognition errors
  230. switched to in-app console window
  231. control panel sizing fix
  232. removed unused RenderOnly and InputOnly options
  233. script viewer no longer shows included code
  234. rename and cleanups of collider recreation when adding/deleting objects during runtime
  235. fixed issue where meshes wouldn't be immediately visible if walls were added to them during runtime
  236. fixed an issue where control panel buttons failed to work upon a building reload
  237. command box in console now clears on send
  238. added echo option to console window (displays typed commands)
  239. fixed an issue with the main window not raising properly on startup
  240. fixed a startup clear screen issue
  241. switched log output to new in-app console window
  242. addition of main console text box in console window
  243. moved system over to Ogre logging facility
  244. all logging is now written to skyscraper.log
  245. debug console (text) output can be turned on and off by INI file parameter
  246. script processor is now persistent
  247. added missing note about ctrl-r reloading current building to key commands list
  248. added script deprecation warnings, which can be enabled in the INI file
  249. removed unused GetWallExtents function since the command version is more useful
  250. script interpreter cleanups
  251. fixed a parameter check for parameters specified after equals signs; would previously treat empty text as a single parameter
  252. updated syntax in Simple building
  253. added ReverseAxis parameters to the script guide, which were missing
  254. added ability to disable Bullet for testing
  255. fail and switch to old sky system if Caelum fails to init
  256. disabled elevator arrival notifications and floor sounds/beeps when in service modes
  257. disabled elevator door open/close functions while in Fire Phase 1 recall
  258. added needed object existence checks to functions that use the object array directly - without this, crashes were happening when doing an object scan after an object had been deleted
  259. ACP mode now uses the elevator's Go function, and now works properly
  260. elevator "Go" function now turns off elevator floor light when reaching destination
  261. fixed some door closing issues in Fire Phase 1 mode
  262. added exterior up/down controls to Simple - Manual building, and interlock switch for testing
  263. added support for modern manual lifts, that require the floor button to be held to proceed to that floor, via the FloorHold parameter
  264. script interpreter section reordering and cleanups, fixes variable processing issues, and duplicate functions have been removed
  265. added fire switch keys to Simple, Triton Center and Glass Tower elevators
  266. added landing zone area for automatic releasing of interlocks
  267. added new section of items to elevator editor, and added some other misc things
  268. added basic elevator interlocks, along with actions
  269. fixed button/control texture multipliers - this fix will break previous buildings' buttons and controls if they use size multipliers other than 0 or 1. Previously changing the size would mess up the button positioning
  270. updated Simple building with internal and external fire switches
  271. added more texture content
  272. added fire service enable function to call button code; switching one elevator to fire service phase 1 now switches all elevators in same bank (all being serviced by the first call button on recall floor) into fire service mode
  273. added elevator door open/close button hold feature (constant pressure support), for certain modes such as independent service and fire modes
  274. renamed CancelLastRoute to CallCancel
  275. major reworking of fire service modes to make them more realistic
  276. added reversals to door opening, used in fire modes to reclose the doors if open button is released
  277. major Glass Tower lobby changes; atrium base is now the Atrium level (previously mezzanine) to match movie depictions of the Hyatt Regency and Bank of America buildings
  278. added full support for manual elevators
  279. fixed issue where floor would turn off when closing shaft doors even if ShaftShowFloors is enabled
  280. added "0 to disable" options for DoorTimer and QuickClose parameters
  281. added AutoOpen parameter
  282. added OpenOnStart parameter
  283. added new Simple building with manual doors
  284. added OpenExt and CloseExt actions
  285. added more elevator and shaft door actions
  286. updated to OGRE 1.8, and updated meshes to newer format
  287. Glass Tower texture mapping fix for top of front setback pinnacle
  288. fixed camera control X axis reversal
  289. fixed action control centering
  290. added functions to support elevator returning/releveling to nearest floor after disabling inspection mode
  291. added 'return' function in elevator actions list which returns to the nearest floor after a stop
  292. added more checks to door "in use" status - fixes issues where elevator doors would misbehave if automatically moving and a manual open/close was run
  293. removed OIS requirement from cmake
  294. minor correction to local elevator range in Sears Tower
  295. fixed Glass Tower floor height typo in the floors 80 to 85 section (it erroneously added an extra foot to those floors)
  296. added dialog for moving objects
  297. fixed "hold" option for camera relative rotation in dialog
  298. fixed rotation quirk in dialog that allowed values outside of correct range
  299. array cache tweaks
  300. fixed DynamicSky script parameter
  301. added additional check to elevator service modes to prevent random activity
  302. elevator parking is no longer run while in a service mode
  303. fixed elevator availability check for LimitQueue
  304. added elevator queue reversal when arriving at top/bottom floor; fixes call quirks on those floors
  305. fixed issue in elevator_doors.txt script that prevented dual-speed left doors from closing properly
  306. switched user variable system over to named variables
  307. extended range of characters supported by the text-to-texture system
  308. Updated Visual Studio project files for VS2010
  309. added popup error messages for sound errors
  310. added gpu program checks for Caelum initialization; should switch off Caelum on problematic graphics cards to prevent reported crashes
  311. moved SBS initialization code into contructor
  312. removed obsolete shaders variables
  313. fixed issue where some wall handles wouldn't be deleted, due to a changing handle array size
  314. centralized number conversion into new ToString functions
  315. fix for textureoverride/textureflip states
  316. console output fix
  317. INI parameter fixes
  318. AddFloor parameter fix
  319. removed tchar for wxwidgets unicode compatibility
  320. random activity is now ignored if related elevator is in service mode
  321. added parking notification
  322. script interpreter performance improvements
  323. performance fix for GetTextureMaterial function
  324. fix for material polygon reporting
  325. fixed misuse of vector preallocation, performance improvement (fixes bottleneck when creating thousands of floors)
  326. function speed improvements in script interpreter
  327. added function name and calling line to script error message
  328. misc performance tweaks and cleanups
  329. old sky is now used if Caelum fails to start (previously the sky would end up being black in this case)
  330. fixed crash that would happen if Caelum wasn't initialized properly
  331. swimming pool model material fixes
  332. turned off texture lighting option by default
  333. added calc ignore checks for other filename parameters
  334. added StairsShowFloors and ShowFullStairs commands
  335. moved stairs, shaft and elevator checks into respective classes
  336. some tweaks to IsInStairwell checks
  337. removed some obsolete stuff (including shaft type parameter)
  338. added ShowFullStairs to Triton Center's West Stairwell
  339. added railings to Triton Center
  340. fix for disabling old skybox
  341. added ability to delete models and doors with ctrl-click
  342. added pool to Triton Center
  343. fixed a defect in the CutAll floors operation - was cutting through all floors associated with shafts/stairwells - now only cuts through current floor as described
  344. added check to prevent crashes when deleting an object user is standing on
  345. fixed creation of collider body which was causing crashes when loading collider meshes
  346. added support for skipping calculations on model filenames - fixes an infinite loop

Version 1.8 (2.0 Alpha 8)

  1. elevators now report as available if on the same floor as the call and not moving, regardless of the door state - fixes an issue where pressing call buttons more than once would open additional elevators
  2. fixed TruncateNumber function, to return correct floating point precision without exponent
  3. dialog text box resizes
  4. remade queueresets feature
  5. floor announcement sound is now played along with the other arrival notifications, and so is affected by NotifyEarly
  6. up/down message sounds now play according to last chime direction
  7. elevator now chimes the previous chime direction if doors reopen (if applicable)
  8. turned off queue reversals if NotifyEarly is on
  9. added ReOpen elevator parameter
  10. added AutoEnable option to turn on and off automatic enabling/disabling of elevator interior objects
  11. added queue pending state flag - fixes issue where pressing both call buttons in a 2-elevator shaft would call the same elevator for both
  12. switched to standard elevator availability check for single-elevator call buttons
  13. major work on elevator queue/arrival notification code
  14. call button behavior fixes
  15. changed freelook crosshair to cross
  16. added elevator queue limit, to prevent calls opposite of queue direction from being placed
  17. removed same-floor check in call button code, which broke calls when elevator was moving past current floor
  18. decreased classic elevator door spacing
  19. fixed logic that caused down calls to alternate chime direction
  20. added inspection service speed multiplier setting
  21. elevators now ignore the leveling offset if brakes are turned on while beyond that offset
  22. fixed a floor check and positioning issue with in-elevator directional indicators, which caused only single indicators to be created
  23. added default/error texture
  24. added support for configuring the main menu from the INI file
  25. reversed the Sears Tower and Glass Tower menu entries
  26. shift-clicking on doors now locks them
  27. added new command SetKey, which allows models to be specified as keys
  28. added new command SetLock, which sets lock parameters when creating doors, controls and call buttons
  29. fixed elevator door bumpers
  30. added actions for inspection service up/down/go toggle options
  31. added support for multiple parents per action
  32. added ip20112.5 update for "The Spire" building
  33. new Glass Tower roof, based on movie blueprints
  34. fixed a name check bug in the cut function, which was causing elevator door filler walls (done by FinishDoor()) to sometimes fail
  35. added support for elevator door vertical offsets
  36. elevators now stop according to the shaft door's voffset instead of the floor's base, where applicable
  37. added note to script guide mentioning that automatic filler walls needs all related walls to contain the word "shaft" for it to work
  38. changed camera speed to half, for a more realistic walking speed
  39. fixed texture autosizing quirks (diagonal walls/floors are now autosized correctly)
  40. added ability to delete models, controls and triggers
  41. limited object prepare on delete, speeds up object deletion
  42. added a fog multiplier setting in the INI file (changes fog density)
  43. Glass Tower - new test service elevator serving most floors
  44. Glass Tower - changed executive elevator to use floors in movie depiction
  45. new stairwells in Glass Tower, along with railings
  46. work done on Glass Tower floors 135-137
  47. updated AddFloor command, which fixes a number of issues with the old command
  48. fixes for planar texture mapper's autoflip functionality - now appears to work properly (but might potentially cause minor breakage of existing buildings - need to check)
  49. added ReverseAxis and texture direction parameters to AddFloor
  50. added rotate option to the planar texture mapper (which the texture direction parameter now uses)
  51. added GotoFloor function (mainly in camera controller window)
  52. added percentage indicator to script startup
  53. added note to the script guide about custom texture mapping and automatic reversals
  54. new glass elevators in Glass Tower
  55. fixed issue preventing custom walls from being made in elevators
  56. separated elevator motor sounds between up and down movements
  57. added comments in script guide about leaving sound fields blank
  58. performance improvements
  59. fixed volume bug in AddSound - volume parameter was specified as an int, preventing fractional volume values
  60. added lobby ambient sound to Triton Center
  61. added support for split car up/down elevator sounds
  62. added support for playing multiple sounds with the same name from an action
  63. added support for running multiple actions with the same name
  64. added couch model to Simple building, with physics enabled
  65. added centering support to models, and added parameter to AddModel commands
  66. added second couch to Simple building, and couch to top of Triton Center
  67. fixed object parent values for some new objects
  68. some fixes to cascading object deletion
  69. Triton Center antenna tiling fix
  70. added texture animation
  71. added support for direct loading of ogre materials in data/materials
  72. added caching to GetFloor() and related functions
  73. Triton Center external windows overhaul, using alpha blending
  74. Glass Tower overhaul
  75. added Action and Trigger objects
  76. added action viewer (control panel window)
  77. fixed global AddSound command which was overriding the per-object ones
  78. updated AddSound command for FMOD and added loop option for new control/trigger commands
  79. fixed texture and material counters
  80. added changetexture, playsound and stopsound actions
  81. disabled doppler effect (sounds) by default
  82. default main sim window size now changed to 800x600, menu window size separated and kept at 640x480 (configurable)
  83. added internal skip for wildcards in filenames (*) (fixes those bogus error messages)
  84. started in-sim object creation (code constructor)
  85. added building startup options to turn on/off collisions and gravity (listed in the designguide)
  86. disable basement number conformity (fixes Cliveden Desmond Wharf)
  87. added a file check for the include section (loading now fails if an included file cannot be found - this prevents serious and hard-to-diagnose errors later on)
  88. added Empty building (not working properly, but is used to create buildings from scratch)
  89. object colliders are now removed by default (for running performance) except for elevator doors (due to slowdowns when entering Triton Center elevators)
  90. disabled backface polygons for ground
  91. object info listbox now updates if you exit that window and re-enter
  92. added new control aliases, mostly for Mac users
  93. added support for setting the default sky time speed in the INI file for Caelum, and changed the default to 25 (you can now easily see the clouds moving, and a day moves much faster so you can more quickly see sunrises and sunsets)
  94. switched Mac frontend to use Cocoa
  95. switched from normal flipping to standard texture flip (for ogre coordinate system compatibility)
  96. added the Caelum sky system
  97. lowered default texture filtering anisotropy level to 4 (from 8 )
  98. switched to 16-bit hardware indices; should fix geometry corruption on some older cards, and should improve performance somewhat
  99. if a cut operation eliminated an entire polygon, the original polygon would not be deleted
  100. added ability to only play elevator music while moving, and updated related INI file parameters
  101. added advanced option to profiler
  102. added profiler system
  103. added check for duplicate entries in missing files list
  104. added proper error reporting (and OGRE exception handling) to frontend initializer
  105. fix for operational conflict between floor grouping and ShaftShowFloors command
  106. added DisplayFloors parameters
  107. added texel override
  108. added physics support for models
  109. added support for model colliders
  110. added support for Ogre meshes (using converters for Google Sketchup)
  111. added checks to ensure that starting floors are less than ending floors in AddShaft and AddStairwell commands
  112. gravity reset fix and fix for IsInShaft() distance check
  113. fixed an issue where shaft would rapidly turn on and off if on top of elevator
  114. fixed issue involving reversed polygon faces resulting in some textures being reversed. Put in a precision workaround for Alpha 7 compatibility.
  115. sound fixes, added ability to view camera collider via F7, and fixed a line skip issue in the script interpreter
  116. filler wall reset fix
  117. added support for different open/close speeds for elevator doors
  118. wxwidgets compatibility fix
  119. added proper failures on numeric checks to report errors and prevent loops
  120. added texture filtering options, and switched default to anisotropic (previously bilinear)
  121. added ability to switch on and off collision detection and visible colliders via F7
  122. split SBS into shared object on Linux, and restructured source files
  123. removed AddGenWall and migrated items using it to AddWallMain
  124. switched translator code to OGRE's right-hand coordinate system (SBS uses left-hand)
  125. switched to FMOD for sound
  126. switched to OGRE for graphics
  127. switched to Bullet for collisions and physics
  128. Triton Center renovation
  129. fixed door filler walls
  130. object deletion fixes
  131. added geometry deletion support
  132. fix crash that only happens if shafts are created out of order
  133. new internal mesh object system (Skyscraper now generates it's own 3D geometry)
  134. new horizon distance setting
  135. added render distance limits for small objects

Version 1.7 (2.0 Alpha 7)

  1. added braille fonts
  2. added support for elevator panel switches and knobs
  3. added elevator fan toggle
  4. door open and close buttons now support specific doors
  5. added door hold feature
  6. elevator now resets queue search direction if last entry in active queue is in the opposite movement direction
  7. elevator doors no longer try to open if you press the call button as it's passing the floor
  8. floor buttons now properly add floor route if pressed on the same floor as elevator is moving
  9. Fix for vertically-moving elevator doors' offset calculations
  10. Elevators now properly sync camera offsets if a person boards a moving elevator
  11. Fixed an issue where the random activity system wouldn't select the top serviced floor
  12. added standard doors to elevator objects
  13. added sound support to doors
  14. fixed a crash that occurred if ServicedFloors included an invalid floor number
  15. added internal error reporting system
  16. new object tree browser
  17. elevator parking fixes
  18. call cancel now only works in fire phase 2 mode
  19. elevators now reroute properly if switched to fire phase 1 mode while moving
  20. added object deletion support
  21. added elevator run/stop states
  22. arrival notification can now be performed at the start of leveling or at deceleration
  23. Added adjacent floor check - eliminates crashes related to trying to create floors in the wrong order
  24. Elevator doors no longer open when parking
  25. some interior elevator objects now stay enabled while user is outside elevator
  26. grouped floors now also enable stairwells and shafts
  27. Added braille callbuttons
  28. Elevator beep sounds now support floor number substitution
  29. added support for direction message sounds
  30. added separate folder for screenshots, and switched format to jpeg
  31. added support for elevator music
  32. ShaftCut and CutStairwell commands now cut external objects
  33. Added support for displaying last clicked 3D position
  34. Added Housing Estate building
  35. Added support for changing door speeds
  36. added SVN versioning info
  37. Elevator objects can now be used in certain global commands
  38. fixed a peak mode dispatch issue
  39. Added case insensitivity support for file loading
  40. Internal indicator vertical positioning fix
  41. App now displays missing files after building load
  42. Texture rendering fixes
  43. added "open" parameter to doors
  44. added DepartureDelay and ArrivalDelay elevator parameters
  45. Error reporting system is now more verbose about certain errors
  46. added sign textures
  47. added nudge mode

Version 1.6 (2.0 Alpha 6)

  1. added current floor ID to the control panel's main and camera control windows
  2. added support for forcing autosizing on or off on a per-texture basis
  3. added support for floor arrival sounds
  4. added more camera speed config parameters
  5. added full camera reset (respawn) triggered by F6
  6. added elevator motor sound object
  7. added support for exiting back to the main screen
  8. added support for per-door elevator floor signs
  9. added new simulator/building statistics dialog
  10. moved button code into separate control class
  11. added support for elevator button lighting
  12. fixed issue involving elevator door sound playing for non-serviced doors
  13. added script console
  14. text-to-texture objects now support transparency
  15. fixed floor sign autosizing issues
  16. many elevator queue fixes
  17. fixed call cancel button
  18. app now properly exits to the main menu if a building fails to load
  19. added custom sound objects
  20. added new Simple building with basements
  21. more comments added to the Simple building
  22. elevators can now be named
  23. call buttons now light up in groups
  24. added Schindler MT textures and sounds
  25. added verbose mode
  26. control panel can now be reopened by pressing F12
  27. fixed blank canvas issue on Mac
  28. elevator modes can now be set from building scripts and the INI file
  29. fixed ACP mode
  30. fixed other service modes
  31. added SetTextureMapping2 command
  32. created new planar texture mapper
  33. added the GetWallExtents and Print commands
  34. added InterfloorOnTop global parameter and base variable
  35. made new SetPlanarMapping command which is an extended version of the old ReverseExtents command
  36. new planar texture mapper is now the default
  37. added object information dialog
  38. added support for file includes
  39. added support for script functions
  40. added support for user-defined elevator and shaft doors
  41. added automatic elevator parking support
  42. added button sound support
  43. elevator and motor sounds now start at a position based on the elevator's speed
  44. elevators now support an unlimited number of button panels
  45. added CutAll command
  46. added support for internal elevator directional indicators
  47. directional indicators can now show active (running) elevator direction
  48. fixed some quirks with elevator movement
  49. added elevator leveling support
  50. Lines with both functions and IF statements now process the IF statement first
  51. door cutting uses CutAll function, which now makes it cut stairs, shafts, external, etc
  52. Texture flipping now works properly with zero tw/th values
  53. call buttons are now only created if any of the given elevators serves the floor
  54. ACP mode now works in conjunction with peak modes
  55. added experimental random elevator traffic

Version 1.5 (2.0 Alpha 5)

  1. clicking on shaft doors and elevator doors while holding down shift now causes them to manually open/close
  2. manually opening shaft doors causes the related floor to turn on if user is in a shaft or an elevator
  3. added new buildings
  4. added support for multiple floor indicators per elevator
  5. floors can now have floor indicators
  6. added support for elevator floor beeps
  7. added support for separate up/down chimes
  8. added support for per-door textures on elevator/shaft doors
  9. added elevator door collision sensors
  10. added last collision indicator to control panel
  11. added support for call button lighting
  12. major fixes to the elevator queue and call processing
  13. fixes to some elevator parameters, where they would error out if used in a different block than the CreateElevator command
  14. sound support is now optional and will switch off automatically if not available
  15. some new script checks for valid floor ranges
  16. added basic glass elevators to the Glass Tower
  17. simultaneous door movements are now supported
  18. call button monitor added, to realistically wait for an available elevator during a call
  19. call button light status can now be changed by shift-clicking the button
  20. elevator panel buttons now support position offsets
  21. fixed manual sizing parameters of the panel buttons
  22. added support for mounting zipfiles into virtual directories
  23. added the ability to spin the camera (Z-axis rotation)
  24. startup screen now works on Linux and Mac
  25. added mouse look (freelook) mode, activated by F5
  26. new Camera Control window
  27. split chimes sounds into up and down versions
  28. added support for writing text onto a texture with the AddText command
  29. fixed a memory leak involving floor beeps
  30. added support for texture name prefixes, used with floor indicators and signs
  31. added support for cropping and overlaying textures with the LoadCropped and AddOverlay commands
  32. added configuration file support
  33. added support for zooming in and out (FOV angles)
  34. added support for starting up without the control panel
  35. added fullscreen support, activated by F10
  36. fixed an issue where walls along the Z axis would have the side negative and positives switched
  37. height element can now be chosen from the script's object parameters
  38. added parking ramps to the Triton Center
  39. added AddFloorAutoArea command, which enables and disables floors within a specified area
  40. fixed texture flipping
  41. removed ReverseExtents command (was broken since early 2007)
  42. added SetTextureMapping and ResetTextureMapping commands (replaces ReverseExtents) to allow manual setting of UV texture coordinate data
  43. added AddFillerWalls command which is a convenience function used in creating doors
  44. added hotel rooms to the Triton Center
  45. added control reference (for keyboard commands, etc) to the control panel

Version 1.4.1 (2.0 Alpha 4.1)

  1. Linux build fix
  2. fixed a shaft door regression

Version 1.4 (2.0 Alpha 4)

  1. added syntax checking and error notification to the script processor
  2. fixed an old bug that could crash the sim if the floor ID matched a non-existent texture
  3. added support (and FloorSkipText parameter) for showing express zone indicators during floor skips
  4. added ACP, Up Peak, Down Peak, Independent Service, Inspection Service, and Fire Service phases 1 and 2 modes to elevators (not all work yet)
  5. remade manual/emergency door open/close methods
  6. added door stop function for doors in manual/emergency mode
  7. elevator doors no longer open during an emergency stop (except for a manual open)
  8. manual opens during an emergency stop will only open the elevator car doors
  9. fixed a crash that involved trying to open shaft doors on a non-serviced floor
  10. added shaft tops to the Triton Center and Simple elevator shafts
  11. lots of memory leak fixes
  12. simulator now pauses when main window is minimized
  13. Sears Tower skydeck elevator crash fixed
  14. performance enhancements
  15. call selection fix
  16. half of express elevators in both the Triton Center and Sears Tower buildings are now stationed at the top
  17. fixed ShowFullShaft command
  18. added support for elevator directional indicators
  19. added alarm sounds
  20. added support for multiple elevator doors
  21. added support for specifying shaft doors on a per-floor basis
  22. added AddFloorSigns command that creates floor signs on all floors served by an elevator
  23. numerous Triton Center fixes
  24. split Triton Center topside mechanical into 2 floors, added stairs to the roof, and did roof/penthouse work
  25. moved Triton Center's skydeck entrance to LL1
  26. Triton Center's pool express elevator now only serves lobbies instead of upper residential floors in addition to lobbies
  27. fontserver fix
  28. added wireframe mode and screenshot keys
  29. and lots more

Version 1.3 (2.0 Alpha 3)

  1. added door framework
  2. fixed a range bug that caused ranges to fail if the first value was negative
  3. added basement levels to Triton Center
  4. added ShaftShowFloors, ShaftShowOutside, and ShowFullShaft commands
  5. fixed a bug involving certain variables not being processed
  6. fixed up sign generator script
  7. new floor signs (floors 151 to 300, and floors CC and PL for the Sears Tower)
  8. fixed sound code
  9. new elevator sounds
  10. added script parameters for specifying elevator sounds
  11. fixed door sound location and movement
  12. moved main Crystal Space code out of SBS core into frontend
  13. fixed an infinite loop condition when processing multiple and/or operators
  14. more Sears Tower work; currently have all express and local elevators in place
  15. added TextureFlip command
  16. elevator editor's floor scrollbar now supports negative floors
  17. fixed a bug where the elevator doors would immediately close (and the current floor would turn off) if going to next floor in queue
  18. increased elevator door speeds to match new sounds
  19. added basement levels to the Triton Center
  20. new intro screen (doesn't work yet on Linux)
  21. major performance improvements
  22. added keys w, a, s and d for movement
  23. input is now only processed if main window is selected

Version 1.2 (2.0 Alpha 2) - Jan 10, 2009

  1. added missing DLL for CS, and fixed installer
  2. added AddGround command, for creating tile grid-based grounds (fixes ground interference issue in 1.1)

Version 1.1 (2.0 Alpha 1) - Jan 6, 2009

  1. complete rewrite from scratch, using C++ and the Crystal Space graphics engine
  2. numerous features added that were not found in the 1.0 release

Changelog from old 1.0 tree

Version 1.0 is being released now due to the massive overhauls and redesigns that have rendered the main development Skyscraper tree unstable, and uncompilable at the moment. 1.0 is not complete in any way, and is still a primitive release. 1.0 is a fork of the stable 0.96 code, while the 0.97 code (renamed 1.1 alpha) is under development.

  1. fixed up shaft and pipe shaft issues
  2. bundled with new installer

Version 0.96 (build 161)

  1. cleaned up elevator button code, and made it into a nice little algorithm
  2. fixed falling issue
  3. added error detection during startup, for the absence of the TrueVision engine
  4. fixed bugs in the Object Manager
  5. fixed up 134th floor, and reworked the pool
  6. rewrote elevator queuing system
  7. collision detection failure bug fixed
  8. reworked pipe shafts and crawl spaces
  9. new cinematic intro added (will be enhanced later)
  10. new functionality added to the simulator control panel
  11. automation added to the simulator control panel
  12. new buildings added
  13. building texture resolutions fixed
  14. ModelViewer application added

Version 0.95b (build 144)

  1. minor code changes
  2. adapted for the new TrueVision3D 6.2 engine

Version 0.95 (build 140)

Changelog begins during 0.95 development.

  1. Date change
  2. Shaft wall put over stairwell wall
  3. Shaft ceilings raised to next floor
  4. Fixed mezzanine walls and shafts somewhat
  5. Fixed shaft floors
  6. Fixed mezzanine to work with queues
  7. Fixed mezzanine call buttons
  8. Stopped elevator doors from opening if on a different floor
  9. Large chunk of useless code deleted from DrawElevatorWalls2
  10. Support for 4 stairwells added
  11. Pipeshafts fixed, 4 total
  12. Elevator call issue fixed (elevators didn't initally set currentfloorexact value to corresponding floor)
  13. Massive bugs introduced with new features fixed
  14. Elevator call queues added
  15. Stairs creation moved into realtime
  16. integrated with TrueVision3D 6.1b
  17. Tons of bugfixes and features
  18. Elevator grouping support

Versions 0.94 (build 125) and below

A lot of other changes...