H3 vcmi

Hi, everybody,
first, sorry for my bad english.
I’m Chris and iwoul’d like to participe on the new H3 project.
I’m 37 I’m not a programer, just designer in ads.

www.christophenicod.com

I play H3 since 1999 and i’ve think to create other cities and monsters.
Perhaps i can make something in the VCMI Project.
Is there someone speaking french ?

Thank’s to you

Chris

I’m afraid not :-/

We know are already too many towns which don’t work, but there’s still some work for graphican: the interface. See our TODO list.
If you would like to design some menus or create new graphics for them, your help would be very appreciated :slight_smile:

Thank you Warmonger for your answer,
Could you send me some graphics elements and indications.
draws of the project , back grounds, pictures, anythings can help to make some roughs.
Do you have already an idea of the way to take ? exemple ?

Chris

Hmm, let me think:

Firstly, you may need to get some H3 graphics to play with. Extract your .lod files from Data folder using resedit or Deftool.
Config\settings.txt may give you some insight of what particular graphics are.
Some info has been posted here. Also, Heroes Community is a great (greatest) source of information.

Ok, now, what’s here to do?
We don’t have really any “sketeches”, as if we had, we would simply put the layout into code. New interface just needs to be designed, possibly making it as close to original as possible.

An urgent issue is a support for 800x480 resolution. Many windows need to be tweaked to fit it:

  • Main menu
  • Map browser
  • The combat screen (probably with help of edge scrolling)
  • Castle screen, fort view screen
  • Hero screen, exchange screen
  • Thieves’ guild. Keep in mind request to add more player colors in the future.

Higher resolutions are similiar, it’s about main menu and scenario selection screen. We need huge (1920x1200) picture that could be cut or scaled down to fit all the resolutions.

What could be improved?

As TODO list shows, ideas are as follows:

  • Advanced option dialog, allowing us to choose resolutions and color depth.
  • Quest journal with minimap, similiar to Heroes V preferably.
  • New stack experience dialog - It’s just not good enough. Since it’s not a part of original game, feel free to do anything with it. Also, additional button to returning stack artifact back to hero would be helpful. Think about adding some scrollbar for huge number of bonuses.
  • Creature info, so it can hold up to 10 digits and info about ALL abilities and active effects, as in H5. probably done by gradual expanding of the window.
  • Mithril button for adventure map to make use free space.
  • Commander button on hero screen
  • Wogification button in scenario selection needs to be replaced with “mods” or “mod browser”.

That’s all I can think of for now, I bet it’s already too much :wink:

Hi ,

Sorry I dont understand very well english…
I dont succed to take graphics elements on differents links
Could you send me elements text and graphic

Thank you

Chris

PM sent.

Hello! This is my first post here. I am a C++ programmer (intermediate) and a H3 fan. I can not find a post for a beginner to VCMI like me. I am interested in how to begin: where yo download the source code (SVN ?!), what branch to use, what tool you are using for building (MSVC 2010 ?!) the first things to do (bugs, features ?!). Basically I need help in how to start helping you. Please point me to the right post or documentation. I am mainly using windows and secondary linux.

It seems I found a starting point here:
wiki.vcmi.eu/index.php?title=How … Windows%29

Hi ungureanuli,
yes, that page was meant as a starting point, however it got a little obsolete now. Now we recommend using VC 2010, adjusting project files is a little different — ther is no direct support for global directories, they introduce a new „VC++ directories” page in project properties.

You can use my project files (the SVN ones for VC 2008 are obsoleted) from that package: vcmi.eu/vc10.7z (in solution file there are few non-VCMI projects: settings, Z_net_* — just remove them).

I’m going to update the wiki page to VC10 and upload new project files soon.

After I deleted the lines:
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = “Z_net_h”, “…\Z_net_h\Z_net_h.vcxproj”, “{585D1314-0307-4199-9E48-502385BBDB8F}“
EndProject
Project(”{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}”) = “Z_net_c”, “…\Z_net_c\Z_net_c.vcxproj”, "{AB5E0BD7-9219-4B46-A14E-58E93244B15A}"
EndProject

