
/* SysPic's errors */


#include "headers.h"
#include "errors.h"
#include "ilbminfo.h"
#include "8svxinfo.h"

#include "syspic_protos.h"

// messages

#define MSG_TOOOLDKICK		"requires at least Kickstart 3.0 (V39)"
#define MSG_NOMEM				"not enough memory"
#define MSG_BADPATH			"bad path specified"
#define MSG_BADMODEID		"bad modeid value"
#define MSG_FAILED			"general failure - aborted"
#define MSG_RANDREAD			"error reading randfile (.syspics)"
#define MSG_RANDWRITE		"error writting randfile (.syspics)"
#define MSG_DIRERR			"error while scanning directory"
#define MSG_NOFILES			"no files to show (no match)"
#define MSG_BADRGB			"bad RGB values"
#define MSG_VALUERANGE		"value out of range"
#define MSG_CONFARGS			"conflicting arguments"
#define MSG_READERR			"read error (file not found?)"
#define MSG_PTREPLAY			"can't open ptreplay.library v6+"
#define MSG_BADMOD			"not a protracker module"
#define MSG_CANTOPENOSCN	"can't open envarc:sys/overscan.prefs"
#define MSG_CANTREADOSCN	"error reading overscan.prefs"
#define MSG_BADOSCN			"bad/mangled overscan.prefs file"
#define MSG_NODISKFONT		"can't open diskfont.librry v39+"
#define MSG_BADCLOCKARGS	"bad 'clock' args"
#define MSG_CANTOPENFONT	"can't open font"
#define MSG_CLOCKCORDS		"clock coordinates out of bitmap range"

static STRPTR msgarray[] =
{
	MSG_TOOOLDKICK,
	MSG_NOMEM,
	MSG_BADPATH,
	MSG_BADMODEID,
	MSG_FAILED,	
	MSG_RANDREAD,
	MSG_RANDWRITE,
	MSG_DIRERR,
	MSG_NOFILES,
	MSG_BADRGB,
	MSG_VALUERANGE,
	MSG_CONFARGS,
	MSG_READERR,
	MSG_PTREPLAY,
	MSG_BADMOD,
	MSG_CANTOPENOSCN,
	MSG_CANTREADOSCN,
	MSG_BADOSCN,
	MSG_NODISKFONT,
	MSG_BADCLOCKARGS,
	MSG_CANTOPENFONT,
	MSG_CLOCKCORDS	
};

UBYTE reallybadflag;

/*****************************************************************************/

void fail(UWORD code)
{
	byemsg(msgarray[code-1], RETURN_FAIL);
}

/*****************************************************************************/

void printifferr(WORD no)
{
	STRPTR s;

	switch (no)
	{
		case IFFERR_NOMEM:
			s = MSG_NOMEM;
			break;

		case IFFERR_NOFILE:
			s = MSG_IFFERR_NOFILE;
			break;

		case IFFERR_IO:
			s = MSG_IFFERR_IO;
			break;

		case IFFERR_MANGLED:
			s = MSG_IFFERR_MANGLED;
			break;

		case ILBMERR_NOTILBM:
			s = MSG_ILBMERR_NOTILBM;
			break;

		case ILBMERR_MODENOTAVAIL:
			s = MSG_ILBMERR_MODENOTAVAIL;
			break;

		case ILBMERR_TOODEEP:
			s = MSG_ILBMERR_TOODEEP;
			break;

		case ILBMERR_CANTOPENDISP:
			s = MSG_ILBMERR_CANTOPENDISP;
			break;

		case ILBMERR_UNSUPPORTED:
			s = MSG_ILBMERR_UNSUPPORTED;
			break;

		case ILBMERR_24BIT:
			s = MSG_ILBMERR_24BIT;
			break;

		default:
			s = MSG_ILBMERR_UNRECOGNIZED;
			break;
	}

	if (!reallybadflag)
	{
		DosWrite(s);
		DosWrite("\n");
	}
	else
		DosWrite(s);
}
