Skip to content
Snippets Groups Projects
Commit 4e35d6ea authored by deuce's avatar deuce
Browse files

Add TimePort (By the authours of Lunatix) to CVS

(Did not include original BASIC sources)
parent d0b11a34
No related branches found
No related tags found
No related merge requests found
Showing
with 3957 additions and 0 deletions
VER := 1.2
CFLAGS += -Wall
STRIP :=
ifdef DEBUG
CFLAGS += -g -Wshadow -Wcast-align -Wconversion -Wredundant-decls
else
CFLAGS += -O2
STRIP += strip
endif
ifdef SEPOS
OS := $(shell uname | tr "[ A-Z]" "[\-a-z]")
LIBPREFIX := ./libs.$(OS)/
BINSUFFIX := .$(OS)
else
LIBPREFIX := ./
endif
BINARIES := timeport$(BINSUFFIX) tp-event$(BINSUFFIX) makemod$(BINSUFFIX) outside$(BINSUFFIX) \
badtimes$(BINSUFFIX) stoneage$(BINSUFFIX) twenties$(BINSUFFIX) install$(BINSUFFIX)
ifdef STATIC
REQLIBS := $(LIBPREFIX)tplib.o $(LIBPREFIX)doors.o
LIBS := $(LIBPREFIX)tplib.o $(LIBPREFIX)doors.o
else
REQLIBS := $(LIBPREFIX)libtp.so
LIBS := -ltp
CFLAGS += -L$(LIBPREFIX)
BINARIES += $(LIBPREFIX)libtp.so
LFLAGS += -Xlinker -rpath
LFLAGS += -Xlinker $(LIBPREFIX)
endif
ifeq ($(OS),netbsd)
CURSLIB := -lncurses
CFLAGS += -I/usr/pkg/include -L/usr/pkg/lib
else
CURSLIB := -lcurses
endif
all: ${BINARIES} ${STRIP}
install$(BINSUFFIX): install.c
gcc ${CFLAGS} -o install$(BINSUFFIX) install.c $(CURSLIB)
twenties$(BINSUFFIX): ${REQLIBS} twenties.c
gcc ${CFLAGS} ${LFLAGS} $(LIBS) -o twenties$(BINSUFFIX) twenties.c
makemod$(BINSUFFIX): ${REQLIBS} makemod.c
gcc ${CFLAGS} ${LFLAGS} $(LIBS) -o makemod$(BINSUFFIX) makemod.c
stoneage$(BINSUFFIX): ${REQLIBS} stoneage.c
gcc ${CFLAGS} ${LFLAGS} $(LIBS) -o stoneage$(BINSUFFIX) stoneage.c
timeport$(BINSUFFIX): ${REQLIBS} timeport.c timeport.h
gcc ${CFLAGS} ${LFLAGS} $(LIBS) -o timeport$(BINSUFFIX) timeport.c
tp-event$(BINSUFFIX): ${REQLIBS} tp-event.c
gcc ${CFLAGS} ${LFLAGS} $(LIBS) -o tp-event$(BINSUFFIX) tp-event.c
outside$(BINSUFFIX): ${REQLIBS} outside.c
gcc ${CFLAGS} ${LFLAGS} $(LIBS) -o outside$(BINSUFFIX) outside.c
badtimes$(BINSUFFIX): ${REQLIBS} badtimes.c
gcc ${CFLAGS} ${LFLAGS} $(LIBS) -o badtimes$(BINSUFFIX) badtimes.c
$(LIBPREFIX)tplib.o: tplib.c tplib.h doors.h $(LIBPREFIX)
gcc -c ${CFLAGS} -o $(LIBPREFIX)tplib.o tplib.c
$(LIBPREFIX)doors.o: doors.c doors.h tplib.h $(LIBPREFIX)
gcc ${CFLAGS} -o $(LIBPREFIX)doors.o -c doors.c
$(LIBPREFIX)libtp.so: $(LIBPREFIX)tplib.o $(LIBPREFIX)doors.o $(LIBPREFIX)
gcc $(CFLAGS) -shared -o $(LIBPREFIX)libtp.so.$(VER) $(LIBPREFIX)tplib.o $(LIBPREFIX)doors.o
@cd $(LIBPREFIX) && ln -fs libtp.so.$(VER) libtp.so
$(LIBPREFIX):
mkdir $(LIBPREFIX)
clean:
rm \
$(LIBPREFIX)doors.o \
$(LIBPREFIX)tplib.o \
timeport$(BINSUFFIX) \
tp-event$(BINSUFFIX) \
outside$(BINSUFFIX) \
makemod$(BINSUFFIX) \
badtimes$(BINSUFFIX) \
$(LIBPREFIX)libtp.so \
$(LIBPREFIX)libtp.so.$(VER)
strip:
strip ${BINARIES}
In this FREEWARE version, the reg. codes are:
Line 1: Your name
Line 2: Your BBS name
Put in whatever you like as lone as it's more than
1 char long
#include <signal.h>
#include <sys/time.h>
#include <stdlib.h>
#include "doors.h"
#include "tplib.h"
short Room;
void ShowRoom(long l);
short GetResponse(long l);
void SaveTime(void)
{
char path[MAXPATHLEN];
FILE *file;
sprintf(path,"timeleft.%d",NodeNum);
file=SharedOpen(path,"w",LOCK_EX);
fprintf(file,"%ld\r\n",MinsLeft);
fprintf(file,"%ld\r\n",SecsLeft);
fclose(file);
}
void Quitter(void)
{
SaveTime();
ExitGame();
}
void LessTime(int sig)
{
SecsLeft = SecsLeft - 1;
if(SecsLeft < 0)
{
SecsLeft = 59;
MinsLeft = MinsLeft - 1;
}
if(PlayingNow <= 0)
return;
if(MinsLeft < 1)
{
Oprint("`%\r\n\r\n");
Oprint("Your time is up, man!\r\n");
Quitter();
exit(0);
}
}
void LoadTime(void)
{
char path[MAXPATHLEN];
FILE *file;
char line[256];
sprintf(path,"timeleft.%d",NodeNum);
file=SharedOpen(path,"r",LOCK_SH);
readline(line,sizeof(line), file);
RTrim(line);
MinsLeft=atoi(line);
readline(line,sizeof(line), file);
RTrim(line);
SecsLeft=atoi(line);
fclose(file);
}
int main(int argc, char **argv)
{
struct itimerval it;
int x;
short a;
ParseCmdLine(argc,argv);
srandomdev();
strcpy(Alias, "Who is it?");
StatsIn = 0;
Playercount = 0;
ReadLinkTo(); // 'initialize the modem
ReadConfig(); // 'get default configuartion information
LoadTime();
signal(SIGALRM, LessTime);
it.it_interval.tv_sec=1;
it.it_interval.tv_usec=1;
it.it_value.tv_sec=1;
it.it_value.tv_usec=1;
setitimer(ITIMER_REAL, &it, NULL);
ChatEnabled = 0;
PlayingNow = 1;
// 'Is this a new player?
IsHeNew(Alias);
LoadGame();
NotAgain[12]='+';
StatsIn = 1;
SaveGame();
OpenInventory();
Ocls();
// 'set opening "variables"
for(x=1;x<argc;x++)
{
if(argv[x][0]=='R')
{
Room=atoi(argv[x]+1);
break;
}
}
if(Room < 1 || Room > MaxBadTimes)
Quitter();
// '**** begin the REPEATER code
x=1;
while(1)
{
if(x)
{
Ocls();
ShowRoom(Room);
}
a = GetResponse(Room);
SaveGame();
if(Hit<1)
{
NotAgain[1]='^';
Oprint("\r\n`6 Searing pain tortures you as your life ends!\r\n");
Paus(2);
Quitter();
}
if(a==-2)
{
x=0;
continue;
}
if(a==-1)
{
x=1;
continue;
}
if(a==101)
{
Quitter();
continue;
}
if(a>=1 && a<=99)
{
Room=a;
x=1;
continue;
}
Oprint("`@The command you typed is invalid. Read the menu.\r\n");
x=0;
}
return(0);
}
short GetResponse(long l)
{
short t,a;
char str[256];
char v[2];
t = 0;
GetCommand(v);
Oprint("\r\n");
// 'Figure out what section to switch to based upon 'L' room and v$ response
if(v[0] == '?')
return(-1);
if(v[0]=='I' && l != 1)
{
Inventory();
return(-1);
}
if(v[0]=='V')
{
ViewStats();
return(-1);
}
if(v[0]=='X') // 'toggle ansi/ascii
{
if(NotAgain[14]==' ')
NotAgain[14]='|';
else
NotAgain[14]=' ';
return(-1);
}
if(v[0]=='G')
{
sprintf(str,"`$%s`! awoke to find %s in a dangerous place.",Alias,sex[0]=='M'?"himself":"herself");
WriteNews(str, 0);
a = TalkToPress();
if(a == 0)
{
sprintf(str,"`3%s`3 quickly Time Phased back to the Hanger.",Alias);
WriteNews(str, 1);
}
t = 101;
}
return(t);
}
void SaveGame(void)
{
if(Hit<0)
Hit=0;
if(StatsIn > 0)
SaveStats(Alias, Alias, Money, Stash, sex, CurCode, NotAgain, Weapon, Defense, Hit, Exp, Level, lastplay, ClosFight, PlayFight, PlayKill, ExeLine, ComLine, LineRest);
}
void ShowRoom(long l)
{
// 'code to print "headers"
Oprint("`!T`3ime `!P`3ort `8Version `7");
Oprint(Version);
Oprint(" -- `7Location: ");
Oprint("`%You Have No Clue Whatsoever\r\n");
Oprint("`4-`5=`4-`5=`4----`5=`4---------`5=`4---------------------------------------`5=`4---------`5=`4----`5=`4-`5=`4-\r\n");
strcpy(Prompt, "G");
if(l == 1)
{
Oprint("`2 You are standing in a large, open field. From every direction, hundreds\r\n");
Oprint("`2 upon hundreds of screaming, sword-wielding Scotts are converging on you.\r\n");
}
if(l == 2)
{
Oprint("`2 You are standing in the center of a busy intersection. Cars are zipping\r\n");
Oprint("`2 past you rapidly. A bus is even headed straight at you!\r\n");
}
if(l == 3)
{
Oprint("`2 The ground is hundreds of meters below you, and it seems to be spinning\r\n");
Oprint("`2 up towards you. You look up and see a plane and several men in the door\r\n");
Oprint("`2 sneering as you fall towards the ground.\r\n");
}
if(l == 4)
{
Oprint("`2 You're on a tall bridge over a rushing river. When you hear a very loud\r\n");
Oprint("`2 whistling sound, you look down and see train tracks. The train is coming\r\n");
Oprint("`2 straight at you and you have nowhere to run.\r\n");
}
if(l == 5)
{
Oprint("`2 You are standing against a cold brick wall, wearing a blindfold. You are\r\n");
Oprint("`2 just able to peek under the black material to see six men with rifles,\r\n");
Oprint("`2 and they're aimed straight at you. A cigarette falls from your lips.\r\n");
}
Oprint("`2 You blink several times, but it's really happening. It's not a dream.\r\n");
Oprint("`4-`5=`4-`5=`4----`5=`4---------`5=`4---------------------------------------`5=`4---------`5=`4----`5=`4-`5=`4-\r\n");
Oprint("`7 (`%G`8)`@et the H*** out of here! ");
Oprint("`7 (`!?`8)`3Re-List menu options\r\n");
Oprint("`4-`5=`4-`5=`4----`5=`4---------`5=`4---------------------------------------`5=`4---------`5=`4----`5=`4-`5=`4-\r\n");
}
void UseItem(long c, short b) // 'c=1-8 item number, b=the item code (1-???)
{
Oprint("`2 You find no use for that item here at this time.\r\n");
}
@echo off
REM
REM For creating a single EXE file... pass it the source file name in the
REM form:
REM BAS [filename]
REM where [filename] is something like TIMEPORT(.bas) or whatever
REM
REM For BC7 users, QBSERPDQ may need changed to BC7SER instead.
REM
LH bc /E /W /O /T /C:512 %1,,;
LH link %1 qbserpdq coding,,,c:\qb\bcom45.lib;
 ĿĿĿYou decide to try pressing
