Launcher/Mod manager

Done, all headers have “*_moc.h” suffix.

All other issues mentioned in this thread should be fixed too except for this:

Works on my side - not sure what’s wrong here. I may have fixed this in latest revision but please recheck.

Thanks. Just saying I won’t have a time at all to work on it for one more day or two, hopefully Tow will get it all together for dev release :wink:

:imp: I can’t get the 32-bit Qt to work. It gives me the error:

3>c:\qt\qt5.1.0-32-no-opengl\5.1.0\msvc2012\include\qtgui\qopengl.h(82): fatal error C1083: Cannot open include file: 'GLES2/gl2.h': No such file or directory

Interestingly, I encounter this error only with ANGLE (no-opengl) Qt build. OpenGL build should work… but it is available only in 64 bits. (Why?)

Warmonger, could you check in your qopengl.h how does your VS resolve that GLES2/gl2.h header? Where is that file?

I see that file in path QT32\5.1.0\msvc2012\include\QtANGLE\GLES2\gl2.h.

I remember I needed to track it back as well to add all the includes, but none the less it’s there.

Google tricked me into thinking that I should have it in my platform SDK.

I managed to get Launcher project building. The new project file has been committed in r <>.


  • download and extract Qt binaries for VC11 (the latest package as of now … ffline.exe )
  • open the VCMI_global_user property sheet either by property manager or manually edit the props filse/ and set user macro QTDIR to the path of your path of installation of Qt (folder that contains such folders as “bin”, “include” and so on)
  • run compilation once. Moc will generate its files but they will not be compiled, so build will fail with linker error.
  • run compilation again — this time moc-generated files are present from the start and launcher should be built fine.

Possible issue:

  • Qt provides only ANGLE-dependant 32-bit VC11 binaries. ANGLE means it likely won’t work on Windows XP. Building XP-compatible Qt is more than I can handle now, so upcoming dev release will likely won’t support Launcher on WinXP

Please let me know if the new project files work for you.

Project works fine, but launcher still won’t launch correctly. At least it displays something.

Huh… try this: Open launcher project properties -> Debugging

  • in the Working Directory paste: $(outdir)
  • in the Environment field paste: PATH=$(QTDIR)\bin;%PATH%

(this should also fix any possible issues with missing Qt DLLs)

If you have trouble capturing the console screenshot because it immediately closes, you can use “Start without debugging” command. After program finishes, console remains open and waits for pressing key. (and you can attach debugger at any time later if you want)

Strange, now it works only in debug mode, but crashes when launched by icon.

Finally I figured out that icons should go to ROOT\launcher\icons to work properly.

Launcher needs libEGL.dll to be next to it or in the PATH.
If you set Visual debugger to feed Launcher with PATH pointing to Qt stuff (including libEGL), it works but only if you are starting the launcher by Visual Studio.
Otherwise you need to copy the file or put qtenv2.bat (it shows Qt where to look for your installation).

Well, after latest changes I can’t run it at all. Neither extracted directly from package or build with recent trunk :/. And yes, libEGL.dll is present in both locations.

EDIT: It worked when I copied all libraries from bin\ to game folder.

Huh… on my system it was libEGL that caused that behaviour. It seems to vary from machine to machine. Bad. :frowning:

Could you check exactly which DLL is that you need to run launcher? Try “binary search” on non-debug DLL-s. I really would like to avoid packaging the whole Qt binaries with VCMI.

I meant, copied all .dll libraries that were already in game package: … uncher.rar
It may indicate some issue with version.

Didn’t add anything on my own.

Not very reliable test but still - I managed to run launcher via wine. It seems that /platforms/qwindows.dll is missing. It can be found in /msvc2012/plugins/platforms/qwindows.dll

BTW - I noticed that there are a huge icu.dll’s. Is there a way to remove them? According to this it is needed only for webkit. Which we don’t use anyway: … pendencies

I also noticed libflac (just 300 kb but unused AFAIK) and two versions of msvc dll’s - msvcp100.dll and msvcp110.dll. First one seems to be unused.

Mods/witchking-arts should be removed (leftover from launcher test I assume)

Are the binaries you linked any different from the ones I packaged in the 0.93b package?

I have used “Qt 5.1.1 for Windows 32-bit (VS 2012, 511 MB)” package.

I’ll check it.

QtCore depends on it, I would have to recompile the whole Qt.

Right, it seems that VCMI doesn’t recognise .flac as music. Perhaps we could, if we already have flac plugin for SDL?

Some libraries depend on msvcp100 because I built them with VC 2010.
I’ll recompile all libraries with VC2013 when it is released (~1 month).

Right, thanks for pointing this out. :slight_smile:

The fun this is I use just same package. Installer is named

Still, for now I can tell that dlls from pack didn’t work, while mine do, so something must be wrong here. I can replace one with another at any time to break or fix launcher.

Could you have by any chance copies also qtenv2.bat file from Qt bin/ directory? Apparently it is used to append to PATH you Qt installation dir, so that could explain why it suddenly started working.

If not… does extracting the 0.93b package overwriting your launcher DLLs stops launcher from working? From what I see the Qt binaries we have in out packages are the same.

Yes, exactly that. I can switch back and forth by extracting one package or the other.
Adding qwindows.dll to the mix doesn’t change anything.

It is in bin/ directory and only there.

Also, I used enviromental variable editor to set QTDIR - without it wouldn’t even be able to compile project.

I diff’ed out DLLs. Apparently Qt installer embeds the absolute path to install directory in the DLLs.

Please try using my package + qwindows.dll in the platforms/ subfolder.

It worked ^^

Kuririn also reported it worked for him.