Skyscrapersim 2.0 Alpha 10

From Skyscraper Wiki
Jump to navigation Jump to search
This article is legitimate.
It contains good-faith information, such as an existing building or content.
Current Development Builds by Version (Update)
Versions: Alpha 1, Alpha 2, Alpha 3, Alpha 4, Alpha 4.1, Alpha 5, Alpha 6, Alpha 7, Alpha 8, Alpha 9 (Update 1 / Update 2)
Alpha 10 (Update 1 / Update 2 / Update 3 / Update 4 / Update 5 / Update 6), Alpha 11 (Update 1 / Update 2), Alpha 12, Beta

Skyscrapersim 2.0 Alpha 10 / 1.10 was the 11th release of the 2.0 releases. It was released on December 19, 2016. This version has 33 builds.

Changelog[edit | edit source]

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