January 31 2015 build

From Skyscraper
Jump to: navigation, search
This is the article of a development build of Skyscraper Simulator.
It has been confirmed a good-faith contribution to the Skyscraper wiki.

This build should hopefully be the last build before the Alpha 9 release. I was considering releasing already, but had to rebuild the Mac environment since I got a 2011 Mac Mini running OSX 10.10 (Yosemite) for building. Because of that the Mac build uses a new toolchain with wxWidgets 3.0, and now freelook mode (F5 key) is working fine (at least on the 10.10 system), which was broken before. It's built using the 10.6 SDK, and so requires 10.6 or greater. If you have a Mac machine, especially with older releases such as 10.6 or 10.7, please test this build to see if it works, because I've only been able to do very limited testing. The previous (Dec 2) Mac build was broken due to a linker issue, and this has been fixed.

The Linux builds are now done on Debian 7 systems, and work fine for recent Ubuntu versions I've tested. Please report any issues with these builds.

In SVN (subversion), the Skyscraper 1.9 branch has been made, which is in preparation of the upcoming release. This branch will be periodically synced with the trunk (current code) until after the release: http://svn.tliquest.net/viewvc/skyscraper/branches/v1.9/

For this build the filename workarounds in the Calc function in the script interpreter were revamped to handle issues where buildings would hang on startup due to filenames being used in certain places. Call buttons now support sounds, mostly for the click sound effect. The Palace Hotel building was removed by the author's request, status checks were added to the message sound code to prevent them from repeating, some Visual C++ (Windows) build options were fixed, more verbose messages were added to the script file loading code so that it doesn't just show a generic error message, the elevator floor indicators and beep sounds have been revamped to update the floor number while they're passing the floor or beginning to level instead of when the elevator's base is located within that floors range (makes things more realistic), and a new transparent texture has been added.

One last important change to be aware of is that the key lock/unlock function has been changed from shift-click to ctrl-shift-click, since the shift-click was interfering too much with running (doors would accidentally be locked when people were holding down shift to run, and clicking while running). Due to this I was also able to bring back the ability to change the call button light statuses by shift-clicking on them (this was used for testing before).


Changelog:
-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.
-added support for sounds in call button objects
-renamed call button sound
-removed Palace Hotel on author's request
-added message sound status checks, to prevent repeats
-updated Visual C++ build parameters
-fixed Visual C++ 64-bit build options
-year update
-added more verbose file load error messages
-prevent elevators from updating floor number during leveling mode
-elevators now update floor indicators and floor beep sounds when either passing a floor altitude, or beginning to level at a floor
-added transparent button background texture (transparent.png)
-objects are now locked/unlocked by holding ctrl-shift and clicking instead of just shift-click, which fixes conflicts with using shift for running
-brought back shift-click call button functionality, to change light status

Alpha 9 was released yesterday. I posted this today because currently there is a severe issue with the Mac version which has been there for a while (at least on my system), and so I'm checking things before publishing that to Sourceforge. The Windows and Linux builds are fine though. The issue with the Mac version on my system is that if you click the "Other Building" button and try to load any building that way, it results in a graphics malfunction during texture loads.

This release represents a major bugfix and stability overhaul to the simulator, resulting in what's the most stable and reliable Skyscraper release yet. This release also features major changes to a number of internal functionality. For detailed information on the changes, scroll down to past the changelogs to the detailed release notes, which is from the readme.txt file.

Make sure you read the release notes (readme.txt) - it points out the major changes since Alpha 8, and other important information

There's been a lot of changes since the last build. The Action code has been somewhat reworked to prevent duplicate executions of actions, since I had found one situation where it would do that. I added the SensorOn and SensorOff commands for actions. Objects are now deleted using ctrl-alt-click instead of ctrl-click, to prevent interference with the ctrl walking modifier key. In the elevator editor, the floor selector now only selects the serviced floors, instead of all available floors. The Control Panel window now shows the name of the current floor, and there's new buttons that display information about all floors, and also the current floor, in addition to the new FloorInfo script command. There's also been a number of fixes for severe issues.

The new Underground building has been added, which was inspired by concepts from the original Journey to the Center of the Earth movie (the large underground ocean scene) and also the movie Forbidden Planet, with the large underground Krell shaft environments. I used that building for scalability tests for the simulator, which fixed a lot of severe performance bottlenecks.

Here's also a link to the previous Alpha 8 release announcement: http://forum.skyscrapersim.com/index.php?topic=5676.0

