bugLordsAWar! - Bugs: bug #24926, 0.1.3 - Quest crash after being...

 
 

bug #24926: 0.1.3 - Quest crash after being attacked

Submitted by:  None
Submitted on:  Tue 25 Nov 2008 11:58:30 AM UTC  
 
Category: gameSeverity: 3 - Normal
Item Group: NoneStatus: None
Privacy: PublicAssigned to: None
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu 27 Nov 2008 06:28:43 PM UTC, comment #4:

The bug was fixed in version 0.1.4. The attached saved-game file is from version 0.1.3.

Ben Asselstine <benasselstine>
Project Administrator
Thu 27 Nov 2008 04:49:05 PM UTC, comment #3:

There's a saved game attached here.

Crash 1: Load game, end turn, be the one who is attacked. -> crash

Crash 2: Load game, attack enemy hero stack (in the explored south area). End turn. -> crash during AI player turns

Anonymous
Wed 26 Nov 2008 07:40:23 PM UTC, comment #2:

This is a fun bug, because a hero's quest gets fulfilled while it's not that hero's turn.

I've added extra code for drawing the mini map for a player other than the active player. This way the reward is shown on the proper player's map. It's unfortunate that it gets shown during another player's turn though -- they get a glimpse of more of the map.

The crash was related to a ruin not having a reward. fixed in svn.

I can't reproduce the second crash, but it appears that there are 2 stacks on the tile that the hero is attacking. I wish I knew how that happened!

To top it off, some battles were not being shown when attacking on the hidden map. I fixed that too.

Ben Asselstine <benasselstine>
Project Administrator
Tue 25 Nov 2008 12:03:07 PM UTC, comment #1:

A second crash related to this quest. If own hero stack is the attacker, the quest is finished with a reward (four devil allies here), but when ending the turn, there is a different crash:

#8 <signal handler called>
#9 Action_Reward::doSave (this=0x99ec3c8, helper=0xbf8798f8) at reward.h:115
#10 0x081539db in Action::saveContents (this=0x99ec3c8, helper=0xbf8798f8)
at action.cpp:91
#11 0x08153b7b in Action::save (this=0x99ec3c8, helper=0xbf8798f8)
at action.cpp:79
#12 0x080feea5 in Player::save (this=0x99d8298, helper=0xbf8798f8)
at player.cpp:533
#13 0x0810cb6e in RealPlayer::save (this=0x99d8298, helper=0xbf8798f8)
at real_player.cpp:74
#14 0x081052fa in Playerlist::save (this=0x99d75b0, helper=0xbf8798f8)
at playerlist.cpp:241
#15 0x080bf2c7 in GameScenario::saveWithHelper (this=0x9890b00,
helper=@0xbf8798f8) at GameScenario.cpp:390
#16 0x080c22c9 in GameScenario::saveGame (this=0x9890b00, filename=
{static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xbf879b48 "D\022\033\n<#¡\t´9¼\t\002"}}, extension=
{static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xbf879b44 "äò\022\nD\022\033\n<#¡\t´9¼\t\002"}}) at GameScenario.cpp:368
#17 0x080c2698 in GameScenario::nextRound (this=0x9890b00)
at GameScenario.cpp:619
#18 0x0824ca82 in NextTurnHotseat::start (this=0x99ed550)
at /usr/include/sigc++-2.0/sigc++/signal.h:772
#19 0x0824c55a in NextTurnHotseat::endTurn (this=0x99ed550)
at NextTurnHotseat.cpp:138
#20 0x0808c23b in Game::end_turn (this=0x9f8ac80) at game.cpp:259
#21 0x001b1392 in Glib::SignalProxyNormal::slot0_void_callback ()
from /usr/lib/libglibmm-2.4.so.1
#22 0x002918a4 in g_cclosure_marshal_VOID__VOID ()
from /lib/libgobject-2.0.so.0

Anonymous
Tue 25 Nov 2008 11:58:30 AM UTC, original submission:

The quest is:

"You shall slaughter 15 armies of the treacherous Storm Giants

You have killed 0 so far."

In the south area of the explored territory, the Storm Giants' hero stack attacks my hero stack. At the end of the fight, the game segfaults. On the contrary, if I attack first, there is no segfault, and the quest is finished successfully.

