This additionally:
* Makes all copyright notices identical aside from the starting year for Wesnoth-specific source files. Files not included: mariadbpp, lua, spirit po, xbrz, and bcrypt (crypt_blowfish).
* Removes all attribution from the files, since the vast majority of them are outdated or seemingly just outright incorrect. For example, I would guess that Dave is no longer the sole author of the majority of Wesnoth's current code.
This allows restricting each CA individually to only a subset of the units. It also means that several instances of the same CA can be used in the same AI configuration, in order to, for example, force the order in which units are dealt with, or to apply different settings to different units.
Also simplified a few instance of shared_ptr assignment. No need to create a temp ptr
just to immediately assign them.
(cherry-picked from commit ba150c0298)
The following have been enabled. They no longer cause any errors or warnings.
* C4819
* C4355
* C4351
* C4345
The following has been disabled globally and will be handled in individual cases:
* C4996
The following have been moved to the project files (meaning they become global in
their respective projects):
* C4250 (in wesnoth)
* C4244 (in wesnoth, wesnoth-lib, wesnothd, and campaignd)
The following has been left alone since I don't build the unit tests:
* C4702
Turns out I mistook @celticminstrel's opinion that we should use include guards over pragma (737916e).
Since all major compilers support `#pragma once`, there's no reason not to use it.
For future mergability reasons, this excludes src/spirit_po and src/xBRZ. It also excludes src/boost-patched.
This constitutes drop-in replacements for:
* boost::shared_ptr
* boost::scoped_ptr
* boost::weak_ptr
* boost::enable_shared_from_this
* boost::static_pointer_cast
* boost::dynamic_pointer_cast
This excludes boost::intrusive_ptr, except for stray includes. Refactoring that is more complicated.
...when encounter that their bound unit is missing(dead or some other
reason). Also the RCA_Loop was extended to call a function that
removes all the CAs marked to_be_removed, but the functionality was
not implemented completely yet
...smaller effective types when they are not translatable.
This patch considerably reduces the memory footprint of WML and speeds it up.
It should not change any WML behavior, except for a few corner cases
detailled below:
- "off" is no longer a synonym for "no" (it wasn't used anyway),
- _"42" is no longer an integer,
- untranslatable "true" and "false" are stored as booleans, hence
displayed as "yes" and "no",
- "042" is now understood as octal notation (hence 34) rather than decimal,
- hexadecimal notation "0x42" is now recognized.