Shannon V. OKeets -> RE: MWIF Monthly Reports (6/3/2015 10:06:50 PM)
June 3, 2015 Status Report for Matrix Games’ MWIF Forum
I am working with Erik to put together a report on future plans for MWIF. That should be available in mid-June (or so).
I gave the beta testers versions 22.214.171.124 through 126.96.36.199 during May: 8 versions, about 2 per week. I expect version 188.8.131.52 to be available as a Public Beta either Friday (June 5th) or early the following week. Once that has been available for a week or two, it should become an official release.
Meanwhile I’ll work on the dozen NetPlay bugs that have been reported (primarily by the beta testers) with the expectation of making version 184.108.40.206 available as a Public Beta in mid-June. That version will need 4+ weeks of availability for customers to run NetPlay before it becomes an official release.
Testing Solitaire I can do by myself on a single computer. Just restore a saved game and run through the steps that led to a problem. With a few debug commands added to the source code, I can fault isolate problems, make changes, and retest. For NetPlay, I need to have two computers, two saved games (they are slightly different for the two players), and preferably two people to run the games to recreate the reported problems. Each step of adding debug commands and rerunning the program has to be done with two computers, and usually two people. The net result is that within any given amount of time, much less testing can be done for NetPlay, compared to Solitaire. It’s less by almost an order of magnitude. Given all the optional rules, scenarios, possible player actions for their countries and units, plus the randomness of die rolls, there is very likely to be problems that the beta testers and myself haven’t encountered. Having a solid Solitaire version base should help a lot. Previously, when testing NetPlay, we would run into problems that also existed in Solitaire. That isn’t happening anymore.
Version 220.127.116.11 has ~70 bug fixes since 18.104.22.168. See the list below, which is as of today. I expect to finish making one last change for overseas supply calculations this afternoon.
My record keeping of reported bugs is up-to-date for bugs reported by the beta testers in the private development forum, reported in posts in the Tech Support forum, and those sent in via email. The last are primarily Mad Except errors which the program sends in automatically - when the player permits that to be done.
When a bug is reported manually, it typically has a commentary provided by the player and most of the time a saved game with instructions on how to recreate the problem. Oftentimes, there is an accompanying discussion in the Tech Support sub-forum by other players and the beta testers. That is especially true for bugs reported by the beta testers in the Development forum. All the additional information helps me tremendously. Best cases are when it is determined that the bug isn’t a bug. And when there is work for me to do to fix a problem, the more context I have with which to work, the better.
Mad Except bug reports have a screenshot 90+% of the time, which lets me see the turn, impulse, phase of the game, and who was the deciding major power. Tons of other information can be gleaned from screenshots too; for example: the scenario, whether it was a NetPlay game, what forms were being used, the weather, and so on. Best of all, Mad Except reports identify precisely which line of code failed, with the call stack detailing the sequence of routines executed that led to the failed line of code. But still, I need to read tea leaves to figure out what the player was trying to do on the map, or with a form, when the problem occurred. Saved games with instructions are best, because then I can made the program fail on my computer - with the same Mad Except report. That also lets me test my changes to make sure they fix the problem.
Missing Optional Rules & Half Map Scenarios
Nothing new in May.
AI Opponent (AIO)
Nothing new in May.
Release Notes for Version 22.214.171.124
1. Enabled the US to bring in the Northern Ireland territorial unit as a reinforcement in Northern Ireland.
2. Fixed a problem with placing Communist Chinese reinforcements on the map in Off-City hexes.
Declaration of War
3. Reenabled calling out reserve units which were not called out at the first opportunity (i.e., when a declaration of war was made).
4. Modified the Declare War on Major/Minor forms so the button Declare War is larger. The Ok - Done button is no longer the most obvious button. These changes are to help prevent the player from clicking on OK - Done (closing the form) when they actually want to declare war on the selected major power/minor country.
5. Fixed a problem with aligning minor countries when both Germany and Italy can align Spain and after Germany chooses to align Spain, Italy has no more minor countries available to align. Previously the program had gone into an infinite loop trying to let Italy align a minor, but finding no minor for Italy to align. The code for aligning minors is particularly complex because it has to handle the case where Italy has no minors to align unless Germany first aligns Bulgaria, which then enables Italy to immediately follow and align Yugoslavia.
6. Fixed a rare problem in the Align Minor Country subphase where skipping a major power would eliminate that major power from aligning any minor during the subphase, instead of simply skipping it and letting it align a minor country after other major powers on its side had decided about aligning minors.
7. Fixed a problem with DOW subphases not advancing through multiple major powers.
8. Added code so that if a unit with Sentry status is picked up to move, then it no longer has Sentry status. This enables air units to return base normally after performing an air mission. It is also likely that this affected other aspects of moving units with Sentry status.
9. Fixed a problem with Solitaire where if the all the bombers in a port attack are aborted then the game would halt with the end-of-phase button disabled.
10. Enabled flying CAP to hexes which contain enemy units. This change affects hexes where an invasion has taken place prior to a paradrop, as well during Ground Support for hexes being invaded from the sea and/or air.
11. Disabled the ability of carrier air units loaded onto transports from participating/flying in a naval air combat.
12. Fixed a problem with land combat resolution where the loss of invading unit(s) was not being subtracted from the number of losses the attacker must take. This error only occurred when the notional unit was not included in the combat.
13. Fixed a problem with the number of losses taken by the attacker not subtracting the losses incurred by the invading units when an invasion failed (by air or sea), due to the defender only taking 1 loss and still having units remaining in the invaded hex.
14. Fixed a problem with calculating the effects of terrain on a defending engineer’s contribution to City Die Roll Modifier. For example, the benefit of Mountain terrain doubles instead of quadruples the engineer’s combat factors when calculating the City DRM.
15. Fixed two problems with calculating the combat odds when an armor unit invades from a sea area. The first problem was that any non-marine unit also invading was not being halved (as it should have been). The second problem was that the presence of the invading armor unit in the invaded hex was setting the flag for there being defensive armor in the hex - the program wasn’t checking whether the armor unit belonged to the defending side. Both problems occur rarely and the latter only caused a miscalculation when there were attacking Red anti-tank divisions in the attack.
16. Fixed a problem where a minor country which a major power surprised by declaring war was not being surprised by units belonging to the major power’s aligned minors. For example, Germany DOWs Yugoslavia which means that a Yugoslavian HQ should not be able to use defensive HQ support when attacked by Hungarian units (which are aligned to Germany).
17. Changed the capabilities and combat factors for armored marines so they are: (1) halved when invading, and (2) cannot cross all-sea hexsides or lake hexsides.
18. Fixed a problem with the Invading flag not being cleared after land combat resolution. This correction is primarily for older saved games.
19. Fixed a problem specific to the Guadalcanal scenario with invasions into New Caledonia causing units to become disorganized.
20. Fixed a problem with deciding about notional units when the invaded hex belongs to a completely conquered major power. This only occurs when an error occurs during the complete conquest of a major power (e.g., Italy) and hexes outside of Italy remain controlled by Italy - although Italy is no longer a in the game.
21. Fixed a problem where a damaged game might prohibit a convoy to stay at sea even though it had Sentry status.
22. Corrected the code so the restrictions on which convoys can merge are fully enforced. For example, Netherlands convoys controlled by the Commonwealth can no longer be merged with United Kingdom convoys. Similarly, disorganized convoys cannot be merged with organized convoys.
23. Fixed a problem with multiple digressions returning to the correct place in the sequence of play after the following series of events: multiple land combats, advance after combat with multiple units capable of advancing, overrun of multiple naval units, attempted interception of naval units fails (or is not attempted), naval units move into a friendly port. Previously the program returned to selecting the next land combat to resolve. Now it correctly returns to the advance after combat subphase so more units can advance.
24. Enabled loading units from a coastal hex when a naval unit is moved from a higher section box to a lower section box in a sea area.
25. Fixed a problem with initiating naval combat during the naval combat phases when the US Entry Options for US Refutes Naval War Zones and/or Unrestricted Naval Warfare have been selected.
26. Fixed a fatal error when emptying a sea area of combat naval units for one side (e.g., during a Return to Base phase).
27. Added a check to avoid a possible fatal error moving naval units after some had stopped in a sea area.
28. Fixed a bug for some damaged games where the Baltic States capitals were not acting as Secondary Supply Sources for their conqueror (the USSR).
29. Fixed a problem with supply using minor country HQ’s that can trace to a primary supply source in their home country but have to trace overseas to reach a primary supply source for their major power’s units. This occurs mainly in Finland where Mannerheim can almost always reach a primary supply source in Finland overland but has to go through the Baltic Sea to reach a German primary supply source. It could also come up with Spanish and Yugoslavian HQs when those minor countries are aligned to the Commonwealth.
30. Fixed a problem where minor country HQ was able to trace a supply path through enemy ZOCs on behalf of its controlling major power’s units - because the controlling major power was not at war with the enemy units exerting the ZOC. For example, Mannerheim was able to trace a supply path through Russian ZOCs because Germany was not at war with the USSR. The program now checks that the secondary supply source (e.g., Mannerheim) is not at war with the units exerting the ZOCs, instead of checking whether the HQ’s controlling major power (e.g., Germany) is a war with the units exerting the ZOCs.
31. Fixed a problem with the optional rule Limited Overseas Supply where major powers were sometimes not able to use each others’ convoys et al to trace supply through a sea area.
32. Corrected a couple of instances where undoing a move did not update the supply status of enemy units.
33. Added some code to display units as out of supply instead of simply leaving the name of their supply source blank and displaying no status indicator.
34. Fixed a problem with railway supply paths being able to trace through enemy partisan units.
35. Fixed a problem in supply where the capitals of conquered countries were not being recognized as secondary supply sources.
36. Fixed a problem where some carrier air units aboard carriers in ports were incorrectly being shown as out-of-supply.
37. Added checks to avoid non-fatal errors in the US Entry Pool form when there are no more markers in one or both of the US Entry Pools and some markers are suppose to be moved into the Tension Pool. Also made similar changes for when there are no markers in a Tension Pool and some are suppose to be removed.
38. Fixed a rare problem where a US Entry marker was being removed after the USSR entered Eastern Poland, although Poland had already been aligned with the USSR.
39. Added a check to avoid a fatal error when showing the Use Oil form.
40. Fixed the problem with using the last drib of an oil point to reorganize a final unit that requires precisely the amount of oil remaining in the oil point.
41. Added a check to avoid a non-fatal error when displaying units in the Use Oil form.
42. Enabled using oil to reorganize units that have to trace across a straits hexside when using the optional rule Limited Overseas Supply and there are neither friendly convoys/naval transports/amphibious units nor enemy units capable of blocking supply in at least one of the sea areas which the straits cross. For example, Italian units in Sicily can now be reorganized using oil in Italy when there are no units whatsoever in the Italian Coast.
43. Removed the Return Unused Convoy button from the Production Planning form except during the Preliminary Production Planning phase. That is the only time that the button’s ‘setting’ is used to mark convoys as returning to base.
44. Added code so that when the USSR occupies the Baltic States, Germany becomes the controlling major power of the occupied Baltic State(s).
45. Fixed a bug where the USSR was not gaining control of Bessarabia after peace with Rumania was enforced. The same bug affected enforcing peace with Finland and the Finnish Borderlands.
46. Fixed a couple of problems with enforced peace (Rumania and Finland) where the step of setting flags for that occurring was being skipped when there were units (i.e., Germans) to Relocate from those countries.
47. Fixed a problem in Liberation where a country could be liberated more than once in the same phase.
48. Fixed a problem with Liberation if the decision is made to return territory in a minor country originally controlled by France (e.g. Tunisia) to France. Previously, some of the hexes in the minor country were left as controlled by the liberator.
49. Removed some ineligible units from the Selectable Units form for the Naval Air phase.
50. Changed the Choose Carrier (on which to land) form to “Stay on Top” so it won’t be hidden by the Air-to-air combat form.
51. Set all the Help Message forms to StayOnTop so they appear on top of other forms. The sole exception to this is if there is another StayOnTop form visible and you click on that - which may cause the Help Message form to become hidden underneath the second form.
52. Changed the code for centering on sub-countries (e.g., New Caledonia) so the detailed map centers on the specified sub-country instead of the capital of the controlling minor country/major power.
53. Fixed fatal errors that occurred when pressing F1 while certain forms were being displayed: Setup, Select Units, Save Oil, Naval Combat: Choose Section Boxes, Choose Naval Combat Type. For these forms a flag was erroneously set so the program was going out to the operating system (i.e., Windows) looking for a Help file. The program typically does nothing when F1 is pressed while a form is being displayed. You need to close the form(s) to enable bringing up the Players Manual. Each form has its own Help button, which brings up information specific to the form.
54. Fixed a problem with restoring old games saved during the Conquest, Liberation, and Surrender phases with the end-of-phase button being shown as disabled.
55. Added some checks to avoid problems with the End-of-Phase button being disabled under unusual circumstances (e.g., when restoring partially damaged games due to unprocessed units in the Naval Abort Queue).
56. Fixed a rare problem where clicking on the End-of-Phase button during the Allied Minor Support phase did not advance the sequence of play. This would only occur after restoring a game that was automatically saved during the Allied Minor Support phase.
57. Continued processing the current phase (which typically advances to the next phase) when a saved game is restored during: End of Turn, Final Reorganization, Minor Support, and Victory.
58. Fixed a problem with control of Gibraltar when restoring saved games in which Gibraltar had been taken by the Axis - which then aligned Spain. Previously when restoring a saved game, the program did not set the flag that the Axis had taken Gibraltar until after a number of other flags whose value depended on which side controlled Gibraltar. This affected moving Spanish units outside of Spain (i.e., the limits on moving minor country units outside of their home country) and could also affect routing resources through Gibraltar.
59. Fixed a problem with restoring saved games where the Screen Layouts file stored with the saved game is not found. The program now restores New Game.SLY, and if that file cannot be found, it creates it.
60. Fixed a problem with restoring saved games after a Synthetic Oil Plant in non-port coastal hex (e.g. El Agheila in Libya) has been destroyed.
61. Added code to repair damaged games at the start of the Partisan phase by removing partisan units from the Setup Tray at the beginning of that phase. I am not sure how the partisan units were left in the Setup Tray, but this now avoids the problem of ‘extra’ partisan units appearing.
62. Fixed a minor problem with the Lending form where switching major powers using the button for doing that on the form could cause the list of possible trade partners to be incorrect when subsequently clicking on New Trade Agreement.
63. Corrected the Reform Units form so the possible corps units are displayed correctly when the second (and third) divisions are clicked on. I also clarified the text so it is clear whether the second or third division is being combined with the first division to produce the list of possible corps units that can be reformed.
64. Corrected the data file for the terrain in Fukuoka (hex 78, 159) from Forest to Clear. It appeared visually on the detailed map as Clear, but the data file had it as Forest. The simplest way to fix this was to make it Clear in the data file as well. Note that the Main form’s data panel was showing the hex as Forest (it was using the data file entry) as was the global map visually. All combat calculations were using the data as well. Now the hex is considered Clear for all purposes.
65. Fixed a problem with not all the possible divisional units being displayed when breaking down an SS unit if the optional rule for Unlimited Breakdown is Off.
66. Corrected the calculations of partisans for Siberia. Prior to this change, partisans would never appear in Siberia.
67. Corrected the data for control of Albania and 4 other hexes in the Mediterranean specific to the start of the Decline and Fall scenario. They had been assigned to Italy - which no longer exists in that scenario. Now they are controlled by Germany - as they were historically.
68. Fixed a minor bug that generated an error message when terminating the game during a Relocate Units digression.
69. Corrected the Main form display of the current phase after Vichy France is collapsed - when there were no overrun units - so the phase name shown is what it was before Vichy was collapsed.
70. Corrected the message for why an air unit cannot rebase to a land hex when the range to the hex is between triple the unit’s range and double the unit’s range. The incorrect message shown, when triple the range could not be used because of the presence of enemy combat units in a sea area, was Stacking Limits Exceeded. Now the message is about the hex being out of range.
71. Fixed a problem with the warning message when trying to move a minor country air unit outside the country in violation of the restriction on how many minor country units can leave their home country.