Files
TeslaRel410/sda4/DPL3/VRENDER/MACROS.H
T
CydandClaude Fable 5 db7745fcd0 sda4: commit the Glaze developer hard-drive dump
Un-ignored: the dev drive is the ground truth the restoration and
emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer
source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio
content). Kept in-repo for the pod-owner community.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:41:15 -05:00

70 lines
2.2 KiB
C++

/*
File macros.h
some useful macros
Phil Atkin
(c) Division Ltd. 1991
*/
#ifdef macros_h
#else
#define macros_h
#define degtorad(v) (((v)/(float) 180)*(float)3.1415926535)
#define max_of(a,b) ((a)>(b)) ? (a) : (b)
#define min_of(a,b) ((a)<(b)) ? (a) : (b)
#define add_item(list,obj) do { \
if (list->head==NULL) { \
list->head=obj; \
list->tail=obj; \
} \
else { \
list->tail->next=obj; \
list->tail=obj; \
} \
} while(0)
#define remove_item(list,item,TYPE) \
do { \
TYPE *__t, *__p=list->head; \
if (__p==NULL); \
else if (__p==item) { \
list->head=item->next; \
if (list->tail==item) list->tail=list->head; \
free (item); \
} \
else for (__t=__p->next; __t!=NULL; __t=__t->next ) { \
if (__t==item) { \
if (list->tail==__t) list->tail=__p; \
__p->next=__t->next; \
free(item); \
break; \
} \
__p=__t; \
} \
} while (0)
#define swap_ptrs(a,b,TYPE) \
do { \
TYPE *__t=a; \
a=b; \
b=__t; \
} while(0)
#define solve(point,plane) \
(point[X]*plane[X])+(point[Y]*plane[Y])+(point[Z]*plane[Z])+plane[W]
#define decache(p,type) ((type) (((unsigned int) p - (unsigned int) 0x83600000) | 0xA0000000))
#undef decache
#define decache(p,type) p
#define recache(p,type) ((type) (((unsigned int) p & 0x0fffffff) + (unsigned int) 0x83600000))
#define inst_enable(i) (i->enable&0x1)
#define tree_enable(i) (i->enable&0x2)
#endif