A Warning indicates a potential problem in the content file(s) that the user told OpenMW to load. E.g. this might cause an object to not display at all or as intended, however the rest of the game will run fine.
An Error, however, is more likely to be a bug with the engine itself - it means that basic assumptions have been violated and the engine might not run correctly anymore.
The above mostly applies to errors/warnings during game-play; startup issues are handled differently: when a file is completely invalid/corrupted to the point that the engine can not start, that might cause messages that are worded as Error due to the severity of the issue but are not necessarily the engine's fault.
Hopefully, being a little more consistent here will alleviate confusion among users as to when a log message should be reported and to whom.
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
There were three different data structures being used for topic lists
in this code. (map< string, true >, list< string >, and vector< string >)
Switch the local topic lists to set< string >. This supports everything
the list and map were doing, reduces the variety of data structures, and
makes count (a more efficient search) available.
The vector has not changed, since it's tied to the ESM modules, and must
meet other requirements.
Seems to be closer to how MW is storing it (it has the complete FACT record in the savegame, actually).
This (somewhat) breaks OMW savegame compatibility in that old changes are discarded, but I don't think the faction reactions are quest relevant anywhere.