/****************************************************************************\ * * * C R E A T O R O F L E G E N D S * * (AberMud Version 5) * * * * The Creator Of Legends System is (C) Copyright 1989 Alan Cox, All Rights * * Reserved. * * * \****************************************************************************/ #include "System.h" Module "Table Control Commands"; Version "1.01"; Author "Alan Cox"; /* * Commands for editing the tables. * * 1.00 AGC Original Commands * 1.01 AGC Support For Named Tables */ void Cmd_ListTables(i) ITEM *i; { TABLE *t=TableList; if(!ArchWizard(i)) { SendItem(i,"Two small, one large and a multiplication..\n"); return; } while(t) { SendItem(i,"%d)\t%s\n",t->tb_Number,TextOf(t->tb_Name)); t=t->tb_Next; } } void Cmd_AddTable(i) ITEM *i; { TABLE *t; FILE *f; int n; if(!ArchWizard(i)) { SendItem(i,"Ask a carpenter..\n"); return; } n=GetNumber(); if(n==-1) { SendItem(i,"Which Table Though ?\n"); return; } t=FindTable(n); if(t) { if(t->tb_First) { SendItem(i,"Table Exists!\n"); return; } } if(t==NULL) { if(!GetParsedWord()) { SendItem(i,"You must specify a table name.\n"); return; } if(FindTableByName(WordBuffer)!=-1) { SendItem(i,"Table name already in use.\n"); return; } t=NewTable(n,WordBuffer); } GetAll(); f=fopen(WordBuffer,"r"); if(f==NULL) { SendItem(i,"Can't open file : %s.\n",WordBuffer); return; } EncodeTable(i,t,f); fclose(f); } void Cmd_DeleteTable(i) ITEM *i; { TABLE *t; int n; if(!ArchWizard(i)) { SendItem(i,"Ask a carpenter..\n"); return; } if(GetParsedWord()==NULL) { SendItem(i,"Which Table ?\n"); return; } if(isdigit(*WordBuffer)) { sscanf(WordBuffer,"%d",&n); } else { n=FindTableByName(WordBuffer); if(n==-1) { SendItem(i,"No Such Table.\n"); return; } } t=FindTable(n); if(t==NULL) { SendItem(i,"No Such Table.\n"); return; } DeleteTable(t); } void Cmd_NewTable(i) ITEM *i; { TABLE *t; int n; if(!ArchWizard(i)) { SendItem(i,"Ask a carpenter..\n"); return; } n=GetNumber(); if(n==-1) { SendItem(i,"Which Table Though ?\n"); return; } t=FindTable(n); if(t) { if(t->tb_First) { SendItem(i,"Table Exists!\n"); return; } } if(t==NULL) { if(!GetParsedWord()) { SendItem(i,"You must specify a table name.\n"); return; } if(FindTableByName(WordBuffer)!=-1) { SendItem(i,"Table name already in use.\n"); return; } t=NewTable(n,WordBuffer); } } void Cmd_NameTable(i) ITEM *i; { TABLE *t; int n; if(!ArchWizard(i)) { SendItem(i,"I hearby christen this table 'Fred'.\n"); return; } n=GetNumber(); if(n==-1) { SendItem(i,"Which table though ?\n"); return; } t=FindTable(n); if(t==NULL) { SendItem(i,"No such table.\n"); return; } if(!GetParsedWord()) { SendItem(i,"You must specify a table name.\n"); return; } if(FindTableByName(WordBuffer)!=-1) { SendItem(i,"Table name already in use.\n"); return; } FreeText(t->tb_Name); t->tb_Name=AllocText(WordBuffer); }