from VCMI-10.sln, I also receive in VC2010 the error:
C:\VCMI\trunk\VCMI_settings\VCMI_settings.vcxproj : error : Project “C:\VCMI\trunk\VCMI_settings\VCMI_settings.vcxproj” could not be found.

Should I delete the line:
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = “VCMI_settings”, “VCMI_settings\VCMI_settings.vcxproj”, "{2A441414-23EC-4203-B015-2E43FFADCCE9}"
EndProject

from VCMI-10.sln as well?

Yes.

After I deleted those projects I had to configured the boost paths.
I have noticed that all 4 projects (from the archive you post it above related to VC2010) have at IncludePath: “C:\C++\boost_1_42_0” . I have changed this to “c:\Program Files\boost\boost_1_44” as this is were I have installed boost. Also at LibraryPath: “C:\C++\boost_1_42_0\stage\lib” into "c:\Program Files\boost\boost_1_44\libs"
Is this the right way? Or should I manually copy the content of “c:\Program Files\boost\boost_1_44\libs” into “C:\VCMI\boost” ( as suggested in wiki.vcmi.eu/index.php?title=How … other_libs ) ?

When I am building VCMI_lib project I get the following error:

1>c:\vcmi\trunk\lib\connection.h(666): fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj
1>cl : Command line error D8040: error creating or communicating with child process

If I add /bigobj compile parameter (project properties \ configuration properties \ c/c++ \ command line -> additional options) I am receiving the following linking error:

1>LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-gd-1_44.lib'

I have searched inside boost folders and indeed there is no such file.
Any idea how to pass over this errors?

I had similiar problem with libboost_thread files and needed to manually search for them and copy to appriopriate directory in VCMI location. It seems they are placed elsewhere and building guide doesn’t mention it.

boost, once you build it with bjam, should have this file in /stage/lib folder. You need to add it to linker->additional include directories in all VC++ project settings.

Indeed, by building locally the boost libraries with bjam (did you used any parameters?) I could find all lib files inside the /stage/lib directory (including libboost_thread-* files). The first time I had the wrong impression that the installers from boostpro.com/download are also installing the libs.
In order to leave out all issues regards the paths, I copied and built boost_1_42_0 in the same directory “c:\C++\boost_1_42_0” as it is in the set in the projects paths from vcmi.eu/vc10.7z .
However, when I am building VCMI_lib I am receiving the error:

I could find the

void DLL_EXPORT setThreadName(long threadID, const std::string &name);

inside the C:\VCMI\trunk\CThreadHelper.h
Any idea ho to solve this issue?

CThreadHelper.* were moved to be part of lib in r1994.
Add CThreadHelper.cpp/h to VCMI_lib project. Remove them from other projects (if present).

Usually I use no parameters (I have to set the toolset to have MSVC 9.0 compile boost when both MSVC 10.0 and 9.0 are present).

boostpro installers install some of the libs but I don’t think they are worth using - if you don’t have really fast Internet connection, building is faster than downloading. And you get all the libraries by default. Furthermore, boostpro doesn’t have libraries for newer boosts.

Many thanks! Finally, I have 4 succeeded builds.
Indeed I had to remove CThreadHelper.cpp/h from VCMI_client and to add these files to VCMI_lib.

Probably boost takes the latest MSVC as the default value for toolset when it is not specified.

I will start debug it a little to start understanding it. Is there some documentation or anything useful for a beginner to VCMI?
So far, I have found:

Code structure ,
Bonus system diagram ,
TODO List en ,
more detailed TODO List pl

You’ve found all the documentation except that written in source code files. That “more detailed TODO list” is actually our university project description not intended for normal developers. You can find cheat code list useful too ( wiki.vcmi.eu/index.php?title=Cheat_codes ).

I`ve just started implementation of standalone random map generator. Are there any suggestions about features?