From: BJ H. <par...@us...> - 2004-04-14 15:30:52
|
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; } |