/****************************************************************************
* [S]imulated [M]edieval [A]dventure multi[U]ser [G]ame | *
* -----------------------------------------------------------| \\._.// *
* SmaugWizard (C) 1998 by Russ Pillsbury (Windows NT version)| (0...0) *
* -----------------------------------------------------------| ).:.( *
* SMAUG (C) 1994, 1995, 1996 by Derek Snider | {o o} *
* -----------------------------------------------------------| / ' ' \ *
* SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus, |~'~.VxvxV.~'~*
* Scryn, Swordbearer, Rennard, Tricops, and Gorog. | *
* ------------------------------------------------------------------------ *
* Merc 2.1 Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik Staerfeldt, Tom Madsen, and Katja Nyboe. *
****************************************************************************/
// Smaugx.h - SmaugWiz Exception handler class
#ifndef SMAUGX_H
#define SMAUGX_H
enum { SE_BOOT = 100, // generic boot exception
SE_COMMAND, SE_SOCIAL, SE_SKILL, SE_HERB, SE_CLASS, SE_RACE, SE_AREA,
SE_CLANS, SE_COUNCIL, SE_DEITY, SE_MOBILE, SE_OBJECT, SE_ROOM,
SE_SPECIAL, SE_MOBPROG, SE_OBJPROG, SE_ROOMPROG, SE_NOTES,
SE_LANGUAGE };
void PASCAL ThrowSmaugException (int cause);
class CSmaugException : public CException
{
DECLARE_DYNAMIC(CSmaugException)
public:
enum { none, generic };
CSmaugException (int cause = CSmaugException::none)
{ m_cause = cause; }
int m_cause;
#ifdef _DEBUG
virtual void Dump (CDumpContext&) const;
#endif
};
#define GetSmaugException(ex) (ex->IsKindOf (RUNTIME_CLASS(CSmaugException)) ? \
((CSmaugException*)ex)->m_cause : -1)
#endif
class CSwException {
public:
CSwException () { m_ch = NULL; m_buf [0] = 0; }
CSwException (CSwException& E)
{ m_ch = E.m_ch; strcpy (m_buf, E.m_buf); }
void SetChar (CCharacter* ch) { m_ch = ch; }
void Printf (char *fmt, ...);
CCharacter* m_ch;
char m_buf [MAX_STRING_LENGTH*2];
};