[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]

    {
    =============================================================

    BLARF! A ** FAST ** GIF EXTRACT UTILITY BY SCOTT "CLEVER BOY"
    TUNSTALL (C) 1995.

    -------------------------------------------------------------

    What a lot of time I took to remove the swearing!! ;)

    This util will extract all of the files from the list in THING.DEF
    to a GIF which can then be edited.

    Make sure you've got PLENTY of hard disk space, preferably
    8 Mb or so, because there are obviously a lot of .GIF files that
    are going to be extracted. (Sorry, but I can't make them PCX)

    HOW IT WORKS
    ------------
    First of all you gotta have :

    (a) A file listing ALL of the graphic entries you want to rip out;
        I've already made such a list for ya (THING.DEF);
        Make a backup of it and load the backup into EDIT (Or somethin)
        then place an asterisk before the entries ya don't want to make
        into a GIF file. (Only those in between the *START and *END)
        Make sure that no "white space" (tabs, spaces etc) between text
        lines are left tho' (Carriage returns are OK between entries) !

        At the end of Thing.DEF note that there is *ENDFILE, this tells
        this util that there is no more GIFS to extract. You MUST have
        this here or you're shit outa luck!

    (B) DMGRAPH handy! Yes, all this program does is repeatedly SHELL
        to DMGRAPH! It's v. handy mind you.

    (C) A GIF directory !

    Now:
    If you want to INSERT the graphic files listed in your own THING.DEF
    file, ya type :

    BLARF -i <Name of text file [THING.DEF]> <Directory where gifs are>

    So let's say you had a file called MONSTERS.TXT in C:\POONTANG dir,
    and that contained all of the names of the shit you wanted to rip out,
    and the directory where you wanted to read your gifs from is
    C:\GRAPHICS\GIF.

    Ya type: BLARF -i C:\POONTANG\MONSTERS.TXT C:\GRAPHICS\GIF

    Easy eh? (Mind and make a backup of your DOOM.WAD file !)

    On the other hand, if you wanted to EXTRACT some graphics
    you use:

    BLARF -e <Name of text file listing monster pics to copy> <Directory where
    gifs go to>

    Piece of piss eh?

    Example:

    *START
    TROOPA1
    ...
    *SARGA1
    ...
    PAINA1
    *END
    ENDFILE

    Means that all objects from TROOPA1 to PAINA1 shall be extracted,
    with the exception of SARGA1.
    ENDFILE means "Stop scanning"

    Oh yeah, if you ever use this program I'd like some kind of feedback
    pleeze.   (Bear with my slang, I'm trying to make an impression
    that I can kick ass  :^)  )
    }

    Program Blarf;

    Uses Dos, Crt;

    {$M 4000,0,0}

    Var TheTextFile: text;
        FirstParam: String[2];
        SecondParam: PathStr;
        GifDirectoryName: PathStr;
        Entry: string[8];
        Extract: boolean;

    Procedure ShellDMGraph(Parameters:string);
    Begin
         SwapVectors;
         Exec('DMGRAPH.EXE',Parameters);
         SwapVectors;
    End;

    Procedure OpenTheTextFile;
    Begin
         Assign(TheTextFile,SecondParam);
         {$I-}
         Reset(TheTextFile);
         {$I+}
         If IoResult <> 0 Then
            Begin
            Writeln;
            Writeln('Could not find the text file required !');
            Halt(0);
         End;
    End;

    Function GetNextEntry: String;
    Var CharacterName: string;
    Begin
         If Not Eof(TheTextFile) Then
            Begin
            ReadLn(TheTextFile,CharacterName);
            While CharacterName[Length(CharacterName)]=' ' do
                  CharacterName:=Copy(CharActerName,1,Length(CharacterName)-1);
            End
         Else
             CharacterName:='*ENDFILE';

         GetNextEntry:=CharacterName;
    End;

    Procedure CloseTheTextFile;
    Begin
         Close(TheTextFile);
         Writeln;
         Writeln('Operation complete.');
    End;

    Procedure InsertGifs;
    Begin
         OpenTheTextFile;

         Entry:=GetNextEntry;

         While Entry <> '*ENDFILE' do
         Begin
              If Entry[1] <> '*' Then
                 Begin
                 Writeln('Inserting ',Entry,'.GIF ..');
                 ShellDMGraph(Entry + ' ' + '-i ' + GIFDirectoryName+ Entry+'.GIF');
              End;
              Entry:=GetNextEntry;
         End;

         CloseTheTextFile;
    End;

    Procedure ExtractGifs;
    Begin
         OpenTheTextFile;
         Extract:=False;

         Entry := GetNextEntry;

         While Entry <> '*ENDFILE' do
         Begin
              If (Entry[1] <> '*') And (Extract = True) Then
                 Begin
                 Writeln('Extracting ',Entry,'to ',GIFDirectoryName+Entry+'.GIF ..');
                 ShellDMGraph(Entry + ' ' + '-e ' + GIFDirectoryName+ Entry+'.GIF');
                 End
              Else
                  If Entry='*START' Then
                     Extract:=True
                  Else
                      If Entry = '*END' Then
                         Extract:=False;

              Entry:=GetNextEntry;
         End;

         CloseTheTextFile;
    End;

    Procedure FuckedUp;
    Begin
         Writeln;
         Writeln('BLARF v1.1 Multiple GIF extractor/insertor for DOOM.');
         Writeln('(C) Scott Tunstall 1995. So don''t mess with it!');
         Writeln;
         Writeln('Usage :');
         Writeln;
         Writeln('BLARF < -i/-e > <Text File> <Gif Directory>');
         Writeln;
         Writeln('-i will INSERT the GIFS into DOOM.WAD .');
         Writeln('-e will EXTRACT the GIFS from DOOM.WAD .');
         Writeln;
         Writeln('Text file is standard EDIT created list of the graphics you');
         Writeln('want extracted from DOOM.WAD for example SKY1 or TROOPA1 etc.');
         Writeln('You can create the text file needed by DMGRAPH. (Thank f**k)');
         Writeln('To make THING.DEF you type:');
         Writeln;
         Writeln('DMGRAPH >THING.DEF -c   (Make sure DMGRAPH is in yer DOOM dir!)');
         Writeln;
         Writeln('Mind and delete all of the ExMx stuff, SSectors, Nodes etc ''cos');
         Writeln('they''ll screw up this program.');
         Writeln;
         Writeln('GIF directory is the source/destination of/for yer GIFS.');
         Writeln;
    End;

    Procedure YeDontSweatMuch;
    Begin
         Writeln;
         Writeln('Invalid parameter passed, -i or -e expected');
         Writeln('Give me any more gyp and I''ll format yer hard disk !');
         Writeln;
    End;

    Begin
         If ParamCount<>3 Then FuckedUp;
         FirstParam:=ParamStr(1);       { switch }
         SecondParam:=ParamStr(2);      { name of text file }
         GIFDirectoryName:=ParamStr(3)+'\';       { name of GIF dir. }

         If (FirstParam = '-i') or (FirstParam = '-I') Then
            InsertGifs
         Else
             If (FirstParam = '-e') or (FirstParam ='-E') Then
                ExtractGifs
             Else
                 YeDontSweatMuch;
    End.

[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]