VCMI 0.68 - development version

Nice to have sb else testing. You saved me quite some time, as I was really considering reinstalling to check if my assumption was correct. But if you had the same, clearly some file must be missing from 0.68/0.68a. The reason it worked for Tow & Tow dragon being that they of course had the other versions previously installed.

Now, after a bit of testing, here are some bugs/issues:

#1

“Wait” seems to be only partially implemented, in the sense that it’s not yet well coordinated with the Speeds of the creatures. I’ve noticed 2 incorrect behaviors here:

1.1. I used wait on all 3 creatures of my army, which had their turn in the correct order of their speeds: Stone Gargoyle 6, Gremlin 4, Stone Golem 3. After the enemy creature moved, the order of my creatures should have been: Stone Golem, Gremlin, Stone Gargoyle. However the Gremlin got its turn before the Stone Golem.

1.2. With the creatures mentioned above, I attacked some Halberdiers (Speed 5). Theoretically, in the beginning of a turn, my Gargoyles should always have the first move. However, if I use Wait on them during a certain turn, the next turn they lose their priority and Halberdiers move before them.

#2

You’re gonna hate me for this, but Pathfinder still doesn’t find “the most optimal path”. :stuck_out_tongue: Now, I don’t know if installing all these dev. versions messed up your code in any way, but the last version “installed” - as in “overwrite all files” - was 0.68 (let me know if 0.68a should be any different in terms of coding). And I still have that issue with the hero still being able to have a last move in straight line, but not on diagonal. I’ve played around with H3 for half an hour today, and I didn’t encounter the same over there. And I’m pretty sure it never happens in H3, otherwise it wouldn’t strike me so obvious as abnormal behavior when I have it in VCMI.

#3

I’ve also had a one-time crash while trying to put two stacks of 1 Pikeman each together, in the hero screen. I tried a few times but couldn’t reproduce i. I’ll let you know if it happens again.

#4

The F4 toggle is indeed still in experimental phase. :slight_smile: It does trigger full-screen, but if I press it again, it messes my screen resolution. The game goes in window mode again, but my 22" screen goes into very low resolution (800x600 or even less, not sure). The only way to get back my original resolution (other than exiting VCMI) is if I have the standard H3 open and I Alt+Tab between them. If I do that, everything goes back to normal, except the VCMI window, which loses about half a cm at the bottom (ie. resource bar is not visible anymore in Adv.Map). If I Alt+Tab between VCMI & H3 when VCMI is in full-screen, the image is not always centered when I go back to VCMI.

#5

The scroll tab still remains hanged sometimes, though not as often as before (it’s not always reproducible anymore). And I think I’ve noticed it once also when I was splitting a stack in hero’s army in the hero screen (so it’s not only in town interface).

Related to this bug though, would it be possible to implement the Shift key for stack split? I use stack split quite a lot (and maybe even more now that I’m looking for bugs related to it), and it’s a bit tedious having to look with my cursor for an interface button I haven’t used in almost 10 years. :stuck_out_tongue: [size=67]I know I asked this before - but I hope not more than once. I wouldn’t wanna start to annoy you with my repetitive requests. :P[/size]

Very weird problems… I have no idea what could it be.

Possibility to move in straight line but not diagonal is the only issue with pathfinder? If yes, then it’s not the problem with optimality of the path but with different cost of last tile (moving diagonally is more expensive, therefore it’s possible to be able to move striaght but not diagonally). Do we really want to have this feature in VCMI?

And BTW - 0.68 and 0.68a have more or less the same code, the difference is that I’ve built 0.68 and 0.68a has been built by Tow.

We’ll try to fix it in the next dev version.

We’ll put it in our TODO list.

BTW, 0.68 and 0.68a have small bug with slow spell. Speed of creature is decreased by 75% on none and basic earth magic levels and by 50% on adv and expert instead of 25% and 50%.

edit:
I’ve taken a look at all these packages and the only significant difference I saw is that some of VCMI_rxxx have file VCMI_client_log.txt while 0.68 and 0.68a do not. However 0.68 can create this file if it does not exist. What happens when you delete it and then try to run VCMI 0.68/0.68a ? If it doesn’t work, what happens when you put it back?

Thanks for answering so fast. :slight_smile:

It wasn’t that. If I delete it, 0.68 creates the file automatically just as you said and the game starts out fine. It must be something else. This is not urgent, but when you will have some time, I would suggest a clean install of H3 on a different location, then installing 0.68 directly. As both me & Steven had this, it must be reproducible somehow.

