// This file is part of UNItopia Mudlib.
// ----------------------------------------------------------------
// File:	/sys/error_db.h
// Description:	Defines fuer /apps/error_db.c
// Author:	Freaky/Monty (12.07.1995)
// Modified by:	Freaky (30.07.1999) Subtypes eingefuehrt
//		Freaky (28.01.2000) Defines fuer die Fehlerstrukturen eingebaut
//
// $Log: error_db.h,v $
// Revision 1.7  2005/03/12 17:36:06  menaures
// Neuer Fehlertyp Detail
//
// Revision 1.6  2004/04/04 18:57:16  menaures
// Neue Defines EDB_BACKUP_COUNT und EDB_BACKUP_GROUP
//
// Revision 1.5  2002/02/22 06:18:57  gnomi
// Defines fuer das neue Debug-Info-Feld.
//
// Revision 1.4  2001/12/02 15:12:53  sissi
// EDB_F_SIZE angepasst.
//
// Revision 1.3  2001/12/02 15:07:49  sissi
// EDB_F_OBJECT_CLEARTEXT hinzugefuegt.
//
// Revision 1.2  2001/03/14 20:32:37  freaky
// CVS-log eingebaut.
//

#ifndef ERROR_DB_H
#define ERROR_DB_H 1

#define ERROR_DB		"/apps/error_db"
#define ERROR_DB_SAVE_FILE	"/var/error_db"

// Die Fehlerklassen fuer die Datenbank, verwendet fuer den jeweils ersten
// Eintrag eines Fehlerarrays (EDB_TYPE)
#define EDB_FEHLER	1	// Fehler, mit dem 'fehler' erzeugt
#define EDB_IDEE	2	// Eine Idee
#define EDB_RUNTIME	3	// Runtime-Error
#define EDB_COMPILE	4	// Compile-Error
#define EDB_LOB         5       // Ein Lob 
#define EDB_TYPO        6       // Typo
#define EDB_DETAIL      7       // Raumdetail

// Defines fuer den Eintrag 'EDB_R_SUB_TYPE'
#define EDB_RUN_RUNTIME		0	// 'richtiger' Runtime-Error
#define EDB_RUN_HB		1	// Heartbeat-Error
#define EDB_RUN_USER_DEFINED	2	// User defined Error (do_error)

// Die Rueckgabewerte von delete_error(), hide_error() und add_debugger():
#define ERROR_OK	 0	// hat geklappt
#define NO_ERROR	 1	// Fehlernummer nicht (mehr) vorhanden
#define NOT_RESPONSIBLE	 2	// Nicht zustaendig!
#define LAST_DEBUGGER	 3	// Sonst ist keiner mehr zustaendig!
#define ALREADY_DEBUGGER 4	// Der debuggt schon (bei add_debugger())
#define NOT_VALID	 5	// Den kann man als Debugger nicht eintragen!

// Die Subeintraege der Fehler
#define EDB_TYPE		0
#define EDB_FILE		1
#define EDB_ERROR		2
#define EDB_LAST_CHANGE		3
#define EDB_COMMENT		4
#define EDB_DATE		5
#define EDB_DEBUGGER		6

// Fehler, Idee, Lob, Typo
#define EDB_F_FILE		EDB_FILE
#define EDB_F_ERROR		EDB_ERROR
#define EDB_F_LAST_CHANGE	EDB_LAST_CHANGE
#define EDB_F_COMMENT		EDB_COMMENT
#define EDB_F_DATE		EDB_DATE
#define EDB_F_DEBUGGER		EDB_DEBUGGER
#define EDB_F_WHO		7
#define EDB_F_ROOM		8
#define EDB_F_OBJECT_CLEARTEXT	9
#define EDB_F_USER_INFO		10
#define EDB_F_SIZE		11

// Runtime-Fehler
#define EDB_R_FILE		EDB_FILE
#define EDB_R_ERROR		EDB_ERROR
#define EDB_R_LAST_CHANGE	EDB_LAST_CHANGE
#define EDB_R_COMMENT		EDB_COMMENT
#define EDB_R_DATE		EDB_DATE
#define EDB_R_DEBUGGER		EDB_DEBUGGER
#define EDB_R_OB		7
#define EDB_R_LINE		8
#define EDB_R_COMMAND		9
#define EDB_R_WHO		10
#define EDB_R_FIRST_ROOM	11
#define EDB_R_SUB_TYPE		12
#define EDB_R_DEBUG_OFFSET	13
#define EDB_R_DEBUG_SIZE	14
#define EDB_R_USER_INFO		15
#define EDB_R_SIZE		16

// Compile-Fehler
#define EDB_C_FILE		EDB_FILE
#define EDB_C_ERROR		EDB_ERROR
#define EDB_C_LAST_CHANGE	EDB_LAST_CHANGE
#define EDB_C_COMMENT		EDB_COMMENT
#define EDB_C_DATE		EDB_DATE
#define EDB_C_DEBUGGER		EDB_DEBUGGER
#define EDB_C_SIZE		7

#define EDB_TIME_TO_DELETE	5184000	// 60 Tage

// Defines fuer die Abspeicherung der neuen Fehler im Player
#define EDB_LAST_READ		0
#define EDB_NEW_WIZ_ERRORS	1

// Fehler-Kommentare
#define EDB_COM_WHO		0
#define EDB_COM_DATE		1
#define EDB_COM_COMMENT		2
#define EDB_COM_SIZE		3

// Aufheben geloeschter Fehler:
#define EDB_BACKUP_COUNT	1000      // Nur die X zuletzt geloeschten Fehler aufheben.
#define EDB_BACKUP_GROUP        "Backup"  // Name der (Pseudo-)Gruppe, in der die Fehler landen.

#endif // ERROR_DB_H

