|
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 u
Length: 1826 (0x722) Types: TextFile Names: »update.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Spacewar/update.c«
/* * Spacewar - update the universe * * Copyright 1985 obo Systems, Inc. * Copyright 1985 Dan Rosenblatt */ #include "spacewar.h" #ifndef VMS #include <sys/types.h> #else /* BSD SYSIII SYSV */ #include <types.h> #endif #include "universe.h" #include "login.h" #include "sys.h" #include "aln.h" #include "build.h" #include "flds.h" #include "torp.h" #include "crft.h" long gametime; VOID update() { struct universe *puniv; register struct login *plogin; struct crft *pcrft; char *s,*lckmsg(); extern int numpling; #ifdef DEBUG DBG("update()\n"); #endif /* periodic sync and lockout check */ if (++gametime%60L == 0) { objupdate(); crftupdate((struct login *)0); if (s=lckmsg()) { numpling = 0; for (plogin=loginlst+MAXLOGIN;plogin-- > loginlst;) { if (plogin->ln_tty && plogin->ln_play.ip_ptr) { remove(plogin->ln_play); plogin->ln_iomode = NULL; plogin->ln_crft[0] = NULL; plogin->ln_play.ip_ptr = NULL; plogin->ln_stat = NULL; plogin->ln_substat = NULL; output(plogin,'E',0,0); output(plogin,'B',0,0); output(plogin,'C',0,"\n\n"); output(plogin,'C',0,s); output(plogin,'C',0,"\n"); output(plogin,'C',0,PROMPT); output(plogin,0,0,0); } } } } /* movement of objects */ updobjs(); updmov(); /* movement of intelligent nasties */ updtorp(); updaln(); /* damage/destruction from hull damage, damage control */ upddmg(); /* energy subsystems */ updsys(); /* direction, sensors, homing */ upddsh(); /* player's screens */ for (plogin=loginlst;plogin < loginlst+MAXLOGIN;++plogin) { if (!plogin->ln_tty || !(puniv=plogin->ln_play.ip_ptr)) continue; nums(pcrft=puniv->uv_ptr.uv_crft); view(pcrft); output(plogin,0,0,0); pcrft->cr_time += 1; } #ifdef DEBUG VDBG("update return\n"); #endif }