the 4 buttons one at a1234time. What sequence will
    you try to press?
Ĵ        
Ĵ          
        
    
Type a Sequence:          
Ĵ Ĵ 
Hint: The sequence will remain the same,
allowing you to solve the correctsequence, until you guess correctly,a
t which time it will change.
@echo off
REM
REM Creates all the Time Port executables
REM
@ECHO ----------------------
@ECHO Compiling CODING.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 coding,,;
REM No need to link "coding" it just needs to be an OBJ.
@ECHO ----------------------
@ECHO Compiling TIMEPORT.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 TIMEPORT,,;
LH link TIMEPORT qbserpdq coding,,,c:\qb\bcom45.lib;
@ECHO ----------------------
@ECHO Compiling INSTALL.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 INSTALL,,;
LH link INSTALL coding,,,c:\qb\bcom45.lib;
@ECHO ----------------------
@ECHO Compiling BADTIMES.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 BADTIMES,,;
LH link BADTIMES qbserpdq coding,,,c:\qb\bcom45.lib;
@ECHO ----------------------
@ECHO Compiling MAKEMOD.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 MAKEMOD,,;
LH link MAKEMOD coding,,,c:\qb\bcom45.lib;
@ECHO ----------------------
@ECHO Compiling OUTSIDE.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 OUTSIDE,,;
LH link OUTSIDE qbserpdq coding,,,c:\qb\bcom45.lib;
@ECHO ----------------------
@ECHO Compiling TWENTIES.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 TWENTIES,,;
LH link TWENTIES qbserpdq coding,,,c:\qb\bcom45.lib;
@ECHO ----------------------
@ECHO Compiling STONEAGE.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 STONEAGE,,;
LH link STONEAGE qbserpdq coding,,,c:\qb\bcom45.lib;
@ECHO ----------------------
@ECHO Compiling TP-EVENT.BAS
@ECHO ----------------------
LH bc /E /W /O /T /C:512 TP-EVENT,,;
LH link TP-EVENT qbserpdq coding,,,c:\qb\bcom45.lib;
#include <ctype.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <time.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/time.h>
#include "doors.h"
#include "tplib.h"
// COMMON SHARED MinsLeft AS LONG, SecsLeft AS LONG, Rvects AS INTEGER, Parity%
long MinsLeft;
long SecsLeft;
short Rvects;
short Parity;
// COMMON SHARED OldBg AS INTEGER, OldFg AS INTEGER, StatsIn AS INTEGER
short OldBg;
short OldFg;
short StatsIn;
// COMMON SHARED PortNum AS INTEGER, OldTime AS LONG, Rate&, Length%
short PortNum;
long OldTime;
long Rate;
long KeepRate;
short Length;
// COMMON SHARED ret$, NewColor$, GraphMode AS INTEGER, HS%, IRQ%, Port%
#define ret "\r\n"
char NewColor[16];
short GraphMode;
short HS;
short IRQ;
short Port;
// COMMON SHARED NodeNum AS INTEGER
short NodeNum;
// COMMON SHARED PlayingNow AS INTEGER, ChatEnabled AS INTEGER, FossAct%, DBits%
// ' when PlayingNow is set to 1 (by code) then the status
// ' line begins to be displayed after every Ocls
short PlayingNow=0;
short ChatEnabled=0;
short FossAct;
short DBits;
// COMMON SHARED Oldx1 AS INTEGER, Oldx2 AS INTEGER, Oldx3 AS INTEGER
short Oldx1=0;
short Oldx2=0;
short Oldx3=0;
int CarrierLost=0;
struct termios origterm;
void ParseCmdLine(int argc, char **argv)
{
int x;
NodeNum=-1;
for(x=1;x<argc;x++)
{
if(argv[x][0]=='N')
{
NodeNum=atoi(argv[x]+1);
break;
}
}
if(NodeNum==-1)
{
Ocls();
SetColor(15,0,0);
Oprint("Note: You must now pass a node number to Time Port, in the\n");
Oprint(" form Nx. such as TIMEPORT N0 (for a single-node bbs) or\n");
Oprint(" TIMEPORT N1, TIMEPORT N2, TIMEPORT N3, TIMEPORT N18 and\n");
Oprint(" so on. Read the .docs for info on setting this up.\n\n\n");
exit(1);
}
}
void CloseComm(void)
{
tcsetattr(0, TCSANOW, &origterm);
}
void AnsPrint(char *a)
{
}
/* Local stuff... don't need it. */
/*
int xz;
char hot[2]={0,0};
Yuk$ = ""
for(xz=1; x<=strlen(a); x++)
{
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
hot[0]=a[xz-1];
IF hot$ = CHR$(8) THEN ntt = POS(n) - 1: IF ntt < 1 THEN ntt = 1
IF hot$ = CHR$(8) THEN LOCATE CSRLIN, ntt: RETURN
IF hot$ = CHR$(27) THEN Esc = 1: Yuk$ = CHR$(27): RETURN
IF Esc THEN IF (hot$ >= "A" AND hot$ <= "Z") OR (hot$ >= "a" AND hot$ <= "z") THEN GOSUB ANSI: Esc = 0: Yuk$ = "": RETURN
IF Esc THEN Yuk$ = Yuk$ + hot$: RETURN
PRINT hot$;
RETURN
}
}
'****************************************************************************
REM Ansi-Translation routines: call to print very few ansi-escape codes
REM supports H, m, and J (LOCATE, COLOR, and CLS);
'****************************************************************************
ANSI:
Esc = 0
REM deduce the ansi code!
p1 = -1: p2 = -1: p3 = -1: p4 = -1
IF hot$ = "J" THEN CLS : Yuk$ = "": RETURN
IF hot$ <> "m" THEN GOTO NotM
p1 = -1: p2 = -1: p3 = -1: p4 = -1
IF hot$ = "m" THEN p1 = VAL(MID$(Yuk$, 3, 2))
nul1 = 0: nul2 = 0: nul3 = 0
nul1 = INSTR(Yuk$, ";")
IF nul1 THEN p2 = VAL(MID$(Yuk$, nul1 + 1, 2)) ELSE GOTO tzer
nul2 = INSTR(nul1 + 1, Yuk$, ";")
IF nul2 THEN p3 = VAL(MID$(Yuk$, nul2 + 1, 2)) ELSE GOTO tzer
tzer:
n = 0: t = 0
x1 = -1: x2 = -1: x3 = -1: x4 = -1
IF p1 = 0 OR p1 = 1 THEN x1 = p1 ELSE IF p1 >= 30 AND p1 < 40 THEN x2 = p1 ELSE IF p1 >= 40 THEN x3 = p1
IF p2 = 0 OR p2 = 1 THEN x1 = p2 ELSE IF p2 >= 30 AND p2 < 40 THEN x2 = p2 ELSE IF p2 >= 40 THEN x3 = p2
IF p3 = 0 OR p3 = 1 THEN x1 = p3 ELSE IF p3 >= 30 AND p3 < 40 THEN x2 = p3 ELSE IF p3 >= 40 THEN x3 = p3
IF x3 = -1 AND x2 = -1 AND x1 >= 0 THEN x2 = Oldx2: x3 = Oldx3
IF x1 = -1 THEN x1 = Oldx1 'dupj
IF x1 = 0 AND x2 = 0 AND x3 = 0 THEN COLOR 7, 0: Oldx1 = x1: Oldx2 = x2: Oldx3 = x3: RETURN
IF x1 = 0 THEN IF x2 = 30 THEN t = 0 ELSE IF x2 = 31 THEN t = 4 ELSE IF x2 = 32 THEN t = 2 ELSE IF x2 = 33 THEN t = 6 ELSE IF x2 = 34 THEN t = 1 ELSE IF x2 = 35 THEN t = 5 ELSE IF x2 = 36 THEN t = 3 ELSE IF x2 = 37 THEN t = 7
IF x1 = 1 THEN IF x2 = 30 THEN t = 8 ELSE IF x2 = 31 THEN t = 12 ELSE IF x2 = 32 THEN t = 10 ELSE IF x2 = 33 THEN t = 14 ELSE IF x2 = 34 THEN t = 9 ELSE IF x2 = 35 THEN t = 13 ELSE IF x2 = 36 THEN t = 11 ELSE IF x2 = 37 THEN t = 15
IF x3 = 40 THEN n = 0 ELSE IF x3 = 41 THEN n = 4 ELSE IF x3 = 42 THEN n = 2 ELSE IF x3 = 43 THEN n = 6 ELSE IF x3 = 44 THEN n = 1 ELSE IF x3 = 45 THEN n = 5 ELSE IF x3 = 46 THEN n = 3 ELSE IF x3 = 47 THEN n = 7
grk:
IF x3 >= 0 AND x2 >= 0 THEN COLOR t, n: OldFg = t: OldBg = n
IF x2 >= 0 AND x3 < 0 THEN COLOR t: OldFg = t
IF x3 >= 0 AND x2 < 0 THEN COLOR , n: OldBg = n
Oldx1 = x1
Oldx2 = x2
Oldx3 = x3
Yuk$ = "": RETURN
NotM:
IF UCASE$(hot$) <> "F" AND UCASE$(hot$) <> "H" THEN GOTO NotF
x1 = VAL(MID$(Yuk$, 3, 2))
x2 = VAL(MID$(Yuk$, INSTR(4, Yuk$, ";") + 1, 2))
LOCATE x1, x2
RETURN
NotF:
IF hot$ = "A" OR hot$ = "B" OR hot$ = "C" OR hot$ = "D" THEN v = VAL(MID$(Yuk$, INSTR(Yuk$, "[") + 1, 1)) ELSE GOTO NotA
a = CSRLIN: b = POS(n)
IF hot$ = "A" THEN LOCATE a - v, b: RETURN
IF hot$ = "B" THEN LOCATE a + v, b: RETURN
IF hot$ = "C" THEN LOCATE a, b + v: RETURN
IF hot$ = "D" AND b >= 3 THEN LOCATE a, b - v: RETURN
RETURN
NotA:
RETURN
END SUB
*/
void DisplayText(char *a)
{
FILE *file;
char path[MAXPATHLEN];
char line[1024];
sprintf(path,"%s%s",DatPath,a);
file=SharedOpen(path,"r",LOCK_SH);
while(!feof(file))
{
readline(line, sizeof(line), file);
RTrim(line);
if(line[0]=='*')
{
Oprint("\r\n");
PressAnyKey();
Ocls();
}
else
{
Oprint(line);
Oprint("\r\n");
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
}
}
fclose(file);
}
void DisplayTitle(char *a)
{
char path[MAXPATHLEN];
FILE *file;
char line[1024];
sprintf(path,"%s%s",DatPath,a);
file=SharedOpen(path,"r",LOCK_SH);
while(!feof(file))
{
readline(line, sizeof(line), file);
Oprint(line);
Oprint("\r\n");
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
}
fclose(file);
}
void ExitGame(void)
{
// 'Final Commands before ending-- no saving is done
// 'because routine should already do it if need be.
// 'CarrierDetect 1 ' <-- Re-enable carrier detection. Carrier had
// ' better be true or UEVENT willl occur on
// ' next Transmit
SaveGame();
// TIMER OFF
if(PortNum && Rvects)
CloseComm();
exit(0);
}
void GotHUP(int sig)
{
CarrierLost=1;
}
void InitPort(void)
{
struct termios newterm;
tcgetattr(0, &origterm);
memcpy(&newterm, &origterm, sizeof(newterm));
cfmakeraw(&newterm);
tcsetattr(0, TCSANOW, &newterm);
signal(SIGHUP, GotHUP);
setvbuf(stdout, NULL, _IONBF, 0);
/*
OpenComm(Port, IRQ, Length, Parity, DBits, Rate, HS, FossAct
IF Port% > 0 AND IRQ% <> 6484 AND FossAct% = 1 THEN
PRINT " SYSOP: Fossil was not initialized correctly."
END
END IF
*/
}
char *KbIn (char *dest, long Lmax)
{
time_t start;
fd_set readfds;
struct timeval timeout;
char inch[2]={0,0};
int v;
start=time(NULL);
timeout.tv_sec=0;
timeout.tv_usec=0;
while(1)
{
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
FD_ZERO(&readfds);
FD_SET(0,&readfds);
if(select(1, &readfds, NULL, NULL, &timeout)>0)
{
fread(inch, 1, 1, stdin);
}
else
break;
}
Oprint("\b"); // '=179
timeout.tv_sec=1;
timeout.tv_usec=0;
dest[0]=0;
while(1)
{
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
FD_ZERO(&readfds);
FD_SET(0,&readfds);
if(select(1, &readfds, NULL, NULL, &timeout)>0)
{
fread(inch, 1, 1, stdin);
if(inch[0]=='\b')
{
v = strlen(dest);
if(v>0)
{
Oprint(" \b\b \b\b");
dest[v-1]=0;
}
}
if(inch[0]=='\n' || inch[0]=='\r')
{
Oprint(" \b");
return(dest);
}
if(toupper(inch[0]) > '\x1f')
{
write(0,inch, 1);
strcat(dest,inch);
Oprint("\b");
}
if(strlen(dest)>=Lmax)
{
Oprint(" \b");
return(dest);
}
}
else
{
if(time(NULL)-start >= 120)
{
ExitGame(); // 'close the communications and end program
}
}
}
}
void Ocls(void)
{
SetColor(7, 0, 0);
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
Oprint("\e[2J\e[1;1H");
/* Status line --- unneeded */
/* IF PlayingNow > 0 THEN
'now, code to display status line
LOCATE 25, 1
t$ = LTRIM$(STR$(SecsLeft)): IF LEN(t$) < 2 THEN t$ = "0" + t$
q$ = Pad$(LTRIM$(STR$(MinsLeft)) + ":" + t$, 9)
COLOR 9, 1
PRINT "۲ ";
COLOR 10, 1
PRINT Pad$(RemoveColor$(Alias$), 16);
COLOR 0, 1: PRINT " ";
COLOR 10, 1: PRINT Pad$(User$, 22);
COLOR 0, 1: PRINT " ";
COLOR 11, 1: PRINT "Mins: " + q$;
COLOR 0, 1: PRINT " ";
COLOR 14, 1: PRINT "^T = Chat ";
COLOR 9, 1: PRINT "";
Position 1, 1
COLOR 7, 0
END IF */
}
void Oprint(char *instr)
{
char *str;
char a[256];
strcpy(a,instr);
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
for(str=a;*str;str++)
{
if(str[0]=='`')
{
str++;
switch(str[0])
{
case '0':
SetColor(10, 0, 0);
break;
case '1':
SetColor(1, 0, 0);
break;
case '2':
SetColor(2, 0, 0);
break;
case '3':
SetColor(3, 0, 0);
break;
case '4':
SetColor(4, 0, 0);
break;
case '5':
SetColor(5, 0, 0);
break;
case '6':
SetColor(6, 0, 0);
break;
case '7':
SetColor(7, 0, 0);
break;
case '8':
SetColor(8, 0, 0);
break;
case '9':
SetColor(9, 0, 0);
break;
case '!':
SetColor(11, 0, 0);
break;
case '@':
SetColor(12, 0, 0);
break;
case '#':
SetColor(13, 0, 0);
break;
case '$':
SetColor(14, 0, 0);
break;
case '%':
SetColor(15, 0, 0);
break;
default:
write(0,"`",1);
}
}
else
write(0,str,1);
}
}
char *Owait(char *dest)
{
time_t start;
fd_set readfds;
struct timeval timeout;
timeout.tv_sec=0;
timeout.tv_usec=0;
while(1)
{
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
FD_ZERO(&readfds);
FD_SET(0,&readfds);
if(select(1, &readfds, NULL, NULL, &timeout)>0)
{
fread(dest, 1, 1, stdin);
}
else
break;
}
dest[0]=0;
dest[1]=0;
start=time(NULL);
timeout.tv_sec=1;
timeout.tv_usec=0;
while(1)
{
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
FD_ZERO(&readfds);
FD_SET(0,&readfds);
if(select(1, &readfds, NULL, NULL, &timeout)>0)
{
fread(dest, 1, 1, stdin);
return(dest);
}
else
{
if(time(NULL)-start >= 120)
{
ExitGame(); // 'close the communications and end program
}
}
}
}
char *PickRandom(char *dest, char *a)
{
FILE *file;
char path[MAXPATHLEN];
char line[1024];
int x;
int y;
sprintf(path,"%s%s",DatPath,a);
file=SharedOpen(path, "r", LOCK_SH);
readline(line, sizeof(line), file);
RTrim(line);
y=random()%atoi(line)+1;
for(x=1;x<=y;x++)
{
readline(dest, 256, file);
RTrim(dest);
}
fclose(file);
return(dest);
}
void Position (short x, short y)
{
char code[12];
if(x < 1 || y < 1 || x > 80 || y > 24)
return;
sprintf(code,"\e[%d;%dH",y,x);
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
Oprint(code);
}
void PressAnyKey(void)
{
char inch[2];
Oprint(" `1-`9-`3-`!-Press any key to continue-`3-`9-`1-");
Owait(inch);
Oprint("`7\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r\n");
}
void UCase(char *str)
{
char *p;
for(p=str;*p;p++)
{
*p=toupper(*p);
}
}
void ReadLinkTo(void)
{
char path[MAXPATHLEN];
FILE *file;
char a[256];
char b[256];
char e[256];
char f[256];
char i[256];
char s[256];
char g[256];
char h[256];
char ii[256];
char Jj[256];
char aia[256];
char Fas[256];
char buf[256];
char y[256];
char o1[256];
char o2[256];
char o3[256];
char c[256];
char *istr;
char str[256];
short B1;
short b2;
short b3;
short E1;
short e2;
short e3;
short f1;
short f2;
short f3;
short i1;
short I2;
short i3;
short s1;
short s2;
short s3;
short x;
IRQ = 0;
Rate = 0;
Port = 0;
strcpy(Bad, "Unknown");
if(NodeNum == 0)
strcpy(path,"linkto.bbs");
else
sprintf(path,"linkto.%d",NodeNum);
file=SharedOpen(path, "r", LOCK_SH);
strcpy(Bad, "Not all 10 lines in LINKTO");
readline(a, 256, file);
RTrim(a);
readline(b, 256, file);
RTrim(b);
readline(e, 256, file);
RTrim(e);
readline(f, 256, file);
RTrim(f);
readline(i, 256, file);
RTrim(i);
readline(s, 256, file);
RTrim(s);
readline(g, 256, file);
RTrim(g);
readline(h, 256, file);
RTrim(h);
readline(ii, 256, file);
RTrim(ii);
readline(Jj, 256, file);
RTrim(Jj);
readline(aia, 256, file);
RTrim(aia);
readline(Fas, 256, file);
RTrim(Fas);
FossAct = atoi(Fas);
Rvects = atoi(aia);
HS = atoi(ii);
fclose(file);
B1 = atoi(Mid(buf, b, 1, 2));
b2 = atoi(Mid(buf, b, 4, 2));
b3 = atoi(Mid(buf, b, 7, 2));
E1 = atoi(Mid(buf, e, 1, 2));
e2 = atoi(Mid(buf, e, 4, 2));
e3 = atoi(Mid(buf, e, 7, 2));
f1 = atoi(Mid(buf, f, 1, 2));
f2 = atoi(Mid(buf, f, 4, 2));
f3 = atoi(Mid(buf, f, 7, 2));
i1 = atoi(Mid(buf, i, 1, 2));
I2 = atoi(Mid(buf, i, 4, 2));
i3 = atoi(Mid(buf, i, 7, 2));
istr=i+9;
s1 = atoi(Mid(buf, s, 1, 2));
s2 = atoi(Mid(buf, s, 4, 2));
s3 = atoi(Mid(buf, s, 7, 2));
strcpy(Bad, "L:2");
UCase(g);
Mid(o1, g, 1, 1);
Mid(o2, g, 2, 1);
Mid(o3, g, 3, 1);
if(o1[0]=='E')
Parity = 2;
else if (o1[0] == 'O')
Parity = 1;
else
Parity = 0;
if(o2[0] == '7')
Length = 7;
else
Length = 8;
DBits = atoi(o3);
IRQ = atoi(h);
sprintf(Bad, "Where's %s Door file?", a);
file=SharedOpen(a, "r", LOCK_SH);
sprintf(Bad, "ErrPars %s.",a);
for(x = 1; x<= B1; x++)
readline(buf, sizeof(buf), file);
RTrim(buf);
Mid(y, buf, b2, b3);
strcpy(User, y);
strcpy(str, a);
UCase(str);
if(strstr(str,"DORINFO")!=NULL)
{
readline(c, sizeof(c), file);
RTrim(c);
strcat(User," ");
strcat(User, c);
}
fclose(file);
file=SharedOpen(a, "r", LOCK_SH);
for(x=1; x<=E1; x++)
readline(buf, sizeof(buf), file);
RTrim(buf);
Mid(y, buf, e2, e3);
Port = atoi(y);
fclose(file);
file=SharedOpen(a, "r", LOCK_SH);
if (f1>0 && f2>0 && f3>0)
{
for(x=1; x<=f1; x++)
readline(buf, sizeof(buf), file);
RTrim(buf);
Mid(y, buf, f2, f3);
MinsLeft = atoi(y);
SecsLeft = 30;
}
else
{
MinsLeft = 15;
SecsLeft = 30;
}
fclose(file);
GraphMode = -1;
file=SharedOpen(a, "r", LOCK_SH);
if (i1 > 0 && I2 > 0 && i3 > 0)
{
GraphMode = 0;
for(x=1; x<=i1; x++)
readline(buf, sizeof(buf), file);
RTrim(buf);
Mid(c, buf, I2, i3);
if(!strcasecmp(c, istr))
GraphMode = 1;
}
fclose(file);
file=SharedOpen(a, "r", LOCK_SH);
for(x = 1; x <= s1; x++)
readline(buf, sizeof(buf), file);
RTrim(buf);
Mid(y, buf, s2, s3);
Rate = atoi(y);
KeepRate = Rate;
fclose(file);
if(atoi(Jj) == 1 && FossAct == 0)
Rate = 0;
if(FossAct == 1)
{
if(Rate > 19200)
Rate = 38400;
else if (Rate > 9600)
Rate = 19200;
else if (Rate > 4800)
Rate = 9600;
else if (Rate > 2400)
Rate = 4800;
else if (Rate > 1200)
Rate = 2400;
else if (Rate > 300)
Rate = 1200;
else if (Rate > 0)
Rate = 300;
else
Rate = 0;
}
RTrim(User);
InitPort();
PortNum = Port;
OldTime = time(NULL);
}
void SetColor(short f, short b, short oeo)
{
short Fg = 0;
short Bg = 0;
short Rg = -1;
if(f == 1)
Fg = 4;
if (f == 2) Fg = 2;
if (f == 3) Fg = 6;
if (f == 4) Fg = 1;
if (f == 5) Fg = 5;
if (f == 6) Fg = 3;
if (f == 7) Fg = 7;
if (f == 8) Fg = 8;
if (f == 9) Fg = 12;
if (f == 10) Fg = 10;
if (f == 11) Fg = 14;
if (f == 12) Fg = 9;
if (f == 13) Fg = 13;
if (f == 14) Fg = 11;
if (f == 15) Fg = 15;
if (b == 1) Bg = 4;
if (b == 2) Bg = 2;
if (b == 3) Bg = 6;
if (b == 4) Bg = 1;
if (b == 5) Bg = 5;
if (b == 6) Bg = 3;
if (b == 7) Bg = 7;
/* '*** specify a -1 to omit that field
'0=black, 1=red, 2=green, 3=brown
'4-blue, 5=mag, 6=cyan, 7=gray
'-----------------------------------
'although these are translated from standard */
if (Fg >= 0 && Fg <= 7)
{
Rg = 0;
Fg = 30 + Fg;
}
if (Fg >= 8 && Fg <= 15)
{
Rg = 1;
Fg = 30 + Fg - 8;
}
if (Bg >= 0 && Bg <= 7)
Bg = 40 + Bg;
if (Bg >= 8 && Bg <= 15)
Bg = 40 + Bg - 8;
if(Rg>=0 && Fg>0 && Bg>0)
sprintf(NewColor,"\e[%hd;%hd;%hdm",Rg,Fg,Bg);
else if (Rg>=0 && Fg>0)
sprintf(NewColor,"\e[%hd;%hdm",Rg,Fg);
else if (Fg>0 && Bg>0)
sprintf(NewColor,"\e[%hd;%hdm",Fg,Bg);
else if (Rg>=0 && Bg>0)
sprintf(NewColor,"\e[%hd;%hdm",Rg,Bg);
else if (Rg>=0)
sprintf(NewColor,"\e[%hdm",Rg);
else if (Fg>0)
sprintf(NewColor,"\e[%hdm",Fg);
else if (Bg>0)
sprintf(NewColor,"\e[%hdm",Bg);
if(PortNum && CarrierLost)
{
ExitGame();
exit(1);
}
if(!oeo)
Oprint(NewColor);
}
void Paus(long x)
{
struct timeval ti;
ti.tv_sec=x;
ti.tv_usec=0;
select(0,NULL,NULL,NULL,&ti);
}
void ParseCmdLine(int argc, char **argv);
void AnsPrint(char *a);
void DisplayText(char *a);
void DisplayTitle(char *a);
void ExitGame(void);
void InitPort(void);
char *KbIn(char *dest, long Lmax);
void Ocls(void);
void Oprint(char *a);
char *Owait(char *dest);
char *PickRandom(char *dest, char *a);
void Position (short x, short y);
void PressAnyKey(void);
void UCase(char *str);
void ReadLinkTo(void);
void SetColor(short f, short b, short oeo);
void Paus(long x);
// COMMON SHARED MinsLeft AS LONG, SecsLeft AS LONG, Rvects AS INTEGER, Parity%
extern long MinsLeft;
extern long SecsLeft;
extern short Rvects;
extern short Parity;
// COMMON SHARED OldBg AS INTEGER, OldFg AS INTEGER, StatsIn AS INTEGER
extern short OldBg;
extern short OldFg;
extern short StatsIn;
// COMMON SHARED PortNum AS INTEGER, OldTime AS LONG, Rate&, Length%
extern short PortNum;
extern long OldTime;
extern long Rate;
extern long KeepRate;
extern short Length;
// COMMON SHARED ret$, NewColor$, GraphMode AS INTEGER, HS%, IRQ%, Port%
#define ret "\r\n"
extern char NewColor[16];
extern short GraphMode;
extern short HS;
extern short IRQ;
extern short Port;
// COMMON SHARED NodeNum AS INTEGER
extern short NodeNum;
// COMMON SHARED PlayingNow AS INTEGER, ChatEnabled AS INTEGER, FossAct%, DBits%
// ' when PlayingNow is set to 1 (by code) then the status
// ' line begins to be displayed after every Ocls
extern short PlayingNow;
extern short ChatEnabled;
extern short FossAct;
extern short DBits;
// COMMON SHARED Oldx1 AS INTEGER, Oldx2 AS INTEGER, Oldx3 AS INTEGER
extern short Oldx1;
extern short Oldx2;
extern short Oldx3;
The room is very dark, but you can see3beings hovering in the darkness. In 
voices that seem to be inside your head,
they speak in unison. "Your Time is at an end," they say.
"Thank you for your help in testing the Chaos Threshold. In
 a few more years, we will know precisely
 what happens when the fabric of Time
