/* ****************************************************************** */
/*   ADPRO-Scala-Convert V1.0          (C) 1997 Stefan Gluekler       */
/* ****************************************************************** */

OPTIONS RESULTS
ADDRESS 'ADPro'

CALL ADDLIB('rexxsupport.library',0,-30)

  /**************************************************************************/
  /* Einstellungen des Ausgabe-Bildes                                       */
  /* Settings for the ouput picture                                         */
  /*                                                                        */
  Conv_Sprache     = 0     /* Sprache  : 0=Deutsch  1=Englisch              */
                           /* Language : 0=Germany  1=English               */
  Conv_Spezial     = 1     /* 1=Spezialbildermodus  0=Normal (siehe Readme) */
                           /* 1=Specalymode         0=normaly (see Readme)  */
  Conv_Breite      = 704   /* X-Groesse des Bildes  | X-Size from pictures  */
  Conv_Hoehe       = 566   /* Y-Groesse des Bildes  | Y-Size from pictures  */
  Conv_Colors      = 16    /* Anzahl verw. Farben   | Number of color       */
  Conv_Tmp_Path    = "T:"  /* Temporaer-Path        | Temporary-Path        */
  /**************************************************************************/

  Conv_Screen = 7  /* 7 = Hires Interlace */

  IF Conv_Colors > 256 THEN DO
    Conv_Colors = 256
  END

  IF Conv_Sprache = 0 THEN DO
    V_String = 'Konvertierung von Hintergrund-Bildern fuer Scala/InfoChannel.'
    V_String = V_String || '0A'X||'0A'X || 'Eingestelltes Bildformat : '||Conv_Breite||' * '||Conv_Hoehe
    V_String = V_String ||        '0A'X || 'Farbanzahl fuer Bilder   : '||Conv_Colors
    V_String = V_String || '0A'X||'0A'X || 'V1.0 (C) 1997 Stefan Gluekler'
  END
  ELSE DO
    V_String = 'Converter from backgrounds for Scala/InfoChannel.'
    V_String = V_String || '0A'X||'0A'X || 'Your pictureformat : '||Conv_Breite||' * '||Conv_Hoehe
    V_String = V_String ||        '0A'X || 'Your colors        : '||Conv_Colors
    V_String = V_String || '0A'X||'0A'X || 'V1.0 (C) 1997 Stefan Gluekler'
  END

  OKAYN '"ScalaConv: "' '"'||V_String||'"' '"Ok"'

  LFORMAT "UNIVERSAL"
  SFORMAT "IFF"

  IF Conv_Sprache = 0 THEN DO
    OKAYN '"ScalaConv: "'  '"Sollen die Bilder gediethert werden ? (Floyd)"' '"Nein|Ja"'
  END
  ELSE DO
    OKAYN '"ScalaConv: "'  '"Dithering the pictures ? (Floyd)"' '"No|Yes"'
  END

  IF RC = 0 THEN DO
    Conv_Dither = 1
  END
  IF RC = 1 THEN DO
    Conv_Dither = 0
  END

  IF Conv_Sprache = 0 THEN DO
    GETDIR '"ScalaConv: Welches Verzeichnis konvertieren ?"'
  END
  ELSE DO
    GETDIR '"ScalaConv: Which directory do you convert ?"'
  END
  
  IF RC ~= 0 THEN EXIT 1
  Conv_Verzeichnis = ADPRO_RESULT
  IF RIGHT(Conv_Verzeichnis,1)~=':' THEN Conv_Verzeichnis = Conv_Verzeichnis || '/'

  IF Conv_Sprache = 0 THEN DO
    GETDIR '"ScalaConv: In welches Verzeichnis konvertieren ?"'
  END
  ELSE DO
    GETDIR '"ScalaConv: In which directory do you convert ?"'
  END

  IF RC ~= 0 THEN EXIT 1
  Conv_to_Verzeichnis = ADPRO_RESULT
  IF RIGHT(Conv_to_Verzeichnis,1)~=':' THEN Conv_to_Verzeichnis = Conv_to_Verzeichnis || '/'

  AllFiles = SHOWDIR(Conv_Verzeichnis,'f',';')

  Conv_AnzBilder = 0
  DO WHILE AllFiles ~= ''

    PARSE VAR AllFiles FileName ';' AllFiles

    ok=ConvertPic(FileName)
    IF ok~=0 THEN DO
      OKAYN '"Fehler bei Bild :"' '"'||FileName'"' '"OK"'
    END
    ELSE DO
      Conv_AnzBilder = Conv_AnzBilder + 1
    END

  END

  DITHER 0
  PSTATUS 'UNLOCKED'

  IF Conv_Sprache = 0 THEN DO
    OKAYN '"ScalaConv: "'  '"'||'Konvertierung fertig. ('||Conv_AnzBilder||' Bilder)'||'"' '"Ok"'
  END
  ELSE DO
    OKAYN '"ScalaConv: "'  '"'||'Converting is finish. ('||Conv_AnzBilder||' pictures)'||'"' '"Ok"'
  END

EXIT 0

ConvertPic:
PARSE ARG BildName

  DITHER Conv_Dither
  PSTATUS 'UNLOCKED'

  LOAD '"'||Conv_Verzeichnis||BildName||'"'
  IF RC ~= 0 THEN RETURN 1

  ABS_SCALE Conv_Breite Conv_Hoehe
  IF RC ~= 0 THEN RETURN 2

  IF Conv_Spezial = 1 THEN DO
    RENDER_TYPE Conv_Colors/2
  END
  ELSE DO
    RENDER_TYPE Conv_Colors
  END

  SCREEN_TYPE Conv_Screen
  EXECUTE

  IF Conv_Spezial = 1 THEN DO
    IF Conv_Colors > 15 THEN DO
      PPOKE Conv_Colors-8 255 255 255  /* Weiss    */
      PPOKE Conv_Colors-7 160 0   0    /* Rot      */
      PPOKE Conv_Colors-6 0   200 0    /* Gruen    */
      PPOKE Conv_Colors-5 120 120 120  /* Grau     */
      PPOKE Conv_Colors-4 0   200 200  /* Hellblau */
      PPOKE Conv_Colors-3 220 220 0    /* Gelb     */
      PPOKE Conv_Colors-2 200 0   200  /* Violett  */
      PPOKE Conv_Colors-1 180 130 10   /* Braun    */
    END
  END

  SAVE '"'||Conv_Tmp_Path||'ScalaKonfPic.tmp'||'"' IMAGE
  IF RC ~= 0 THEN RETURN 3

  DITHER 0
  PSTATUS 'LOCKED'

  LOAD '"'||Conv_Tmp_Path||'ScalaKonfPic.tmp'||'"'
  IF RC ~= 0 THEN RETURN 4

  RENDER_TYPE Conv_Colors
  SCREEN_TYPE Conv_Screen
  EXECUTE

  SAVE '"'||Conv_to_Verzeichnis||BildName||'"' IMAGE
  IF RC ~= 0 THEN RETURN 5

RETURN 0

