@ -151,9 +151,9 @@ public:
*/
class ScriptListSorterValueDescending : public ScriptListSorter {
private :
ScriptList : : ScriptListBucket : : reverse_ iterator bucket_iter ; ///< The iterator over the list to find the buckets.
ScriptList : : ScriptItemList * bucket_list ; ///< The current bucket list we're iterator over.
ScriptList : : ScriptItemList : : reverse_ iterator bucket_list_iter ; ///< The iterator over the bucket list.
ScriptList : : ScriptListBucket : : iterator bucket_iter ; ///< The iterator over the list to find the buckets.
ScriptList : : ScriptItemList * bucket_list ; ///< The current bucket list we're iterator over.
ScriptList : : ScriptItemList : : iterator bucket_list_iter ; ///< The iterator over the bucket list.
public :
/**
@ -172,11 +172,13 @@ public:
this - > has_no_more_items = false ;
/* Go to the end of the bucket-list */
this - > bucket_iter = this - > list - > buckets . rbegin ( ) ;
this - > bucket_iter = this - > list - > buckets . begin ( ) ;
for ( size_t i = this - > list - > buckets . size ( ) ; i > 1 ; i - - ) this - > bucket_iter + + ;
this - > bucket_list = & ( * this - > bucket_iter ) . second ;
/* Go to the end of the items in the bucket */
this - > bucket_list_iter = this - > bucket_list - > rbegin ( ) ;
this - > bucket_list_iter = this - > bucket_list - > begin ( ) ;
for ( size_t i = this - > bucket_list - > size ( ) ; i > 1 ; i - - ) this - > bucket_list_iter + + ;
this - > item_next = * this - > bucket_list_iter ;
int32 item_current = this - > item_next ;
@ -201,15 +203,18 @@ public:
return ;
}
this - > bucket_list_iter + + ;
if ( this - > bucket_list_iter = = this - > bucket_list - > rend ( ) ) {
this - > bucket_iter + + ;
if ( this - > bucket_iter = = this - > list - > buckets . rend ( ) ) {
if ( this - > bucket_list_iter = = this - > bucket_list - > begin ( ) ) {
if ( this - > bucket_iter = = this - > list - > buckets . begin ( ) ) {
this - > bucket_list = NULL ;
return ;
}
this - > bucket_iter - - ;
this - > bucket_list = & ( * this - > bucket_iter ) . second ;
this - > bucket_list_iter = this - > bucket_list - > rbegin ( ) ;
/* Go to the end of the items in the bucket */
this - > bucket_list_iter = this - > bucket_list - > begin ( ) ;
for ( size_t i = this - > bucket_list - > size ( ) ; i > 1 ; i - - ) this - > bucket_list_iter + + ;
} else {
this - > bucket_list_iter - - ;
}
this - > item_next = * this - > bucket_list_iter ;
}
@ -310,7 +315,7 @@ public:
*/
class ScriptListSorterItemDescending : public ScriptListSorter {
private :
ScriptList : : ScriptListMap : : reverse_ iterator item_iter ; ///< The iterator over the items in the map.
ScriptList : : ScriptListMap : : iterator item_iter ; ///< The iterator over the items in the map.
public :
/**
@ -328,7 +333,8 @@ public:
if ( this - > list - > items . empty ( ) ) return 0 ;
this - > has_no_more_items = false ;
this - > item_iter = this - > list - > items . rbegin ( ) ;
this - > item_iter = this - > list - > items . begin ( ) ;
for ( size_t i = this - > list - > items . size ( ) ; i > 1 ; i - - ) this - > item_iter + + ;
this - > item_next = ( * this - > item_iter ) . first ;
int32 item_current = this - > item_next ;
@ -346,12 +352,12 @@ public:
*/
void FindNext ( )
{
if ( this - > item_iter = = this - > list - > items . r end( ) ) {
if ( this - > item_iter = = this - > list - > items . end( ) ) {
this - > has_no_more_items = true ;
return ;
}
this - > item_iter ++ ;
if ( this - > item_iter ! = this - > list - > items . r end( ) ) item_next = ( * this - > item_iter ) . first ;
this - > item_iter -- ;
if ( this - > item_iter ! = this - > list - > items . end( ) ) item_next = ( * this - > item_iter ) . first ;
}
int32 Next ( )