unravels from a result of continual Timetampering. Your pa
rticipation in thisexciting experiment will be duly noted." You are then told that you are allowed one final use of the Time Portal,and that you are free to retu
rn to your own time and live your life inpeace. After thinking about it, you feel used and insignificant.
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜSilence dominates for several seconds. Û°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°ÛYou don't know what to say to theseÛ°°°°°°°°
°°°°°°°°°°°°°°°°°°°°°°°Ûfaceless Beings of Time that. You wereÛ°°°°°°°±°°°°°°°°°°°°°°°°°°°°°°°Û
just a part of an experiment, designed toÛ°°°°°°±°°°°°°°°°±°°°°°±°°°°°°°°Û destroy Time itself. The beings ass
ureÛ°°°°°±°°±°°°°°°±°°°°°±±°°°°°°°°Û you that once Time begins to disintigrate,Û°°°°°
±°°±°°°°±°°±°°°°±°°°°°°°°°Û they will themselves travel to the pastÛ°°°°°°
°±°°°°°°°°°°°°°°°°°°°°°°°Û and put a stop to it all before it everÛ°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°Û starts, restoring time and getting theirÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Ûtest results all in one valliant effort.
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßIt doesn't make you fell any better.You return to the Hanger and stare at the Time Portal for a long time. Thenyou decide that the Old Man on the mountain had the right
 idea. Instead ofgoing to your own time, you decide to find your own mountain in the StoneAge, and live the rest of your life in seclusion.
