Dokumentation zum Programm ___ _____ / \ / / / / /____/ ____ /___ /____ ____ / / \ / / / / ___ / / / / /_____/ /____/ /____/ /____ /____/ / V 2.0 (c) 1991/92 by Frank Lömker Copyright: ~~~~~~~~~ Das Programm ist Freeware. Es darf frei kopiert werden. Es ist aber nicht erlaubt, es zu kommerziellen Zwecken zu benutzen. Dazu gehört auch ein Diskettenpreis von über 5 DM ! Änderungen müssen dokumentiert werden. Dabei müssen mein Name und mein Copyright erhalten bleiben. Änderungen: ~~~~~~~~~~ V2.0 : - kosmetische Anpassungen an OS 2.0 (3D-Gadgets, Fensterrahmen, grauer Hintergrund) - ReqTools-Requester anstelle des Arp-Requesters - Source-Code-Formate erweitert - neues Source-Code-Format Oberon - maximale Größe: 64*64 Pixel - abschaltbares Raster - weitgehende Bedienung über Tastatur - Help-Fenster für Tastaturbelegung im Hauptmenue - Palette-Requester mit HSV-Farbmodell und den Funktionen Copy, Exchange und Spread - neuer Malmodus für Brushes (Farbe) - Manipulationsmöglichkeiten von Brushes: Drehen, Drehen 90°, Spiegeln, Scheren, Größe ändern - teilweise größere Geschwindigkeit und weniger Stackverbrauch - Fehler bei Assembler- und C-Source-Code und Load-IFF beseitigt - Konvertierung IFF -> Sourcecode, RAW auch für größere Bilder - Sicherheitsabfrage vor Überschreiben von Dateien - bestehende Datei wird bei Abbruch von Save Sprite-Source nicht mehr gelöscht - Save Icon funktioniert auch bei Parameterübergabe korrekt - ein neues Programmicon Libraries: ~~~~~~~~~ Das Programm benötigt die folgenden externen Libraries: - mathtrans.library (befindet sich auf der Workbench-Diskette) - reqtools.library ( (c) by Nico François ) - iff.library ( (c) by Christian A. Weber ) Die Libraries reqtools.library und iff.library befinden sich im Verzeichnis "BobEdi/libs". Das Install-Script ist das Instalationsscript von Nico François für die reqtools.library. Programm: ~~~~~~~~ Das Programm ist dazu gedacht, Bobs und Sprites (auch animierte) zu ge- stalten und als Source-Code für verschiedene Sprachen abzuspeichern. Beim Start des Programms (CLI oder Workbench) kann maximal ein Parameter, ein IFF-Bild oder eine Datei im Bob-Edi- oder RAW-Format, übergeben werden, das dann automatisch geladen wird. Zuerst versucht das Programm, die Voreinstellungen aus der Datei "s:BobEdi.config" zu laden. Danach werden Informationen über das Programm und ähnliches angezeigt. Ver- lassen wird dieser Punkt durch Drücken in der Anzeige oder einen Tasten- druck. Danach wird nach der maximalen Anzahl von Bildern für Animationen gefragt. Möglich sind Werte von 2 bis 99. Falsche Eingaben werden automatisch korri- giert, was auch für die anderen Requester in diesem Programm gilt. Nun gelangt man zum Hauptbildschirm. Den größten Platz nimmt hier die Ver- größerung des aktuellen Bildes ein. Hier kann mit der linken Maustaste mit der Vordergrundfarbe und mit der rechten Maustaste mit der Hintergrundfarbe gemalt werden. Rechts oben befindet sich die Darstellung des Bildes in Originalgröße. Ganz rechts oben ist das Close-Gadget dargestellt, mit dessen Hilfe man das Pro- gramm nach Beantwortung einer Sicherheitsabfrage verlassen kann. Dies kann auch über die Tasten q oder Q erreicht werden. Am unteren Rand des Bildschirms sind die Farben dargestellt. Klickt man ein Feld mit der linken Maustaste an, wählt man die Vordergrundfarbe, anklicken mit der rechten Maustaste wählt die Hintergrundfarbe. Diese Wahl wird rechts von den Farben dargestellt. Alternativ kann die Vordergrundfarbe mit den Tasten 4 bzw. 6 und die Hintergrundfarbe mit Shift und den Tasten 4 bzw. 6 gewählt werden. Rechts davon befindet sich die Koordinatenanzeige. Hier werden, sobald man in der Vergrößerung malt, die aktuellen Koordinaten angezeigt. Am rechten Rand werden die aktuelle Bildnummer und zwei Pfeile, mit denen ein Bild ausgewählt werden kann, dargestellt. Mit dem Pfeil hoch kommt man zum nächsten, mit dem Pfeil runter zum vorherigen Bild. Klickt man die Nummer an, erscheint ein Requester, in dem man das gewünschte Bild direkt anwählen kann. Die Tasten hierfür sind 1 für Pfeil runter, 2 für Pfeil hoch und 3 für den Requester. Rechts von der Vergrößerung des Bildes befindet sich das Hauptmenue. Ist bei einer Funktion ein Buchstabe unterstrichen, kann diese Funktion mit dem entsprechenden Buchstaben (klein oder groß) aufgerufen werden. Hauptmenue: ~~~~~~~~~~ In Klammern hinter der Funktion ist jeweils die Taste angegeben, mit der die Funktion alternativ aufgerufen werden kann. Pfeile(Pfeiltasten): Mit den Pfeilen wird das Bild in die jeweilige Rich- tung um einen Pixel rotiert, d.h. was auf der einen Seite herausgescho- ben wird, erscheint auf der anderen Seite. Pfeil 16(Shift <-): Mit diesm Pfeil wird das Bild um 16 Pixel nach links rotiert. Dies ist für Sprites sinnvoll, da diese nur 16 Pixel breit sind. Soll also ein breiterer Sprite abgespeichert werden, kann dieser Pfeil benutzt werden, um den Sprite in mehrere Teile aufzuteilen. Diskette(d/D): Menue zum Laden und Speichern von Bildern (siehe unten) Fragezeichen(s/S): Menue zum Ändern und Speichern der Einstellungen (siehe unten) I(i/I): Anzeige des Copyrights, Informationen über das Programm und des momentanen Speichers (aufgeteilt in Chip- und Fastmemory). Verlassen wird dieser Punkt, indem in der Anzeige geklickt wird oder eine Taste gedrückt wird. Palette(p/P): Menue zum ändern der Farben (siehe unten) Projektor (a/A): Menue zum Animieren der Bilder (siehe unten) Fotoapparat(c/C): Menue zum Kopieren und Austauschen von einzelnen und mehreren Bildern (siehe unten) geknickter Pfeil(z/Z): Drehen des Bildes im Urzeigersinn um 90°. Ist das Bild nicht quadratisch, wird nur der maximale quadratische Teil gedreht. Doppelpfeil horizontal(x/X): Spiegeln des Bildes an der vertikalen Achse Doppelpfeil vertikal(y/Y): Spiegeln des Bildes an der horizontalen Achse Punkte(./:): Umschalten in den Modus zum Malen von Punkten Linie(l/L): Umschalten in den Linienmodus Rechteck(r): Umschalten in den Rechteckmodus gefülltes Rechteck(R): Umschalten in den Modus für gefüllte Rechtecke Ellipse(e/E): Umschalten in den Ellipsenmodus gießendes Gefäß(f/F): Umschalten in den Füllmodus Schere(b): Kopieren eines beliebigen Ausschnittes in den Copybuffer. Danach wird automatisch Stempel (siehe unten) aktiviert. Stempel(B): Einkleben des kopierten Ausschnittes mit dem Modus, der rechts neben dem Hauptmenue angezeigt wird. Geändert wird er entweder über die Funktionstasten F1-F3 (F1: Normal, F2: Transparent, F3: Farbe) oder im Brushmenue (weiteres siehe dort). Wird mit der rechten Maustaste gemalt, wird der Modus Farbe benutzt. Stempel mit Fragezeichen(n/N): Menue zum Manipulieren von Brushes. (siehe unten) Undo(u/U): Macht die letzte Malaktion, das letzte Drehen oder die letzte Anwahl von CLS rückgängig. Nochmaliges Anwählen von Undo macht dieses wieder rückgängig. CLS(k/K): Löschen des aktuellen Bildes DEL(Del): Löschen aller Bilder. Bevor dies durchgeführt wird, muß eine Sicherheitsabfrage beantwortet werden, da dies nicht wie CLS rückgängig gemacht werden kann. Die Taste Help: Mit Help wird die Tastaturbelegung im Hauptmenue in der Form des Hauptmenues angezeigt. Verlassen wird dieser Punkt, indem in der Anzeige geklickt wird oder eine Taste gedrückt wird. Diskettenmenue: ~~~~~~~~~~~~~~ Dieses Menue dient zum Laden und Speichern von Bildern in verschiedenen Formaten. Dabei wird der ReqTools-Filerequester benutzt. Existiert die Datei beim Speichern schon, muß eine Sicherheitsabfrage beantwortet werden. Werden mehrere Dateien auf einmal gespeichert, gilt dies nur für die erste Datei. von: Bild, ab dem gespeichert bzw. geladen werden soll bis: Bild, bis zu dem gespeichert bzw. geladen werden soll. Beim Laden von IFF-Bildern hat diese Eingabe keine Bedeutung. Load I/B/R: Laden von IFF-Bildern und von Bildern, die vorher mit "Save BobEdi" oder "Save RAW" abgespeichert wurden. Bei IFF-Bildern kann jedes Bild mit maximal 5 Bitplanes (32 Farben) ge- laden werden, die 5. Bitplane wird allerdings gelöscht. Hat das Bild eine maximale Größe von 64 * 64 Pixel, wird es direkt geladen. Ist es größer, wird es vorher angezeigt. Hier kann man mit der linken Maustaste einen Ausschnitt auswählen und mit der rechten Maustaste das Laden ab- brechen. Hat eine Datei mit BobEdi- oder RAW-Bildern mehr Bilder, als man zum Laden angegeben hat, so wird nachgefragt, ob alle Bilder geladen werden sollen. RAW-Bilder können nur wieder eingeladen werden, wenn der Datei-Kommentar nicht geändert wurde ! Save IFF: Speichert die Bilder im gepackten IFF-Format. Sollen dabei mehrere Bilder gleichzeitig gespeichert werden, werden sie in einzelnen Dateien der Form "name.xx" gespeichert. xx ist dabei die Nummer des Bildes. Save BobEdi: Seichert die Bilder im RAW-Format mit einem 16 Byte langen Header. Dabei können mehrere Bilder in einer Datei gespeichert werden. Der Header hat folgendes Format: TYPE FileHeader=RECORD header: ARRAY [1..8] OF CHAR; (* ="BildBobE" *) anz : INTEGER; (* Anzahl Bilder *) breite: INTEGER; (* Breite der Bilder *) hoehe : INTEGER; (* Höhe der Bilder *) tiefe : INTEGER; (* Anzahal Bitplanes der Bilder *) END; Danach folgen die 1.Bitplane des 1.Bildes, die 2.Bitplane des 1.Bildes bis zur tiefe.Bitplane des anz.Bildes. Danach folgen die Farben in der gleichen Form wie die colorTable der ColorMap (passend für LoadRGB4): TYPE farben= ARRAY [1..2^tiefe] OF INTEGER; Save RAW: Seichert die Bilder in einem ähnlichem Format wie "Save BobEdi". Dabei wird allerdings kein Header mit abgespeichert. Diese Daten werden als Datei-Kommentar abgelegt (Soll die Datei wieder eingelesen werden können, darf dieser Kommentar nicht verändert werden !). Somit sind in der Datei nur die Daten enthalten. Die Farben werden wahlweise mit abge- speichert (im gleichen Format wie bei "Save BobEdi", siehe "Farben"). Save Modula: Speichert die Bilder als Source-Code im M2Amiga-Format ab der Version 4.0, um sie direkt in eigenen Programmen zu benutzen. Dabei wird Source-Code für Bobs (=Images) oder für Sprites erzeugt. Wahlweise wer- den auch die Farben mit abgespeichert. Benutzung siehe Beispielprogramm. Save Oberon: Speichert die Bilder als Source-Code für Oberon. Wahlweise Sprites oder Bobs und Farben. Save Assem: Speichert die Bilder als Source-Code für Assembler. Wahlweise Sprites oder Bobs und Farben. Save Basic: Speichert die Bilder im gleichen Format wie der Objekt-Editor von Amiga-Basic. Werden mehrere Bilder gleichzeitig gespeichert, werden sie in Dateien der Form "name.xx" (xx=Nummer des Bildes) gespeichert. Wahlweise Sprites oder Bobs. Sollen die Farben mit abgespeichert werden, werden Sie in der Datei "name.pal" gespeichert. Wird eine Datei größer als 32 K (sollte wohl nur bei Konvert passieren), so wird vorher nachge- fragt, ob wirklich gespeichert werden soll, da bei Amiga-Basic solche Dateien nicht als Bobs oder Sprites benutzt werden können (Strings sind maximal 32 K lang). Benutzung siehe Beispielprogramm. Save C: Speichert die Bilder als Source-Code für C. Wahlweise Sprites oder Bobs und Farben. Save ModAlt: Speichert die Bilder als Source-Code im M2Amiga-Format für Versionen vor 4.0. Sprite: Ist der Knopf gedrückt, wird Source-Code für Sprites erzeugt, sonst für Bobs. Sollen Sprites mit mehr als 4 Farben gespeichert werden, wird außer bei Basic das Attached-Flag beim zweiten Sprite automatisch ge- setzt. Bei Basic ist dies nicht möglich. Sollen Bilder, die breiter sind als 16 Pixel oder die mehr als 4 Farben in Basic haben oder die mehr als 16 Farben haben, als Sprites abgespeichert werden, so wird vorher nach- gefragt, ob wirklich gespeichert werden soll. Soll dies geschehen, wird nur der jeweils mögliche Bereich gespeichert. Farben: Ist der Knopf gedrückt, werden die Farben beim Source-Code bzw. beim RAW-Format mit abgespeichert, sonst nicht. Bei Basic wird dabei eine eigene Datei angelegt. Icon: Ist der Knopf gedrückt, werden beim Speichern automatisch Icons mit erzeugt. Dazu müssen die Icons "source.icon" ("source.icon.info") und "anim.icon" ("anim.icon.info") im Verzeichnis, das beim Start des Bob-Edi das aktuelle war, vorhanden sein. Konver: Ist der Knopf gedrückt, können die Funktionen Load I/B/R, Save IFF und Save BobEdi solange nicht mehr angewählt werden, bis der Knopf Konver wieder angeklickt wird. Wird eine andere Save-Funktion gewählt, kann eine IFF-Datei in den entsprechenden Source-Code umgewandelt wer- den. Dazu wird im ersten Filerequester die zu konvertierende IFF-Datei gewählt. Im danach erscheinenden Filerequester wird das Destinationfile angegeben. Das IFF-Bild darf dabei auch größer sein und auch 6 Bitplanes haben. Bei Save RAW wird hier kein Datei-Kommentar gespeichert. Wahlweise Sprites oder Bobs und Farben. Cancel: Verläßt das Diskettenmenue Einstellungen (?): ~~~~~~~~~~~~~~~~~ Dieses Menue dient zum Ändern und Abspeichern der Einstellungen. Wird das Format geändert, werden die Bilder trotzdem nicht gelöscht. Breite: Die Breite der Bilder Höhe: Die Höhe der Bilder. Es sind nur Werte von 2 bis 64 erlaubt. Farben: Die Anzahl der Farben, die die Bilder haben sollen. Die restlichen Bitplanes werden jeweils gelöscht. Raster: Die Art des Rasters in der Vrgrößerung, entweder aus, schwarz oder grau. Quadrate: Ist dieser Knopf gedrückt, werden die Punkte in der Vergrößerung quadratisch angezeigt, auch wenn die Breite und die Höhe nicht identisch sind, sonst wird die vorhandene Fläche möglichst gut ausgenutzt. Save: Speichert die Einstellungen und die Farben in der Datei "s:BobEdi.config" OK: Übernimmt die Einstellungen CANCEL: Beläßt die alten Einstellungen Farbmenue: ~~~~~~~~~ Dieses Menue dient zum Ändern der Farben. Die zu ändernde Farbe wird dabei im unteren Bereich des Fensters in der Farbleiste ausgewählt. Sie wird rechts von der Farbleiste angezeigt. Geändert wird die Farbe mit Hilfe der Proportionalgadgets. Dies geschieht entweder nach dem RGB- oder nach dem HSV-Farbmodell. Dabei bedeuten bei dem HSV-Farbmodell H Hue (Farbton), S Saturation (Sättigung) und V Value (Wert bzw. Helligkeit). Copy: Kopiert die aktuelle Farbe an die Stelle der als nächstes gewählten Farbe. Deaktivieren durch nochmaliges Anwählen. Exchange: Vertauscht die aktuelle und die als nächstes gewählte Farbe. Deaktivieren durch nochmaliges Anwählen. Spread: Erzeugt einen Farbverlauf von der aktuellen Farbe zu der als nächstes gewählten Farbe. Deaktivieren durch nochmaliges Anwählen. OK: Übernimmt die eingestellten Farben. CANCEL: Beläßt die alten Farben. Animationsmenue (Projektor): ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dieses Menue dient zum Animieren von gemalten bzw. geladenen Bildern. Speed: Geschwindigkeit, mit der die Bilder angezeigt werden sollen. Dabei ist 0 die höchste Geschwindigkeit und 30 die niedrigste. Delay: Ist der Knopf gedrückt, wird zum Warten die Funktion Delay benutzt. Dadurch wird das Multitasking geschont. Allerdings reagieren die Gadgets langsamer und die Abstufung ist bei hohen Geschwindigkeiten relativ grob. Ist der Knopf nicht gedrückt, wird zum Warten eine Warteschleife benutzt, wodurch die Gadgets sofort reagieren und die Abstufung feiner ist. von: Gibt an, ab welchem Bild animiert werden soll. bis: Gibt an, bis zu welchem Bild animiert werden soll. Mode Vor: Die Bilder werden vom ersten bis zum letzten angezeigt. Ist das letzte Bild erreicht, wird wieder das erste angezeigt. Mode Zurück: Die Bilder werden vom letzten bis zum ersten angezeigt. Ist das erste Bild erreicht, wird wieder das letzte angezeigt. Mode P.Pong (P.Pong=PingPong): Die Bilder werden immer hin und her ange- zeigt. Ist das erste bzw. das lezte Bild erreicht, dreht sich also die Abpielrichtung um. Start: Startet bzw. stoppt die Animation. Die Bilder werden dabei im oberen Feld angezeigt. Daneben steht die Nummer des aktuellen Bildes. CANCEL: Verläßt das Animationsmenue. Kopiermenue (Fotoapparat): ~~~~~~~~~~~~~~~~~~~~~~~~~ Dieses Menue dient zum Kopieren und Austauschen von einzelnen und mehreren Bildern. Wurde das Menue versehendlich angewählt, kann beispielsweise 0 bei Anzahl eingegeben werden. von: Bild, ab dem kopiert bzw. ausgetauscht werden soll. nach: Bild, zu dem kopiert bzw. ausgetauscht werden soll. Anzahl: Die Anzahl der Bilder, die kopiert bzw. ausgetauscht werden sollen. Sollen mehrere Bilder behandelt werden, werden zuerst die Werte von "von" und "nach" benutzt. Danach werden diese Werte jeweils um 1 erhöht. Dies wird "Anzahl" mal wiederholt. Copy: Kopiert die Bilder Exchange: Tauscht die Bilder aus Brushmenue: ~~~~~~~~~~ Dieses Menue dient zum Ändern des Brushes und zum Einstellen des Modus, der beim Malen mit diesem benutzt wird. Es kann nur aufgerufen werden, wenn ein Brush vorhanden ist. Dies Größe des Brushes wird rechts oben angezeigt. Drehen: Drehen des Brushes um einen beliebigen Winkel. Dabei kann mit der Maus der Grad des Drehens bestimmt werden. Der Drehwinkel wird rechts oben angezeigt. Mit der linken Maustaste wird bestätigt, mit der rechten Maustaste abgebrochen. Dre90°: Drehen des Brushes im Urzeigersinn um 90°. SpieX: Spiegeln des Brushes an der vertikalen Achse. SpieY: Spiegeln des Brushes an der horizontalen Achse. Schere: Scheren des Brushes. Dabei kann mit der Maus der Grad des Scherens bestimmt werden. Mit der linken Maustaste wird bestätigt, mit der rechten Maustaste abgebrochen. Größe: Größenänderung des Brushes. Dabei kann mit der Maus die neue Größe bestimmt werden. Mit der linken Maustaste wird bestätigt, mit der rechten Maustaste abgebrochen. DopX: Verdoppeln des Brushes in der Horizontalen. DopY: Verdoppeln des Brushes in der Vertikalen. HalbX: Halbieren des Brushes in der Horizontalen. HalbY: Halbieren des Brushes in der Vertikalen. Mode Normal: Schaltet in den Standartmodus. Dabei wird der Brush beim Einkleben so übertragen, wie er ausgeschnitten wurde. Im Hauptmenue ist dies über F1 zu erreichen. Mode Trans: Schaltet in den Transparentmodus. Dabei wird beim Einkleben die aktuelle Hintergrundfarbe nicht übertragen. Im Hauptmenue ist dies über F2 zu erreichen. Mode Farbe: Schaltet in den Farbmodus. Dabei wird beim Einkleben die aktuelle Hintergrundfarbe nicht übertragen. Die andersfarbigen Punkte des Brushes werden in der aktuellen Vordergrundfarbe übertragen. Im Hauptmenue ist dies über F3 zu erreichen. Außerdem wird dieser Modus beim Malen mit der rechten Maustaste benutzt. OK: Übernimmt die Veränderungen. CANCEL: Beläßt die alten Einstellungen und den alten Brush. Tastaturbelegung im Hauptmenue: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ F1 : Brush-Mode Normal F2 : Brush-Mode Transparent F3 : Brush-Mode Farbe q/Q: Ende Pfeiltasten: rotieren des Bildes Shift <- : Rotieren um 16 Pixel d/D: Diskmenue s/S: Einstellungen i/I: Info p/P: Farbmenue a/A: Animationsmenue c/C: Kopieren und Austauschen z/Z: Drehen x/X: Spiegeln vertikal y/Y: Spiegeln horizontal ./:: Punkte l/L: Linie r : Rechteck R : Rechteck ausgefüllt e/E: Ellipse f/F: Füllen b : Brush ausschneiden B : Brush einkleben n/N: Brushmenue u/U: Undo k/K: CLS Del: alle Bilder löschen 4/6: Vordergrundfarbe um 1 verringern bzw. erhöhen Shift 4/6: Hintergrundfarbe um 1 verringern bzw. erhöhen 1 : Vorhergehendes Bild 2 : Nachfolgendes Bild 3 : Requester um Bild direkt anzuwählen Ist in einem anderen Menue bei einer Funktion ein Buchstabe unterstrichen, kann diese Funktion mit dem entsprechenden Buchstaben (klein oder groß) aufgerufen werden. Demoprogramme: ~~~~~~~~~~~~~ Das Programm "TestBobEdi" zeigt ein animiertes Sprite mit mehr als 4 Far- ben. Beendet wird es durch das Anklicken des Close-Gadgets in der Titellei- ste. Das Programm "TestBobEdi.bas" zeigt einen Bob in Basic. Beendet wird es durch einen beliebigen Tastendruck. Die Daten und Farben wurden natürlich mit dem Programm Bob-Edi erzeugt. Neucompilierung: ~~~~~~~~~~~~~~~ Die Compilierungsreihenfolge lautet: ReqTools.def ReqTFileReq.def ReqTFileReq.mod IFFLib.def IntuiSupport.def IntuiSupport.mod InitBMap.def InitBMap.mod BobEdiG.def BobEdiG.mod BobHelp.def BobHelp.mod BobTools.def BobTools.mod BobDisk.def BobDisk.mod BobEdi.mod Frank