#include <lib.h>
mapping Money = ([]);

int AddMoney(string type, int amount) { 
    object pile;
    pile = new(LIB_BLANK_PILE);
    pile->SetPile(type,amount);
    pile->eventMove(this_object());
    Money[type] = amount;
    return 1;
}

varargs void SetMoney(mixed val, int amount) {
    if( stringp(val) ) AddMoney(val, amount);
    else if( mapp(val) ) {
        string *currs;
        int i;
        i = sizeof(currs = keys(val));
        while(i--) { 
            AddMoney(currs[i], val[currs[i]]);
            Money[currs[i]] = val[currs[i]];
        }
    }
    else error("Bad argument 1 to SetMoney().");
}

mapping GetMoneyMap() { return copy(Money); }
