mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-09 17:20:58 +00:00
Fix progdefs.h writing.
This commit is contained in:
parent
ce278b2fbf
commit
04b9b3a11d
1 changed files with 18 additions and 11 deletions
|
@ -192,11 +192,12 @@ WriteFiles (const char *sourcedir)
|
||||||
int
|
int
|
||||||
WriteProgdefs (dprograms_t *progs, const char *filename)
|
WriteProgdefs (dprograms_t *progs, const char *filename)
|
||||||
{
|
{
|
||||||
ddef_t *d;
|
ddef_t *def;
|
||||||
|
ddef_t *fdef;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
unsigned short crc;
|
unsigned short crc;
|
||||||
int c;
|
int c;
|
||||||
unsigned i;
|
unsigned i, j;
|
||||||
const char *strings;
|
const char *strings;
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
|
@ -211,16 +212,16 @@ WriteProgdefs (dprograms_t *progs, const char *filename)
|
||||||
|
|
||||||
strings = (char *) progs + progs->ofs_strings;
|
strings = (char *) progs + progs->ofs_strings;
|
||||||
for (i = 0; i < progs->numglobaldefs; i++) {
|
for (i = 0; i < progs->numglobaldefs; i++) {
|
||||||
d = (ddef_t *) ((char *) progs + progs->ofs_globaldefs) + i;
|
def = (ddef_t *) ((char *) progs + progs->ofs_globaldefs) + i;
|
||||||
name = strings + d->s_name;
|
name = strings + def->s_name;
|
||||||
if (!strcmp (name, "end_sys_globals"))
|
if (!strcmp (name, "end_sys_globals"))
|
||||||
break;
|
break;
|
||||||
if (!d->ofs)
|
if (!def->ofs)
|
||||||
continue;
|
continue;
|
||||||
if (*name == '.' || !*name)
|
if (*name == '.' || !*name)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch (d->type) {
|
switch (def->type & ~DEF_SAVEGLOBAL) {
|
||||||
case ev_float:
|
case ev_float:
|
||||||
fprintf (f, "\tfloat\t%s;\n", name);
|
fprintf (f, "\tfloat\t%s;\n", name);
|
||||||
break;
|
break;
|
||||||
|
@ -248,16 +249,22 @@ WriteProgdefs (dprograms_t *progs, const char *filename)
|
||||||
|
|
||||||
// print all fields
|
// print all fields
|
||||||
fprintf (f, "typedef struct\n{\n");
|
fprintf (f, "typedef struct\n{\n");
|
||||||
for (i = 0; i < progs->numglobaldefs; i++) {
|
for (i = 0, j = 0; i < progs->numglobaldefs; i++) {
|
||||||
d = (ddef_t *) ((char *) progs + progs->ofs_fielddefs) + i;
|
def = (ddef_t *) ((char *) progs + progs->ofs_globaldefs) + i;
|
||||||
name = strings + d->s_name;
|
name = strings + def->s_name;
|
||||||
if (!strcmp (name, "end_sys_fields"))
|
if (!strcmp (name, "end_sys_fields"))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (!d->ofs)
|
if (!def->ofs)
|
||||||
|
continue;
|
||||||
|
if (def->type != ev_field)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch (d->type) {
|
fdef = (ddef_t *) ((char *) progs + progs->ofs_fielddefs) + j++;
|
||||||
|
if (fdef->s_name != def->s_name)
|
||||||
|
internal_error (0, "def and field order messup");
|
||||||
|
|
||||||
|
switch (fdef->type) {
|
||||||
case ev_float:
|
case ev_float:
|
||||||
fprintf (f, "\tfloat\t%s;\n", name);
|
fprintf (f, "\tfloat\t%s;\n", name);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue