While the reason for for the rooms map missing the weight should be
investigated, here is a patch that makes the code assume the exit has no
extra weight on it, instead of causing a crash. This is much better
behavior.

** Patch added: "no-weight-special.patch"
   
https://bugs.launchpad.net/mudlet/+bug/1074775/+attachment/3423150/+files/no-weight-special.patch

-- 
You received this bug notification because you are a member of Mudlet
Makers, which is subscribed to Mudlet.
https://bugs.launchpad.net/bugs/1074775

Title:
  Crash on pathfinding

Status in Mudlet the MUD client:
  New

Bug description:
  Crashed on pathfinding with:

  0     TMap::initGraph TMap.cpp        970     0x5da0ef        
  1     TMap::findPath  TMap.cpp        985     0x5da2d8        
  2     TMap::gotoRoom  TMap.cpp        767     0x5d84e2        

  The code in question gets the room weight of a special exit:

          if( rooms[i]->other.size() > 0 )
          {
              QMapIterator<int, QString> it( rooms[i]->other );
              while( it.hasNext() )
              {
                  it.next();
                  int _id = it.key();
                  if( ! rooms[i]->hasSpecialExitLock( _id, it.value() ) )
                  {
                      edgeCount++;
                      edge_descriptor e;
                      bool inserted;
                      tie(e, inserted) = add_edge( i,
                                                   _id,
                                                   g );
                      weightmap[e] = rooms[_id]->weight;
                  }
              }
          }

To manage notifications about this bug go to:
https://bugs.launchpad.net/mudlet/+bug/1074775/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mudlet-makers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~mudlet-makers
More help   : https://help.launchpad.net/ListHelp

Reply via email to