I would say yes. And I’m not sure if it’s really a feature, rather than a formula (which we didn’t manage to decipher yet). :stuck_out_tongue:

Again, this does not need to be the main priority before 0.7. But I feel it should be corrected eventually, and here is why::

[size=84]For the record, in my argumentation below, by “movement unit” I’m referring to the last move a hero can apparently still make, according to the movement bar next to hero’s icon. So when the green bar is at its smallest hight, but not completely gone. This may translate as in 100 movement points as you mentioned on another thread, but in practice it should still allow the hero to move on diagonal somehow.[/size]

  1. It would feel more realist/intuitive, even for new players: In case hero has only 1 movement unit left, it would feel strange for the player to be able to make a step ahead or on the side, but not on the diagonal. Gamers don’t expect mathematical accuracy at its best when the play a game. They are more interested to see that their in-game movements feel natural. For them a step ahead, on the side, or on diagonal it’s the same. And if the green bar tells them they still have 1 more step, they would like to do it in whatever direction.

  2. For hardcore H3 fans, on top of the above, comes the experience. They would notice immediately that they won’t be able to do sth they used to, e.g.: picking an artifact placed on the diagonal, with their last movement unit. They will surely remember in H3 they never had the case of being able to step ahead or on the side “around” the artifact, but not be able to just “grab” it with that last movement unit (as shown by the green bar). Some very experienced/technical players, might even spot the difference on longer distances than just 1 tile.

  3. And last argument, maybe not that important - but still - would be that we’re just not accurate yet with the NWC formula. I take it as a general principle in my testing that it would be nice to have VCMI behave exactly like (or else better than) the original H3. NWC must have had exactly that “realistic feel” purpose in mind when they came up with the formula.

I hope I’m not making your life too difficult with this issue. I didn’t have the time for a thorough test, but except for the “last movement unit” issue, so far your path calculator seems perfect (I noticed some paths which were wrong before, are now correct). But I’m pretty sure that if we leave it as it is, there will be more in the future who will complain about this detail.

Thank you very much for testing and helpful suggestions!
A new development version is ready and attached to this post.
[Savegames are not compatible, format still remains unstable!]

I’ve probably resolved these issues :slight_smile:
Please, check them, I have hardly even tested them.

I’ve found a bug in saving system that makes saves from release version incompatible with debug version client. I’ve hopefully fixed it. Can you please reproduce this bug (if possible) and send me save again?

#3 and #5, since not reproducible, will have to wait.

I’ve extracted 0.68a onto my clean H3:WoG copy and it has started fine. This is really strange issue. I’ve looked into packages and I am not able to find any differences that could cause this problem…
vcmi_068b.7z (1.53 MB)

Thanks also for fixing so fast some of the above. [size=75]Should we feel guilty that our reports made you do that i/o focusing on your last exams?[/size] :stuck_out_tongue:

Wait & F4 are working great now. Also Shift-split. Many thanks!

There are however still issues with the “Advanced Options” window in the Menu. I’m not sure if this is exactly what Steven experienced, but if I change some options in the “Advanced Options” window, then go and change the scenario, when I click on “Begin” I get a MS Visual C++ Runtime error. If you cannot reproduce it at your side, I’ll see what exactly I changed in the options, that triggered later the crash when trying to load a different map.

EDIT: Actually you don’t necessarily have to change sth in the Adv.Options window. I had it that the game crashed also by just being in Adv.Options, w/o changing anything, and then selecting another scenario to play.

Also, now that we are busy with a bug related to the “Advanced Options” window, maybe it’s a good time to also fix the open/close functionality by mouse click. It works correctly for “Show Available Scenarios”, but not yet for “Show Advanced Options” (we can only open it, not close it).

Actually #5 is still easily reproducible. It does not happen always now, but more than 50% of the time when I split a stack, if I click with the mouse on the scroll bar i/o using the arrows, the scroll tab gets hanged. I’ve noticed it works “better” with larger stacks (it was hard to reproduce it when I split a stack of 2 Golems, but very easy when I split a stack of 39 Gremlins).

