What do you think?
if(isObject(Database))
{
Database.delete();
}
new scriptGroup(Database);
function Database::populate(%this)
{
for(%i = 1; isObject(%this.item[%i]); %i++)
{
%this.item[%i].delete();
%this.item[%i] = "";
}
//IMPORTANT!!! Do not change the order that things are registered
//in unless you want to mess everyone's inventories up.
%this.registerItem("Bronze Sword", "Level\t1", "Damage\t15", "physicalItem\tBronzeSwordItem");
}
function Database::registerItem(%this, %name, %a, %b, %c, %d, %e, %f, %g, %h, %i, %j, %k, %l, %m, %n, %o, %p, %q)
{
if(%name $= "")
{
return;
}
%itemID = %this.getItemCount() + 1;
%this.item[%itemID] = new scriptObject();
%this.item[%itemID].name = %name;
if(%a !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%a), " ", "") SPC "= \"" @ restFields(%a) @ "\";");
if(%b !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%b), " ", "") SPC "= \"" @ restFields(%b) @ "\";");
if(%c !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%c), " ", "") SPC "= \"" @ restFields(%c) @ "\";");
if(%d !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%d), " ", "") SPC "= \"" @ restFields(%d) @ "\";");
if(%e !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%e), " ", "") SPC "= \"" @ restFields(%e) @ "\";");
if(%f !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%f), " ", "") SPC "= \"" @ restFields(%f) @ "\";");
if(%g !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%g), " ", "") SPC "= \"" @ restFields(%g) @ "\";");
if(%h !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%h), " ", "") SPC "= \"" @ restFields(%h) @ "\";");
if(%i !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%i), " ", "") SPC "= \"" @ restFields(%i) @ "\";");
if(%j !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%j), " ", "") SPC "= \"" @ restFields(%j) @ "\";");
if(%k !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%k), " ", "") SPC "= \"" @ restFields(%k) @ "\";");
if(%l !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%l), " ", "") SPC "= \"" @ restFields(%l) @ "\";");
if(%m !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%m), " ", "") SPC "= \"" @ restFields(%m) @ "\";");
if(%n !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%n), " ", "") SPC "= \"" @ restFields(%n) @ "\";");
if(%o !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%o), " ", "") SPC "= \"" @ restFields(%o) @ "\";");
if(%p !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%p), " ", "") SPC "= \"" @ restFields(%p) @ "\";");
if(%q !$= "")
eval("%this.item[%itemID]." @ strReplace(firstField(%q), " ", "") SPC "= \"" @ restFields(%q) @ "\";");
}
function Database::getItemCount(%this)
{
for(%i = 0; isObject(%this.item[%i + 1]); %i++) { }
return %i;
}
function Database::isItem(%this, %string)
{
if(trim(%sting) $= "")
{
return false;
}
for(%i = 1; isObject(%this.item[%i]); %i++)
{
if(%this.item[%i].name $= %string)
{
return true;
}
}
return false;
}
Database.populate();