wileymud-1.187b/
wileymud-1.187b/attic/
wileymud-1.187b/attic/bin/
wileymud-1.187b/attic/lib/
wileymud-1.187b/attic/lib/adm/
wileymud-1.187b/attic/lib/man/
wileymud-1.187b/attic/lib/new-wld/
wileymud-1.187b/attic/lib/new-wld/default/
wileymud-1.187b/attic/lib/old/
wileymud-1.187b/attic/lib/wld/
wileymud-1.187b/attic/public_html/
wileymud-1.187b/attic/public_html/gfx/
wileymud-1.187b/attic/src/bin/
wileymud-1.187b/attic/src/etc/
wileymud-1.187b/attic/src/libauth-4.0-p5/
wileymud-1.187b/attic/src/sedna/
wileymud-1.187b/backups/
wileymud-1.187b/bin/
wileymud-1.187b/docs/
wileymud-1.187b/etc/
wileymud-1.187b/lib/
wileymud-1.187b/lib/adm/
wileymud-1.187b/lib/boards/
wileymud-1.187b/lib/log/
wileymud-1.187b/lib/man/
wileymud-1.187b/lib/ply/
wileymud-1.187b/lib/ply/a/
wileymud-1.187b/lib/ply/b/
wileymud-1.187b/lib/ply/c/
wileymud-1.187b/lib/ply/d/
wileymud-1.187b/lib/ply/g/
wileymud-1.187b/lib/ply/k/
wileymud-1.187b/lib/ply/m/
wileymud-1.187b/lib/ply/s/
wileymud-1.187b/lib/ply/t/
wileymud-1.187b/public_html/gfx/
wileymud-1.187b/src/bin/
wileymud-1.187b/src/convert/attic/
wileymud-1.187b/src/convert/obj/
wileymud-1.187b/src/convert/perl/
wileymud-1.187b/src/convert/perl/MudConvert/
wileymud-1.187b/src/convert/perl/MudConvert/DUMP/
wileymud-1.187b/src/convert/perl/MudConvert/Report/
wileymud-1.187b/src/convert/perl/MudConvert/WileyMUD/
wileymud-1.187b/src/convert/perl/output/
wileymud-1.187b/src/convert/perl/output/DUMP/
wileymud-1.187b/src/convert/perl/output/Report/
wileymud-1.187b/src/convert/perl/output/WileyMUD/
wileymud-1.187b/src/etc/
wileymud-1.187b/src/etc/init.d/
wileymud-1.187b/src/etc/rc.d/
wileymud-1.187b/src/etc/rc.d/init.d/
wileymud-1.187b/src/lib/
wileymud-1.187b/src/lib/adm/
wileymud-1.187b/src/lib/boards/
wileymud-1.187b/src/lib/log/
wileymud-1.187b/src/lib/man/
wileymud-1.187b/src/lib/ply/
wileymud-1.187b/src/lib/ply/a/
wileymud-1.187b/src/lib/ply/b/
wileymud-1.187b/src/lib/ply/c/
wileymud-1.187b/src/lib/ply/d/
wileymud-1.187b/src/lib/ply/e/
wileymud-1.187b/src/lib/ply/f/
wileymud-1.187b/src/lib/ply/g/
wileymud-1.187b/src/lib/ply/h/
wileymud-1.187b/src/lib/ply/i/
wileymud-1.187b/src/lib/ply/j/
wileymud-1.187b/src/lib/ply/k/
wileymud-1.187b/src/lib/ply/l/
wileymud-1.187b/src/lib/ply/m/
wileymud-1.187b/src/lib/ply/n/
wileymud-1.187b/src/lib/ply/o/
wileymud-1.187b/src/lib/ply/p/
wileymud-1.187b/src/lib/ply/q/
wileymud-1.187b/src/lib/ply/r/
wileymud-1.187b/src/lib/ply/s/
wileymud-1.187b/src/lib/ply/t/
wileymud-1.187b/src/lib/ply/u/
wileymud-1.187b/src/lib/ply/v/
wileymud-1.187b/src/lib/ply/w/
wileymud-1.187b/src/lib/ply/x/
wileymud-1.187b/src/lib/ply/y/
wileymud-1.187b/src/lib/ply/z/
wileymud-1.187b/src/obj/
wileymud-1.187b/src/utils/
wileymud-1.187b/src/utils/mobmaker/
#ifndef CMOB_H
#define CMOB_H
#include <stdio.h>

#define NUMFLAGS 23 
#define MAX_STR_LENGTH 1500
#define MAX_SKILLS 10

struct dice {
	long num;
	long side;
	long bonus;
	};

