Home Line-ALine-A Hide mouseHide mouse Undraw spriteUndraw sprite

6.16 Transform mouse

Name: »Transform mouse«
 
Line-A Nummer: $A00B
 
Binding: Bindings für transform_mouse
 
Beschreibung: Diese Line-A Funktion setzt den Mauszeiger auf ein neues Erscheinungsbild. Die nötigen Parameter werden über das intin Feld übergeben. Alternativ kann auch die AES Struktur MFORM benutzt werden. Für den Aufruf der Line-A Funktion wird intin im Line-A Parameterblock auf diese Struktur gesetzt und nach dem Aufruf wird der alte Wert restauriert.
 
typedef struct mfstr
{
   int16_t mf_xhot;
   int16_t mf_yhot;
   int16_t mf_nplanes;
   int16_t mf_fg;
   int16_t mf_bg;
   int16_t mf_mask[16];
   int16_t mf_data[16];
} MFORM;
Variable Bedeutung
   
mf_xhot X-Koordinate des Aktionspunkts der Mausform. Für die Aktion der Maus ist maßgeblich, wo sich dieser Punkt der Mausform befindet.
mf_yhot Y-Koordinate des Aktionspunkts der Mausform. Für die Aktion der Maus ist maßgeblich, wo sich dieser Punkt der Mausform befindet.
mf_nplanes Muß auf 1 gesetzt werden, da die Mausform nur eine Farbebene haben darf.
mf_fg Die Farbe der Maske.
mf_bg Die Farbe der Daten fest.
mf_mask Die 16 * 16 Pixel große Maske. Jede 1 in der Maske löscht den Hintergrund an der Stelle (bzw. setzt die Hintergrundfarbe). Damit kann an den Stellen, an denen keine Mausdaten gezeichnet werden, das "Durchscheinen" eines Hintergrunds verhindern und z.B. die Maus mit einem "Rahmen" von dem Untergrund abgesetzt werden.
mf_data Die 16 * 16 Pixel große Mausform. Jede 1 in der Mausform erzeugt einen Punkt der Farbe mf_bg auf dem Bildschirm.
Ergebnis: Die Funktion liefert keinen Returnwert.
 
Verfügbar: Alle TOS-Versionen.
 
Querverweis: Binding   Undraw sprite   Draw sprite
 

6.16.1 Bindings für transform_mouse

Pure-C: void transform_mouse( MFORM *mform );
 
Assembler:
 
; Register retten
movem.l   D0-D2/A0-A2,-(A7)
; Zeiger Parameterblock LINEA
move.l    pParamblk,A0
; alten Wert des intin Feldes retten
move.l    (8,A0),-(A7)
; Feld mit Mausform in LINEA.intin
move.l    mform,(8,A0)
; Line-A Opcode
dc.w      $A00B
; Zeiger Parameterblock LINEA
move.l    pParamblk,A0
; alten Wert des intin Feldes restaurieren
move.l    (A7)+,(8,A0)
; Register restaurieren
movem.l   (A7)+,D0-D2/A0-A2

Home Line-ALine-A Hide mouseHide mouse Undraw spriteUndraw sprite