areaeditor/
/*
** AreaEditor - a program for editing SMAUG and ROM area files.
** Author: Nick Gammon
** http://www.gammon.com.au/
** See Copyright Notice at the end of AreaEditor.h
*/

#include "stdafx.h"
#include "defaults.h"

/*
 * ------------------------------------------------------------------------ *
 *			     Mud constants module			    *
 ****************************************************************************/

#include "AreaEditor.h"

#include "AreaEditorDoc.h"

char *  spell_flag[18] =
{ "water", "earth", "air", "astral", "area", "distant", "reverse",
"save_half_dam", "save_negates", "accumulative", "recastable", "noscribe",
"nobrew", "group", "object", "character", "secretskill", "pksensitive" };

char * spell_saves[8] =
{ "none", "poison_death", "wands", "para_petri", "breath", "spell_staff", 
  "unknown", "unknown"  };

char * spell_damage[8] =
{ "none", "fire", "cold", "electricity", "energy", "acid", "poison", "drain" };

char * spell_action[8] =
{ "none", "create", "destroy", "resist", "suscept", "divinate", "obscure",
"change" };

char * spell_power[4] =
{ "none", "minor", "greater", "major" };

char * spell_class[8] =
{ "none", "lunar", "solar", "travel", "summon", "life", "death", "illusion" };

char * target_type[5] =
{ "ignore", "offensive", "defensive", "self", "objinv" };

CString flag_string( EXT_BV bitvector, char * const flagarray[] )
{
    CString buf;
    int x;

    buf.Empty ();
    for ( x = 0; x < MAX_BITS ; x++ )
      if ( IS_SET( bitvector,  (unsigned __int64) 1 << x ) )
      {
      if (!buf.IsEmpty ())
        buf += " ";
      buf += flagarray[x];
      }
    
    return buf;
}

CString FlagToString (const EXT_BV bitvector, const tFlags & flagarray )
{
    CString buf;
    int x;

    buf.Empty ();
    for ( x = 0; x < MAX_BITS ; x++ )
      if ( IS_SET( bitvector, (unsigned __int64) 1 << x ) )
      {
      if (!buf.IsEmpty ())
        buf += " ";
      buf += flagarray.strName[x];
      }
    
    return buf;
}


CString convert_areaflag (const EXT_BV flag)
  {
  return FlagToString (flag, AreaFlags);
  }

CString convert_actflag (const EXT_BV flag)
  {
  return FlagToString (flag, MobActFlags);
  }

CString convert_affectflag (const EXT_BV flag)
  {
  return FlagToString (flag, MobAffectFlags);
  }


CString convert_object_flags (const EXT_BV flag)
  {
  return FlagToString (flag, ObjectFlags);
  }

CString convert_room_flags (const EXT_BV flag)
  {
  return FlagToString (flag, RoomFlags);
  }

CString convert_wear_flags (const EXT_BV flag)
  {
  return FlagToString (flag, WearFlags);
  }

CString convert_partflag (const EXT_BV flag)
  {
  return FlagToString (flag, MobPartsFlags);
  }

CString convert_attackflag (const EXT_BV flag)
  {
  return FlagToString (flag, MobAttackFlags);
  }

CString convert_defenseflag (const EXT_BV flag)
  {
  return FlagToString (flag, MobDefenseFlags);
  }

CString convert_formflag (const EXT_BV flag)
  {
  return FlagToString (flag, MobFormFlags);
  }

CString convert_risflag (const EXT_BV flag)
  {
  return FlagToString (flag, MobResistFlags);
  }

CString convert_languages (const EXT_BV flag)
  {
  return FlagToString (flag, MobLanguageFlags);
  }

CString convert_spell_flags (const EXT_BV flag)
  {
  return flag_string (flag, spell_flag);
  }

CString convert_exit_flags (const EXT_BV flag)
  {
  return FlagToString (flag, ExitFlags);
  }

/* Weather constants - FB */
char * temp_settings[MAX_CLIMATE] =
{
	"cold",
	"cool",
	"normal",
	"warm",
	"hot",
};

char * precip_settings[MAX_CLIMATE] =
{
	"arid",
	"dry",
	"normal",
	"damp",
	"wet",
};

char * wind_settings[MAX_CLIMATE] =
{
	"still",
	"calm",
	"normal",
	"breezy",
	"windy",
};