This commit converts the following function calls:
* boost::bind -> std::bind
* boost::function and boost::functionN -> std::function
* boost::ref and boost::cref -> std::ref and std::cref
* boost::bad_function_call -> std::bad_function_call
In the process, it was discovered that std::bind has trouble with overloaded
functions. There were two such cases in the code:
* gui2::twindow had an ancient unused overload to draw(). The overload was removed.
* gui2::trepeating_button was binding tdispatcher::fire. This case was converted
to a lambda.
Several header files used the .tpp extension, which means that they are not correctly detected as C++ (though this can be overridden and has been for one case in the XCode project). The .tpp extension is one of several intended for private template instantiations, but these headers were topleve headers included in many places.
This is not only faster, it is also easier to understand, becasue it is
now obvious that every enement of side_controllers_ can only be 'human',
'ai' or 'null'.
This also makes enum::parse() in MAKE_ENUM a template. This way it also works
with other string classes, specially string_span from simple_wml.
This has 3 advantages:
1) It makes the serversided handling of controller= attribute easier.
2) It prevents OOS causes by wrong use of the [side] controller=
attribute
3) It gived us a field to store the local/remote data for
null-controlled sides, this could be useful in cases where the
controller changes from null no non-null, Currently is_local is ignored
for null-controlled sides.
the bug which was fixed by this code (https://gna.org/bugs/?13038)
shouldn't happen anymore becasue droiding sides now only changes the
proxy controller.
these change_controller calls didnt change the controller (the
controller is always human before and after). I also removed the
serversided code which handles these [change_controller] packages.
And related commits.
This reverts commit 545253ec2b117b413e7ef40e06e65d358ce20f77.
This reverts commit 1215f65eb875cc3070e8d087ce699c0a2ff8d8b0.
This reverts commit 11664f4024cb760de7db5fec54661cd14fc05ac8.
This reverts commit e948df3424657c5843b1fb65a1319449bb6311bc.
This reverts commit 3781e7839f29915292a2452c37b08a1e1fce9841.
This commits were reverted to exclude them from wesnoth 1.13.2 release because:
1) We are still unsure about the best name oftthese attributes
2) This breaks multiple campaigns, including LoW and the tutorial.
Feel free to revert this revert after 1.13.2 when thse issues can be solved..