Add all classic S2 cheats and a few more
- refactors existing cheat code ("winter" code, toggle human AI player, armageddon) into new Cheats and CheatCommandTracker classes
- adds classic (S2) cheats:
- adds new (RttR) cheats:
I would happily split these cheats into separate PR's, but they all rely on the refactoring, so at least the first few commits would have to be merged before any split can be done.
The all-visible and build HQ cheats are useful for testing campaign scripts, which I have also been working on. The remaining S2 cheats are there mostly for feature parity and setting speed does not work the same as it did in S2 (certainly not fast enough, probably steps are different too).
The reveal resources cheat can be useful not only in gameplay but in debugging as well and the destroy buildings cheat is useful for testing the world campaign progress where the player needs to achieve total domination but also not destroy themselves (as they would with the armageddon cheat).
Related to issue #72
Wow, great effort.
I have one question: Probably some kind of enable cheats "addon"-setting should be necessary (especially for multiplayer) Is there already one in there, otherwise we definitly need to add one before we can merge this.
I don't think we should enable cheats in multiplayer, even with addons, I don't see a use case. For balancing reasons we should rather add some real balancing options instead of cheats (which most people are not aware of I think)
I will place a PR for the first three commits of this one and then add one PR per cheat/feature. I didn't want to do this in the first place because the refactoring may have seemed pointless, but now that a couple of people have seen the results this can bring, I think the first few commits can be merged without much issue and then each cheat can be considered on a case-by-case basis instead of a big blog that is difficult to review.
I don't think we should enable cheats in multiplayer, even with addons, I don't see a use case. For balancing reasons we should rather add some real balancing options instead of cheats (which most people are not aware of I think)
I agree. It should only be for debugging/map debugging or some fun, not disturb multi-player games