Trunk discussion / complains

Or another idea-do not remove stack. Set it dead with some additional bool value like “nonRessurrectable” (or new bonus NOT_RESURRETABLE) and replace it’s dead body animation with dump graphics (with no graphics, only blue background in it).

What is M_DATA_DIR in the line


In csettingsview_moc.cpp file?

Another throught on extending creature properties.

There are some DEFs of creatures, that have instead of “Death” animation an “Unused Death” animation.
This thing is already implemented in HOTA somehow. If creature dies from spell, “Unused animation” is played.
I think it’s better to add “UD” animation playing for ranged/spell attacks (not only spell).

What do you think about it?
It should be something like


in “animation” section of creature config.
Or (for more modding possibility:

"standard":true // if "true" than frames group "Death" is played, if not, played "UD"
"spell":true //if true than if creature is killed by spell, "UD" played , last fram goes as corpse animation.
"ranged":true //if true than if creature is killed by spell, "UD" played , last fram goes as corpse animation.

Warmonger, Location of data files, defined during compilation. On Win this is always “.” (current directory), on other platforms it can be defined differently.

If this is causing problems - replace it with VCMIDirs::get().dataPaths().front();

Macron1, much simpler solution:
if creature killed with spell and has unused death animation ( >0 frames) - use it instead of regular anim.

What if unused death is wanted to be shown after ranged attack also?
PS Some creatures can have “Unused Death” animation, but it can be incomplete (i found some creatures with only 1 frame of corpse in this group).
In this case >0 will not work out.
Of cause, if DEF file is made properly, than it can be exported to frames and made again without these errors.

PS I still didn’t started next works on current branch (some personal problems and decrease of will). I only plan now to create virtual machine with Ubuntu (or Debian) and configure QTCreator to work on VCMI. Only after that i plan to continue.

Okay, it looks that mega-merge is complete and all finished code is now in develop branch. I guess everyone who does not use CMake will have to update/recreate project files due to large reorganization of client/ directory

Note that this merge includes my not 100% finished reorganization of graphics (see that pull request for details). Current status:
By default, VCMI should work WITHOUT additional graphical package (aka This means that quest window + creature windows should work with our own graphics from repo. However new resolutions & bonus icons still need it.

Here are repackaged files which include only resolutions/bonus icons. Unpack it into “Mods” directory (preferably - in user directory to keep it separate from git): … s/

For next release I’d like to finish my work on Launcher and upload this package into mod repository.

Std::bind causes new compile errors. Namely, functions with return type of bool cnanot be assigned to function with void return type, as in this code:

void CHeroWindow::dismissCurrent()
	CFunctionList<void()> ony = std::bind(&CHeroWindow::close,this);
	ony += std::bind(&CCallback::dismissHero, LOCPLINT->cb.get(), curHero);
	LOCPLINT->showYesNoDialog(CGI->generaltexth->allTexts[22], ony, 0, false);

CCallback::dismissHero has bool return type. In this particular situation it’s not obvious how this should be solved.

It becomes more apparent in ERM project which is littered with ambigious functors.

Okay, this probably means we have to download and place correctly some files, as atm map crashes at launch.

That’s strange. Which file(s) are missing?

What we had in before:

  • new creature window
  • new quest window
  • stack queue for battles
  • some bonus icons
  • extra resolutions, including extra buttons for adv. map
  • test map

First three are already in git - so vcmi shoud work without extra graphical package.

However non-standard resolutions would need that package and enabling its mods. (they should appear in Launcher as submods of “vcmi” mod)

Oh - and I guess we should add fallback “if selected resolution was not found - fall back to 800x600”

Thanks for clarification.

Forget about previous post. After merge I’m getting crash when launching Arrogance with default settings. Logs show something about missing player info.
This is so weird I don’t know where to look, it doesn’t seem any merged code could cause such behavior :?

I’d also like to split “develop” branch into two: one where other branches are merged, tested and fixed and the other which actually compiles and works on every platform. This way the issues I have now wouldn’t stop main branch (and possibly everybody who uses it for update) from working.

could you add an graphic scaler module?
for example it could run internally 800x600 graphics on 400x300 rectangle of screen (integer proportion scaling should go fast).

I’m sad because I have a linux (not Android, but true linux) phone, but it have screen of 800x480, which makes it can’t run VCMI

PS: of course if we have an 1600x960 resolution supported in VCMI half scaling would work on whole screen (1600/2x960/2=800x480)

PPS: how hard would be to implement this? (and i hope i used right topic on the forum)

We had two major changes:

  • VCMI Dirs change. Which can affect server but not like that
  • My GUI branch. Which contains no/almost no change to lib/server. So it shouldn’t affect it either. Weird.

I’d wish we could set up automated builds for MSVC as well but apparently this is not an option :frowning:

We can try to create separate “stable” branch that will be used for releases & daily builds. But this means that we must constantly update it so I’m not sure if this is a good idea.

majaczek, I think SDL 2 has this feature already. And I think that AVS also enabled it but you’d better ask him about this to be sure. IIRC there were some problems with this.

Apparently player issues were just incorrect logs (though they were not present before).

Actual crash occurs at this line:

	// Create enough room for the whole map and its frame
	ttiles.resize(sizes.x, frameW, frameW);

Will investigate it now. Debugger gets confused with this code and doesn’t show correct info.

With SDL2 vcmi scaled in fullscreen mode to desktop resolution (but with Opengl scaling in not proportional - cant fix this, it comes from SDL internals.).

@up yay! thanks!

could you add a deb with trunk vcmi to maemo distribution repository (there is one but it’s old 0.86 with custom changes for the resolution or something) ?

Yes, now I’m certain the crash occurs at the line mentioned above. Looks like uninitialized values:

11:57:19 INFO animation [1b94] - CMapHandler::roadsRiverTerrainInit(): frameW 27378054, frameH 15239566, sizes(36,36,2)

Wait a minute - are you using non-800x600 resolution? In this case - do you have that package I posted above extracted and enabled? Because othervice you will have a crash due to no longer present resolution - in trunk we now have only 800x600 resolution, extra resolutions are in separate package since I’d rather avoid derivative graphics in repository.

I guess now I need to implement fallback to 800x600 resolution if selected resolution is missing. Will do it today.

Moved some posts here. Ivan

Cann’t compile developer branch rev f78821. Is ERM still supported?

Kind of. ERM module was never actually used by engine so by default ERM is disabled. As result - from time to time things like this may happen. Create pull request if you wish to fix this but we can’t use ERM till proper scripting support.


I’m a new “user” of vcmi and started with latest release on ubuntu. Due to segfaults and very long time at each “end of turn” did I switch to the daily build (pre built package).

After playing for a while did I get yet another segfault and it repeats as soon as I load my saved game. Is there any instructions on how to provide some good feedback for the developers on this issue?

Below is the log just before crash:

Warning: an orphaned child!
Warning: an orphaned child!
const PlayerState* CGameInfoCallback::getPlayer(PlayerColor, bool) const: Cannot find player 254info!
Dwarf doesn’t have a base stack!
Opening StupidAI
Loaded Stupid AI 0.1
Unrecognized trigger effect type 3019
Unrecognized trigger effect type 3019
Unrecognized trigger effect type 3019
Unrecognized trigger effect type 3019
Warning: an orphaned child!
Warning: an orphaned child!
Segmentation fault
read: Connection reset by peer
Ended handling connection