// Macro Utilisateurs

#define CHECK(m)			if ((tmp_res=m)) return tmp_res

#define MTOI(mot)			((mot)>>1)
#define MTOP(mot)			((mot)>>1)

#ifndef SCOL_FLOAT_DEFINITION
_inline float MTOF(int mot)			{	return *(float*)&(mot);	}
_inline int   FTOM(float mot)		{	return ((*(int*)&(mot)) & 0xfffffffe);	}
#define SCOL_FLOAT_DEFINITION
#endif



#define ITOM(mot)			((mot)<<1)
#define PTOM(mot)			(((mot)<<1)+1)

#define STR_SIZE(size)		(2+((size)>>2))
#define SIZE(t)				((sizeof(t)+3)>>2)
#define INVERT(m, a, b)			{tmp_res=MMget(m,a);MMset(m,a,MMget(m,b));MMset(m,b,tmp_res);}
#define GET_BMP(p)				(p == NIL ? NIL : MTOP(MMfetch(mm,p,0)))
#define GET_ABMP(p)				(p == NIL ? NIL : MTOP(MMfetch(mm,p,1)))
#define GET_TRANSP(p)			(p == NIL ? NIL : MTOI(MMfetch(mm,p,3)))
#define GET_PTR_OBJ_BITMAP(p) 	(p == NIL ? NULL : (((PtrObjBitmap)MMstart(mm,((PtrObjVoid)MMstart(mm,p))->Buffer>>1))->Bitmap != NULL ? (PtrObjBitmap)MMstart(mm,((PtrObjVoid)MMstart(mm,p))->Buffer>>1) : NULL))
#define GET_PTR_OBJ_FONT(p) 	(p == NIL ? NULL : (PtrObjFont)MMstart(mm,((PtrObjVoid)MMstart(mm,p))->Buffer>>1))
#define GET_PTR_OBJ_WINDOW(p)   (p == NIL ? NULL : (PtrObjWindow)MMstart(mm,((PtrObjVoid)MMstart(mm,p))->Buffer>>1))
#define OBJ_VALIDITY(p)			((p=GetObjectBase(mm,FindObjNodeFromHdlSys(mm,(int)p)))!=NULL)
//#define GET_PTR_OBJ_BITMAP(p) 	(p == NIL ? NULL : ((PtrObjBitmap)MMstart(m,((PtrObjVoid)MMstart(m,p))->Buffer>>1)))

