|
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 d
Length: 3468 (0xd8c) Types: TextFile Names: »dmpdbm.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Spacewar/dmpdbm.c«
/* * Spacewar - dump all dbm(3) records * * Copyright 1984 obo Systems, Inc. * Copyright 1984 Dan Rosenblatt */ #ifndef VMS #include <sys/types.h> #include <dbm.h> #else /* BSD SYSIII SYSV */ #include <types.h> #include "dbm.h" #endif /* VMS */ #include "spacewar.h" #include "universe.h" #include "login.h" #include "sys.h" #include "crft.h" #include "mlbx.h" #include "plyr.h" #include "ucmd.h" main(argc,argv) int argc; char *argv[]; { datum dbmkey,dbmdata; struct crftkey crk; struct crft crd; struct mlbxkey mbk; struct plyrkey plk; struct plyr pld; struct ucmdkey uck; struct syskey sk; struct sys s; int dodtl = (argc > 1); char *asctime(),*ctime(); if (dbminit(SWDATABASE)) { perror(SWDATABASE); exit(1); } for (dbmkey=firstkey();dbmkey.dptr;dbmkey=nextkey(dbmkey)) switch(dbmkey.dptr[0]) { case CRAFT: bcopy((char *)&crk,dbmkey.dptr,sizeof(crk)); printf("craft '%s' '%s': ",crk.cr_plyr,crk.cr_name); dbmdata = fetch(dbmkey); if (!dbmdata.dptr) printf("can't fetch\n"); else { bcopy((char *)&crd,dbmdata.dptr,sizeof(crd)); printf("%d %ld %ld %ld %ld %d %d\n", crd.cr_htyp,crd.cr_flsp,crd.cr_crew,crd.cr_pnts, crd.cr_time,crd.cr_kill,crd.cr_dock.ip_ofst); if (dodtl) { printf( " (%g %g %g) (%g %g %g) (%g %g %g) (%g %g %g)\n", crd.cr_pstn[0],crd.cr_pstn[1],crd.cr_pstn[2], crd.cr_dir[0],crd.cr_dir[1],crd.cr_dir[2], crd.cr_vel[0],crd.cr_vel[1],crd.cr_vel[2], crd.cr_thr[0],crd.cr_thr[1],crd.cr_thr[2]); printf(" %d %d %d %d %d %d %d %d %g %ld %d\n", crd.cr_hom[0].ip_ofst,crd.cr_hom[1].ip_ofst, crd.cr_hom[2].ip_ofst,crd.cr_hom[3].ip_ofst, crd.cr_hom[4].ip_ofst,crd.cr_hom[5].ip_ofst, crd.cr_auto.ip_ofst,crd.cr_ffwd,crd.cr_vang, crd.cr_vdst,crd.cr_plvl); } } break; case MLBX: bcopy((char *)&mbk,dbmkey.dptr,sizeof(mbk)); printf("mlbx '%s' %d: ",mbk.mb_plyr,mbk.mb_mlbx); dbmdata = fetch(dbmkey); if (!dbmdata.dptr) printf("can't fetch\n"); else printf("'%s'\n",dbmdata.dptr); break; case PLYR: bcopy((char *)&plk,dbmkey.dptr,sizeof(plk)); printf("plyr '%s': ",plk.pl_name); dbmdata = fetch(dbmkey); if (!dbmdata.dptr) printf("can't fetch\n"); else { bcopy((char *)&pld,dbmdata.dptr,sizeof(pld)); printf("'%s' %d {%.24s} %d %d %d %d %ld %ld %ld\n", pld.pl_passwd,pld.pl_numlgn, #ifdef VMS ctime(&pld.pl_lstlgn), #else /* BSD SYSIII SYSV */ asctime(localtime(&pld.pl_lstlgn)), #endif /* VMS BSD SYSIII SYSV */ pld.pl_frstml,pld.pl_seenml,pld.pl_lstml, pld.pl_slst,pld.pl_klst,pld.pl_plst,pld.pl_tlst); } break; case UCMD: bcopy((char *)&uck,dbmkey.dptr,sizeof(uck)); printf("ucmd '%s' '%s' %d: ",uck.uc_plyr, uck.uc_name,uck.uc_ucmd); dbmdata = fetch(dbmkey); if (!dbmdata.dptr) printf("can't fetch\n"); else printf("'%s'\n",dbmdata.dptr); break; case SUBSYS: bcopy((char *)&sk,dbmkey.dptr,sizeof(sk)); printf("sys '%s' '%s' %d: ",sk.s_plyr,sk.s_crft, sk.s_type); dbmdata = fetch(dbmkey); if (!dbmdata.dptr) printf("can't fetch\n"); else { bcopy((char *)&s,dbmdata.dptr,sizeof(s)); printf("%d %d %d %d %d\n",s.s_pct,s.s_edmg,s.s_dmg, s.s_lvl,s.s_cap); } break; default: printf("%c: unknown\n",dbmkey.dptr[0]); break; } }