From: Frederick W. <fre...@go...> - 2012-01-03 07:27:23
|
Regarding "a train": One option to accomodate both Erik's and Stefan's approach would be as follows: Each 18xx variant has a set of trains that are relevant for checking routes. For performance reasons, this set should be minimal. So for 1830 it would be {2} and for 18VA (if it had route-dependent enforcement) would be {2,1G}. The adapter's route check would be run with this set. Regarding "each consumer directly accesses the algorithm package": Functionally, Stefan has made a valid point. But having performance in mind, it might be better if network information would not always be built from the scratch for each kind of check in every consumer. For example, in SimTex's 1830, network information (both used for UI/AI) is built/updated after each action. The needed component ("NetworkState") would reside below the game engine consumers and either be part of the game engine or be placed on top of it. But perhaps such design is only the target in the longer term. Regarding "suggest vs. enforce": Thanks to Stefan for pointing out this pitfall. Actually I had envisaged "enforce" (not "suggest") during development. Would it be acceptable to introduce the new mode "suggest & enforce" if only some aspects are enforced (train purchase) and others not? I ask that because the gain of applying the forced train purchase logic for displaying a different info message would be not too big (in my opinion). |