ReleaseNotes:Planimate 5.32 Release Notes

From Planimate Knowledge Base
Jump to: navigation, search


  • CHANGE Handling of reading dates into columns NOT formatted as dates is now different for clipboard import, edit file import and DAT file reads into Tables. DataSet2 operation is not affected.
    If the column isn't formatted for a date and the "Auto Column Type" option is not on (for clipboard or edit mode file read) then dates are not read and "-" is treated as a zero.
    Previous versions would read dates and "-" into columns formatted for Units (for example) resulting in large numbers as the date was translated into the number of seconds since the reference date. It meant that "-" in numeric spreadsheet data was incorrectly handled.
  • CHANGE ImportIntoView now uses a more forgiving parser so formatted values are handled when going into cells that dont expect any formatting. This makes its behaviour consistent with importing the entire table from the clipboard.
  • FIX LockDrawing now supported for table views. Important: if you lock drawing and change structure of a table (insert/delete rows/columns) then the view will become inactive even when you unlock drawing until the next panel repaint (whether forced by modeller or a panel change).
  • FIX Table Editor "Paste Over" now handles cancel properly
  • FIX RTF note window follows anchor rules of its parent link
  • FIX Impose minimum size on creating an RTF note to avoid creating an unclickable note (it was still editabler through link context menu)
  • FIX Scoped classes causing problems when deleting panels
  • FIX File name handling (extention) could cause first save to report error loading just-saved model.
  • FIX Setting the graphics properties for multiple selected button paint objects now sticks to the states rather than being lost upon a state change


  • NEW Value formatting mode "hhh:mm"
    This shows hours and minutes for the value but hours are not limited to 23, they can extend as required.


  • NEW Portal option "Show Above Items On Links"
    This puts the portal in a layer above items that are moving on spatial links/tracks, so it will obscure the items as they approach it. Partial transparency of the portal is handled.
  • NEW End User Option "Spacebar Continues Run" causes spacebar to continue the run, like Ctrl-G but only in paused mode.
  • FIX Changing a portal's using SetPortalIcon no longer hides the previous icons.
    NOTE You must repaint using at least RepaintObjectLayer after setting portal icon(s) with SetPortalIcon.
  • NOTE If you are using RepaintObjectLayer, ensure that the portal option "Monitor Occupancy" is turned OFF and dont use custom portal states.
    SetPortalIcon() is not compatible with these and if used, it will result in flickering and (potentially) the portal crawling off the panel due to a difference in co-ordinate systems.
  • FIX Dragged object clip only applied if object is in object label list
  • FIX Image mover would display errors if "thumbs.db" was present. This is a file created by Windows. The image mover now ignores this filename. Dont call a model "thumbs".
  • FIX On "New Model" or "Load Model", the internal icon cache is cleared. This removes any failed icons (red boxes) due to missing files. Previously these remained even if the icon file became available.


  • NEW Object property "ObjectPipeEmptyColor" enables the empty colour of a pipe to be changed on the fly.
  • FIX Reworked the way that table size changes are updated to views and the table editor. There were cases where an error during an import was causing the editors to receive hover messages at a time before the load had completed and they had been given an opportunity to adjust to the new table size.
    Look out for cases where: a table size change is not reflected in a view/table editor a table size change causes slowdown in a view/table editor
  • FIX WrapExtraIndent showed junk at beginning of line
  • FIX Map positioning of objects in edit mode
  • CHANGE Clipping of dragged portals on panels with a map is disabled. This helps position map nodes with very large icons.
  • SPEED Sped up Message and Broadcast item creation by optimising the transfer of item icon and icon properties between the original and message/broadcast items.
  • SPEED Tables with many columns handled quicker when clearing


  • NEW System attribute ItemClassInfoHide (also set by item class option "Hide Info Panels For Class" enables item info panels to be globally hidden for an item class.
  • NEW Portals have option "Transparent To Clicks In Run"
    This makes them invisible to mouse clicks when the engine is running (in edit or user mode).
  • NEW GetViewProperty and SetViewProperty have a new parameter, "Index" This enables the selection of a particular view when a number of views of the same type exist on a panel.
    A value of 1 selects the matching view closest to the back of the z-order, 2 selects the second-backmost etc.
  • FIX SetPortalIocn now preserves the objects centre rather than anchoring to the lower left corner.
  • FIX Hide spatial links panel option does not apply in edit mode, only when tools hidden/run modes.
  • FIX When dataset2 loads a table, any open table editor for a table being read is closed so the loader can process the table without the editor updating (causing slow down).
  • FIX Ctrl-paste over a selected object used to cause PL to close.
  • FIX Can select "None" for shadow colour


  • NEW The routine editor context menu has an option "Wrap Long Lines" which acts as a master control on line wrapping. It acts in addition to individual line wrapping control.
    The initial setting is set from INI option [Routine] WrapLines.
  • NEW INI option [Routine] WrapExtraIndent
    This enables additional indenting of wrapped lines to be specified.
  • NEW Routine list background colours can be separately set for routine lines, wrapped lines and "folded" code block lines.
    These are set in the [RoutineEditColors] section in the INI options editor.
  • NEW Paint properties:
TextShadow   : sets shadow colour for text
BorderRadius : sets radius for rounded borders

  • FIX Mapper handles 0 row table
  • FIX Tracks support hiding at runtime (when end points hidden)


  • FIX This release fixes an error with the "Bell Curve" and "Log Normal" distributions when the new random number generator (see 5.22m) is being used.
    The new generator had too much variation for these distributions.
    For example, an StdDev of 0.5 was acting as an StdDev of 0.7.
    The model option Engine - Use Old Random Number Generator determines if the old or new generator is in use.
  • NEW Routine line "Folding"
    left/right arrows in routine list can collapse/expand wrapped lines and code blocks like ITERATE, IF and SELECT.
    collapsed lines are indicated with ah + after the number.
    Editor operations like "Duplicate", and copy are aware of collapsed lines and will operate on all the lines inside them.
  • FIX Adding routine line at end of routine now auto-advances to Add New line, as it used to.
  • FIX Made Rounded Edge border thicker to avoid stray pixels

5.32k [new model file version]

  • NEW Routine List Line Wrapping Long routine lines now wrap over multiple lines in the routine list. The wrapping updates when column widths are changed.
    The routine editor has been extensively reworked internally.
    Wrapping occurs on the internal "font change" messages which means attributes names/labels wont get broken up across lines, the breaks only occur where a change in font/colour occurs. The rules of breaking lines may be refined later.
    Lines containing wrapped content are slightly indented to the start line. This will be made adjustable later.
    The line number (which doesn't increment for wrapped lines) is only shown on the first line of a wrapped group of lines. This makes it clear which lines are wrapped.
    At this stage you can select the individual lines in a wrapped block of lines, they all are equivalent and act on the entire routine operation, not just the section of text they contain.
    Moving between lines with the up and down arrows will be enhanced to (optionally) move to the start lines, skipping the wrapped lines. The block Start/Block End commands do this already.
    Collapsing wrapped lines (and code blocks) will be implemented at some stage, the design now supports it.
    There is a limit to the length of one routine line, 64KB which corresponds to one routine line wrapping over hundreds of lines.
    The INI RoutineFormatW parameter is now obsolete but left in so previous versions of PL can still use it.
  • NEW More border styles supported for rounded objects

"Rounded"        (original in 5.32j) - no edge
"Rounded Edge"   single pixel border (paint square can have thicker)
"Rounded Shadow"
"Rounded Shadow Double"
"Rounded Indent"
"Rounded Indent Double"
The "Graphics" dialog enables the rounding radius to be set for these modes. Dont overdo the rounding.
Rounded shadow buttons show an indent border on mouse down as well as offsetting their contents. The other rounded types only offset text (and image for paint button objects).

NEW Graphics dialog has a new text shadow button (next to text button). This sets colour for "shadow" text drawn under and offset to the text. A lighter or darker grey colour can make text look smoother.
Currently only implemented for paint objects and view box titles.

  • NEW Paint button state option "Offset Content" This will shift text and images in the button 2 pixels right/down, as used when a button is clicked.
    This is useful for "pressed" button states. If this option is not used, the square border indent styles offset text by one pixel but this get overridden by the "Offset Content" option.
  • NEW "Add To Object List" on multiple selected objects adds them all to object list (non objects ignored).
  • NEW Paint buttons with align-top text mode now wrap long text ie: multi-line text buttons. Be sure to leave some space in buttons as different systems with different font scaling will result in different wrapping.
  • CHANGE The settings under Settings - System Parameters in the menubar have been moved into the Settings Editor
    "Maximum Track Fill Search" and "Item Cache" are under Model-Engine "Number Separator" is under Model-End User.
  • CHANGE Removed forced text cropping from routine step editor. Given the routine list shows entire lines, it shouldn't be necessary.
  • FIX Reworked regular shadow buttons to make them cleaner when pressed.
    A lot of the button graphics was rewritten, check for side effects.
  • FIX DragHideMouse option now works for bend points
  • FIX Prevent "Stay paused for debugging" and other debugging options except Show Location for errors during engine initialisation. PL could get unstable if staying paused during an engine initialisation error.


  • NEW Show tip over path arrow heads in flow and object edit mode
    The INI option [Edit] PathArrowTips controls whether the tips appear in object/edit mode.
    Note: If multiple classes overlap, only one is shown in the tip, (clicking on the arrowhead will indicate others).
  • NEW Basic undo in Flow Edit mode (context menu or ctrl-Z).
  • NEW In Flow Edit Mode, Home and End keys go to start/end of current path
  • NEW Rounded border style for paint buttons, rectangles, views. This is experimental.
  • FIX Clear SlippyMap bitmap cache on exit as well as on new model
  • FIX The file browse dialog misinterpreted a "dot" in a directory name as the beginning of the extention even if it was followed by a slash.
  • FIX Planimate handling of model names with "." in them improved. in cases where the model contained ".' but no MDL extention.
  • CHANGE Removed ALT key modifier for opening palettes undocked.
  • SPEED Optimised spatial link shortest path search:
    prune recursion for conditions where the target cannot be "better" than the current "best" or its an unwanted leaf node
    keep track of circular loops without using a list/search
    reduce use of intermediate tables
    use a cache of recursion depth tables

    Has reduced memory churn significantly.
  • SPEED Optimised track route intermediate step finding using similar techniques to spatial links.
  • SPEED Clean up file token lookup/matching which helps with saving.


  • FIX Fix the way icons loaded using SetIconRemote() and SetPortalIcon() are managed.
    The previous method could cause a segfault because there was the potential for the icon cache to purge icons loaded by these operations.
  • FIX The Map Tile Cache option has been rewritten and now supports a limit on how many tiles will be kept in memory. (512 tiles).
    It is strongly recommended that the tile cache option be turned on for map views.
  • NOTE Map View - Ensure the "Log" options are turned off as they cause unnecessary processing even if the log file isn't being written.
  • CLEAN Cleaned up file loader, removed obsolete code and moved some specific code to the "user login" password file handler.


  • NEW Planimate now saves a CRC/check count at the end of MDL files. After a model is saved, it is quickly re-read to verify the CRC is OK. If an error is detected, PL will report a message during the save.
    Any message during a save indicates a problem that must be investigated.
    NOTE: Due to operating system caching, this test only guarantees that the model file was written out to the operating system, not that it was actually stored/transmitted correctly.
    NOTE: CRC is not checked on load at this time but you can manually trigger a check - see next item.
  • NEW You can test the CRC integrity of an MDL file using the Tools->Model FIle Info option. This has been enhanved to include details on the CRC for the file (No CRC if its older, CRC OK or details of an error).
  • NEW Added filter tool tip option to table views. Hovering over the filter area shows a tooltip indicating its a filter and the complete filter text.
  • SPEED Have streamlined the way files are read. This improves performance for loading models and text data files. PBAs also get more memory as some buffers were not being released after load.


  • NEW INI option [Edit] DragHideMouse
    Hides mouse cursor when dragging existing objects/paint objects
  • FIX Fix DropOff, it was ignoring drop limit after change in 5.32f

  • CHANGE Object context menus now include a line with their type and name, Selecting the option edits the name, making it easier to identify and rename objects in dense networks.
  • CHANGE View context menus now include view type/owning portal/data name The graph views no longer change the titlebar
  • CLEAN Clean up some mouse related code


  • NEW Paint Map has a new field in the edit dialog, "WGET URL"
    Using this and the WGET.EXE command line utility, you can make Planimate populate a local map tileset from an OSM compatible web server as you navigate the map.
    This setting is for editing only, it does not get saved.
    Refer to the Map (Paint Object) wiki page for details.
  • NEW Table views have option "Can Edit During Simulation"
    As for attribute views, this enables the table to be clicked while a simulation is running (model option "Mouse Clicks While Running" needs to be on).
    Dont use this option if the table has rows deleted/added at the time the user can click on it (including by any resulting broadcast).
    Use of this option with "Dont Defer BC on FEC" might cause problems if the broadcast changes panels etc.
  • NEW DropOff has option to drop items in reverse order.
  • CHANGE Planimate is more flexible with the use of multiple portal entries.
    If there are multiple portal entries and they are NOT specifically associated with an object, then Planimate will now check them for a flow matching the incoming item class instead of only checking the first portal entry.
    The test is for existence of flow, not whether its blocked.
    This change should not affect existing models since the order of testing hasn't changed and older models would stop if the first portal entry didn't have a flow of the correct class.
  • CHANGE Internal code renames (PickUp/DropOff objects)
  • FIX Fix this situation:
    user changing panel to one with dynamic sizing and a resize broadcast
    panel starts setting up and doing a size update, sends itself a resize broadcast
    the resize broadcast triggered a routine which forced a repaint
    the repaint used a service that the original panel change hadn't got around to preparing yet, causing PL to close.
  • FIX Log Driven graph horizontal bar / labelled bar was broken If the bar colour was not black, it would be misinterpreted and usually no bar would display.
  • FIX Column overlay graph's legend stays with anchored graph during panel resize.
    NOTE: be careful of clipping/minimum size, this will cause the legend to lose its relative position to the graph.
  • SPEED Was able to clean up portal testenter code (unused track test status info)


  • NEW CTRL-C/CTRL-V work in the table editor.
    CTRL-V is equivalent to "Paste Over"
  • NEW Added a preview to the icon mover which shows the selected icon in a larger area so the icon doesn't need scaling.
    Hovering over the icon shows a tip with its name, type and dimensions.
  • NEW Portals have "Horizontally Flip Icon" option which causes their icons to be flipped, useful when the portal should face the other way.
  • NEW Object property "ObjectFlipIcon" gives access to the portal "Horizontally Flip Icon" option. This property only exists for portals.
  • NEW When deleting an item class, PL will report # of steps / panels using that item class in the confirm dialog. It will also name the first panel that uses the class.
  • NEW The Show References dialog now gives more information on references inside views and paint objects.
    Where previously it showed "<none>", just indicating panel, it will now show:
    ViewAction:attributename ViewControl:tablename PaintButton:State PaintAction:Rectangle PaintControl:Button
  • NEW Tree selector supports doubleclicking node to select
  • NEW Tree-view based selector for Message Entries, Wormhole Entries and Wormhole Exits
  • NEW In object mode, objects will show a tooltip with their name and type.
    This can be enabled/disabled using the INI option [Edit] ObjectTips
  • NEW Calendar date format "DD.MM.YYYY"
  • CHANGE The model tree view and options tree views now by default no longer expands a node when you single click on it.
    Clicking on the [+] or navigating in the model area still does expand nodes.
    This makes double clicks work as they should.
    If you prefer single clicks to expand tree nodes in these dialogs, set the "[Edit] SingleClickTree" INI option to true.
  • CHANGE Internal and menu renames, changing "Stats" to "Views"


  • FIX Display of Pipes and spatial links on update of bend points
  • FIX If one of the system label lists (like object label list) had a label for an object starting with an "-" then the attribute editor would select that label if the value was 0 (which formats as "-") causing an unexpected change in data.
    The combo lists for such lists now include an explicit "-" to match the "0 case" and prevent this happening.
  • CHANGE Internal renaming of all Planimate/Toolkit source code modules as many names were very old and obsolete given some have been in existence over 20 years.
    Its not expected for this to impact the EXE in any way.


  • CHANGE Objects in the model hierarchy are now sorted in "natural order"
    This improves the ordering for portals with the same name and a number on the end
  • fIX If a combo box had an unsorted list of items and one of the earlier items was a superset of the entered text, it would be chosen in preference to an exact matching item that was further down the list.
    This appeared in the old style reference dialog when the INI option TableColumnNoSort was set.


  • NEW SetPortalIcon() operation
    Changes the current icon for a portal's current state to a named icon. The portal is hidden but not redrawn, the modeller should RepaintObjects() or ForceRepaint() once all the portal's are updated.
  • NEW SetIconRemote() operation will set the current item if its ID matches the id passed
  • NEW INI settings [Edit] NewObjectX, NewObjectY set position of automatically added objects
NewViewX,   NewViewY   set position of automatically added views
The y position counts from the top and the object/view's point being its lower left corner.

  • FIX Text formatted attributes display their text in the routine attribute popup in the debug/breakpoint dialog.


  • NEW Routine operation "GetNextLinkObject(from,to)"
    Returns the next portal object index that an item will travel to on a spatial link given the from location and the final target being 'to'.
    Returns 0 if none.
  • NEW Image Mover has an "All" button that will copy ALL images from the source to destination palettes. Note that any existing images with the same name are overwritten.
  • NEW Typing a name of a DB in the file browser in the Image Mover will create an empty DB if it does not already exist. You need to include ".DB" in the typed name.
  • CHANGE Changed Replace Dialog behaviour, it now stays on current from/to button after an edit, press TAB to advance to next button.
  • CHANGE TAB/Shift-TAB work in routine step editor
  • CHANGE TAB/Shift TAB in routine list will now step forward/back through lines
  • FIX Image Mover file browser dialog now lists all supported image types
  • FIX Fixed a bug with file extention handling in the case that a name is typed with no extention for dialogs supported multiple extention types.


  • NEW This version of Planimate now uses a newer DB file format which supports names up to 63 characters instead of 19.
    Any DB files you modify or create with this version will be unreadable with older Planimate versions.
  • NEW Tracks, Spatial Links and Pipes now have the "Update Map Co-ordinates" option on their context menu if they are on a panel with a PaintMap which updates objects during edit.
    This is useful for updating bend points which are "far" from the end point portals. Refer to Map Paint Object documentation.
  • CHANGE Removed forced upper-casing of icon names
  • CHANGE "Put Into Portal" now puts the portal at the top left of the panel.
  • FIX Attribute views linked to portals will now update properly.
  • FIX Track/Pipe bend handling with paint maps now works properly.