Major flaw in usage of saved oil allocated to production all versions

Post bug reports and ask for game support here.

Moderator: Shannon V. OKeets

Post Reply
User avatar
Majorball68
Posts: 791
Joined: Thu Nov 21, 2013 11:47 pm

Major flaw in usage of saved oil allocated to production all versions

Post by Majorball68 »

Have reported this already sometime ago when a CW player was having full production every turn despite my sub strategy and destroying his convoy network. Saved oil sent for production is NOT expended. You can try this on any save file. Take a count of oil available after allocation to factories, do not look at Production planning at all during builds. Play through to next turn and by magic you still have all your all which was not consumed by a factory. We no longer save between Axis and Allied Final PP as it screws with BP and saved oil on save reload. Other player gives instructions for Final PP and then Axis do builds before sending to the other player and reloading save in between Axis and Allied PP screws with saved oil and BP allocations. On the save attached Russian allocates 6 saved oil to production, only has 1 fixed oil in Perm and allocates 6 saved oil to production. On the screenshot attached USSR allocates 6 saved oil to production so the total saved goes from 39 to 33. Production is 28 BP. At start of next turn USSR oil should be 33, however you will find it will still be 39. This will take the screenshots in the next 2 posts show.

Image
Attachments
USSRFPP.jpg
USSRFPP.jpg (254.2 KiB) Viewed 568 times
User avatar
Majorball68
Posts: 791
Joined: Thu Nov 21, 2013 11:47 pm

RE: Major flaw in saved oil system for allocated to production all versions

Post by Majorball68 »

This shows USSR Production at 28 BP BP oil was used.

Image
Attachments
USSRBP.jpg
USSRBP.jpg (189.96 KiB) Viewed 568 times
User avatar
Majorball68
Posts: 791
Joined: Thu Nov 21, 2013 11:47 pm

RE: Major flaw in saved oil system for allocated to production all versions

Post by Majorball68 »

Start of next turn, USSR magically still has 39 saved oil.

Image
Attachments
Notconsumed.jpg
Notconsumed.jpg (336.58 KiB) Viewed 568 times
User avatar
Joseignacio
Posts: 3114
Joined: Fri May 08, 2009 11:25 am
Location: Madrid, Spain

RE: Major flaw in saved oil system for allocated to production all versions

Post by Joseignacio »

In the last screenshot the production is only 17, which is the result of producing 13 resources at a PM of 1.25.

