cdirt/ascii/
cdirt/data/BULL/
cdirt/data/ZONES/PENDING/
cdirt/pending/
cdirt/src/utils/
cdirt/utils/
#include "kernel.h"
#include "locations.h"
#include "store.h"
#include "objects.h"
#include "cflags.h"
#include "objsys.h"
#include "bprintf.h"
#include "parse.h"
#include "clone.h"
#include <string.h>

#define citem(X) clone_object(X, -1, NULL, mynum, CARRIED_BY)

#ifdef LOCMIN_SYSTEM
void buyfood(void) {
  if (pcoins(mynum) < FOOD_COST) {
    bprintf("Sorry, you don't have enough money.  Food costs %d coin%s\n",
    FOOD_COST, (FOOD_COST > 1) ? "s" : "");
    return;
  }
  else {
    citem(OBJ_SYSTEM_MUSH);
    bprintf("You now have a pint of fine grade mush.\n");
    pcoins(mynum) -= FOOD_COST;
  }
}

void buytorch(void) {
  if (pcoins(mynum) < TORCH_COST) {
    bprintf("Sorry, you don't have enough money.  Torches costs %d coin%s\n",
       TORCH_COST, (TORCH_COST > 1) ? "s" : "");
    return;
  }
  else {
    citem(OBJ_SYSTEM_TORCH);
    bprintf("You now have a torch.\n");
    pcoins(mynum) -= TORCH_COST;
  }
}

void buykey(void) {
  if (pcoins(mynum) < KEY_COST) {
    bprintf("Sorry, you don't have enough money.  Keys costs %d coin%s\n",
            KEY_COST, (KEY_COST > 1) ? "s" : "");
    return;
  }
  else {
    citem(OBJ_SYSTEM_KEY);
    bprintf("You now have a key.\n");
    pcoins(mynum) -= KEY_COST;
  }
}

void buystorage(void) {
  int a, cost, i;

  if (!*txt2) {
    bprintf("Store what exactly?\n");
    return;
  }
  else if ((a = ob1) == -1) {
    bprintf("What's that?\n");
    return;
  }
  else if (oloc(a) != mynum) {
    bprintf("You wish you had a %s to store!\n", oname(a));
    return;
  }
  else {
    cost = oarmor(a);
    if (!cost)
     cost = odamage(a);
    if (!cost) {
      bprintf("Why would you want to store the %s?", oname(a));
      return;
    }
    if (cost > pcoins(mynum)) {
      bprintf("It costs %d coins to store the %s.\n", cost, oname(a));
      return;
    }
    else {
      for (i = 0 ; i < NUM_STORE_SLOTS ; i++)
	if (rplrs[mynum].storage[i] == -1) {
	  rplrs[mynum].storage[i] = a;
	  break;
	}
      if (i == NUM_STORE_SLOTS) {
	bprintf("You may only store %d items.\n", NUM_STORE_SLOTS);
	return;
      }
      bprintf("You hand the %s to the store owner.\n", oname(a));
      destroy(a);
    }
  }
}
#endif

void buycom(void) {

#ifndef LOCMIN_SYSTEM
  bprintf("The store isn't implemented on this game, sorry\n");
  return;
#else
  if (ploc(mynum) != LOC_BLIZZARD_STORE) {
    bprintf("You aren't in a store, silly.\n");
    return;
  }

  if (!*item1) {
    bprintf("Buy what exactly?\n");
    return;
  }
  else if (EQ(item1, "food"))
    buyfood();
  else if (EQ(item1, "torch"))
    buytorch();
  else if (EQ(item1, "key"))
    buykey();
  else if (EQ(item1, "storage"))
    buystorage();
  else
    bprintf("You can't buy that.\n");
#endif
}