Strange indeed. Digging further into this issue (if necessary) would mean looking into what else me & Steven could have had in common to have this happening only on our side:

  • I have an AMD-platform system, with Windows XP SP2
  • I use Zone Alarm Suite (which is asking authorizations for VCMI client/server every time I install a different version - even when it’s a version I had previously used). But I am sure I gave the authorization when I had the reported error.
  • The game is not installed on the C drive (where Windows is). In fact, it’s installed on my only remaining FAT32 partition (2nd partition of my old parallel drive).
  • At the time when I installed 0.68 & 0.68a, my PC had been on (and heavily used) for a couple of days already w/o restart, and there were quite a number of applications running.
  • My WoG was installed on top of a Heroes III Complete version of the game
  • Aside from the basic WoG 3.58f, I had there also the Script Update (released a couple of years ago), plus I think a certain test script which I installed too long ago to remember what was exactly doing (some minor fix I believe)
  • Last VCMI version installed before 0.68 was 0.64 (and had mainly used 0.6x versions previously - didn’t do much testing back in the days of 0.5x)

So the only better way of reproducing this exactly, would be to reinstall H3 on a different location on the same FAT32 drive, install WoG+ScriptUpdate, then install 0.64 (and who knows, maybe even some of the previous 0.6x… no idea). And on that to come again with 0.68. My question is though: do you think it’s necessary to really identify what caused this? If it doesn’t happen again, considering the fact that you’ll anyway build new packages - sometimes maybe even from scratch - would it still be relevant to identify what caused this issue?

Here are some bugs noticed in 0.68b:

#b1 - Unstable interface when hero stops moving (reproducible)

When hero stops moving, in the change from the moving animation to the static position, for like a fraction of a second, the interface hangs a bit (or very shortly trembles, like an unstable focus or sth). If at the end of the movement there is an object which trigges a message window (e.g.: treasure chest), we can see this very short tremble behind the message window. This was introduced now with 0.68b. I’m pretty sure it wasn’t in 0.68.

#b2 - Save game crash (reproducible)

I’m not sure what you meant by “when no savegames were available” and actually I haven’t tested the save game functionality in 0.68 to know how it behaved before. But this is the error I’m getting now in 0.68b:

i4.photobucket.com/albums/y104/Zamolxis/VCMI%202009/th_90126-savegamecrash.jpg

Here is the detailed behavior:
1 - I clicked on the console and typed 'save test’
2 - Next I got a Windows error similar to the one in the screenshot, only indicating ‘VCMI_server.exe’ in the title bar
3 - After closing the Windows error, the game does not (apparently) crash, and it looks like I am able to continue playing
4 - However if I start playing (trying to move the hero, or open an interface), the game crashes again. And now I get what you see in the screenshot:
> “End of file” line appears in console
> Windows error screen, now indicating ‘VCMI_client.exe’ in title bar
> And simultaneously I get in the console the same text that me & Steven used to get when we couldn’t launch 0.68 few days ago: “This application has requested the Runtime to terminate it in an unusual way. Please contact…”

i just go the same error from installing it 0.68b ofc … seems like my last version was 0.62 i checked it but there is NO difference in files so dunno?:stuck_out_tongue:
i reinstalled old and it works… Funny :stuck_out_tongue: seems like i have reinstall it P:

add my old build?

rapidshare.com/files/190236382/vcmi_062.zip.html

also i tried to delete all files from pack (old too) and unpack it again the same effect…

Hi amvmichael,

If I understand well your post, your 0.68b does not start at all. If yes, does your console give the same error I had with 0.68(a): “This application has requested the Runtime to terminate it in an unusual way. Please contact…:question:

If that is the case, then it’s great (sort of speak), as this might help Tow/Tow dragon to come closer to figuring out where the issue is. I’m not sure if this is the best idea, but my suggestion for you would be to try the following:

  1. Go to this link: vcmi.antypika.aplus.pl/test/

  2. Download ONLY vcmi_r631.7z and install it in your Heroes folder. This should allow you to run VCMI just fine (it worked for me at least). If it fails, you can already come here and tell what error you had.

  3. Then install 0.68b again. So BEFORE you try any of the other packages in that link. And now see if you can open it. If 0.68b opens, it means there was something in vcmi_r631.7z which got lost afterwards.

  4. If 0.68b does not open yet, go ahead and install the second package in that link - vcmi_r651.7z - and see if that one works (I had a Runtime error)

  5. Then install 0.68b again. And check again if works. If yes, the devs will need to check what was in vcmi_r651.7z that got lost afterwards.

  6. If it still doesn’t work, take the 3rd - vcmi_r666.7z (this also didn’t work on my PC).

  7. And then put 0.68b again. If now it works, then vcmi_r666.7z has what we’re looking for.

  8. If not, take the last package - vcmi_r679.7z (this worked for me)

  9. And finally install 0.68b for the last time. After this it worked (for me & Steven) so it should work for you as well…

