/*
	ARTemis (Graphic Editor for FM-TOWNS)
	(c) MATSUUCHI Ryosuke 1992

	ge.h
*/


#define	NO16	1

#pragma On(Public_var_warnings)
#pragma On(Quiet)
#pragma On(Prototype_override_warnings)

#include <process.h>
#include <ryosuke.h>
#include <usrlib.h>
#include <imath.h>

#define	FNT_bold			1
#define	FNT_slant			2
#define	FNT_shadow			4
#define	FNT_edge			8
#define	FNT_underline		16
#define	FNT_overline		32
#define	FNT_centerline		64

#define	Black0			0
#define	Transparent		0
#define	Colorless		0
#define	Black			1
#define	Gray1			2
#define	Gray2			3
#define	Gray3			4
#define	Gray4			5
#define	Gray5			6
#define	Gray6			7
#define	Gray7			8
#define	Gray8			9
#define	White			10
#define	Yellow			11
#define	COL_menuShade	12
#define	COL_menu		13
#define	COL_menuLight	14
#define	COL_menu2		15
#define	DarkGray		Gray3
#define	Gray			Gray5
#define	LightGray		Gray8
#define	LatticeColor	Gray
#define	COL_menuString	White
#define	COL_cursorLight	LightGray
#define	COL_cursorDark	DarkGray

#define	GRB(g,r,b)	(((g)<<10)+((r)<<5)+(b))
#define	getR(col)	(((col)>> 5) & 0x1f)
#define	getG(col)	(((col)>>10) & 0x1f)
#define	getB(col)	(((col)    ) & 0x1f)

#include "pen.h"
#include "pict.h"
#include "menu.h"
#include "sub.h"
#include "subgrp.h"
#include "sub2.h"
#include "plt.h"
#include "geasm.h"
#include "copy.h"
#include "filemenu.h"
#include "spray.h"

#define	MODE32K	0
#define	MODE16	1

#define	PLTNUM	16

#define	MODEL_RGB	0
#define	MODEL_HLS	1

#ifndef	MODULE_MAIN
	extern	int			mode;
	extern	int			white;
	extern	int			minzoomrate;
	// extern	int			ax,ay;
	// extern	SCROLLBAR	*sbarp;
	// extern	int			plt[PLTNUM];
	extern	int			pltnum;
	// extern	deci		plt_h[PLTNUM];
	extern	MSDAT		ms;
	extern	int			mixrate;
	extern	int			blkop;
	extern	bool		blkop_edge;
	extern	bool		areaadj;
	extern	int			blot_depth;
	extern	int			goshi_para;
	extern	int			spray_r;
	extern	int			spray_t;
	extern	int			colmodel;
	extern	int			csrcol;
	extern	int			whiteback;
	extern	bool		use_partsave;
	extern	bool		use_loadmove;
	extern	int			forecol, backcol;
	extern	bool		ryosuke;
	extern	bool		ryosuke_pat;
	extern	bool		debug;
	extern	char		debugmsg[128];
	extern	int			font12seg;
#endif

// mag.c
int		MAG_easyLoad(char *fname);

void	debug_msg_dummy(char *format, ...);
void	debug_msg(char *format, ...);
void	msgout_abs(char *msg);
void	msgout(char *msg);
void	__dumpNEARPLT0();
#ifdef DEBUG
#define	DEBUG_MSG(str)	msgout(str)
#define	PRINT			debug_msg
#define TRACE			debug_msg("TRACE:[%s] line %d\n",__FILE__,__LINE__)
#else
#define	DEBUG_MSG(str)
#define	PRINT			debug_msg_dummy
#define TRACE
#endif

#define	KNOW(a) { \
	  if(!(a)) { \
	     debug_msg("ARTemis G[(%s,%d)\n",__FILE__,__LINE__); \
	   exit(1); } }





// typedef	int deci;
#define	FDeci(f)	((int)((float)(f)*1024+0.5))
#define	_lim(a, min, max)	(_min(_max((min),(a)), (max)))

#define	_iskanji(c)	(((c)&0xff) >= 0x81 && ((c)&0xff)<=0x9f || \
					 ((c)&0xff) >= 0xe0 && ((c)&0xff)<=0xfc)

#define	_iskanji1(kcode)	((((kcode)>>8)&0xff) <= 0x97)

// #define	ushort	unsigned short
// #define	uint	unsigned int

#define	MOFF	mask_tempoff_begin()
#define	MON		mask_tempoff_end()

/* end of ge.h */
