@@ -112,10 +112,9 @@ static std::vector<std::string> craftGetItemNames(
112
112
const std::vector<std::string> &itemstrings, IGameDef *gamedef)
113
113
{
114
114
std::vector<std::string> result;
115
- for (std::vector<std::string>::const_iterator
116
- it = itemstrings.begin ();
117
- it != itemstrings.end (); it++) {
118
- result.push_back (craftGetItemName (*it, gamedef));
115
+ for (std::vector<std::string>::size_type i = 0 ;
116
+ i < itemstrings.size (); i++) {
117
+ result.push_back (craftGetItemName (itemstrings[i], gamedef));
119
118
}
120
119
return result;
121
120
}
@@ -125,10 +124,9 @@ static std::vector<std::string> craftGetItemNames(
125
124
const std::vector<ItemStack> &items, IGameDef *gamedef)
126
125
{
127
126
std::vector<std::string> result;
128
- for (std::vector<ItemStack>::const_iterator
129
- it = items.begin ();
130
- it != items.end (); it++) {
131
- result.push_back (it->name );
127
+ for (std::vector<ItemStack>::size_type i = 0 ;
128
+ i < items.size (); i++) {
129
+ result.push_back (items[i].name );
132
130
}
133
131
return result;
134
132
}
@@ -138,10 +136,9 @@ static std::vector<ItemStack> craftGetItems(
138
136
const std::vector<std::string> &items, IGameDef *gamedef)
139
137
{
140
138
std::vector<ItemStack> result;
141
- for (std::vector<std::string>::const_iterator
142
- it = items.begin ();
143
- it != items.end (); it++) {
144
- result.push_back (ItemStack (std::string (*it), (u16)1 ,
139
+ for (std::vector<std::string>::size_type i = 0 ;
140
+ i < items.size (); i++) {
141
+ result.push_back (ItemStack (std::string (items[i]), (u16)1 ,
145
142
(u16)0 , " " , gamedef->getItemDefManager ()));
146
143
}
147
144
return result;
@@ -156,11 +153,10 @@ static bool craftGetBounds(const std::vector<std::string> &items, unsigned int w
156
153
bool success = false ;
157
154
unsigned int x = 0 ;
158
155
unsigned int y = 0 ;
159
- for (std::vector<std::string>::const_iterator
160
- it = items.begin ();
161
- it != items.end (); it++) {
156
+ for (std::vector<std::string>::size_type i = 0 ;
157
+ i < items.size (); i++) {
162
158
// Is this an actual item?
163
- if (*it != " " ) {
159
+ if (items[i] != " " ) {
164
160
if (!success) {
165
161
// This is the first nonempty item
166
162
min_x = max_x = x;
@@ -187,11 +183,10 @@ static bool craftGetBounds(const std::vector<std::string> &items, unsigned int w
187
183
// Removes 1 from each item stack
188
184
static void craftDecrementInput (CraftInput &input, IGameDef *gamedef)
189
185
{
190
- for (std::vector<ItemStack>::iterator
191
- it = input.items .begin ();
192
- it != input.items .end (); it++) {
193
- if (it->count != 0 )
194
- it->remove (1 );
186
+ for (std::vector<ItemStack>::size_type i = 0 ;
187
+ i < input.items .size (); i++) {
188
+ if (input.items [i].count != 0 )
189
+ input.items [i].remove (1 );
195
190
}
196
191
}
197
192
@@ -211,33 +206,33 @@ static void craftDecrementOrReplaceInput(CraftInput &input,
211
206
// Make a copy of the replacements pair list
212
207
std::vector<std::pair<std::string, std::string> > pairs = replacements.pairs ;
213
208
214
- for (std::vector<ItemStack>::iterator
215
- it = input.items .begin ();
216
- it ! = input.items . end (); it++) {
209
+ for (std::vector<ItemStack>::size_type i = 0 ;
210
+ i < input.items .size (); i++) {
211
+ ItemStack &item = input.items [i];
217
212
// Find an appropriate replacement
218
213
bool found_replacement = false ;
219
214
for (std::vector<std::pair<std::string, std::string> >::iterator
220
215
j = pairs.begin ();
221
- j != pairs.end (); j++ ) {
222
- if (it-> name == craftGetItemName (j->first , gamedef)) {
223
- if (it-> count == 1 ) {
224
- it-> deSerialize (j->second , gamedef->idef ());
216
+ j != pairs.end (); ++j ) {
217
+ if (item. name == craftGetItemName (j->first , gamedef)) {
218
+ if (item. count == 1 ) {
219
+ item. deSerialize (j->second , gamedef->idef ());
225
220
found_replacement = true ;
226
221
pairs.erase (j);
227
222
break ;
228
223
} else {
229
224
ItemStack rep;
230
225
rep.deSerialize (j->second , gamedef->idef ());
231
- it-> remove (1 );
226
+ item. remove (1 );
232
227
found_replacement = true ;
233
228
output_replacements.push_back (rep);
234
229
break ;
235
230
}
236
231
}
237
232
}
238
233
// No replacement was found, simply decrement count by one
239
- if (!found_replacement && it-> count > 0 )
240
- it-> remove (1 );
234
+ if (!found_replacement && item. count > 0 )
235
+ item. remove (1 );
241
236
}
242
237
}
243
238
@@ -246,18 +241,16 @@ static std::string craftDumpMatrix(const std::vector<std::string> &items,
246
241
unsigned int width)
247
242
{
248
243
std::ostringstream os (std::ios::binary);
249
- os<<" { " ;
250
- unsigned int x = 0 ;
251
- for (std::vector<std::string>::const_iterator
252
- it = items.begin ();
253
- it != items.end (); it++, x++) {
254
- if (x == width) {
255
- os<<" ; " ;
256
- x = 0 ;
257
- } else if (x != 0 ) {
258
- os<<" ," ;
244
+ os << " { " ;
245
+ for (std::vector<std::string>::size_type i = 0 ;
246
+ i < items.size (); i++) {
247
+ if (i == width) {
248
+ os << " ; " ;
249
+ i = 0 ;
250
+ } else if (i != 0 ) {
251
+ os << " ," ;
259
252
}
260
- os << ' "' << (*it) << ' "' ;
253
+ os << ' "' << items[i] << ' "' ;
261
254
}
262
255
os << " }" ;
263
256
return os.str ();
@@ -269,17 +262,15 @@ std::string craftDumpMatrix(const std::vector<ItemStack> &items,
269
262
{
270
263
std::ostringstream os (std::ios::binary);
271
264
os << " { " ;
272
- unsigned int x = 0 ;
273
- for (std::vector<ItemStack>::const_iterator
274
- it = items.begin ();
275
- it != items.end (); it++, x++) {
276
- if (x == width) {
265
+ for (std::vector<ItemStack>::size_type i = 0 ;
266
+ i < items.size (); i++) {
267
+ if (i == width) {
277
268
os << " ; " ;
278
- x = 0 ;
279
- } else if (x != 0 ) {
280
- os<< " ," ;
269
+ i = 0 ;
270
+ } else if (i != 0 ) {
271
+ os << " ," ;
281
272
}
282
- os << ' "' << (it-> getItemString ()) << ' "' ;
273
+ os << ' "' << (items[i]. getItemString ()) << ' "' ;
283
274
}
284
275
os << " }" ;
285
276
return os.str ();
@@ -318,10 +309,12 @@ std::string CraftReplacements::dump() const
318
309
std::ostringstream os (std::ios::binary);
319
310
os<<" {" ;
320
311
const char *sep = " " ;
321
- for (std::vector<std::pair<std::string, std::string> >::const_iterator
322
- it = pairs.begin ();
323
- it != pairs.end (); it++) {
324
- os << sep << ' "' << (it->first ) << " \" =>\" " << (it->second ) << ' "' ;
312
+ for (std::vector<std::pair<std::string, std::string> >::size_type i = 0 ;
313
+ i < pairs.size (); i++) {
314
+ const std::pair<std::string, std::string> &repl_p = pairs[i];
315
+ os << sep
316
+ << ' "' << (repl_p.first )
317
+ << " \" =>\" " << (repl_p.second ) << ' "' ;
325
318
sep = " ," ;
326
319
}
327
320
os << " }" ;
@@ -479,11 +472,11 @@ bool CraftDefinitionShapeless::check(const CraftInput &input, IGameDef *gamedef)
479
472
480
473
// Filter empty items out of input
481
474
std::vector<std::string> input_filtered;
482
- for (std::vector<ItemStack>::const_iterator
483
- it = input.items .begin ();
484
- it ! = input.items . end (); it++) {
485
- if (it-> name != " " )
486
- input_filtered.push_back (it-> name );
475
+ for (std::vector<ItemStack>::size_type i = 0 ;
476
+ i < input.items .size (); i++) {
477
+ const ItemStack &item = input.items [i];
478
+ if (item. name != " " )
479
+ input_filtered.push_back (item. name );
487
480
}
488
481
489
482
// If there is a wrong number of items in input, no match
@@ -627,14 +620,14 @@ bool CraftDefinitionToolRepair::check(const CraftInput &input, IGameDef *gamedef
627
620
628
621
ItemStack item1;
629
622
ItemStack item2;
630
- for (std::vector<ItemStack>::const_iterator
631
- it = input.items .begin ();
632
- it ! = input.items . end (); it++) {
633
- if (!it-> empty ()) {
623
+ for (std::vector<ItemStack>::size_type i = 0 ;
624
+ i < input.items .size (); i++) {
625
+ const ItemStack &item = input.items [i];
626
+ if (!item. empty ()) {
634
627
if (item1.empty ())
635
- item1 = *it ;
628
+ item1 = item ;
636
629
else if (item2.empty ())
637
- item2 = *it ;
630
+ item2 = item ;
638
631
else
639
632
return false ;
640
633
}
@@ -647,14 +640,14 @@ CraftOutput CraftDefinitionToolRepair::getOutput(const CraftInput &input, IGameD
647
640
{
648
641
ItemStack item1;
649
642
ItemStack item2;
650
- for (std::vector<ItemStack>::const_iterator
651
- it = input.items .begin ();
652
- it ! = input.items . end (); it++) {
653
- if (!it-> empty ()) {
643
+ for (std::vector<ItemStack>::size_type i = 0 ;
644
+ i < input.items .size (); i++) {
645
+ const ItemStack &item = input.items [i];
646
+ if (!item. empty ()) {
654
647
if (item1.empty ())
655
- item1 = *it ;
648
+ item1 = item ;
656
649
else if (item2.empty ())
657
- item2 = *it ;
650
+ item2 = item ;
658
651
}
659
652
}
660
653
ItemStack repaired = craftToolRepair (item1, item2, additional_wear, gamedef);
@@ -697,11 +690,11 @@ bool CraftDefinitionCooking::check(const CraftInput &input, IGameDef *gamedef) c
697
690
698
691
// Filter empty items out of input
699
692
std::vector<std::string> input_filtered;
700
- for (std::vector<ItemStack>::const_iterator
701
- it = input.items .begin ();
702
- it ! = input.items . end (); it++) {
703
- if (it-> name != " " )
704
- input_filtered.push_back (it-> name );
693
+ for (std::vector<ItemStack>::size_type i = 0 ;
694
+ i < input.items .size (); i++) {
695
+ const std::string &name = input.items [i]. name ;
696
+ if (name != " " )
697
+ input_filtered.push_back (name);
705
698
}
706
699
707
700
// If there is a wrong number of items in input, no match
@@ -789,11 +782,11 @@ bool CraftDefinitionFuel::check(const CraftInput &input, IGameDef *gamedef) cons
789
782
790
783
// Filter empty items out of input
791
784
std::vector<std::string> input_filtered;
792
- for (std::vector<ItemStack>::const_iterator
793
- it = input.items .begin ();
794
- it ! = input.items . end (); it++) {
795
- if (it-> name != " " )
796
- input_filtered.push_back (it-> name );
785
+ for (std::vector<ItemStack>::size_type i = 0 ;
786
+ i < input.items .size (); i++) {
787
+ const std::string &name = input.items [i]. name ;
788
+ if (name != " " )
789
+ input_filtered.push_back (name);
797
790
}
798
791
799
792
// If there is a wrong number of items in input, no match
@@ -889,10 +882,9 @@ class CCraftDefManager: public IWritableCraftDefManager
889
882
890
883
// If all input items are empty, abort.
891
884
bool all_empty = true ;
892
- for (std::vector<ItemStack>::const_iterator
893
- it = input.items .begin ();
894
- it != input.items .end (); it++) {
895
- if (!it->empty ()) {
885
+ for (std::vector<ItemStack>::size_type i = 0 ;
886
+ i < input.items .size (); i++) {
887
+ if (!input.items [i].empty ()) {
896
888
all_empty = false ;
897
889
break ;
898
890
}
@@ -921,10 +913,9 @@ class CCraftDefManager: public IWritableCraftDefManager
921
913
const std::vector<CraftDefinition*> &hash_collisions = col_iter->second ;
922
914
// Walk crafting definitions from back to front, so that later
923
915
// definitions can override earlier ones.
924
- for (std::vector<CraftDefinition*>::const_reverse_iterator
925
- it = hash_collisions.rbegin ();
926
- it != hash_collisions.rend (); it++) {
927
- CraftDefinition *def = *it;
916
+ for (std::vector<CraftDefinition*>::size_type
917
+ i = hash_collisions.size (); i > 0 ; i--) {
918
+ CraftDefinition *def = hash_collisions[i - 1 ];
928
919
929
920
/* errorstream << "Checking " << input.dump() << std::endl
930
921
<< " against " << def->dump() << std::endl;*/
@@ -957,11 +948,12 @@ class CCraftDefManager: public IWritableCraftDefManager
957
948
958
949
recipes.reserve (limit ? MYMIN (limit, vec.size ()) : vec.size ());
959
950
960
- for (std::vector<CraftDefinition*>::const_reverse_iterator
961
- it = vec.rbegin (); it != vec.rend (); ++it) {
951
+ for (std::vector<CraftDefinition*>::size_type i = vec.size ();
952
+ i > 0 ; i--) {
953
+ CraftDefinition *def = vec[i - 1 ];
962
954
if (limit && recipes.size () >= limit)
963
955
break ;
964
- recipes.push_back (*it );
956
+ recipes.push_back (def );
965
957
}
966
958
967
959
return recipes;
@@ -974,9 +966,12 @@ class CCraftDefManager: public IWritableCraftDefManager
974
966
for (std::map<u64, std::vector<CraftDefinition*> >::const_iterator
975
967
it = (m_craft_defs[type]).begin ();
976
968
it != (m_craft_defs[type]).end (); it++) {
977
- for (std::vector<CraftDefinition*>::const_iterator
978
- iit = it->second .begin (); iit != it->second .end (); iit++) {
979
- os << " type " << type << " hash " << it->first << (*iit)->dump () << " \n " ;
969
+ for (std::vector<CraftDefinition*>::size_type i = 0 ;
970
+ i < it->second .size (); i++) {
971
+ os << " type " << type
972
+ << " hash " << it->first
973
+ << " def " << it->second [i]->dump ()
974
+ << " \n " ;
980
975
}
981
976
}
982
977
}
@@ -1000,7 +995,8 @@ class CCraftDefManager: public IWritableCraftDefManager
1000
995
it = m_craft_defs[type].begin ();
1001
996
it != m_craft_defs[type].end (); it++) {
1002
997
for (std::vector<CraftDefinition*>::iterator
1003
- iit = it->second .begin (); iit != it->second .end (); iit++) {
998
+ iit = it->second .begin ();
999
+ iit != it->second .end (); ++iit) {
1004
1000
delete *iit;
1005
1001
}
1006
1002
it->second .clear ();
@@ -1012,10 +1008,11 @@ class CCraftDefManager: public IWritableCraftDefManager
1012
1008
virtual void initHashes (IGameDef *gamedef)
1013
1009
{
1014
1010
// Move the CraftDefs from the unhashed layer into layers higher up.
1015
- for (std::vector<CraftDefinition*>::iterator
1016
- it = (m_craft_defs[(int ) CRAFT_HASH_TYPE_UNHASHED][0 ]).begin ();
1017
- it != (m_craft_defs[(int ) CRAFT_HASH_TYPE_UNHASHED][0 ]).end (); it++) {
1018
- CraftDefinition *def = *it;
1011
+ std::vector<CraftDefinition *> &unhashed =
1012
+ m_craft_defs[(int ) CRAFT_HASH_TYPE_UNHASHED][0 ];
1013
+ for (std::vector<CraftDefinition*>::size_type i = 0 ;
1014
+ i < unhashed.size (); i++) {
1015
+ CraftDefinition *def = unhashed[i];
1019
1016
1020
1017
// Initialize and get the definition's hash
1021
1018
def->initHash (gamedef);
@@ -1025,7 +1022,7 @@ class CCraftDefManager: public IWritableCraftDefManager
1025
1022
// Enter the definition
1026
1023
m_craft_defs[type][hash].push_back (def);
1027
1024
}
1028
- m_craft_defs[( int ) CRAFT_HASH_TYPE_UNHASHED][ 0 ] .clear ();
1025
+ unhashed .clear ();
1029
1026
}
1030
1027
private:
1031
1028
// TODO: change both maps to unordered_map when c++11 can be used
0 commit comments