Hope you have the patience to try all the above. Do not install more than 1 of those 4 packages at a time. It’s what me & Steven did, trying to see which works, and in the end we didn’t know anymore thanks to which of them 0.68 worked.

In case you won’t have time for the above (or if it’s already too late and 0.68 works now for you), this is what I can only assume that could be the cause:

  • Some previous VCMI version (0.64 - mine & Steven’s ; 0.62 - amvmichael’s if he’s sure about it ; or even an older version) overwrites at some point a certain file, without causing that version to fail.
  • However that file is creating a conflict in 0.68.
  • One of the files in the unreleased versions (631-679) overwrites that file again, thus allowing a 0.68 to work next time is it installed
  • Maybe we should bare in mind that it doesn’t have to be a “missing” file. Could be a file that just changed at some point, which 0.68 does not overwrite, but one of the unreleased version does
  • And it does not have to be 1 single file, but could be a combination of files overwritten (or not) at a certain moment, which somehow depend/relate to each other

Yes that’s the same error.
now it gives error on map and crashes :slight_smile: (it’s broken map Civil War) it was fixed already huh P:

rest if needed i will edit here add later :slight_smile: must go shopping :stuck_out_tongue:

ok…

now it crashes the same way "This application …"
2nd try:the same

works fine for me no errors ok with second try i got crash on map
2nd try:the same

crash again :wink:
2nd try:the same

crash on map=works
2nd try:works.

crash
2nd try:crash

crash
2nd try:crash

crash
2try:crash

Well, we’ll see when the results are available. :wink: But don’t worry, I’m sure I would have found some reason to pospone learning anyway.

Great suggestion, thanks for help!
I would really like to have this bug fixed before 0.7, since it seems to affect everyone except of us.

Versions from /test/ folder on server were not supposed to properly run any maps, they were only for testing that startup issue. If it isn’t crashing immediately after start, consider its as “working” and try again installing 0.68a.

I’ll take look at your reports later (Thursday/Friday). Thanks for patience :slight_smile:

I smell a 0.69. :stuck_out_tongue:

if there’s any other idea of testing post it while i still have some free time :wink:
also “clean all stuff pack"would be useful the only thing that i didn’t deleted was mp3’s and snd.wav … if this is any hint :stuck_out_tongue: but even after deleting all it’s the same…
and now what about experimenting with crossing files from working pack?
after changing only client from 068b to one from pack r651 i got error
i43.tinypic.com/14vmp0w.png
it says something like"cannot find enter of procedure…in vcmi_lib.dll”
and then when i change vcmi_lib it works :exclamation:
it just gives some red things if that’s any hint.
i40.tinypic.com/2zntov4.png
and now putting client from (i didn’t delete vcmi_lib from r651) 0.68b gives another error
of “cannot find enter of procedure ??0CGEvent@@QAE@XZ in vcmi_lib.dl” if that means anything…

now cleaning and back to 0.68b
add client r631 error “cannot find enter of procedure ?alive@CStack@@QAE_NXZ in vcmi_lib.dl”
add vcmi_lib r631 =works
replace client with 0.68b “cannot find enter of procedure ??0CGEvent@@QAE@XZ in vcmi_lib.dl”

now cleaning and back to 0.68b
add client r666 i40.tinypic.com/2zntov4.png
add lib works the same red strings :wink: i40.tinypic.com/2zntov4.png
replace client with 0.68b “cannot find enter of procedure ??0CGVisitableOPW@@AE@XZ in vcmi_lib.dl”

just in case rest of options.
now cleaning and back to 0.68b
add client r631 error: “cannot find enter of procedure ?alive@CStack@@QAE_NXZ in vcmi_lib.dl”
add lib:works!
replace client with 0.68b “cannot find enter of procedure ??0CGEvent@@QAE@XZ in vcmi_lib.dl”

now cleaning and back to 0.68b
add client r679 error “This application…”
add lib:the same
replace client with 0.68b “cannot find enter of procedure ?loadArtifacts@CArtHandler@@AEX_N@Z in VCMI_lib.dll”

now cleaning and set to r679
add client r631 “cannot find enter of procedure ?alive@CStack@@QAE_NXZ in vcmi_lib.dl”
add lib:works
replace client with r679 “cannot find enter of procedure ??0CGEvent@@QAE@XZ in vcmi_lib.dl”

