MantisBT - VCMI
View Issue Details
0001643VCMICampaignspublic2013-12-31 13:212014-06-02 11:36
Ivan 
beegee 
normalcrashhave not tried
closedfixed 
 
0.94b0.94d 
0001643: Crash on loading scenario 7 of AB campaign
Crash after advancing to mission 7: To kill a hero of Armaggedon's Blade campaign using vcmisilmaril cheat.

Server crash, tail of console log indicates problem with hero placeholders
15:15:06 INFO global [7f41dbf56740] - Map loaded!
15:15:06 INFO global [7f41dbf56740] - Our checksum for the map: 1102031077
15:15:06 DEBUG global [7f41dbf56740] - Initialization:
15:15:06 DEBUG global [7f41dbf56740] - Creating player entries in gs
15:15:06 DEBUG global [7f41dbf56740] - Prepare crossover heroes
15:15:06 DEBUG global [7f41dbf56740] - Generate list of hero placeholders
15:15:06 DEBUG global [7f41dbf56740] - Replace placeholders with heroes
15:15:06 ERROR global [7f41dbf56740] - Error: signal 11:
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver(_Z17handleLinuxSignali+0x30) [0x79edc7]
15:15:06 ERROR global [7f41dbf56740] - /lib/x86_64-linux-gnu/libc.so.6(+0x36ff0) [0x7f41d9159ff0]
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver(_ZNK9BaseForIDI10HeroTypeIDiE6getNumEv+0xc) [0x7bf560]
15:15:06 ERROR global [7f41dbf56740] - /home/ivan/src/vcmi/build-gcc/lib/libvcmi.so(_ZN10CGameState25replaceHeroesPlaceholdersERKSt6vectorISt4pairIP14CGHeroInstance16ObjectInstanceIDESaIS5_EE+0x142) [0x7f41db4c941e]
15:15:06 ERROR global [7f41dbf56740] - /home/ivan/src/vcmi/build-gcc/lib/libvcmi.so(_ZN10CGameState19placeCampaignHeroesEv+0x504) [0x7f41db4bd806]
15:15:06 ERROR global [7f41dbf56740] - /home/ivan/src/vcmi/build-gcc/lib/libvcmi.so(_ZN10CGameState4initEP9StartInfo+0x2c4) [0x7f41db4ba852]
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver(_ZN12CGameHandler4initEP9StartInfo+0xc0) [0x6b0676]
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver(_ZN11CVCMIServer27initGhFromHostingConnectionER11CConnection+0x172) [0x79db98]
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver(_ZN11CVCMIServer7newGameEv+0x60) [0x79dce6]
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver(_ZN11CVCMIServer5startEv+0x3af) [0x79e337]
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver(main+0x1f9) [0x79f166]
15:15:06 ERROR global [7f41dbf56740] - /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f41d9144de5]
15:15:06 ERROR global [7f41dbf56740] - /usr/local/bin/vcmiserver() [0x6a8949]
No tags attached.
Issue History
2013-12-31 13:21IvanNew Issue
2013-12-31 13:21IvanStatusnew => assigned
2013-12-31 13:21IvanAssigned To => beegee
2013-12-31 13:41beegeeNote Added: 0004298
2013-12-31 17:00beegeeNote Added: 0004299
2013-12-31 17:00beegeeStatusassigned => resolved
2013-12-31 17:00beegeeFixed in Version => 0.94b
2013-12-31 17:00beegeeResolutionopen => fixed
2013-12-31 18:59IvanNote Added: 0004302
2013-12-31 18:59IvanStatusresolved => feedback
2013-12-31 18:59IvanResolutionfixed => reopened
2013-12-31 19:00IvanNote Edited: 0004302bug_revision_view_page.php?bugnote_id=4302#r2476
2013-12-31 19:00IvanTarget Version => 0.94b
2013-12-31 19:06IvanNote Edited: 0004302bug_revision_view_page.php?bugnote_id=4302#r2477
2013-12-31 19:21IvanNote Added: 0004303
2013-12-31 19:21IvanStatusfeedback => assigned
2014-01-19 13:19beegeeNote Added: 0004324
2014-01-19 13:20beegeeNote Edited: 0004324bug_revision_view_page.php?bugnote_id=4324#r2481
2014-01-30 19:01beegeeNote Added: 0004333
2014-01-30 19:01beegeeStatusassigned => resolved
2014-01-30 19:01beegeeFixed in Version0.94b => 0.94d
2014-01-30 19:01beegeeResolutionreopened => fixed
2014-06-02 11:36KantorNote Added: 0004747
2014-06-02 11:36KantorStatusresolved => closed

Notes
(0004298)
beegee   
2013-12-31 13:41   
Thanks for the report. I already have this bug on my TODO list, so this is the next point I want to do.
(0004299)
beegee   
2013-12-31 17:00   
Fixed in Revision 3694.
(0004302)
Ivan   
2013-12-31 18:59   
(edited on: 2013-12-31 19:06)
I have to reopen this. Game no longer crash but behavior is still incorrect.

In scenario 6 (Blade In The Back) player must start with 3 heroes:
Hero placeholder: Gelu at 7 8 0
Hero: Ciele at 32 7 0
Hero: Erdamon at 7 25 0
(at the moment you can see this data in console log)

But right now VCMI fails to load Gelu from 2nd scenario (or some other but definitely not previous).

In next scenario (To Kill A Hero) vcmi fails to load any hero. Log shows this but all heroes from previous scenarios looks to be missing:
Hero placeholder: Catherine at 7 66 0
Hero placeholder: Roland at 18 68 0
Hero placeholder: Xeron at 34 37 0
Hero: Olema at 25 14 0
Hero: Pyre at 62 45 0
Hero: Nymus at 33 59 0
Hero: Ignatius at 14 48 0
Hero placeholder: Gelu at 58 12 0


Oh - and there is another campaign affected by this - Unholy Alliance.

(0004303)
Ivan   
2013-12-31 19:21   
Looking on final scenario in AB campaigns:
1) A hero can appear in non-continuous scenarios. Gelu appears in scenario 1-2 and then reappears in scenario 6.

2) Even defeated heroes can move to next scenario. In this case:
- Xeron is playable in scenarios 3-4
- Then he is moved to scenario 6. Goal of the scenario is to defeat him
- And then he re-appears in scenario 7 again (as a placeholder on map)
(0004324)
beegee   
2014-01-19 13:19   
(edited on: 2014-01-19 13:20)
So, I found out how it works:

- A hero can appear in non-continuous scenarios. Player color doesn't matter. A hero can't reappear if he was defeated.
- AB Hero Xeron is a special case (in the scenario before the last one, the hero won't be marked as defeated and so can appear in the next scenario)
-> if you start the very same AB campaign as a custom campaign, Xero won't be created

Apart from that I found out that...
- If no heroes can't be placed with hero placeholders and if there are no heroes assigned to the player, 1 hero will be generated on the map. Towns doesn't matter or generate hero at main town. The following placeholder replacement order is used:
1.) Hero placeholder/power with the highest power property will be placed -> generation: random hero replacement

OR

2.) Hero placeholder/hero ID with the highest internal ID (placed as the last hero on the map) -> generation: use the same hero ID

(0004333)
beegee   
2014-01-30 19:01   
Fixed general hero placeholder handling in revision 3718.

The exceptional case for Xeron will be completed along a another mantis point. Additionally the case when no hero placeholders (hero type) could be replaced has to be implemented (report in separate mantis).
(0004747)
Kantor   
2014-06-02 11:36   
This one may be closed.