|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T o
Length: 1211 (0x4bb)
Types: TextFile
Names: »objupdate.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Spacewar/objupdate.c«
/*
* Spacewar - update universe orbiting objects to external file
*
* Copyright 1985 obo Systems, Inc.
* Copyright 1985 Dan Rosenblatt
*/
#include <stdio.h>
#include "spacewar.h"
#include "universe.h"
#include "obj.h"
VOID objupdate()
{
char buf[128];
FILE *fobj;
register struct obj *p=objlst;
#ifdef DEBUG
DBG("objupdate()\n");
#endif
/* write to secondary file to be renamed */
strcpy(buf,SWOBJ);
#ifndef VMS
strcat(buf,"x");
#endif
if (!(fobj = fopen(buf,"w"))) {
perror(buf);
#ifdef DEBUG
VDBG("objupdate return\n");
#endif
return;
}
/* write the exact number of objects */
for (p=objlst;p < objlst+MAXOBJ;++p)
fprintf(fobj,"%ld\t%d\t%c\t%d\t%d\t%ld\t%.5f\t%.1f\t%.1f\t%.1f\n",
p->oj_mass,p->oj_rad,(p->oj_rep == ' ') ? '.' : p->oj_rep,
p->oj_octr.ip_ptr-univlst,p->oj_oprd,p->oj_orad,p->oj_ocrpt,
p->oj_optx,p->oj_opty,p->oj_optz);
if (ferror(fobj) || fclose(fobj)) {
perror(buf);
#ifdef DEBUG
VDBG("objupdate return\n");
#endif
return;
}
#ifndef VMS
/* rename secondary file to be primary */
if (unlink(SWOBJ) || link(buf,SWOBJ) || unlink(buf)) {
perror(buf);
}
#endif
#ifdef DEBUG
VDBG("objupdate return\n");
#endif
}