Renegade-1.19/RGUPDT4.PAS

126 lines
3.5 KiB
Plaintext
Raw Normal View History

2013-02-04 15:56:58 -08:00
{$M 49152,0,65536}
PROGRAM RGUPDATE;
USES
Crt,
Dos,
TimeFunc;
{$I records.pas}
TYPE
oldnoderec= { MULTNODE.DAT }
{$IFDEF WIN32} packed {$ENDIF} record
User:word; { What user number }
UserName:string[36]; { User's name }
CityState:string[30]; { User's location }
Sex:char; { User's sex }
Age:byte; { User's age }
LogonTime:unixtime; { What time they logged on }
activity:byte; { What are they doing? }
Description:string[50]; { Optional string }
Status:NodeFlagSet;
Room:byte; { What room are they in? }
Channel:word; { What channel are they in? }
Invited:array[0..31] of set of 0..7; { Have they been invited ? }
Booted:array[0..31] of set of 0..7; { Have they been kicked off ? }
Forget:array[0..31] of set of 0..7; { Who are they forgetting? }
end;
function IntToStr(i: longint): string;
var
s: string;
begin
s := '';
str(I,S);
IntToStr := s;
end;
function sqoutsp(s:string):string;
begin
while (pos(' ',s)>0) do delete(s,pos(' ',s),1);
sqoutsp:=s;
end;
function exist(fn: astr): boolean;
var
srec: searchrec;
begin
findfirst(sqoutsp(fn),anyfile,srec);
exist := (doserror = 0);
end;
PROCEDURE CvtNodeFile(General: GeneralRecordType);
VAR
OldNodeFile: FILE OF OldNodeRec;
NodeFile: FILE OF NodeRecordType;
OldNode: OldNodeRec;
Node: NodeRecordType;
Counter: Byte;
BEGIN
FOR Counter := 1 To 255 Do
IF Exist(General.DataPath+'NODE'+Inttostr(Counter)+'.DAT') THEN
BEGIN
Write('Converting "NODE'+inttostr(Counter)+'.DAT" file ... ');
Assign(Oldnodefile,General.DataPath+'NODE'+inttostr(Counter)+'.DAT');
Reset(Oldnodefile);
Read(Oldnodefile,Oldnode);
Assign(nodefile,General.DataPath+'NODE'+inttostr(Counter)+'.NEW');
ReWrite(nodefile);
WITH Node DO
BEGIN
User := Oldnode.User;
UserName := Oldnode.UserName;
CityState := Oldnode.CityState;
Sex := Oldnode.Sex;
Age := Oldnode.Age;
LogonTime := Oldnode.LogonTime;
(* Start - Delete *)
{activity := Oldnode.Activity}
(* End - Delete *)
(* Start - Add *)
IF (OldNode.Activity = 2) THEN
GroupChat := TRUE
ELSE
GroupChat := FALSE;
(* End - Add *)
(* Start - Change *)
ActivityDesc := Oldnode.Description;
(* End - Change *)
Status := Oldnode.Status;
Room := Oldnode.Room;
Channel := Oldnode.Channel;
FillChar(Node.Invited,SizeOf(Node.Invited),0);
FillChar(Node.Booted,SizeOf(Node.Booted),0);
FillChar(Node.Forget,SizeOf(Node.Forget),0);
END;
Write(NodeFile,Node);
Close(OldNodeFile);
Close(NodeFile);
Assign(OldNodeFile,General.DataPath+'NODE'+inttostr(Counter)+'.DAT');
Erase(OldNodeFile);
Assign(NodeFile,General.DataPath+'NODE'+inttostr(Counter)+'.NEW');
ReName(Nodefile,General.DataPath+'NODE'+inttostr(Counter)+'.DAT');
WriteLn('Done');
END;
END;
VAR
GR: FILE OF GeneralRecordType;
General: GeneralRecordType;
BEGIN
Write('Reading "RENEGADE.DAT" file ... ');
Assign(GR,'RENEGADE.DAT');
Reset(GR);
Read(GR,General);
Close(GR);
WriteLn('Done');
CvtNodeFile(General);
END.