float _float;
float vector[3];
func_t function;
+ int ivector[3];
int _int;
int edict;
} eval_t;
#define G_EDICT(o) (PROG_TO_EDICT(*(int *)&pr_globals[o]))
#define G_EDICTNUM(o) NUM_FOR_EDICT(G_EDICT(o))
#define G_VECTOR(o) (&pr_globals[o])
-#define G_STRING(o) (pr_strings + *(string_t *)&pr_globals[o])
+#define G_STRING(o) (PR_GetString(*(string_t *)&pr_globals[o]))
//#define G_FUNCTION(o) (*(func_t *)&pr_globals[o])
// FIXME: make these go away?
#define E_FLOAT(e,o) (((float*)e->v)[o])
//#define E_INT(e,o) (((int*)e->v)[o])
//#define E_VECTOR(e,o) (&((float*)e->v)[o])
-#define E_STRING(e,o) (pr_strings + *(string_t *)&((float*)e->v)[o])
+#define E_STRING(e,o) (PR_GetString(*(string_t *)&((float*)e->v)[o]))
extern int type_size[8];
void ED_PrintEdicts (void);
void ED_PrintNum (int ent);
+#define PR_GetString(num) (pr_strings + num)
+#define PR_SetString(s) ((int) (s - pr_strings))
+
#endif