In the first one the production previous to spending saving oil was 13 as well, so it seems the game undid the assignation of 6 resources to production, which would match with having 39 (if i understand well the accounts) also, in the Saved oil Points> Production it appears 0 extra (apart from Perm's) oil resources used for production.

Maybe you didn't press the button of recompute in case it's necessary or other similar issue?

The production multiple is different as well, 1.5 in the first case, 1.25 in the second. [&:]
User avatar
BrianJH
Posts: 281
Joined: Sun May 04, 2014 2:22 am
Location: Adelaide, Australia

RE: Major flaw in saved oil system for allocated to production all versions

Post by BrianJH »

ORIGINAL: Joseignacio
The production multiple is different as well, 1.5 in the first case, 1.25 in the second. [&:]

Well given that the last screen shot is right at the start of a new turn, Impulse #1 and Allied, it's not possible for the Axis to have conducted a Land Combat in the USSR yet. When they do, in a later Impulse, the USSR Production Multiple will go back to 1.5.

Brian.

User avatar
Joseignacio
Posts: 3114
Joined: Fri May 08, 2009 11:25 am
Location: Madrid, Spain

RE: Major flaw in saved oil system for allocated to production all versions

Post by Joseignacio »

Yes, that should be shouldn't it?

On one side I am used to the newer versions of WIF (no MWIF), where the PM doesn't depend on that, on the other side I thought it could have been a mistake of a different turn on his part. But it makes sense.

User avatar
Majorball68
Posts: 791
Joined: Thu Nov 21, 2013 11:47 pm

RE: Major flaw in saved oil system for allocated to production all versions

Post by Majorball68 »

ORIGINAL: BrianJH

ORIGINAL: Joseignacio
The production multiple is different as well, 1.5 in the first case, 1.25 in the second. [&:]

Well given that the last screen shot is right at the start of a new turn, Impulse #1 and Allied, it's not possible for the Axis to have conducted a Land Combat in the USSR yet. When they do, in a later Impulse, the USSR Production Multiple will go back to 1.5.

Brian.

You are correct Brian. I showed the start of the next turn to show the oil had not been consumed only. USSR had full production of 28BP at the build stage of last turn indicating the oil did in fact go to factories. There is definitely something wrong with saved oil not being consumed when sent to factories.
User avatar
Joseignacio
Posts: 3114
Joined: Fri May 08, 2009 11:25 am
Location: Madrid, Spain

RE: Major flaw in saved oil system for allocated to production all versions

Post by Joseignacio »

User avatar
gw15
Posts: 952
Joined: Sun Mar 21, 2010 4:29 pm

RE: Major flaw in saved oil system for allocated to production all versions

Post by gw15 »

I'm not sure why but I don't have the problem in my saved games. I will however, pay more attention to it.
User avatar
Majorball68
Posts: 791
Joined: Thu Nov 21, 2013 11:47 pm

RE: Major flaw in saved oil system for allocated to production all versions

Post by Majorball68 »

ORIGINAL: gw15

I'm not sure why but I don't have the problem in my saved games. I will however, pay more attention to it.

I don't think it is something that is obvious unless you look out for it. Oil isn't usually an issue for Allies but in a number of games I have been tracking it.
Shannon V. OKeets
Posts: 22165
Joined: Wed May 18, 2005 11:51 pm
Location: Honolulu, Hawaii
Contact:

RE: Major flaw in saved oil system for allocated to production all versions

Post by Shannon V. OKeets »

ORIGINAL: Majorball68

ORIGINAL: gw15

I'm not sure why but I don't have the problem in my saved games. I will however, pay more attention to it.

I don't think it is something that is obvious unless you look out for it. Oil isn't usually an issue for Allies but in a number of games I have been tracking it.
I'm not sure about sending saved game files (Solitaire mode) between players anywhere around the Production phase.

The program does a lot of housekeeping at the end of the Production phase, including saving oil and build points. It also does stuff with newly created temporary units (e.g., pilots, offensive chits, fortifications). TO support NetPlay, the program stores information about what each player did during the Production phase, and once both players have completed the phase, it goes through all the housekeeping tasks.

For those who have nothing better to do with their lives, below is (most of) the code for processing the end of the Production phase.


===
begin // TPhaseProduction.Terminate.
PhaseTerminated := True; // So the following code is only executed once.
RankedAxisCountries.Sort;
RankedAlliedCountries.Sort;
Countries.SetLeaders;
// ****************************************************************************
// Convert captured ports and factories to repaired, if they contain an
// engineer.
// ****************************************************************************
if OptRules.ConstructionEngineers then
begin
for RevStckIndx := ChangedTerrain.Count - 1 downto 0 do
begin
RevStckUni := TChangedTerrainRecord(ChangedTerrain.Item[RevStckIndx]);
CheckCaptured_Record(RevStckUni);
end;

CheckCaptured_Repair;
end;
// ****************************************************************************
// Clear the major power's list of builds for this turn.
// ****************************************************************************
for IJ := 0 to MajorPowers.Count - 1 do
begin
MajCo := TMajorCountry(MajorPowers.Item[IJ]);
FillChar(MajCo.BuiltThisTurn, SizeOf(MajCo.BuiltThisTurn), 0);
end;
// ****************************************************************************
// Set the flag for the unit having been built this turn to False.
// ****************************************************************************
for MSIndx := 0 to Units.Count - 1 do
begin
if not Units.Deleted[MSIndx] then
begin
MSUni := Units.Item[MSIndx];

if MSUni.InProduction and MSUni.BuiltThisTurn then
MSUni.BuiltThisTurn := False;
end;
end;

Game.NeedToDecideMajorPowers := [];

for MPI2 := Low(TMajorCountries) to High(TMajorCountries) do
begin
if MajorPowers[MPI2].LegalMajorCountry and
(BuildPointsToSave[MPI2] > 0) then
Include(Game.NeedToDecideMajorPowers, MPI2);
end;

if ModeOfPlay = mpInternet then FullyEnableGRLs;

for MPI2 := Low(TMajorCountries) to High(TMajorCountries) do
begin
if MPI2 in Game.NeedToDecideMajorPowers then
begin
if MajorPowers[MPI2].LegalMajorCountry then
begin
SetWhoDecides1MP(MPI2);

if ModeOfPlay = mpInternet then BuildPointLocationsDecided := False;

if Game.LocalDeciding then ProcessModeless(foSaveBuild);

if ModeOfPlay = mpInternet then WaitFor(BuildPointLocationsDecided);

if Game = nil then Exit;
end;

Exclude(Game.NeedToDecideMajorPowers, MPI2);
end;
end;

MainForm.NeedsProductionCompute := True;
// ****************************************************************************
// Transition from pProduction to pReform.
// ****************************************************************************
if Game.Phase = pProduction then
begin
if ModeOfPlay = mpInternet then
begin
FullyEnableGRLs;

for Plyr := 0 to Players.Count - 1 do
begin
if Game = nil then Exit;

OilPointsSavedProcessed := False;

// ShowMessageOK('[TPhaseProduction.Terminate] Before UpdateSavedOilPoints.');

if Game.LocalMajorPower.Player.ID = Plyr then
begin
UpdateSavedOilPoints;
Inc(TransNumber);
Inc(EntryNumber);
SetGRL(RLID_OPsP, True);
UseGRL(RLID_OPsP);
end;

// ShowMessageOK('[TPhaseProduction.Terminate] After UpdateSavedOilPoints.');

WaitFor(OilPointsSavedProcessed);
end; // End of for each player.
end // End of Internet game.
else UpdateSavedOilPoints;
// ****************************************************************************
// Any saved oil resource has been converted into a saved oil point, so the
// resource's status as SpecialRes can be reset to resNone.
// ****************************************************************************
for ReLt2 := 0 to Map.ResourceList.Count - 1 do
begin
GamRes2 := TGameRes(Map.ResourceList[ReLt2]);

if GamRes2.SpecialRes <> resUSSR then GamRes2.SpecialRes := resNone;
end;
// ****************************************************************************
// Create new units for convoys, pilots, forts, and Offensive Chits that have
// just been built. This is executed by one computer and the new unit numbers
// sent to all the other players.
// ****************************************************************************
if Game.LocalMajorPower.MasterMWIF then
begin
for MPI2 := Low(TMajorCountries) to High(TMajorCountries) do
begin
if MajorPowers[MPI2].LegalMajorCountry then
begin
if ConvoysToBeBuilt[MPI2] > 0 then
begin
for Indx := 1 to ConvoysToBeBuilt[MPI2] do
begin
if Indx = 1 then
begin
Game.Phase_Production.ConvoyBuilt[MPI2] :=
ConvoyCreate(MajorPowers[MPI2].ID, MajorPowers[MPI2].ID, 1);
end
else
begin
NavU := Game.Phase_Production.ConvoyBuilt[MPI2];
ConvoyChange(NavU, NavU.Convoy + 1);
end;
end;
// ****************************************************************************
// Only one convoy unit is created. It is moved into a Production Pool.
// ****************************************************************************
NavU := Game.Phase_Production.ConvoyBuilt[MPI2];
NavU.MoveToProductionAhead(NavU.Time, NavU.Cost, False);
end;

if PilotsToBeBuilt[MPI2] > 0 then
begin
for Indx := 1 to PilotsToBeBuilt[MPI2] do
begin
SpecialCreate(MajorPowers[MPI2].ID, utPilot);
NewUnit.MoveToProductionAhead(NewUnit.Time, NewUnit.Cost, False);
end;
end;

if FortsToBeBuilt[MPI2] > 0 then
begin
for Indx := 1 to FortsToBeBuilt[MPI2] do
begin
FortCreate(MajorPowers[MPI2].ID, utFort);
NewUnit.MoveToProductionAhead(NewUnit.Time, NewUnit.Cost, False);
end;
end;

if OChitsToBeBuilt[MPI2] > 0 then
begin
for Indx := 1 to OChitsToBeBuilt[MPI2] do
begin
SpecialCreate(MajorPowers[MPI2].ID, utOffensive);
NewUnit.MoveToProductionAhead(NewUnit.Time, NewUnit.Cost, False);
end;
end;
// ****************************************************************************
// Since this is a new factory, we do not need to worry about the index into the
// TFactoryHex. Indeed, we don't even know where it is going to be placed.
// ****************************************************************************
if FactoriesToBeBuilt[MPI2] > 0 then
begin
for Indx := 1 to FactoriesToBeBuilt[MPI2] do
begin
FactoryCreate(MajorPowers[MPI2].ID, False, False, False);
NewUnit.MoveToProductionAhead(NewUnit.Time, NewUnit.Cost, False);
end;
end;
end; // End of LegalMajorCountry.
end; // End of MPI2 loop.

// SendingGRLsOK := True;

end // End of MasterMWIF.
else CentralControlON;

Game.LocalDeciding := False; // Just so it gets done soon enough.
MainForm.EnableDone(False);

if Game.LocalMajorPower.MasterMWIF then Game.SetPendingPhase(pReform)
else CentralControlOn;
end;
===
Steve

Perfection is an elusive goal.
User avatar
Majorball68
Posts: 791
Joined: Thu Nov 21, 2013 11:47 pm

RE: Major flaw in saved oil system for allocated to production all versions

Post by Majorball68 »

For PBEM games is it better to select head to head option?
User avatar
rkr1958
Posts: 31079
Joined: Thu May 21, 2009 10:23 am

RE: Major flaw in saved oil system for allocated to production all versions

Post by rkr1958 »

ORIGINAL: Shannon V. OKeets

ORIGINAL: Majorball68

ORIGINAL: gw15

I'm not sure why but I don't have the problem in my saved games. I will however, pay more attention to it.

I don't think it is something that is obvious unless you look out for it. Oil isn't usually an issue for Allies but in a number of games I have been tracking it.
I'm not sure about sending saved game files (Solitaire mode) between players anywhere around the Production phase.
So by extension does that mean one shouldn't stop, save and then later re-load the game once Use Oil phase had begun and Production (i.e., build units) phase has finished even when playing solo?
Ronnie
Shannon V. OKeets
Posts: 22165
Joined: Wed May 18, 2005 11:51 pm
Location: Honolulu, Hawaii
Contact:

RE: Major flaw in saved oil system for allocated to production all versions

Post by Shannon V. OKeets »

ORIGINAL: rkr1958
ORIGINAL: Shannon V. OKeets

ORIGINAL: Majorball68




I don't think it is something that is obvious unless you look out for it. Oil isn't usually an issue for Allies but in a number of games I have been tracking it.
I'm not sure about sending saved game files (Solitaire mode) between players anywhere around the Production phase.
So by extension does that mean one shouldn't stop, save and then later re-load the game once Use Oil phase had begun and Production (i.e., build units) phase has finished even when playing solo?
I am not sure what you are asking. The sequence of play is:

pEndOfAction, // RAC 12.
pPartisan, // RAC 13.1.
pEntry, // RAC 13.2.
pUSEntry, // RAC 13.3.
pProdPlanningPrelim, // RAC 13.6.1 & 13.6.2.
pStayAtSeaA, // RAC 13.4.
pStayAtSeaD, // RAC 13.4.
pReturnToBaseA, // RAC 13.4.
pReturnToBaseD, // RAC 13.4.
pUseOil, // RAC 13.5.1.
pFinalReorganization, // RAC 13.5.
pBreakDown, // RAC 22.4.1.
pProdPlanningFinal, // RAC 13.6.1 & 13.6.2.
pSearchAndSeizure, // RAC 13.6.1.
pScrapDestroyed, // RAC 13.6.9.
pNavalRepair, // RAC 13.6.5.
pProduction, // RAC 13.6.3 -> 13.6.9.
pReform, // RAC 22.4.1.
===

So the Use Oil phase is way earlier than Production in this sequence of play.

My concern is with: (1) saving during Production, (2) sending the saved game, (3) restoring in the middle of the Production phase, (4) completing Production, and then (5) continuing on.
Steve

Perfection is an elusive goal.
Post Reply

Return to “Tech Support”