diff --git a/include/ZE_ZError.h b/include/ZE_ZError.h
new file mode 100755
index 0000000..6f93254
--- /dev/null
+++ b/include/ZE_ZError.h
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ This file is Part of the ZEngine Library for 2D game development.
+ Copyright (C) 2002, 2003 James Turk
+
+ Licensed under a BSD-style license.
+
+ The maintainer of this library is James Turk (james@conceptofzero.net)
+ and the home of this Library is http://www.zengine.sourceforge.net
+*******************************************************************************/
+
+/*!
+\par File Header:
+File: ZE_ZError.h
+Description: Header file for ZEngine Error Object.
+Author(s): James Turk
+$Id: ZE_ZError.h,v 1.1 2003/01/15 05:40:09 cozman Exp $
+
+ \file ZE_ZError.h
+ \brief Definition file for ZError.
+
+ Definition file for ZError, the Error logging class for ZEngine.
+ This class should never be used by the average user, it is used by ZEngine to store information on an error.
+**/
+
+#ifndef __ze_zerror_h__
+#define __ze_zerror_h__
+
+#include "ZE_Macros.h"
+#include
+using namespace std;
+
+namespace ZE
+{
+
+enum ZErrorCode
+{
+ ZERR_NONE, //no error
+ ZERR_SDL_INTERNAL, //other internal error
+ ZERR_SDL_INIT, ZERR_MIX_INIT, ZERR_TTF_INIT, //Initialization errors
+ ZERR_VIDMODE, //Error setting video mode.
+ ZERR_LOAD_IMAGE, ZERR_LOAD_SOUND, ZERR_LOAD_MUSIC, ZERR_LOAD_FONT, //Failed Loads
+ ZERR_NOIMAGE, ZERR_NOSOUND, ZERR_NOMUSIC, ZERR_NOFONT, //Using class w/o loading
+ ZERR_LAST
+};
+
+/*!
+ \brief ZError class for describing errors.
+
+ ZError class for storing and printing information on errors. Inherited from ZObject and tied closely to ZEngine.
+ \since 0.8.2
+**/
+class ZError
+{
+ protected:
+ //! Static Array of Error Identifiers
+ static string sErrorDesc[ZERR_LAST];
+ //! Error ID.
+ ZErrorCode rCode;
+ //! Error Description.
+ string rDescription;
+ //! File which error occured in.
+ string rFilename;
+ //! Line which error occured on.
+ unsigned int rLine;
+
+ public:
+ /*!
+ \brief Default constructor for ZError.
+
+ Make new ZError object, by default set rCode to ZERR_NONE with no description.
+ \param code ZErrorCode to set object to, defaults to ZERR_NONE.
+ \param desc Description to use for object, defaults to nothing.
+ \param file Optional argument specifying the file the error occured in.
+ \param line Optional argument specifying the line the error occured on.
+ **/
+ ZError(ZErrorCode code=ZERR_NONE, string desc="", string file="", int line=0);
+
+ /*!
+ \brief Set members of error object.
+
+ Set new values in ZError object.
+ \param code ZErrorCode to set object to.
+ \param desc Description to use for object, defaults to nothing.
+ \param file Optional argument specifying the file the error occured in.
+ \param line Optional argument specifying the line the error occured on.
+ **/
+ void Create(ZErrorCode code, string desc="", string file="", int line=0);
+
+ /////////////
+ //Accessors//
+ /////////////
+
+ /*!
+ \brief Get ZErrorCode of error.
+
+ Access ZErrorCode of the ZError object.
+ \return The error ZErrorCode.
+ **/
+ ZErrorCode Code();
+
+ /*!
+ \brief Get formatted string for log file.
+
+ Return the string to be written to the logfile. Called by ZEngine in LogError.
+ **/
+ string LogString();
+};
+
+}
+
+#endif //__ze_zerror_h__
diff --git a/src/ZE_ZError.cpp b/src/ZE_ZError.cpp
new file mode 100755
index 0000000..e6c70b5
--- /dev/null
+++ b/src/ZE_ZError.cpp
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ This file is Part of the ZEngine Library for 2D game development.
+ Copyright (C) 2002, 2003 James Turk
+
+ Licensed under a BSD-style license.
+
+ The maintainer of this library is James Turk (james@conceptofzero.net)
+ and the home of this Library is http://www.zengine.sourceforge.net
+*******************************************************************************/
+
+/*!
+\par File Header:
+File: ZE_ZError.cpp
+Description: Implementation source file for core ZEngine Error Object.
+Author(s): James Turk
+$Id: ZE_ZError.cpp,v 1.1 2003/01/15 05:40:09 cozman Exp $
+
+ \file ZE_ZError.cpp
+ \brief Source file for ZError.
+
+ Implementation of ZError, the ZEngine internal error information storage class.
+**/
+
+#include "ZE_ZError.h"
+
+namespace ZE
+{
+
+string ZError::sErrorDesc[] =
+{
+ "No Error. [%s]",
+ "SDL Error. [%s]",
+ "Error Initializing SDL: %s", "Error Initializing SDL_mixer: %s", "Error Initializing SDL_ttf: %s",
+ "Error Creating Display: %s",
+ "Failed to load Image: %s", "Failed to load Sound: %s", "Failed to load Music: %s", "Failed to load Font: %s",
+ "Called ZImage::%s with no Image loaded.", "Called ZSound::%s with no Sound loaded.",
+ "Called ZMusic::%s with no Music loaded.", "Called ZFont::%s with no Font loaded."
+};
+
+ZError::ZError(ZErrorCode code, string desc, string file, int line)
+{
+ rCode = code;
+ rDescription = desc;
+ rFilename = file;
+ rLine = line;
+}
+
+void ZError::Create(ZErrorCode code, string desc, string file, int line)
+{
+ rCode = code;
+ rDescription = desc;
+ rFilename = file;
+ rLine = line;
+}
+
+ZErrorCode ZError::Code()
+{
+ return rCode;
+}
+
+string ZError::LogString()
+{
+ string msg;
+
+ msg = rDescription.length() ? FormatStr(sErrorDesc[rCode].c_str(),rDescription.c_str()) : sErrorDesc[rCode];
+
+ if(rLine != 0)
+ return FormatStr(" -%s(%d): %s\n",rFilename.c_str(),rLine,msg.c_str());
+ else if(rFilename.length())
+ return FormatStr(" -%s: %s\n",rFilename.c_str(),msg.c_str());
+ else
+ return FormatStr(" -%s\n",msg.c_str());
+}
+
+}