class cmob
{
private:
  long virtual_number;  // virtual mob number
  char *name_list; 		// List of names whichh the mob can
				// be accessed for player actions.
  char *short_description;	// String when the monster takes aaction.
  char *long_description;	// String displayed when in the same room.
  char *description;		// SString displayed when the mob is looked
				// at.
  long act_flags;	// Action flags:

  long affection_flags; // describes what a monster is affected by:
  long alignment;		// 1000-350 = good
				// 349-(-349) = neutral
				// (-350)-(-1000) = evil
  long race;			// MOb's race (see following)
  long Class;				// mob's class (undocumented)
  long sex;				// mob's gender:
  long height;				// mob's height
  long weight;				// mob's weight

  dice gold;				// mob's gold

  dice XP;				// experience worth

  long level;				// mob's level

  dice HP;				// HPS:

  long AC;				// mob's Armour Class
  long thaco;				// mob's thaco
  long attacks_per_round;		// attacks per round.
  
  dice damage;				// Damage Roll
  
  long type;		// always 1.
  long immunities, resistance, susceptibility; // see following chart
  dice str, stradd, dex, con, intel, wis; // stats
  long sav1, sav2, sav3, sav4, sav5; // saving throws
  long position;  // mob's position when loaded into the game
  long def_position;
  long sound;  // 
  char *localsound;
  char *distantsound;
 
  long skill_count;
  long skill_num[MAX_SKILLS];
  long skill_learned[MAX_SKILLS];
  long skill_recognized[MAX_SKILLS];


  // Member functions
  char *fread_string(void);
  void set_bit(long &, long);
  void toggle_bit(long &, long);
  long test_bit(long, long);
  void disp_irs(long);
  void disppos(long);

  char *edit_tmp_file_and_load(void);
  int setp(long &, const char *);
  int toggle_irs(long &, const char *);

public:
  cmob(void);
  cmob(const char *);
  ~cmob(void);

  // File Access:
  int load(void);
  int write(const char *);
  int write(void);

  // Integer Variables:
  void set_number(long);
  void set_str(dice);
  void set_stradd(dice);
  void set_dex(dice);
  void set_con(dice);
  void set_intel(dice);
  void set_wis(dice);
  void set_sav1(long);
  void set_sav2(long);
  void set_sav3(long);
  void set_sav4(long);
  void set_sav5(long);
  void set_alignment(long);
  void set_height(long);
  void set_weight(long);
  void set_gold(dice);
  void set_XP(dice);
  void set_level(long);
  void set_AC(long);
  void set_thaco(long);
  void set_attacks_per_round(long);
  void set_HP(dice);
  void set_damage(dice);

  long get_number(void);
  dice *get_str(void);
  dice *get_stradd(void);
  dice *get_dex(void);
  dice *get_con(void);
  dice *get_intel(void);
  dice *get_wis(void);
  long get_sav1(void);
  long get_sav2(void);
  long get_sav3(void);
  long get_sav4(void);
  long get_sav5(void);
  long get_alignment(void);
  long get_height(void);
  long get_weight(void);
  dice *get_gold(void);
  dice *get_XP(void);
  long get_level(void);
  long get_AC(void);
  long get_thaco(void);
  long get_attacks_per_round(void);
  dice *get_HP(void);
  dice *get_damage(void);

  long get_skill_count(void);

  // Display strings:
  void display_name_list(void);
  void display_short_description(void);
  void display_long_description(void);
  void display_description(void);
  void display_race(void);
  void display_sex(void);
  void display_localsound(void);
  void display_distantsound(void);
  void display_avail_sexes(void);
  void display_avail_races(void);
  void display_avail_positions(void);
  void display_avail_classes(void);
  void display_class(void);

  // set strings
  void set_name_list(void);
  void set_short_description(void);
  void set_long_description(void);
  void set_description(void);
  int set_race(const char *);
  int set_sex(const char *);
  int set_position(const char *);
  int set_def_position(const char *);
  int set_class(const char *);

  // flags:
  void cmob::display_avail_flags(void); 
  int toggle_flag(const char *);
  void display_act_flags(void);
  void display_affection_flags(void);

  // Immunities, Resistance, Susceptibility:
  void display_immunities(void);
  void display_resistance(void);
  void display_susceptibility(void);
  int toggle_immunities(const char *);
  int toggle_resistance(const char *);
  int toggle_susceptibility(const char *);
  void display_avail_irs(void);

  // Positions
  void display_position(void);
  void display_def_position(void);

  // areyou?
  int areyou(const char *);

  // sounds:
  int aresounds(void);
  void setsound(void);

  // skills:
  long get_skill_num(long n);
  long get_skill_learned(long n);
  long get_skill_recognized(long n);
  void remove_skill(int);
  void add_skill(int, int, int);


};

#endif