some of you might have noticed, I have disabled the WORK order in my
game by disallowing it at time of the parsing of the orders. With the
flag DEFAULT_WORK_ORDER set to zero and my new part active (also with a
flag) the players should not be able to issue a work order and the units
should not work by default, hence no silver is produced by work at all.
as I had to find out, the default work order is still active! I have
checked twice (actually even more :) ) if the DEFAULT_WORK_ORDER flag is
set to zero, even if it's working if set to 1, but the units still WORK
by default. I have checked what the flag is doing anyway. And since it
is preventing the calling of ProcessWorkOrder(u, 0) in
Game::DefaultWorkOrder() I would say it does exactly what it should do.
But still the default WORK is issued.
Now after some searching I found in Game::RunAProduction a place to
prevent the work order to a) produce money at all and b) produce a
message in the report. I've just set the producing amount of silver in
case of a work order to 0 and disabled the message for the report. It's
working for now (I surely find out, if I have produced some other bugs
with this hack :D)
right next to the place where the producing amount is set in the
variable ubucks I've put this sledgehammer blow :)
--- code ---
ubucks = (int) dUbucks;
if (Globals->WORK_DISABLED && po->item == I_SILVER && po->skill == -1)
ubucks = 0;
--- code ---
so it will prevent any working order, but allows the entertaining.
Now since this is very crude, I ask if somebody know why the default
work is not disabled in the first place? I would rather disable the
processing of the work order than having it processed with zero silver
for every unit without orders.