/************************************************************************
Realms of Aurealis James Rhone aka Vall of RoA
objact.c Flag driven object spec procs...
Note: Many (almost all) of these
procs are flag driven, meaning a
builder can assign certain flags
to objects on the fly in RoAOLC.
******** Heavily modified and expanded ********
******** 100% Completely Original Code ********
*** BE AWARE OF ALL RIGHTS AND RESERVATIONS ***
******** Heavily modified and expanded ********
******** 100% Completely Original Code ********
All rights reserved henceforth.
Please note that no guarantees are associated with any code from
Realms of Aurealis. All code which has been released to the general
public has been done so with an 'as is' pretense. RoA is based on both
Diku and CircleMUD and ALL licenses from both *MUST* be adhered to as well
as the RoA license. *** Read, Learn, Understand, Improve ***
*************************************************************************/
#include "conf.h"
#include "sysdep.h"
#include "structures.h"
#include "utils.h"
#include "comm.h"
#include "interpreter.h"
#include "acmd.h"
#include "handler.h"
#include "db.h"
#include "mudlimits.h"
#include "lists.h"
#include "global.h"
/* scan room for a bank object, if is, do the deed RoA jtrhone */
/* note, not hard wired anymore */
// use runtime currency names 11/28/97 -jtrhone
ACMD(do_bank)
{
int amount;
obdata *ob;
BOOL found = FALSE;
if (IN_NOWHERE(ch)) return;
for (ob = world[ch->in_room].contents; ob; ob = ob->next_content)
if (OBJ_FLAGGED2(ob, ITEM_BANK))
{
found = TRUE;
break;
}
if (!found)
{
send_to_char("You cannot do that here.\n\r",ch);
return;
}
one_argument(argument, arg);
switch (subcmd) {
case SCMD_BALANCE:
if (GET_BANK_GOLD(ch) > 0)
sprintf(buf, "Your current balance is %d %s.\n\r",GET_BANK_GOLD(ch), currency_name_plural);
else
sprintf(buf, "You currently have nothing deposited.\n\r");
S2C();
break;
case SCMD_WITHDRAW:
if ((amount = atoi(arg)) <= 0)
send_to_char("How much do you want to withdraw?\n\r", ch);
else
if (GET_BANK_GOLD(ch) < amount)
send_to_char("You don't have that much deposited!\n\r", ch);
else
{
GET_GOLD(ch) += amount;
GET_BANK_GOLD(ch) -= amount;
sprintf(buf, "You withdraw %d %s.\n\r", amount, currency_name_plural);
S2C();
sprintf(buf, "$n withdraws some %s from $p.", currency_name_plural);
act(buf, TRUE, ch, ob, FALSE, TO_ROOM);
}
break;
case SCMD_DEPOSIT:
if ((amount = atoi(arg)) <= 0)
send_to_char("How much do you want to deposit?\n\r", ch);
else
if (GET_GOLD(ch) < amount)
send_to_char("You don't have that much!\n\r", ch);
else
{
GET_GOLD(ch) -= amount;
GET_BANK_GOLD(ch) += amount;
sprintf(buf, "You deposit %d %s.\n\r", amount, currency_name_plural);
S2C();
sprintf(buf, "$n deposits some %s in $p.", currency_name_plural);
act(buf, TRUE, ch, ob, FALSE, TO_ROOM);
}
break;
}
}