nakedmudv3.3/
nakedmudv3.3/lib/
nakedmudv3.3/lib/logs/
nakedmudv3.3/lib/misc/
nakedmudv3.3/lib/players/
nakedmudv3.3/lib/txt/
nakedmudv3.3/lib/world/
nakedmudv3.3/lib/world/examples/
nakedmudv3.3/lib/world/examples/mproto/
nakedmudv3.3/lib/world/examples/oproto/
nakedmudv3.3/lib/world/examples/reset/
nakedmudv3.3/lib/world/examples/rproto/
nakedmudv3.3/lib/world/examples/trigger/
nakedmudv3.3/lib/world/limbo/
nakedmudv3.3/lib/world/limbo/room/
nakedmudv3.3/lib/world/limbo/rproto/
nakedmudv3.3/src/alias/
nakedmudv3.3/src/char_vars/
nakedmudv3.3/src/editor/
nakedmudv3.3/src/example_module/
nakedmudv3.3/src/help/
nakedmudv3.3/src/set_val/
nakedmudv3.3/src/socials/
nakedmudv3.3/src/time/
//*****************************************************************************
//
// mud.c
//
// a bunch of variables and settings associated with the functioning, limits,
// and such of the MUD.
//
//*****************************************************************************

#include "mud.h"
#include "utils.h"
#include "storage.h"


//*****************************************************************************
// local defines, variables, and datastructures
//*****************************************************************************

//
// the file where we store all of our mud settings
#define MUD_DATA       "../lib/muddata"

//
// our storage set of mud settings
STORAGE_SET *settings = NULL;



//*****************************************************************************
// implementation of functions in mud.h
//*****************************************************************************
void init_mud_settings() {
  settings = storage_read(MUD_DATA);

  // make sure we have initial values for some stuff
  if(!*mudsettingGetString("start_room"))
    mudsettingSetString("start_room", DFLT_START_ROOM);
  if(mudsettingGetInt("pulses_per_second") == 0)
    mudsettingSetInt("pulses_per_second", DFLT_PULSES_PER_SECOND);
}

void mudsettingSetString(const char *key, const char *val) {
  store_string(settings,  key, val);
  storage_write(settings, MUD_DATA);  
}

void mudsettingSetDouble(const char *key, double val) {
  store_double(settings, key, val);
  storage_write(settings, MUD_DATA);
}

void mudsettingSetInt(const char *key, int val) {
  store_int(settings, key, val);
  storage_write(settings, MUD_DATA);
}

void mudsettingSetLong(const char *key, long val) {
  store_long(settings, key, val);
  storage_write(settings, MUD_DATA);
}

void mudsettingSetBool(const char *key, bool val) {
  store_bool(settings, key, val);
  storage_write(settings, MUD_DATA);
}

const char *mudsettingGetString(const char *key) {
  return read_string(settings, key);
}

double mudsettingGetDouble(const char *key) {
  return read_double(settings, key);
}

int mudsettingGetInt(const char *key) {
  return read_int(settings, key);
}

long mudsettingGetLong(const char *key) {
  return read_long(settings, key);
}

bool mudsettingGetBool(const char *key) {
  return read_bool(settings, key);
}