That’s bad - boost locale fails to convert text to UTF-8.
Most likely caused by either one of:
a) boost-locale was compiled without charset conversion support. I think it needs ICU or iconv available for this.
b) encoding names can be system-specific. On my side they are named “CP1250”, “CP1251”, “CP1252”.
Not sure what exactly causing this though.
EDIT: I can add a workaround to skip conversion for ASCII-only files but this may work only as temporary solution - we’ll need proper fix for release.
First hi this is my first post and this i great project
Second i’m not sure this is the right place but here is my question
why when i build vcmi from source when i run it without root privileges shows me this
I will take a closer look on this tomorrow. For now - try to delete files in ~/.vcmi/config/ directory and make sure that vcmi has full access to it (chmod u+rwx ~/.vcmi/config)
That was the problem it was my mistake at first
as i tried to start vcmi i may try to run it as root and that must change the rights for /home/~/.vcmi
thanks for the quick respond
keep up the good work i may try to contribute for the project
I compiled VCMI under windows with VS12 to test if it’s possible to use std::function in CFunctionList class because of a bug which can occur when using boost::bind/function and std::bind/function. See this report: bugs.vcmi.eu/view.php?id=1601
Don’t know where to put this, but I think we need a additional category for such types of mantis reports, e.g. General or API which affects several categories.
While I tried to compile VCMI with VS12, I have noticed a few things:
Not all compilation units were included in project files (@Warmonger/Tow: Do you commit project files regularly?) -> I would suggest to ignore all not relevant files (generated files, dll files -> qt5, etc., …) with SVN or to put those files somewhere outside SVN. Otherwise it may be difficult to recognize which files have been changed or should be added. (perhaps I did something wrong, but when I turned on ‘show unversioned files’ then I got a few 100 files)
I added a few more filters to the project files to reflect the underlying directory structure a bit better and to keep h/cpp files more organized.
I received a lot of warnings when compiling VCMI. Is it possible to ignore a few warnings and probably to fix a few others? Otherwise you may oversee some important warnings. As compared to MSVC the count of warnings is 0 when using GCC/Clang with the highest warning level turned on and a few warnings exluded.
EDIT: @Ivan:
Is it possible that the JSON parser ignores 0 byte JSON files and doesn’t test any assertions? If something went wrong on VCMI startup because of missing data files the modSettings.json and settings.json will be created but with 0 bytes (another solution would be to create a valid JSON file directly when creating the file). The next time you start VCMI in debug mode it will complain about asserts which fail. Perhaps it would also be better to throw exceptions and handle them somewhere. -> Asserts are excluded in release build and user provided json files can always contain some errors and with exceptions you can effectively react on them.
DLL_LINKAGE strikes again?
These two methods (toString and getFulfillmentCandidates) should be instantiated by client and VCAI. But since class is marked as DLL_LINKAGE msvc treats them as external methods that don’t need instantiation.
removing dll_linkage from all symbols in header may fix this but this is just a guess.
Another option is to instantiate template explicitly in .cpp
I really need to find a way to make gcc more strict on this matter…
With current trunk I receive following log messages:
Parsing mod data: 50 ms
Data in rampart is invalid!
At /town/buildings/dwellingLvl6/requires/0
Error: Type mismatch! Expected number
At /town/buildings/dwellingLvl6/requires/1
Error: Type mismatch! Expected number
At /town/buildings/dwellingLvl6/requires/2
Error: Type mismatch! Expected number
[FAIL] Original game files
[SKIP] VCMI essential files
Loading mod data: 240ms
/config/factions/rampart.json contains string values whereas the schema only allows numbers:
Are there any campaigns where it is possible to choose a different map to conquer at the bonus screen? If yes for which heroes version is it possible, WoG / SoD? VCMI code shows that it could be possible at least.
Another question, is there any easy way to make a GUI component visible / invisible? There is no visible property in CIntObject. I can disable / enable a component which does the trick, but only if I redraw the screen. Is this the preferred way?
There are several such campaigns. Examples:
RoE - Spoils of War, first two scenarios.
AB - Armageddon’s Blade 1st and 2nd scenario
Spoils of War 3rd scenario is also interesting - you can choose side on which you will play. Here vcmi should select correct set of heroes - either set from 1st scenario or heroes from 2nd scenario.
Pretty much yes. Except that instead of redrawing whole screen (GH.totalRedraw()) you can redraw current window (CIntObject::redraw()).