Tested with SP and MP (2p Blitz.)
The MP behavior is unpleasantly laggy. I don't know if this can be fixed
or even if it's related to this change; somebody who knows the MP code
should look into it.
...so it won't download a campaign with the same version (even if the
uploaded one has no version yet..) as the already present one. To foce
download, manually delete the local info.cfg.
Instead of laying dangerous pointer-and-cast games, pull more code
inside playsingle_scenario() and playmp_scenario(), which define
allocation scopes for their controller objects.
Tested, SP and MP (2p Blitz.)
Instead of trying to use new/delete, pull the entire text of
playsingle_scenario and playmp_scenario into playcampaign.cpp in
preparation for inlinining them at the point where we'll need the
controller objects to be visible.
Tested, both SP and MP.
They're either wrong in themselves or (more likely) interacting badly
with some recent MP-lobby changes. I don't want to leave the game in
a broken state just as I go on vacation.
- use reference
- remove any < ... >, to protect against bad <rgb> block and allow
future use of other <tag>
Note: this also means that unclosed "<" will give a empty string
highlight the names of the players which have joined the selected game;
this mechanism still has some small flaws, in particular it highlights
too many players in the (seldom) case that two games have the same name
because we only get the name of the game a player joins and not an id
Currently works only for single-player. Issues: Needs some kind of
visible indication on the display. Also, saves made during the
post-victory-or-defeat linger could be reloaded and abused for
experience farming.
Now, use any hex without enemy as a possible attack origin, but if
non-empty propose the nearest one
Previously, non-empty hex was discared and the last empty one was used
to search the nearest.
(This make it work, but i will rename things later to better describe
this behavior)
continuously redraw the screen (use it with the --fps switch).
It will help to verify the real impact of optimization or spot which
feature lower the framerate.