Log Message:
-----------
Changed Allegiance info around a bit, should be more reliable
Modified Files:
--------------
/cvsroot/decaldev/source/DecalFilters:
CharacterStats.cpp
Revision Data
-------------
Index: CharacterStats.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/CharacterStats.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- CharacterStats.cpp 1 Mar 2004 19:08:09 -0000 1.49
+++ CharacterStats.cpp 14 Apr 2004 15:30:41 -0000 1.50
@@ -802,16 +802,40 @@
if( i == AllegMap.end() )
break;
+ //the player
cAllegianceInfo *p = i->second;
memcpy( &MyAlleg, p, sizeof( cAllegianceInfo ) );
delete p;
AllegMap.erase( GUID );
- while( AllegMap.size() > 1 )
+ //check for patron
+ i = AllegMap.find( MyAlleg.TreeParent );
+ if ( i != AllegMap.end() )
{
+ memcpy( &Patron, i->second, sizeof( cAllegianceInfo ) );
+ delete i->second;
+ AllegMap.erase( i );
+ }
+
+ //check for a monarch
+ if ( Patron.GUID != 0 )
+ {
+ i = AllegMap.find( Patron.TreeParent );
+ if ( i != AllegMap.end() )
+ {
+ memcpy( &Monarch, i->second, sizeof( cAllegianceInfo ) );
+ delete i->second;
+ AllegMap.erase( i );
+ }
+ }
+
+ //The remainder *should* all be vassals
+ //while( AllegMap.size() > 0 )
+ //{
for( i = AllegMap.begin(); i != AllegMap.end(); ++i )
{
// Patron
+ /*
if( i->second->GUID == MyAlleg.TreeParent )
{
memcpy( &Patron, i->second, sizeof( cAllegianceInfo ) );
@@ -821,9 +845,11 @@
continue;
}
+ */
//Vassal
- else if (i->second->TreeParent == GUID)
+ //just leaving the sanity check in place here
+ if (i->second->TreeParent == GUID)
{
memcpy( &Vassals[VassalCount], i->second, sizeof( cAllegianceInfo ) );
VassalCount++;
@@ -834,12 +860,12 @@
continue;
}
}
- }
+ //}
// only remnant should be monarch
- p = AllegMap.begin()->second;
- memcpy( &Monarch, p, sizeof( cAllegianceInfo ) );
- delete p;
+ //p = AllegMap.begin()->second;
+ //memcpy( &Monarch, p, sizeof( cAllegianceInfo ) );
+ //delete p;
break;
}
|