The "no location found for '<path>', skipping textdomain" error message
is usually inoffensive and merely means that there is a textdomain
declaration pointing to a directory that doesn't exist, so it shouldn't
really be an error. Since we don't have anything midway between warning
and info messages, this should remain in place as a warning for WML
coders typoing textdomain declarations or forgetting to include their
add-on's translations with it.
Both instances refer to the "All" editor palette's icon in 1.10.x, moved
and redrawn during 1.11.x so it doesn't really fit in this menu anymore.
So my logic is, why not put the BLEND() IPF to test?
The pager is held by the play_controller and wraps around the
wmi_container, if there are too many items it adds "More Items"
or "Earlier Items" entries. These entries have special reserved
ids, if they are selected the pager traps them.
Future work might be to allow the page_size_ to be selected in
the preferences, that is currently left as a variable to make
it easy to support this.
Isssue found by Coverity.
This exception is thrown if an empty boost::function object is called.
Theoretically should never happen unless the request handlers table
wasn't initialized correctly/was tampered with.
Unhandled remove() return value issue found by coverity.
This is about the most we can do about this here since internal server
errors like this shouldn't matter to clients (remove() failing is only
an issue if write_config() somehow fails or the same add-on is
reuploaded later).
Note to self: sanitize campaignd logging later so we can actually
distinguish between informational and error messages without including
the word "error" or "failure" and variations thereof in each line.
add operators ==,!= (attribute_value, std::string)
previously comparisions like c["a"] = "b" were evaluated by
inline bool operator==(const std::string &a, const t_string &b)
by casting atribute_value to std::string, and const char * to t_string
we fix this by adding explicit equality operator for these cases.
Not creating t_string also results in significant preformance improvements in some cases.
The functionality of tracking observers and displaying chat messages
is moved to a manager class, which the gui owns.
The functionality of displaying notifications is similarly moved out
of the game_display and to a private namespace. (Static singleton
pattern seems okay here since there really won't need to be more
than one of these for a single application, it seems.)
since we don't use t_string's == operator anymore in this case, c["a"]
!= "" will evaluate to true in case of "a" beeing not existent. To get
the desired behaviour we need to use the .empty() method.
I also add an assert in map_generation for a possible segfault that i
noticed during fixing this.
There was a subtle flaw introduced by using safebool in halo_record,
but defining the handle as a pointer to this -- the pointer also
is castable to bool so it makes mistakes very easy. We replace the
safe bool stuff with a function "valid" of halo_record, and fixup
the places that were supposed to be using this test.
Also move the NO_HALO variable back to the header.
fixes up commit 82c6b98907d9709aef0d23a3846c1e75ac48e1d5
fixes up commit 82c6b98907d9709aef0d23a3846c1e75ac48e1d5
Use smart "handles" for halos which have been added to a halo
manager. The handles remember what manager they came from, and
delete themselves automatically on destruction.
This wasn't an issue when haloes were basically managed by a
C library, but if we want to get rid of the static singleton
system, the handles need to be smarter than just int's.