|
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 l
Length: 7326 (0x1c9e) Types: TextFile Names: »locdir.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Abermud/locdir.c«
/* ** The other stuff in here handles time , and also game ** timelocks. Note that this means there is an additional file within ** the game system when compared with version 18. */ #include "kernel.h" #include <fcntl.h> #ifdef RCSID static char RCS[] = "$Header: locdir.c,v 1.1 89/03/13 09:36:37 rsalz Exp $"; #endif /* RCSID */ static char folnam[16]; static int trace_carrf; static int i_folcode = -1; static int trace_class = -1; static int trace_item = -1; static int trace_loc; #ifndef LOWMEM timecom() { FILE *a; time_t x; time(&x); bprintf("Current Time : %s", ctime(&x)); closeworld(); /* have to be careful with snoop and world reset or can deadlock */ if (snoopd != -1) bprintf(" %c", 8); if ((a = openlock(RESET_N, "r")) == NULL) return; fscanf(a, "%d", &x); closelock(a); bprintf("Last Reset : %s", ctime(&x)); } showitem() { int x; if (plev(mynum) < 10) { bprintf("I don't know that verb\n"); return; } if (EMPTY(item1)) { bprintf("Show which item ?\n"); return; } if ((x = fobn(item1)) == -1) { bprintf("Whats that ?\n"); return; } bprintf("Item : %s\n", oname(x)); bprintf("State : %d Max State : %d Base Value : %d Flannel : %d\n", state(x), omaxstate(x), obaseval(x), oflannel(x)); bprintf("Damage: %d InfoData : %d Size : %d\nProperties :\n", obyte(x, 0), obyte(x, 1), osize(x)); pdobit(x, 0, "Destroyed"); pdobit(x, 1, "Linked"); pdobit(x, 2, "Openable"); pdobit(x, 3, "Lockable"); pdobit(x, 4, "Pushable"); pdobit(x, 5, "Pushtoggle"); pdobit(x, 6, "Food"); pdobit(x, 7, "<Spare>"); pdobit(x, 8, "Wearable"); pdobit(x, 9, "Lightable"); pdobit(x, 10, "Extinguish"); pdobit(x, 13, "Lit"); pdobit(x, 11, "Key"); pdobit(x, 12, "Getflips"); pdobit(x, 14, "Container"); pdobit(x, 15, "Weapon"); bprintf("\nDescriptions:\n%s\n%s\n%s\n%s\n", olongt(x, 0), olongt(x, 1), olongt(x, 2), olongt(x, 3)); } pdobit(o, x, st) int o; int x; char *st; { static int ct = 0; if (x == 0) ct = 0; if (otstbit(o, x)) { ct += strlen(st) + 1; if (ct > 79) { bprintf("\n"); } bprintf("%s ", st); } } warcom() { if (plev(mynum) < 10) { bprintf("I don't know that verb.\n"); return; } shimge[0] = 0; broad("The air of peace and friendship lifts.\n"); } peacecom() { if (plev(mynum) < 10) { bprintf("I don't know that verb.\n"); return; } shimge[0] = 1; broad("Peace and tranquility descends upon the world.\n"); } awizlock() { if (plev(mynum) < 10000) { bprintf("I don't know that verb.\n"); return; } shimge[1] = 127; bprintf("The Game is now ARCHWIZARD locked.\n"); } wizlock() { if (plev(mynum) < 10) { bprintf("I don't know that verb.\n"); return; } shimge[1] = 10; bprintf("The Game is now WIZARD locked.\n"); } godlock() { if (!op(pname(mynum))) { bprintf("I don't know that verb.\n"); return; } if (unlink(GODFILE) == 0) bprintf("The Game is now GOD locked.\n"); else bprintf("The Game is already GOD locked.\n"); } awizunlock() { if (plev(mynum) < 10000) { bprintf("I don't know that verb.\n"); return; } shimge[1] = 0; bprintf("The Game is now unlocked.\n"); } wizunlock() { if (plev(mynum) < 10) { bprintf("I don't know that verb.\n"); return; } shimge[1] = 0; bprintf("The Game is now unlocked.\n"); } #endif /* LOWMEM */ godunlock() { int f_pr; if (!op(pname(mynum))) { bprintf("I don't know that verb.\n"); return; } if ((f_pr = open(GODFILE, O_CREAT | O_EXCL, 0600)) > 0) { bprintf("The game is GOD unlocked.\n"); close(f_pr); } else bprintf("The game is already unlocked.\n"); } awizcom() { char x[128], y[140]; if (plev(mynum) < 10000) { bprintf("Yeah sure... \n"); return; } getreinput(x); sprintf(y, "\001c%s\001# %s\n", pname(mynum), x); sendsys(pname(mynum), pname(mynum), -10125, 0, y); rd_qd = 1; } followcom() { if (i_follow == 1) { bprintf("Stopped following \001P%s\001.\n", folnam); i_follow = 0; strcpy(folnam, ""); } if (in_fight) { bprintf("You are too busy fighting!\n"); return; } if (EMPTY(item1)) { bprintf("Who ?\n"); return; } if ((i_folcode = pl1) == -1) { bprintf("Who ?\n"); return; } if (ploc(i_folcode) != ploc(mynum)) { bprintf("They are not here.\n"); return; } if (mynum == i_folcode) { bprintf("You run round in circles!\n"); return; } strcpy(folnam, pname(i_folcode)); i_follow = 1; bprintf("Ok\n"); } losecom() { if (i_follow == 0) { bprintf("You aren't following anyone\n"); return; } i_follow = 0; strcpy(folnam, ""); i_folcode = -1; bprintf("Ok\n"); } on_follow() { int ct; on_trace(); if (!i_follow) return; if (in_fight || fpbn(folnam) != i_folcode) { bprintf("You can no longer follow \001P%s\001.\n", folnam); i_follow = 0; return; } /* Now to find the guy */ if (ploc(mynum) == ploc(i_folcode)) return; if (ploc(i_folcode) >= -999 && ploc(i_folcode) <= -900) return; /* Dont follow to sea! */ for (ct = 0; ct < 6; ct++) { if (getexit(ploc(mynum), ct) == ploc(i_folcode) || (doorthru(getexit(ploc(mynum), ct)) == ploc(i_folcode) && plev(mynum) > 10)) { dodirn(ct + 2); return; } } bprintf("You can no longer follow \001P%s\001.\n", folnam); strcpy(folnam, ""); i_folcode = -1; i_follow = 0; } doorthru(x) int x; { if (x < 1000 || x > 9999) return x; if (state(x - 1000)) return 0; return oloc((x - 1000) ^ 1); } tracecom() { int i; if (plev(mynum) < 10) { bprintf("I don't know that verb.\n"); return; } if (trace_item != -1) { bprintf("Stopped tracing %s\n", trace_class == 1 ? oname(trace_item) : pname(trace_item)); trace_item = -1; if (brkword() == -1) return; } else if (EMPTY(item1)) { bprintf("What ?\n"); return; } if ((i = pl1) != -1) { trace_class = 2; trace_item = i; trace_loc = 0; trace_carrf = 0; bprintf("Ok.\n"); return; } if ((i = ob1) != -1) { trace_class = 1; trace_item = i; trace_loc = 0; trace_carrf = 0; bprintf("Ok.\n"); return; } bprintf("Whats that ?\n"); } on_trace() { if (trace_item == -1) return; if (trace_class == 1) { if (trace_loc != oloc(trace_item) || trace_carrf != ocarrf(trace_item)) { bprintf(">>%s now at ", oname(trace_item)); trace_carrf = ocarrf(trace_item); trace_loc = oloc(trace_item); desrm(trace_loc, trace_carrf); } return; } if (EMPTY(pname(trace_item))) { bprintf(">>Can no longer trace...\n"); trace_item = -1; return; } if (ploc(trace_item) != trace_loc) { bprintf(">>\001p%s\001 now at ", pname(trace_item)); trace_loc = ploc(trace_item); desrm(trace_loc, 0); } } mobilecom() { if (plev(mynum) < 10) { bprintf("I don't know that verb.\n"); return; } bprintf("Mobiles"); if (shimge[3]) bprintf(" [Currently STOPped]"); bprintf("\n\n"); whop2(1, 16, 64); } peoplecom() { if (plev(mynum) < 10) { bprintf("I don't know that verb.\n"); return; } bprintf("People\n\n"); whop2(1, 0, 15); }