This is a small bug fix that one of my customers reported:
RPG-440 Drag and drop in the Assets Tree-View now works when there is no map loaded.
That’s it for the release.
Work is still underway on the Mk2 calendar system, though it turns out I have more work to do than planned.
Last year, before I added the custom folders system I had added a whole bunch of integration tests to Sojour to support the MK2 calendar – 211 of them in total!
Integration Tests for the Mk2 Calendar System!
What I hadn’t realised was that whilst writing these tests I had actually performed a large refactoring of the code to ensure that each class was focused on its job, and solely on its job.
Architecturally, it’s a great idea and it will also make the system easier to maintain in the future.
However, these changes were put in without updating the UI layer to use the new updated system(!) – “previous Rob” has a lot to answer for!
This has meant a lot of rework in the UI layer. We are headed in the right direction, it’s just I’m a little further behind schedule than anticipated.
I’m now back in the saddle after some time off over the Christmas period.
I hope that everyone had a great Christmas holiday and is feeling refreshed for 2025!
The first part of this year’s development effort will be focused on completing the work on the calendar Mk2 system for which there have already been a number of posts.
The Mk2 Calendar System!
For those that want the TLDR, the new system supports rolling calendars which means that calendars such as Pathfinder’s become a possibility. It also means that the Western Gregorian calendar can start using the same calendar technology as everything else (it currently uses Windows Operating system components).
Once the work is completed, users should be able to create any calendars that they can imagine – all from within Sojour itself.
I feel that the Mk2 system is important because Sojour is primarily built upon three cornerstones:
Time tracking
A sense of place (aka mapping)
Journaling.
I have always considered the time tracking part to be the weakest subsystem of the three which is why it is being upgraded. There are also plans for the other two, especially the journal, but I don’t want to go into that just yet.
The Mk2 Calendar System is one of those tasks that I know is big and that I’m already quite far into it, but alas, I don’t really know how much farther there is to go. All I know is that there is a tangible sense that I’m over the hump.
This is a release that contains a number of minor enhancements as requested by customers. The intent is to get as many customer requests in before the Christmas Holiday, then switch back to the Calendar Mk2 work which will take a significant amount of my time and thus reduce my public output.
This release contains the following enhancements:
RPG-423 Added a new global setting to allow users to enable or disable automatic token centering. The option can be viewed under Settings->Map Settings:
You can now choose to enable or disable auto-token centering! (Click for larger image)
This setting affects character centering when waving the mouse over a character in the main toolbar, NPC centering when waving the mouse over an NPC in a journal toolbar and also token centering from any running turn sequence.
When disabled, the focused character / NPC will still have a focus ring drawn around them, it’s just that the map will not move to centre them:
When centering is disabled the map will still show the focus ring, but will no longer centre the map on that token.
RPG-426 Documents already attached to characters, tokens and campaign assets can now be renamed using a new button:
A new rename document button has been provided!
RPG-427 The on-map context menu now has additional context sensitive options that more closely align with other context menus used in Sojour. The new menu options are highlighted in red rectangles:
Two new context sensitive menu options from the map context menu!
RPG-432 The assets browser’s ‘Rename’ option in the context menu is now consistently shown for all assets. In the past, assets that had an associated editor window would not offer this option – the thinking being that a user would just click ‘Edit’. However, ‘Rename’ is now offered for all assets including those with editors.
The Rename menu option is now available for everything!
RPG-433 Three new buttons have been added to all Sojour tables that will let you do the following:
Paste data into a Sojour table from the clipboard. Tables will automatically expand their sizes to accommodate any additional pasted rows or columns. Note that modifier and event tables will never expand their column count as these are always two column tables. However, their rows will expand to accommodate new data. Data is pasted in so that the top left of the data is inserted into the currently selected cell.
Copy all data from a Sojour table to clipboard.
Clear a Sojour table.
The new buttons are as follows:
Three new buttons! (Click for larger image)
Note keyboard shortcuts have also been coded to support CTRL-V for paste, CTRL-C for copy whole table.
Users might experience issues pasting tables from PDFs as these are not real tables in a programmatic sense. An easy way to tell is to try and paste those ‘tables’ into a spreadsheet such as Excel and observe the behaviour! (Just mitigating potential bug reports ahead of time!)
RPG-435 Characteristics sets can now be renamed using a new button:
Characteristic sets can now be renamed!
RPG-436 Tidied up assets browser context menu by ensuring that the correct number of menu separators are shown at all times. The folder rename menu has also been moved to be near the other folder commands and has had a new icon assigned to it:
Neater context menus!
That’s it for this release! If you need further information on the new functionality, please consult the updated PDF manual.
Before I go, I’d like to take this opportunity to thank all the customers that took the time to contact me with these requests!
RPG-421 When dragging campaign assets to the map, Sojour used to register two drag and drop events, this resulted in the drop event being called twice, which in turn resulted in two identical tokens being dropped on the map. This only affected campaign assets that were set as not unique. This has now been fixed. The drag and drop event is now only registered once, resulting in only one token being dropped.
This is the only reported bug after the rather large release on Friday (touch wood). I was expecting a torrent of bug reports and angry customers with pitchforks on the Saturday morning, but luckily for me, that never materialised!
I guess the testing was good after all! 😎
If you folks do find anything else, please do get in touch and I’ll see what I can do!
It’s with a little excitement and some trepidation that Sojour 1.3.0.0 has finally been released!
The reason for the trepidation is that this release also includes a huge refactor of the code in the User Interface layer. I think my testing has covered everything, but with such an extensive change, it always feels that whatever testing I do, it will never be enough!
This release is primarily about providing the new custom folders feature for customers.
Other features and fixes are also included. The full list is below:
RPG-360 Sojour now supports custom folders! That is, the ability for users to create their own folder structures under a variety of nodes in the assets browser. This story also included a massive coding refactor of the UI layer.
RPG-407 Sojour now provides the option to activate or deactivate all characters under a folder or node, including all of its sub-folders, with just a single mouse click.
RPG-411 Reenabled the use of the enter key to close simple dialog windows. This functionality was originally disabled due to useability issues. However, it turns out those issues only affected the larger dialog windows (the user would accidently shut them when hitting enter whilst typing text entries). This functionality was re-enabled after a customer request.
RPG-412 Moving the mouse cursor off map whilst the fog of war torch is on, will temporarily switch off the torch until the mouse cursor returns over the map.
RPG-414 Fixed a rare bug (which bit me) for the Restore functionality. In the bad old days if you squirreled away your old saves folder before the time of Sojour’s file manager being introduced, and then changed your Windows Documents directory, then tried to restore that saves folder, it would lead to missing maps and tokens. This has now been fixed.
RPG-416 The Microsoft WebView component has been upgraded to the latest version. This is used for viewing PDFs.
RPG-417 Sojour now hides and re-shows the token palette for more of its functionality. This is to prevent soft locks caused by the palette appearing over other dialog windows.
Here is the obligatory You-Tube video covering off the main new features:
I hope you good folk will find the new folders functionality beneficial for your games! 🙂
This is a very quick update post to let you folks know where we are!
After 14 hours and 30 minutes, the custom folders detailed testing is now complete!
Many interesting issues were found and all have been resolved.
In addition, I also needed to tidy up a few things. For example, the context menu now looks a lot more professional with the functional areas being properly separated into groups:
Nicer looking menus! (Click for larger image!)
The code for custom folders has now been merged into the main code branch, so there is no turning back now – the next release has to include custom folders! This release will be version 1.3.0.0.
The only thing left to do now is to update the manual.
This will be a fairly significant revision as there is a lot you can do with custom folders, plus, I also need to cover off the upgraded character activation-deactivation system.
Total time on this feature has been pretty high:
Total time on custom folders! (Click for larger image)
Each day is the equivalent of 8 hours, so in total I have worked 70 hours and 57 minutes on custom folders and this total does not include the additional effort needed to update the manual.
Not long to go now! (Honest!)
Hopefully this update will be in your hands in the next week or so. Thank you for your patience!
Before I discuss this update, I’d firstly like to thank each and every one of you that have bought Sojour! We have now reached the 500 sales mark and have earned the coveted Gold Best Seller Tag:
We reached 500! 🙂 (Click for larger image)
With that excitement out of the way here is the custom folders update.
Custom folders has reached a milestone – All of the functionality is now coded!
The tasks that I have left are to update the manual and to conduct extensive testing and fix any issues that are found.
During the final coding phase of custom folders I had to change the way that the deactivated character feature worked. Though now that it is done, I think it’s a change for the better!
In the past, when you deactivated a character, it would be moved to a special Deactivated Characters folder within the Assets Browser:
Before Deactivation (current system):
Before deactivation Ionara appears under the Characters folder. (Click for larger image)
After Deactivation (current system):
After deactivation Ionara has been moved to the Deactivated Characters folder. (Click for larger image)
This has now changed. The Deactivated Characters folder is no more!
In the new system, when you deactivate a character, rather than moving folder, its iconography will change instead:
Before Deactivation (new system):
Before deactivation. Note that there is no deactivated characters folder! (Click for larger image)
After Deactivation (new system):
After deactivation. Ionara stays in place, but her iconography has changed! (Click for a larger image)
But wait, that’s not all that’s changed!
Given that we now have the ability to create folders within the characters folder, I decide to add the option to be able to activate and deactivate all characters within a folder and its sub-folders with a single mouse click!
For example, here I have created a number of folders to represent my core characters and various places within a scenario:
Here we have created a number of folders to categorize our characters. (Click for larger version)
Our party is currently in the tavern. All the characters associated with the tavern are activated, whilst, conversely, the character in Ionara’s home is deactivated.
When the party eventually moves to Ionara’s home, we could activate Ionara by activating all characters under Ionara’s home, then we could deactivate all characters under the ‘In the Tavern’ folder using just one mouse click:
Here we are about to deactivate all characters that are ‘In the tavern’ using the new menu options. (Click to view larger image)
The end result of deactivating everyone under ‘In the tavern’:
All the tavern residents are now disabled by a single menu item! (Click for a larger image)
In addition, if one wanted to, one could activate or deactivate all characters under the Scenario 1 folder (and sub-folders) or alternatively all characters in the entire campaign by selecting the correct folder level.
Plus, one still has the option to individually activate or deactivate characters.
This new functionality should make it much easier to organize and manage your characters in large campaigns.
That’s it for this update. I hope you all like what you see!
This is a very minor tweak to the load-save mechanisms that were themselves updated in the previous release under RPG-396.
The reason for this adhoc release is that a customer has reported on Drive-Thru that Sojour wasn’t saving their data. I couldn’t replicate this issue, no matter how hard I tried, but I was paranoid enough to go over the updated load-save code with a fine toothcomb.
This examination resulted in a few minor tweaks. I don’t think these tweaks will affect anyone, but I’d personally feel a lot happier if customers use this release rather than 1.2.155.0. As a result I have taken down 1.2.155.0 and replaced it with 1.2.160.0.
If anyone else sees any data saving issues, please contact me at sojour.pollysoft@outlook.com.
I’ll start by saying that this is NOT the custom folders release. Work is still ongoing for that release, but I do have a video of it in action!
Instead, this release is focused on bug fixing and maintenance that addresses the following issues:
RPG-396 When Sojour crashes (on load), we should not be overwriting the main save files: This is an important one. I have had 3 reports over the last year of customer’s save games being corrupted.
When I examined their saved games, it looked like the save files had become partial save files. I finally traced a potential use-case where this can occur…
There are occasions where Sojour could crash during loading resulting in incomplete data being resident in memory. The global exception handler would then try and save that data resulting in partially complete saved files.
This will no longer happen. In addition, I have changed the code for closing down Sojour post crash so that it more reliably closes its process down.
RPG-397 Sojour shouldn’t crash if there are missing data directories on load. A week or two back I had a customer report that their Sojour game was crashing during loading and there was nothing they could do.
On investigation, I discovered that some of the customer’s data folders were missing. This upset Sojour and caused it to crash.
Sojour is now a lot more tolerant with regard to missing folders or data. In addition, if a crash is detected whilst loading, Sojour will now offer the option to pick a different data directory, restore from a back up, or simply exit:
The new exception handler for failed loading! (Click the image to see a larger version)
RPG-399 Sojour crashing when dragging character to map with journal open. This was an odd one in that the investigation had found some corrupt internal data within the customer’s save file which, alas, I hadn’t been able to reproduce.
This corrupt data was centred around token characteristics. All token characteristics code has now been updated to be more fault tolerant.
RPG-400 Adding or editing a map-link with no campaign selected crashes Sojour. Sojour used to use the assets browser to get the current campaign or ruleset. The flaw with this approach is that if a user selects a different campaign, or no campaign at all, it can lead to Sojour having problems.
This code has been entirely re-written and all places that used to rely on the assets browser for the active ruleset or campaign, no longer do so, and instead, use the updated code.
RPG-401 Adding or editing a map-link when the map is set to show all, doesn’t show them! This is a minor issue where adding or editing a map-link would result it in not respecting the current map’s Show Map Links option. This has now been fixed!
Work has been slowed down a little by the fact that Sojour currently has three work streams associated with it:
The three main work streams / branches!
Having three streams of parallel work means that any issues I find in one of them has to be merged into the others. This is normally pretty easy using my source control system.
However, the fly in the ointment is that the Custom Folders branch sports a radically different UI architecture from the other two branches, which means that some fixes have to be hand coded as opposed to merged!
Normally I try to work on one thing at a time, but I soon realised that if I stayed on the calendar work, my customers would see very little new from me as that work is such a large undertaking.
Custom folders sprung up as a result of many customer requests and of seeing Lord Gwydion struggle with his data during the live streams. As with most things software related, I had thought it would be a quick and easy update, but it has turned out to be a little more complex. Hopefully the video above will provide ample evidence that we are headed the right way.
Finally we have the main branch where all the hot-fixes and high priority changes go.
My end game is to get back to one branch again, but this is predicated on me delivering the Mk2 Calendar and Custom Folders functionality! 🙂