DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T u

⟦a5ec4c469⟧ TextFile

    Length: 1249 (0x4e1)
    Types: TextFile
    Names: »updobjs.c«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Spacewar/updobjs.c« 

TextFile

/*
 * Spacewar - update movement of objects
 *
 * Copyright 1985 obo Systems, Inc.
 * Copyright 1985 Dan Rosenblatt
 */

#include "spacewar.h"
#include "universe.h"
#include "obj.h"

VOID updobjs()
{
	register struct obj *pobj;
	double tmpvec[3];
	int i;

#ifdef DEBUG
	DBG("updobjs()\n");
#endif

	for (pobj=objlst;pobj < objlst+MAXOBJ;++pobj) {

	    /* new orbital center relative plane theta */
	    if (pobj->oj_oprd) {
		pobj->oj_ocrpt = ADD(pobj->oj_ocrpt,
		DIV(TWOPI,FLOAT(pobj->oj_oprd)));
		pobj->oj_ocrpt = FMOD(pobj->oj_ocrpt,TWOPI);
	    }

	    /* new position by converting from spherical to rectangular, */
	    /* rotating from orbital plane, and translating from orbital */
	    /* center; figure velocity from old and new position	 */
	    vcopy(tmpvec,pobj->oj_pstn);
	    pobj->oj_pstn[0] = FLOAT(pobj->oj_orad);
	    pobj->oj_pstn[1] = pobj->oj_ocrpt;
	    pobj->oj_pstn[2] = DIV(PI,2.);
	    sptort(pobj->oj_pstn,pobj->oj_pstn);
	    vecmul(pobj->oj_pstn,pobj->oj_rmat,pobj->oj_pstn);
	    for (i=0;i < 3;++i)
		pobj->oj_pstn[i] = ADD(pobj->oj_pstn[i],
		pobj->oj_octr.ip_ptr->uv_pstn[i]);
	    vchngd(pobj->oj_univ.ip_ptr);
	    vdiff(pobj->oj_pstn,tmpvec,pobj->oj_vel);
	}

#ifdef DEBUG
	VDBG("updobjs return\n");
#endif
}