You soar from the mountain top in a fashion thatmuch resembles hang-gliding. As the wind begins
to pick up, you realize that you might plummetto the groundif you don't do some fancy moves
       and get back on course. You decide to alter   you
r direction four times. What moves will you       try? Use N,S,E,W for the directions. You can
     repeat directions also, such as NEWN or SSSW or        
 NWES or SSSS or WNSW... you get the idea...Ifyou aren't right, you'll probably crash.
This diff is collapsed.
`0 First of all, I'm not an artist. So if my Room screens bug you or you
`0 would just rather not see them, the global command "X" during the game
`0 will toggle the room ANSI's on and off.
`2 The story is simple. You were minding your own business one day and
`2 suddenly found yourself in the distant future, in a Hanger where you
`2 could travel to the past. You aren't alone, many other recruits are
`2 here also.
*
`2 The object of the game is to survive and progress. This is really very
`2 self-explanatory. You can kill mutants to gain money and experience, and
`2 you can even kill each other.
`2 Be sure to use the [I]nventory global command. This is how you heal
`2 yourself, once you buy a Health Crystal. As this game expands, your
`2 inventory will become increasingly important as the amount of items you
`2 have access to will increase.
*
`3 Note: This game is "complete" in the fact that aside from any bugs that
`3 might exist, you should be able to win the game (after your Sysop sends
`3 the Registration fee). However, I hope to expand it very soon, add more
`3 features and options, then begin on IGM's (whole new time periods). In
`3 addition to the Times built-in, an Unregistered Time Port will support up
`3 to 3 more IGM's. When registered, the game will read up to 26 of them.
*
#include <string.h>
#include "doors.h"
#include "tplib.h"
# // ' ***** MakeMod Module *****
int main(int argc, char **argv)
{
FILE *file;
Ocls();
SetColor(13, 0, 0);
Oprint(" ------------------\r\n");
Oprint(" MAKEMOD.EXE Active\r\n");
Oprint(" Building DataFiles\r\n");
Oprint(" ------------------\r\n");
file=SharedOpen("items.dat","w",LOCK_EX);
/*
'***************************** DATA DEFINITIONS **********************
'Description(20)
'Buy Cost(8)
'Num(3)
'.2345678901234567890.2345678.01.345.7890123456789
*/
fputs("Healing Crystal 5 1 ",file);
fputs("Sturdy Stick 100 2 ",file);
fputs("Nylon String 100 3 ",file);
fputs("Sharp, Bent Nail 100 4 ",file);
fputs("Fishing Pole 0 5 ",file);
fputs("Fresh Fish 0 6 ",file);
fputs("Shovel 5000 7 ",file);
fputs("Lock Picks 2000 8 ",file);
fputs("Diamond 250000 9 ",file);
fputs("Huge Board 0 10 ",file);
fputs("Long Feather 0 11 ",file);
fputs("Light Fabric 0 12 ",file);
fputs("Huge Wings 0 13 ",file);
SetColor(12, 0,0);
fclose(file);
Oprint(" -- ITEMS.DAT --\r\n");
file=SharedOpen("deaths.txt","w",LOCK_EX);
fputs("22\r\n",file);
fputs("`$*1 yells out in anguish!\r\n",file);
fputs("`$*2 is very pleased with the outcome.\r\n",file);
fputs("`$*1 dies without uttering a word.\r\n",file);
fputs("`@'I bet you want to be just like me,' says *2 to *1.\r\n",file);
fputs("`@'It wasn't even a challenge,' comments *2.\r\n",file);
fputs("`#'*1 is so weak,' taunts *2.\r\n",file);
fputs("`#'Let's fight again when you aren't such a wimp!' states *2.\r\n",file);
fputs("`#*1 tries to trip *2 on the way to the ground.\r\n",file);
fputs("`#'Yes, I'm a sore loser,' states *1. 'I'll have my revenge!'\r\n",file);
fputs("`@*2 almost feels guilty... but gets over it quickly.\r\n",file);
fputs("`@'It was my pleasure, *1,' says *2 smugly.\r\n",file);
fputs("`4'You'll pay for that, *2,' grunts *1.\r\n",file);
fputs("`4'You cheated somehow, *2,' says *1 in denial.\r\n",file);
fputs("`4'Life isn't very fair,' *1 comments.\r\n",file);
fputs("`@*2 kicks *1 again for good measure\r\n",file);
fputs("`2*2 laughs at *1's unfortunate demise.\r\n",file);
fputs("`6*1 is in shock; 'I thought I was the best!'\r\n",file);
fputs("`4'I almost had you,' says *1 to *2\r\n",file);
fputs("`5*1 is humiliated; `#'Don't ever come near me again, *2!'\r\n",file);
fputs("`5'I feel pretty worthless right now,' *1 comments.\r\n",file);
fputs("`2'I was having such a great day before this!' grunts *1.\r\n",file);
fputs("`2'You should be ashamed for that, *2,' *1 whines.\r\n",file);
fclose(file);
Oprint(" -- DEATHS.TXT --\r\n");
file=SharedOpen("daily.txt","w",LOCK_EX);
fputs("9\r\n",file);
fputs("`@A temporal shockwave came from a 1943 Bermuda Triangle accident.\r\n",file);
fputs("`@The autograph of Christopher Columbus was obtained today.\r\n",file);
fputs("`@A Time Traveler introduced Small Pox to the Aztecs, but was killed by Cortez.\r\n",file);
fputs("`@A Traveler went to Ancient Greece last week but has yet to return.\r\n",file);
fputs("`@Two Time Travelers were killed by dinosaurs eons ago, today.\r\n",file);
fputs("`@Airplane designs were smuggled to the Wright Brothers today.\r\n",file);
fputs("`@Zagala Benvora killed a Time Traver during WW4 today.\r\n",file);
fputs("`@A Time Traveler inspired King Henry to start a school for sailors today.\r\n",file);
fputs("`0Evidence that aliens built the Egyptian Pyramids was uncovered today.\r\n",file);
fclose(file);
Oprint(" -- DAILY.TXT --\r\n");
file=SharedOpen("mutants.1","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Brown-Eyed Blob\r\n",file);
fputs("Jhengo Warrior\r\n",file);
fputs("Mutant Bird\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.1 --\r\n");
file=SharedOpen("mutants.2","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Green-Eyed Blob\r\n",file);
fputs("Mutant Rat\r\n",file);
fputs("Toy Cyborg\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.2 --\r\n");
file=SharedOpen("mutants.3","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Blue-Eyed Blob\r\n",file);
fputs("Six-Toed Blob\r\n",file);
fputs("Deformo\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.3 --\r\n");
file=SharedOpen("mutants.4","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Flying Phantom\r\n",file);
fputs("Golden Robot\r\n",file);
fputs("Deformo's Twin\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.4 --\r\n");
file=SharedOpen("mutants.5","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Two-Headed Rat\r\n",file);
fputs("Slobbering Fool\r\n",file);
fputs("White Specter\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.5 --\r\n");
file=SharedOpen("mutants.6","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Twisted Tarzan\r\n",file);
fputs("Radioactive Child\r\n",file);
fputs("Two-Headed Dog\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.6 --\r\n");
file=SharedOpen("mutants.7","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Radioactive Mutant\r\n",file);
fputs("Two-Headed Chimp\r\n",file);
fputs("Power Thrower\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.7 --\r\n");
file=SharedOpen("mutants.8","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Mutated Maggot\r\n",file);
fputs("Mutated Worm\r\n",file);
fputs("Two-Headed Beast\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.8 --\r\n");
file=SharedOpen("mutants.9","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Evil-Eyed Cyborg\r\n",file);
fputs("Cyclops Cyborg\r\n",file);
fputs("Radioactive Blog\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.9 --\r\n");
file=SharedOpen("mutants.10","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Mutant Roach\r\n",file);
fputs("Mutant Punk Rocker\r\n",file);
fputs("Mutant Repairman\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.10 --\r\n");
file=SharedOpen("mutants.11","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Mutated Disease\r\n",file);
fputs("Mutated Cyborg\r\n",file);
fputs("Siamese Mutants\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.11 --\r\n");
file=SharedOpen("mutants.12","w",LOCK_EX);
fputs("3\r\n",file);
fputs("Ultimate Demon\r\n",file);
fputs("Super Mutant\r\n",file);
fputs("Living Paradox\r\n",file);
fclose(file);
Oprint(" -- MUTANTS.12 --\r\n");
return(0);
}
void UseItem(long c,short b) {}
void SaveGame(void) {}
This diff is collapsed.
You are standing in a huge building. dust is drifting through the air and settling on the 
empty floor. The building reminds you of aUwarehouse, with small windows high on the
 walls.     Against one wall of the rectangular room is a Ŀ Ŀ
   line of upright capsules, each with an iced-over   
  portal through which the suspended faces of      
 frozen people are visible. At the other end, ablue and red machine (the time portal itself)
sits, awaiting for activation... awaiting to release the power of Time Travel.
`6You are standing in a huge building. Dust is drifting through the air
and settling on the empty floor. The building reminds you of a warehouse,
with small windows high on the walls. Against one wall of the rectangular
room is a line of upright capsules, each with an iced-over portal through
which the faces of frozen people are visible. At the other end, a blue
and red machine (the time portal itself) sits, awaiting for activation...
awaiting to release the power of Time Travel.
     "My name is *bl* *blp* *bllp* BLIP" blurts the robot.  
^  "I have an assortment of defensive items to show you."    
`6"My name is *bl* *blp* *bllp* BLIP" blurts the robot. "I have an
assortment of defensive items to show you."
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment