/****************************************************************************
* [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.cpp - SmaugWiz Exception handler class
#include "stdafx.h"
#include "smaug.h"
#include "Smaugx.h"
#pragma hdrstop
#ifdef AFX_AUX_SEG
#pragma code_seg(AFX_AUX_SEG)
#endif
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
#ifdef _DEBUG
// character strings to use for dumping CPayException
static char BASED_CODE szNone[] = "none";
static char BASED_CODE szGeneric[] = "generic";
static char FAR* BASED_CODE rgszCSmaugExceptionCause[] =
{
szNone,
szGeneric,
};
#endif
IMPLEMENT_DYNAMIC (CSmaugException, CException)
#ifdef _DEBUG
void CSmaugException::Dump (CDumpContext& dc) const
{
CObject::Dump (dc);
dc << " m_cause = ";
if (m_cause > none &&
m_cause < sizeof(rgszCSmaugExceptionCause)
/ sizeof(char FAR*)) then
dc << rgszCSmaugExceptionCause [m_cause];
else dc << "Unknown -" << m_cause;
if (m_cause) then getchar ();
}
#endif
void PASCAL ThrowSmaugException (int cause)
{
#ifdef _DEBUG
TRACE ("CSmaug exception: ");
if (cause > 0 &&
cause < sizeof (rgszCSmaugExceptionCause) / sizeof (char FAR*)) then
afxDump << (char FAR*)rgszCSmaugExceptionCause [cause];
else afxDump << "Unknown (" << cause << ")";
if (cause) then getchar ();
#endif
THROW (new CSmaugException (cause));
}
void CSwException::Printf (char *fmt, ...)
{
va_list args;
va_start (args, fmt);
vsprintf (m_buf, fmt, args);
va_end (args);
}