[qfcc] Move D_* macros to def.h

Finally, after way too long.
This commit is contained in:
Bill Currie 2024-09-06 00:56:56 +09:00
parent 1f3b21a626
commit 9c902501d7
2 changed files with 13 additions and 12 deletions

View file

@ -120,6 +120,19 @@ typedef struct def_s {
void *free_addr; ///< who freed this
} def_t;
#define D_PACKED(t,d) (*(t *) &(d)->space->data[(d)->offset])
#define D_var(t, d) D_PACKED (pr_##t##_t, d)
#define D_DOUBLE(d) D_var (double, d)
#define D_FLOAT(d) D_var (float, d)
#define D_INT(d) D_var (int, d)
#define D_VECTOR(d) (&D_var (float, d))
#define D_QUAT(d) (&D_var (float, d))
#define D_STRING(d) D_var (string, d)
#define D_GETSTR(d) GETSTR (D_STRING (d))
#define D_FUNCTION(d) D_var (func, d)
#define D_POINTER(t,d) (&D_PACKED (t, d))
#define D_STRUCT(t,d) (*D_POINTER (t, d))
/** Create a new def.
Defs may be unnamed.

View file

@ -97,18 +97,6 @@ typedef struct pr_info_s {
extern pr_info_t pr;
#define GETSTR(s) (pr.strings->strings + (s))
#define D_PACKED(t,d) (*(t *) &(d)->space->data[(d)->offset])
#define D_var(t, d) D_PACKED (pr_##t##_t, d)
#define D_DOUBLE(d) D_var (double, d)
#define D_FLOAT(d) D_var (float, d)
#define D_INT(d) D_var (int, d)
#define D_VECTOR(d) (&D_var (float, d))
#define D_QUAT(d) (&D_var (float, d))
#define D_STRING(d) D_var (string, d)
#define D_GETSTR(d) GETSTR (D_STRING (d))
#define D_FUNCTION(d) D_var (func, d)
#define D_POINTER(t,d) (&D_PACKED (t, d))
#define D_STRUCT(t,d) (*D_POINTER (t, d))
#define Q_POINTER(s,t,o) ((t *)((s)->data + o))
#define Q_STRUCT(s,t,o) (*Q_POINTER (s, t, o))