Changes since the last build:
-added new Underground building
-cleanups in relation to ShowFloors arrays
-fixed a conflict between Group listings and ShowFloors lists, and cleaned up EnableFloorRange function
-the print command can now be specified by itself, to print a blank line
-many script commands would crash if given no parameters; this fixes the issue
-(Triton Center) 135th floor description fix
-made new floor list report and FloorInfo command, and migrated the ListAltitudes feature into that
-added Floor Information button to the control panel
-added current floor name to the control panel
-fixed an interior window positioning issue in the Simple building
-prevent shaft door reset if full shaft is enabled
-EnableGroup function in floor object will no longer touch shaft or stair objects if they're currently fully enabled
-disabled some warnings on Visual C++
-fixes to action array checks of Control and Trigger objects, to prevent crashes if no actions are associated with the object
-more elevator object checks for elevator editor
-reset door reference in elevator editor, to prevent issues if elevator is deleted
-added Mac key hints to control reference and readme
-the elevator editor's floor selector now only shows the related serviced floors
-(c++)reworked shaft door and elevator door ClickedObject code to newer design
-(c++)elevator shaft door wrapper objects now store associated floor number
-(c++)remade call button code in ClickedObject function, to remove legacy code
-call buttons can now be deleted using ctrl-alt-click
-controls can now be deleted by ctrl-alt-click
-objects are now deleted by ctrl-alt-click instead of just ctrl-click, to prevent interference with ctrl walking modifier
-added reporting to elevator door sensors
-added new actions for enabling and disabling elevator door sensors
-reworked action run code, to prevent duplicates
-call buttons now check if elevator objects are valid, to report accordingly

Major changes since the Alpha 8 release:


Ogre 1.8.1 is now used instead of 1.7.4, which Alpha 8 used. Model mesh files need to be upgraded to the newer format to prevent warning messages on startup - they'll still work fine though.

A pool has been added to the Triton Center, on the Pool level (132). This floor can be accessed by the Pool Express elevator in the Hotel (80) and Residential (100) skylobbies.

The Triton Center now has railings, and also displays interfloors along with shaft lights in the core utility shaft, accessible by a door on the subbasement (S) level.

For the Glass Tower, the atrium base is now the Atrium level (previously mezzanine) to match movie depictions of the Hyatt Regency and Bank of America buildings. The neighboring fictional Peerless Building was also made, based on a spotting blueprint.

The StairsShowFloors and ShowFullStairs commands have been added, which allow stairwells to display multiple or all levels if in that stairwell. This is used in the Triton Center's West Stairwell (serves floors 80-119) allowing you to look down the center of the whole stairwell.

More detailed information is shown in script error messages, and also in the Object Manager for each object.

Performance improvements were made for buildings with thousands of floors or very fast elevators.

Names can be used for variables instead of just variable numbers. It's recommended to change any scripts that use numbered variables to the newer named format, to make script code easier to read.

When inspection mode is disabled in an elevator, the elevators now automatically re-level to the nearest floor.

A window has been added in the Object Manager to move objects such as models and walls. To move an object (in this example I'll move a couch in the Simple building), first start Skyscraper and choose the Simple building. Move into the building and look at both couches. In the control panel, click "Object Manager", click the arrow next to "Floor 0" to expand it, scroll down, and click on one of the "Couch" entries. Now click the Move button below, and you're now able to move and rotate it.

Elevator button texture sizing parameters have been fixed - this may break button positioning in existing buildings that have values other than 1 or 0 for the button size, but so far it seems to be limited (and is easily fixed if you just put in the correct value).

The simulator now fully supports manual elevators and platform lifts.

Elevators support constant-pressure (hold) open and close buttons.

Elevator fire modes have been reworked for full realism.

Elevators now use interlocks for all doors; to manually open and close doors, interlocks must be disabled first in the Elevator Editor, and then shift-click can be used to open/close them. If interlocks are enabled, the elevator will not move unless all associated shaft doors are closed.

A new console window has been created, and all logging in this window is put in the skyscraper.log file.

The RenderOnStartup option has been added to the INI file, which if enabled, lets you view the building as it's being build. This results in a very slow startup, but is interesting.

While statements have been added, and functions can be called from both If and While statements.

Nested functions are now supported, and use a basic stack system for switching between contexts.

Elevator door sensors have been added, which is enabled by default for all automatic doors. Door sensors are automatically created triggers, sized in the elevator's internal door area with 1/4 of the character collider's width surrounding it for room. Two new elevator commands were made which are used by it's action, and are "sensor" and "reset". When a user passes into the sensor's trigger area, the "sensor" command is run which opens and holds the doors. The "reset" command simply calls a function that has existed before, that resets door timers to disable a door hold. The door sensors can be switched on and off in the elevator editor.

The selection for controls (button and switches) can be reversed by right-clicking on them.

Floor signs now take the shaft door vertical offset into account when being created.

Call buttons are now created with directions based on the combined range of all elevators, instead of just the first one specified.

A binoculars feature has been added, which can be toggled with the B key. Pressing the B key will also reset the camera's field of view (FOV).

The interfloors adjacent to the current active floor are now shown, which follows the original design.

Elevators now support a separate emergency stop speed multiplier, along with car and motor sounds that are played during an emergency stop.

A "List Textures" button has been added to the control panel, which lists all loaded textures from the texture tiling information table, along with the related filename.

The internal sound code now supports sound queuing, which now makes the floor sounds and message sounds all play in their initiated order, one after the other, instead of simultaneously.

Call buttons now support sounds.

The elevator floor indicators and beep sounds have been revamped to update the floor number while they're passing the floor or beginning to level instead of when the elevator's base is located within that floors range, making them more realistic.

The elevator editor's floor selector now only shows the related serviced floors.

See Also