Koitan pitää mielessä ton pushBackin, jos tulee tarvetta, tässä ei tosiaan tullut lisäiltyä mitään. Hetken mietin miten saisin tuon for from-to loopin järkevästi ja tajusin, että voisin käyttää whileä, mikä tosin taitaa myös kuulua noihin hitaampiin looppeihin armassa. Testasin todella pikaisesti sitten noita nopeuksia millä koko scripti eri toteutuksilla suorittuu:
while: 0.0029s+
for i: 0.0031s+
for from-to 0.0039s+
Toteutukseni voi kyllä kusta huolella vähäisestä unesta johtuen...
Code: Select all
//WHILE
_items = magazines _x;
if(count _items > 0) then {
while{_i < count _items} do {
_weaponName = _items select 0;
_itemCount = {_x == _weaponName} count _items;
_conf = configFile >> "CfgMagazines" >> _weaponName;
_image = getText(_conf >> "picture");
_imgPath = _imgPath + format ["%1x<img image='%2' width='32' height='32'/>", _itemCount, _image];
_items = _items - [_weaponName];
_i = 0;
};
_imgPath = _imgPath + "<br/>";
};
//FOR FROM-TO
_items = magazines _x;
if(count _items > 0) then {
for "_i" from 0 to 1000 do {
_weaponName = _items select 0;
_itemCount = {_x == _weaponName} count _items;
_conf = configFile >> "CfgMagazines" >> _weaponName;
_image = getText(_conf >> "picture");
_imgPath = _imgPath + format ["%1x<img image='%2' width='32' height='32'/>", _itemCount, _image];
_items = _items - [_weaponName];
if(count _items == 0) then {_i = 1000;};
};
_imgPath = _imgPath + "<br/>";
};
//VANHA FOR
_items = magazines _x;
if(count _items > 0) then {
for [{_i = 0},{_i <= count _items},{_i = _i + 1}] do {
_weaponName = _items select 0;
_itemCount = {_x == _weaponName} count _items;
_conf = configFile >> "CfgMagazines" >> _weaponName;
_image = getText(_conf >> "picture");
_imgPath = _imgPath + format ["%1x<img image='%2' width='32' height='32'/>", _itemCount, _image];
_items = _items - [_weaponName];
_i = 0;
};
_imgPath = _imgPath + "<br/>";
};