00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef GE_ERRORLOG_H
00023 #define GE_ERRORLOG_H
00024
00025 #include "basetype.h"
00026
00027 #ifndef NDEBUG
00028 #define ERRORLOG_FULL_REPORTING
00029 #endif
00030
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00036 typedef enum
00037 {
00038 GE_ERR_INVALID_DRIVER_HANDLE,
00039 GE_ERR_INVALID_MODE_HANDLE,
00040 GE_ERR_DRIVER_INIT_FAILED,
00041 GE_ERR_DRIVER_ALLREADY_INITIALIZED,
00042 GE_ERR_DRIVER_NOT_FOUND,
00043 GE_ERR_DRIVER_NOT_INITIALIZED,
00044 GE_ERR_INVALID_DRIVER,
00045 GE_ERR_DRIVER_BEGIN_SCENE_FAILED,
00046 GE_ERR_DRIVER_END_SCENE_FAILED,
00047 GE_ERR_CREATE_SOUND_MANAGER_FAILED,
00048 GE_ERR_CREATE_SOUND_BUFFER_FAILED,
00049 GE_ERR_DS_ERROR,
00050 GE_ERR_INVALID_WAV,
00051 GE_ERR_NO_PERF_FREQ,
00052 GE_ERR_FILE_OPEN_ERROR,
00053 GE_ERR_FILE_READ_ERROR,
00054 GE_ERR_FILE_WRITE_ERROR,
00055 GE_ERR_PALETTE_LOAD_FAILURE,
00056 GE_ERR_GBSP_LOAD_FAILURE,
00057 GE_ERR_INVALID_PARMS,
00058 GE_ERR_INVALID_CAMERA,
00059 GE_ERR_RENDER_WORLD_FAILED,
00060 GE_ERR_BEGIN_WORLD_FAILED,
00061 GE_ERR_END_WORLD_FAILED,
00062 GE_ERR_BEGIN_MODELS_FAILED,
00063 GE_ERR_END_MODELS_FAILED,
00064 GE_ERR_BEGIN_MESHES_FAILED,
00065 GE_ERR_END_MESHES_FAILED,
00066 GE_ERR_RENDER_MESH_FAILED,
00067 GE_ERR_BAD_LMAP_EXTENTS,
00068 GE_ERR_INVALID_TEXTURE,
00069 GE_ERR_REGISTER_WORLD_TEXTURE_FAILED,
00070 GE_ERR_REGISTER_LIGHTMAPS_FAILED,
00071 GE_ERR_REGISTER_WORLD_PALETTE_FAILED,
00072 GE_ERR_REGISTER_MISC_TEXTURE_FAILED,
00073 GE_ERR_INVALID_MESH_FILE,
00074 GE_ERR_LOAD_BITMAP_FAILED,
00075 GE_ERR_MAX_MESH_DEFS,
00076 GE_ERR_MESH_MAX_NODES,
00077 GE_ERR_INVALID_MESH_MATERIAL,
00078 GE_ERR_MAX_MESH_MATERIALS,
00079 GE_ERR_MAX_MESH_CLIP_PLANES,
00080 GE_ERR_RENDERQ_OVERFLOW,
00081 GE_ERR_INVALID_LTYPE,
00082 GE_ERR_MAX_ENTITIES,
00083 GE_ERR_GET_ENTITY_DATA_ERROR,
00084 GE_ERR_INVALID_ENTITY_FIELD_TYPE,
00085 GE_ERR_MODEL_NOT_FOUND,
00086 GE_ERR_MODEL_NOT_IN_ENTITY,
00087 GE_ERR_MAX_TEXTURES,
00088 GE_ERR_MAX_DECALS,
00089 GE_ERR_MAX_VERTS,
00090 GE_ERR_OUT_OF_MEMORY,
00091 GE_ERR_INVALID_BSP_TAG,
00092 GE_ERR_INVALID_BSP_VERSION,
00093 GE_ERR_ERROR_READING_BSP_CHUNK,
00094 ERR_PATH_CREATE_ENOMEM,
00095 ERR_PATH_INSERT_R_KEYFRAME,
00096 ERR_PATH_INSERT_T_KEYFRAME,
00097 ERR_PATH_DELETE_R_KEYFRAME,
00098 ERR_PATH_DELETE_T_KEYFRAME,
00099 ERR_PATH_FILE_READ,
00100 ERR_PATH_FILE_VERSION,
00101 ERR_PATH_FILE_PARSE,
00102 ERR_PATH_FILE_WRITE,
00103 ERR_MOTION_CREATE_ENOMEM,
00104 ERR_MOTION_ADDPATH_ENOMEM,
00105 ERR_MOTION_ADDPATH_PATH,
00106 ERR_MOTION_ADDPATH_BAD_NAME,
00107 ERR_MOTION_INSERT_EVENT,
00108 ERR_MOTION_DELETE_EVENT,
00109 ERR_MOTION_FILE_READ,
00110 ERR_MOTION_FILE_WRITE,
00111 ERR_MOTION_FILE_PARSE,
00112 ERR_TKARRAY_INSERT_IDENTICAL,
00113 ERR_TKARRAY_INSERT_ENOMEM,
00114 ERR_TKARRAY_DELETE_NOT_FOUND,
00115 ERR_TKARRAY_CREATE,
00116 ERR_TKARRAY_TOO_BIG,
00117 ERR_VKARRAY_INSERT,
00118 ERR_QKARRAY_INSERT,
00119 ERR_POSE_CREATE_ENOMEM,
00120 ERR_POSE_ADDJOINT_ENOMEM,
00121 ERR_TKEVENTS_CREATE_ENOMEM,
00122 ERR_TKEVENTS_DELETE_NOT_FOUND,
00123 ERR_TKEVENTS_INSERT_ENOMEM,
00124 ERR_TKEVENTS_INSERT,
00125 ERR_TKEVENTS_FILE_READ,
00126 ERR_TKEVENTS_FILE_WRITE,
00127 ERR_TKEVENTS_FILE_VERSION,
00128 ERR_TKEVENTS_FILE_PARSE,
00129 ERR_STRBLOCK_ENOMEM,
00130 ERR_STRBLOCK_STRLEN,
00131 ERR_STRBLOCK_FILE_READ,
00132 ERR_STRBLOCK_FILE_WRITE,
00133 ERR_STRBLOCK_FILE_PARSE,
00134 ERR_BODY_ENOMEM,
00135 ERR_BODY_FILE_PARSE,
00136 ERR_BODY_FILE_READ,
00137 ERR_BODY_FILE_WRITE,
00138 ERR_BODY_BONEXFARRAY,
00139 ERR_XFARRAY_ENOMEM,
00140 ERR_PUPPET_ENOMEM,
00141 ERR_PUPPET_RENDER,
00142 ERR_PUPPET_NO_MATERIALS,
00143 ERR_PUPPET_LOAD_TEXTURE,
00144 ERR_TEXPOOL_ENOMEM,
00145 ERR_TEXPOOL_TOO_BIG,
00146 ERR_TEXPOOL_LOAD_TEXTURE,
00147 ERR_TEXPOOL_TEXTURE_NOT_FREE,
00148 ERR_ACTOR_ENOMEM,
00149 ERR_ACTOR_RENDER_PREP,
00150 ERR_ACTOR_RENDER_FAILED,
00151 ERR_ACTOR_TOO_MANY_MOTIONS,
00152 ERR_ACTOR_FILE_READ,
00153 ERR_ACTOR_FILE_PARSE,
00154 ERR_ACTOR_FILE_WRITE,
00155 GE_ERR_INVALID_MODEL_MOTION_FILE,
00156 GE_ERR_BAD_BSP_FILE_CHUNK_SIZE,
00157
00158
00159 ERR_SPRITE_ENOMEM,
00160 ERR_SPRITE_INVALIDBITMAP,
00161
00162 } geErrorLog_ErrorIDEnumType;
00163
00164
00165 typedef enum
00166 {
00167 GE_ERR_MEMORY_RESOURCE,
00168 GE_ERR_DISPLAY_RESOURCE,
00169 GE_ERR_SOUND_RESOURCE,
00170 GE_ERR_SYSTEM_RESOURCE,
00171 GE_ERR_INTERNAL_RESOURCE,
00172
00173 GE_ERR_FILEIO_OPEN,
00174 GE_ERR_FILEIO_CLOSE,
00175 GE_ERR_FILEIO_READ,
00176 GE_ERR_FILEIO_WRITE,
00177 GE_ERR_FILEIO_FORMAT,
00178 GE_ERR_FILEIO_VERSION,
00179
00180 GE_ERR_LIST_FULL,
00181 GE_ERR_DATA_FORMAT,
00182 GE_ERR_SEARCH_FAILURE,
00183 } geErrorLog_ErrorClassType;
00184
00185 GENESISAPI void geErrorLog_Clear(void);
00186
00187
00188 GENESISAPI int geErrorLog_Count(void);
00189
00190
00191 GENESISAPI void geErrorLog_AddExplicit(geErrorLog_ErrorClassType,
00192 const char *ErrorIDString,
00193 const char *ErrorFileString,
00194 int LineNumber,
00195 const char *UserString,
00196 const char *Context);
00197
00198
00199
00200 #ifdef ERRORLOG_FULL_REPORTING
00201
00202
00203 #define geErrorLog_Add(Error, Context) geErrorLog_AddExplicit(Error, #Error, __FILE__, __LINE__,"", Context)
00204
00205
00206 #define geErrorLog_AddString(Error,String, Context) geErrorLog_AddExplicit(Error, #Error, __FILE__,__LINE__, String, Context)
00207
00208
00209 GENESISAPI geBoolean geErrorLog_AppendStringToLastError(const char *String);
00210
00211 #define geErrorLog_AppendString(XXX) geErrorLog_AppendStringToLastError(XXX)
00212
00213
00214 #else
00215
00216
00217 #define geErrorLog_Add(Error, Context) geErrorLog_AddExplicit(Error, "", __FILE__, __LINE__,"", Context)
00218
00219
00220 #define geErrorLog_AddString(Error,String, Context) geErrorLog_AddExplicit(Error, "", __FILE__,__LINE__, "", Context)
00221
00222
00223 #define geErrorLog_AppendString(XXX)
00224
00225
00226 #endif
00227
00228 GENESISAPI geBoolean geErrorLog_Report(int History, geErrorLog_ErrorClassType *Error, const char **UserString);
00229
00230
00231
00232
00233 #ifdef __cplusplus
00234 }
00235 #endif
00236
00237 #endif
00238