To reproduce, load attached game, end turn immediately to get attacked.

[...]

Program received signal SIGSEGV, Segmentation fault.
Stack::getFirstHero (this=0x0) at /usr/include/c++/4.3.0/bits/stl_list.h:658
658 { return const_iterator(this->_M_impl._M_node._M_next); }

#0 Stack::getFirstHero (this=0x0)
at /usr/include/c++/4.3.0/bits/stl_list.h:658
#1 0x080f400a in Player::doGiveReward (this=0x97e63a0, s=0x0,
reward=0x9809460) at player.cpp:1754
#2 0x080f4143 in Player::giveReward (this=0x97e63a0, s=0x0, reward=0x9809460)
at player.cpp:1778
#3 0x0810b626 in QuestsManager::questCompleted (this=0x980b328, heroId=1092)
at QuestsManager.cpp:264
#4 0x0818a06b in QuestEnemyArmies::armyDied (this=0x97fb9f8, a=0x9820e10,
heroIsCulprit=true) at QEnemyArmies.cpp:168
#5 0x0810a2df in QuestsManager::armyDied (this=0x980b328, a=0x9820e10,
culprits=@0xbfd0caf8) at QuestsManager.cpp:454
#6 0x080f32dd in Player::removeDeadArmies (this=0x981e138,
stacks=@0xbfd0cbf0, culprits=@0xbfd0caf8) at player.cpp:2109
#7 0x080f4625 in Player::cleanupAfterFight (this=0x981e138,
attackers=@0xbfd0cbf0, defenders=@0xbfd0cbe8) at player.cpp:1107
#8 0x080f4e20 in Player::stackFight (this=0x981e138, attacker=0xbfd0cd04,
defender=0xbfd0cce0) at player.cpp:1146
#9 0x080f6d03 in Player::stackMove (this=0x981e138, s=0x9820158, dest=
{x = 97, y = 84}, follow=true) at player.cpp:972
#10 0x080f7190 in Player::stackMove (this=0x981e138, s=0x9809460)
at player.cpp:834
#11 0x08161f64 in AI_Allocation::allocateStacksToThreats (this=0x975f358)
at AI_Allocation.cpp:189
#12 0x0816349b in AI_Allocation::move (this=0x975f358) at AI_Allocation.cpp:81
#13 0x08169ec5 in AI_Smart::startTurn (this=0x981e138) at ai_smart.cpp:104
#14 0x0824c967 in NextTurnHotseat::start (this=0x98caeb8)
at NextTurnHotseat.cpp:90
#15 0x0824c55a in NextTurnHotseat::endTurn (this=0x98caeb8)
at NextTurnHotseat.cpp:138
#16 0x0808c23b in Game::end_turn (this=0x9d9e370) at game.cpp:259
#17 0x001b1392 in Glib::SignalProxyNormal::slot0_void_callback ()
from /usr/lib/libglibmm-2.4.so.1
#18 0x002918a4 in g_cclosure_marshal_VOID__VOID ()
from /lib/libgobject-2.0.so.0
#19 0x0028411b in g_closure_invoke () from /lib/libgobject-2.0.so.0
#20 0x00298ec8 in ?? () from /lib/libgobject-2.0.so.0
#21 0x00299ebe in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#22 0x0029a326 in g_signal_emit () from /lib/libgobject-2.0.so.0
#23 0x04473b51 in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0
#24 0x04474fb2 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x099dc090 in ?? ()
#26 0x04e01700 in gtk_window_set_has_frame () from /usr/lib/libgtkmm-2.4.so.1
#27 0xbfd0d468 in ?? ()
#28 0x04c5c2d9 in Gtk::Button::on_released () from /usr/lib/libgtkmm-2.4.so.1

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #16921:  questcrash.sav.gz added by None (44KiB - application/x-gzip - saved game)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by benasselstine (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Wed 26 Nov 2008 07:40:23 PM UTCbenasselstineCategoryNone=>game
      Open/ClosedOpen=>Closed
    Tue 25 Nov 2008 11:58:30 AM UTCNoneAttached File-=>Added questcrash.sav.gz, #16921

    Back to the top


    Powered by Savane 3.1-cleanup1