Changelog - picture heavy

Started by Andy ONeill, January 02, 2018, 02:08:07 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Andy ONeill

Army Editor

Added a message which says which file name you just selected when you set the accuracy values.
This includes the initial set when you add a new unit.
This is because the values are initially set to the default - whichever file name contains "Musket" in the name.
As mentioned previously, if you have either none or more than one such file qualifies then strange things might happen.

Andy ONeill

Army Editor

Several changes to the Accuracy editing. This is for both editing values of a unit and a txt file.
The x and Y axis are now labelled.
You're working with proportions and a percentage per slice for both.
If you have entered a range for a unit then that will be used when you're editing a unit's values.

There is also the facility to draw a curve.
You click the "Draw" button and a low opacity overlay is added on top of whatever curve you have.
Draw a line and when you finish it will be interpreted into values and those will replace whatever you had for that unit/file in memory.
You can then choose to save, close the window and abandon your changes or redo.
I can't manage to draw a smooth curve with a mouse despite multiple tries.
You may be better at this but my approach is to get near-enough and then edit the values.

You must left mouse ( or stylus ) down, draw continuously and then left mouse up.
You can't draw a bit, stop then draw a bit more.
The process is per continuous drawn line.

This picture is snagged mid-draw.



You can see the original curve behind the line I'm drawing.
Pretty much as soon as I mouse up, the old curve is replaced by a new one.
The screen capture approach I used doesn't capture the cursor.
It's a pen.
You're drawing with ink here so the curve can be a bit smoother than you'd get otherwise.

The process works by dividing the line into 100 vertical slices and working out where you drew in each of these.
If you don't start from near enough to the left axis then there will be nothing in "missed" slices and 1.0 is substituted.
Towards the right hand side, similarly 0.01 will be substituted.
In the below picture I stopped part way.
On this pc there is no noticeable lag between drawing the line and the processed result.





Andy ONeill

Map Editor Grey Scale

Removed interval ( unused ).
Removed entry of high and low values from contours.
Calculating same instead.
Avoid calculating if there are no contours.



Note that a certain amount of artistry is necessary to get a nice curve when using contours. You need to fiddle with the blur, spacing and interval.
Probably my last choice if I was building a map myself.
OTOH you can trace contours off a real map and not sign up to google or think about how to reproduce something with shapers... So I expect some people will still want to use the approach.

Andy ONeill

Army Editor


Switch default font size for the window when changing between styles. This is a simple fix to cope with the Victorian fonts being non standard sizes.
Fancy and plain font sizes are a bit smaller than victorian since they're inherently easier to read.
This ought to suit people with lower resolution displays.
Plain

Victorian



Edit panel:
Move range above accuracy so a user is more likely to have entered it before clicking the pencil to edit accuracies.
( You should relatively rarely be clicking that pencil though. The intention is that you should almost always pick a different curve and or edit range rather than edit the accuracy curve for a unit. )

Textboxes will now grow as you enter more numbers.
Defaults are set Range 150, Ammunition 30, Reload 30 Shooting 1 Close combat 1.
These are more likely defaults than the previous values.

Andy ONeill

About window

Added description of module.
Rationalised over long menu items (all modules ).
Added About to Map editor

Andy ONeill

Game

Created solution
Created CombatLib.
This will hold the two sets of solvers used to work out combat results.

SandBox
Created solution
Initial draft of main ui

Scenario Editor
Minor rationalising changes of stuff I noticed as I was essentially copying bits into the sandbox.
Moved some stuff around into common libraries so I can reference it in sandbox and game

Andy ONeill

Scenario Editor
Include centerville on map selection list even though it doesn't have a description.
This will mean the map editor will show Centerville.
If you try and edit that you will see a message saying "No design file" and you won't be able to edit it.
Centerville was created using the old map editor and though it works fine with scenario editor or the game it is not compatible with the new map editor.

Andy ONeill

Sand Box

Load Scenario
Add armies to treeviews in tab control


These treeviews have more or less the default treeview template rather than the styled ones you see in other modules.

Andy ONeill

SandBox
Now loading the map and showing pieces
Mostly cut and pasted from Scenario Editor.
Needs more work to stabilise even what you see there...
But I'm fairly pleased with progress so far.




The really hard part will come when I start turning our ideas on combat and morale into code.

Andy ONeill

SandBox

Added tooltip showing unit data to treeview
In the image below, the cursor is over Colborne's brigade.
Removed same from piece - I found it gets in the way a bit when trying to drag.

Drag and rotate pieces.
The piece view started off as a copy of that in ScenarioEditor.
There are now quite a few changes to the sandbox version.
The sandbox version now has:

.5 opacity by default and 1 when selected.
Only the unit symbol hit tests - this is necessary so you can rotate and drag two units when close.
Their borders are likely to overlap which meant you couldn't rotate the one with a lower Z-Order.
A different way of doing Z-Order of it's parts.
A smaller subtle triangle denoting facing.
The grey outline and facing triangle are only visible on the (two) selected pieces.
Frontage is the diameter - matched by rather than defined by the front of the unit symbol.


Andy ONeill

SandBox

Bear in mind that the sandbox is intended as a utility and hence styling is only a priority if it interferes with readability.

Allow selection of red or blue piece as firing / target.
Calculate distance scaled to metres between unit centres.
This will be necessary to work out whether a unit is within effective range or not and which range band.
It also allows us to double check what units will look like at firing distances on the board.

Started on the bearing relative to facing calculations.
Mainly prove the code which will work out whether an enemy unit is within a unit's firing arc.

This is shown in the first of several tabs.
I've not even finished the first tab yet though


Internal interest only:
All
Change to how common libraries are referenced so it's easier to ensure they're compiled.
ModelLib
Moving numerous bearing calculations into ModelLib from MapEditor so they're common across the suite.

Andy ONeill

MapEditor

Bug fixes on places:
Initial visibility - places were never visible in a loaded map.
The numbers showing points were repeated in the plaque when a saved map was reloaded.
Initially this bug looked totally weird - when debugging I could see the points were correct and the geometries initially correct.
Why on earth were they then changing?
These are interpreted into a collection of geometries.
The property holding these was being serialised/deserialised when it is intended to be purely calculated.

Andy ONeill

Choose Map

Added ability to delete map files.
This will eventually need to distinguish between paid content and ones designed by the user.
These may go in different folders though - Steam has it's own expectations for the folder structure of one of it's apps.


Andy ONeill

SandBox

Recalculate position etc when rotating pieces.
Working on bearing and relative angle of target piece to shooting piece.

Andy ONeill

SandBox

Enfilade multiplier calculation.
Enfilade is sometimes called flanking fire.
When a unit shoots at an angle acute to an advancing line of enemy then each bullet has more soldiers it can potentially hit. That makes such fire particularly effective.
https://en.wikipedia.org/wiki/Enfilade_and_defilade

This is one of the reasons commanders would try and advance their battalion straight on towards an enemy unit and avoid crossing the face of any other.
The multiplier varies between x3 when the target is directly in line with shooting and x1 (none) when it's at 60 or more degrees.

Here red is shooting at blue.
The unit blue represents is facing directly down and the point of measure is centre to centre.
There is only 1 degree offset of the blue unit's line considered to be where the men would be and hence this is almost an ideal angle for red.