now cleaning and set to r679
add client r651 “cannot find enter of procedure ?getSecSkillLevel@CGHeroInstance@@QBEHABH@Z in vcmi_lib.dl”
add lib:works
replace client with r679 “cannot find enter of procedure ??0CGEvent@@QAE@XZ in vcmi_lib.dl”

now cleaning and set to r679
add client r666 “cannot find enter of procedure ?getSecSkillLevel@CGHeroInstance@@QBEHABH@Z in vcmi_lib.dl”
add lib:works
replace client with r679:“cannot find enter of procedure ??0CGVisitableOPW@@AE@XZ in vcmi_lib.dl”
i hope it’s useful :stuck_out_tongue: and i hope i’ haven’t mistaken anywhere with putting it in the wrong folder xD

also in all cases i didn’t delete files just overwrite so additional files from 0.68b were still here.

And i have something other interesting!
when extracting it to empty folder(068b,r679) it still crashes the same way while others tries to launch with few lines and then "This application " shows.

so after checking all possibilites still can’t run 0.68 :-/

If you say you didn’t delete, I’m a bit confused what you meant by starting all the steps with “now cleaning…”.

What made 0.68 work for me was the following:

  • copy all content of the 0.68 package and pasting it (overwrite all) in the Heroes folder - at this stage it still failed
  • do the same (copy all, paste/overwrite) with the content of the other 4 packages
  • then “repeat first step” : copy all content of 0.68 and pasting in the Heroes folder

Anyway, I suggest you actually wait for more advise on what to do/test next from Tow or Tow dragon, as they’ll prolly know what those errors you mention mean.

if i remember correctly at beginning i tried deleting and then just overwriting which gave the same results. i dunno if it could affect it any way but i tried few times some things so it’s not a possibility… i think… :stuck_out_tongue:
well i will try putting them all together let’s see…

nope crash oh well :stuck_out_tongue:

Sorry, maybe I’m too tired after a long (and rather ugly) day at work; but I still don’t follow your “deleting and then just overwriting”. For me it’s either you delete, and then just write (nothing to OVERwrite, as things got deleted); or it’s overwriting existing (= not deleted) files… :-/

I can’t tell yet if you followed the same steps as I did, as I never deleted anything.

sorry maybe it’s too chaotic:-P
ok another way:
1 at beginning after installing 0.68b i tried by deleting all files from 0.68b and inserting packages from /test
2 but then i saw i the same effect when just overwriting files from 0.68b so…

i think it should be clean now :wink:

i can still try option by reinstalling 0.62 and then add every pack to check.

I have no idea how it could help, especially crossing VCMI_client.exe / VCMI_lib.dll / VCMI_server.dll. These three files (and AIs) are not supppose to work when they are from different versions. Unfortunatley, these 5 files (or 4 in older versions without new AI) is the only difference among binary files. If you want to help, check if there is any other difference between packages posted here and older versions of VCMI (excluding settings folder as it shouldn’t crash so early).

I’ve tried to unpack files from older packages and overwrite with 0.68b and there was no significant difference afterwards.

I’ve another questions to people how tested 0.68. Did you have installed anything this: microsoft.com/downloads/deta … laylang=en ? If no, what happens if you install this, unpack VCMI 068b to clear installation of Heroes III and delete msvcp90.dll and msvcr90.dll files from Heroes III directory? I think it’s not necessary to install whole WoG for this test as it’s not necessary in first stage of VCMI starting.

OK. I installed H3C on a different location.

Now just to make sure of the exact steps you want me to perform, is this what I have to do next:

  1. Install vcredist_x86
  2. Unpack 0.68b in the Heroes folder
  3. Delete msvcp90.dll & msvcr90.dll
  4. Check if VCMI starts.

:question:

Yes, this is exactly what I want to check.

I did the above, and I’m getting a Visual C++ Runtime Error. The Console gives:

Starting…
Creating console and logfile: 0
Loading settings: 546
VCMI 0.68b (client)
Initializing screen: 32
Initializing minors: 0
Initializing fonts: 0
Initializing sound: 297
Initializing screen, fonts and sound handling: 875
Cannot find file: ZELP.TXT

Let me know if there’s anything you want me to do next.

Also, let me know when I can uninstall vcredist_x86. It kind of annoys me that it installed in the root of my J drive. I find it strange that it didn’t give me a path choice, and that - of all drives - it picked the J (well, at least I’m happy it didn’t go in the root of my C drive :p).