'------------------------------------------------------------------------------------------------------------------------------' ' BVG LAWO LCD Matrix ' '------------------------------------------------------------------------------------------------------------------------------' ' ' ' Lizenz: CC BY-NC ' ' ' ' 27.11.2016: Version 1.0 ' ' - KI, Seitenschild, Steckschild von Marcel Kuhnt (übernommen aus der Original OMSI 2 Krüger Matrix) ' ' - Rest von Teneberus ' ' 01.01.2020: Anpassung an die Wiener Busse, Linienmatrix kann nun per Ziel-String beschrieben werden, wenn keine Linie ' ' geschildert ist ' ' Verwendet: Cockpit (Batterietrennschalter) ' ' IBIS ' ' ' ' 08-12.2020: -Anpassung an Mobitec-Matrix (200x24, 160x24, 40x24) ' ' 02.2021 : - Aesys-Test 1 ' ' 18.07.2021: -Mobitec und Aesys in ein Script, Versuch 1. ' '------------------------------------------------------------------------------------------------------------------------------' '------------------------------------------------------------------------------------------------------------------------------' ' Initialisierung ' '------------------------------------------------------------------------------------------------------------------------------' {macro:Matrix_init} 0 (S.L.Matrix_Modul) 0 (S.L.Matrix_Cursor) 0 (S.L.Matrix_Status) (S.L.matrix_BootUp_Delay) -1 (S.L.matrix_steckschild_Termindex) 0 (S.L.matrix_steckschild_vis) ' 1 (S.L.display_ext) 0 (M.L.Matrix_Konfig_Display) 1 (M.L.Matrix_Konfig_Display) {end} '------------------------------------------------------------------------------------------------------------------------------' ' Hauptteil (Frame) ' '------------------------------------------------------------------------------------------------------------------------------' {macro:Matrix_frame} 'Bugfix wegen Omsi-Fehler: Die Constfile wird nach dem Spawnen erst nach einem gewissen Delay geladen. Das ist bei den meisten 'Scripts kein großartiges Problem, in diesem Fall, wegen der in der Constfile festgesetzten Scripttextur-Indizes allerdings schon. 'Deswegen: Mach ma mal grundsätzlich 5 Sekunden Cooldown, wenn Bus gerade gespawnt wurde oder Situation neu geladen wurde, bevor 'hier irgendwas gemacht wird. 0 (S.L.Matrix_ST_1) 1 (S.L.Matrix_ST_2) (L.L.matrix_BootUp_Delay) 0.25 >= {if} 'Übersetzung Ruhrdrucker-Matrix: ' (L.L.RBL_Linie) (L.L.RBL_Linie_alt) = ! (L.L.RBL_TerminusIndex) (L.L.RBL_Ziel_alt) = ! || ' {if} ' (L.L.RBL_Linie) (S.L.RBL_Linie_alt) 100 * (L.L.RBL_Suffix) + (S.L.IBIS_Linie_Complex) ' (L.L.RBL_Suffix) (S.L.IBIS_Linie_Suffix) ' (L.L.RBL_TerminusIndex) (S.L.RBL_Ziel_alt) (S.L.IBIS_TerminusIndex) ' {endif} ' Schriften: ' Mobitec (M.L.Matrix_Mobi_Fonts) ' Aesys (M.L.Matrix_Aesys_Fonts) ' Annax (M.L.Matrix_Annax_Fonts) ' Bustec (M.L.Matrix_Bustec_Fonts) ' Allgemeine Sondersymbole: "DGM Symbol16" (M.V.GetFontIndex) (S.L.Font_Sondersymbol16) "DGM Symbol19" (M.V.GetFontIndex) (S.L.Font_Sondersymbol19) "DGM Symbol24" (M.V.GetFontIndex) (S.L.Font_Sondersymbol24) ' Zielcodetabelle: "Linienlisten\" (L.$.yard) "_ANX.jpg" $+ $+ (S.$.Matrix_Linelist) (L.L.vis_Matrix_Heck) 0 > {if} (L.L.vis_Matrix_Heck) (S.L.vis_Matrix_Heck_breit) 0 (S.L.vis_Matrix_Heck_Linie) 1 (S.L.vis_Matrixkasten) {else} (L.L.vis_Matrix_Linie) 1 + (S.L.vis_Matrix_Heck_Linie) 0 (S.L.vis_Matrixkasten) (S.L.vis_Matrix_Heck_breit) {endif} (L.L.Matrix_Status) 4 = {if} ' Schritt 4: Textur entsperren und filtern. (L.L.Matrix_ST_1) (M.V.STUnlock) (L.L.Matrix_ST_2) (M.V.STUnlock) (L.L.Matrix_ST_2) (M.V.STFilter) ' Nochmal sperren, entsperren, filtern... Sonst wird die neue Textur nicht angezeigt. (L.L.Matrix_ST_2) (M.V.STLock) (L.L.Matrix_ST_2) (M.V.STUnlock) (L.L.Matrix_ST_2) (M.V.STFilter) ' Alles zurücksetzen: 0 (S.L.Matrix_Modul) 0 (S.L.Matrix_Cursor) 0 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 3 = {if} ' Schritt 3: Pro Frame eine Anzeige auf die Haupttextur übertragen. ' Breite Heckmatir bitte nicht beschreiben, wenn explizit abgeschalten. (C.L.Matrix_heck_breit_aktiv) ! (L.L.Matrix_Modul) 2 = && {if} {else} (M.L.Matrix_SetCoords) (M.L.Matrix_PrintBitmap) {endif} (L.L.Matrix_Modul) 1 + (S.L.Matrix_Modul) (L.L.Matrix_Modul) 3 > {if} 4 (S.L.Matrix_Status) {endif} {endif} (L.L.Matrix_Status) 2 = {if} ' Schritt 2: Texturen für die Bearbeitung sperren. (L.L.Matrix_ST_1) (M.V.STLock) (L.L.Matrix_ST_2) (M.V.STLock) 0 (S.L.Matrix_Modul) 3 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 1 = {if} ' Schritt 1: Speicherbitmap mit neuen Daten beschreiben (oder Bitmap laden). (L.$.Matrix_Bitmapfilename) "" $= {if} ' In diesem Bereich: Register 7 (s6/l6) beinhaltet den aktuellen Matrixtyp. Gilt nur für eine Anzeige! Wird mit jedem Durchlauf neu gesetzt, je nach aktuellen ' zu beschreibender Matrix. ' Typen: 0-9 Mobitec, 10-19 Aesys, 20-29 Annax ' Setvars wie Mobitec bleiben gleich (je Anzeige eigene Setvar) ' Auf Symbol prüfen. Aber bitte nur, wenn nicht nur die Matrix per Konfig geändert wird. (L.L.Matrix_Sondersymbol_aktiv) ! {if} (M.L.Matrix_CheckSymbol) {endif} ' Initialisieren der Bitmap: (L.L.Matrix_ST_1) (M.V.STNewTex) (L.L.Matrix_ST_1) (M.V.STLock) ' Setzen der Farbe: (L.L.Matrix_ST_1) 0 255 0 0 (M.V.STSetColor) 0 (S.L.matrix_LineWidth_Front) 0 (S.L.matrix_LineWidth_Side) ' Bitmap beschreiben: ' Front: 0 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (M.L.Matrix_WriteNr) (M.L.Matrix_WriteTerminus) ' Links: 1 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (M.L.Matrix_WriteNr) ' Heck (nur aktiv, wenn auch in der Constfile eingeschaltet!): (C.L.Matrix_heck_breit_aktiv) 1 {if} 2 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (M.L.Matrix_WriteNr) (M.L.Matrix_WriteTerminus) {endif} ' Rechts (192x26): 3 (S.L.Matrix_Modul) (M.L.Matrix_SetCoords) (C.L.Matrix_Seite_Linieziel_kombiniert) {if} (M.L.Matrix_WriteNr) {endif} (M.L.Matrix_WriteTerminus) ' Entsperren der Bitmap: (L.L.Matrix_ST_1) (M.V.STUnlock) {else} "..\..\Anzeigen\Mobitec_Wien\" (L.$.Matrix_Bitmapfilename) $+ (L.L.Matrix_ST_1) (M.V.STLoadTex) $msg 0 (S.L.matrix_LineWidth_Front) 0 (S.L.matrix_LineWidth_Side) (L.L.Matrix_ST_1) (M.V.STLock) (L.L.Matrix_ST_1) (M.V.STUnlock) (L.L.Matrix_ST_1) (M.V.STFilter) {endif} 2 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 0 = (L.L.elec_busbar_main) && {if} ' Prüfen ob sich die Anzeige ändern soll. Wenn ja: Mit Schritt 1 beginnen. 1 (S.L.matrix_Elektrik) 0 (S.L.Matrix_Nachlaufzeit) (L.L.IBIS_Linie_Complex) (L.L.Matrix_Nr_Last) = ! {if} (M.L.Matrix_CreateNr) 1 (S.L.Matrix_Status) 0 (S.L.Matrix_Sondersymbol_aktiv) {endif} (L.L.IBIS_TerminusIndex) (L.L.Matrix_TerminusIndex_Last) = ! {if} (L.L.IBIS_TerminusIndex) (S.L.Matrix_TerminusIndex) (S.L.Matrix_TerminusIndex_Last) (L.L.IBIS_TerminusIndex) (M.V.GetTerminusCode) 20000 + (S.L.Matrix_Wechselziel_Code) (M.L.Matrix_CreateTerminus) (L.$.Matrix_TerminusL2) "" $= {if} (M.L.Matrix_CheckDescender) {endif} (M.L.matrix_refreshIntIndex) 1 (S.L.Matrix_Status) {endif} ' Wechselziel-Funktion. Nach einer bestimmten Zeit (2 Sekunden) wird das nächste Wechselziel geschildert. ' Gibt zwei Modi, die zu Beginn festgelegt werden: CoD-Matrix (10xxx) oder K+(+) (20xxx). ' Gleichzeitig wird festgelegt, ob dieser Part hier überhaupt durchlaufen soll. (L.L.IBIS_TerminusIndex) (M.V.GetTerminusCode) 21000 + (M.V.GetTerminusIndex) -1 = ! {if} (L.L.Matrix_Timer_Wechselziel) (C.L.Matrix_Wechselziel_Wechselzeit) >= {if} (L.L.Matrix_Wechselziel_Code) 1000 + (M.V.GetTerminusIndex) -1 = ! {if} (L.L.Matrix_Wechselziel_Code) 1000 + (S.L.Matrix_Wechselziel_Code) {else} (L.L.IBIS_TerminusIndex) (M.V.GetTerminusCode) 20000 + (S.L.Matrix_Wechselziel_Code) {endif} (S.L.Matrix_Wechselziel_Code) (M.V.GetTerminusIndex) (S.L.Matrix_TerminusIndex) (M.L.Matrix_CreateTerminus) (L.$.Matrix_TerminusL2) "" $= {if} (M.L.Matrix_CheckDescender) {endif} (M.L.matrix_refreshIntIndex) 1 (S.L.Matrix_Status) 0 (S.L.Matrix_Timer_Wechselziel) {else} (L.L.Matrix_Timer_Wechselziel) (L.S.timegap) + (S.L.Matrix_Timer_Wechselziel) {endif} {endif} {endif} (L.L.Matrix_Status) -1 = (L.L.elec_busbar_main) && {if} 1 (S.L.matrix_Elektrik) 0 (S.L.Matrix_Nachlaufzeit) ' Matrix mit aktuellen Daten beschreiben, wenn Versorgung hergestellt wird. ' (Beginn mit Schritt 2 - Übertragung der Speicherbitmap auf die Haupttextur.) 2 (S.L.Matrix_Status) {endif} (L.L.Matrix_Status) 0 = (L.L.elec_busbar_main) 0 = && {if} ' Versorgung fehlt: Anzeige löschen. (L.L.Matrix_Nachlaufzeit) (C.L.Matrix_Nachlaufzeit) >= {if} 0 (S.L.matrix_Elektrik) (L.L.Matrix_ST_2) (M.V.STNewTex) -1 (S.L.Matrix_Status) {else} (L.L.Matrix_Nachlaufzeit) (L.S.timegap) + (S.L.Matrix_Nachlaufzeit) {endif} {endif} (L.L.matrix_refresh_seitenschild) {if} "..\..\Anzeigen\Seitenschilder\" 2 (M.V.GetDepotStringGlobal) $+ "\" $+ (L.$.Matrix_Nr) $RemoveSpaces $+ ".bmp" $+ (S.$.Matrix_Seitenschild) 0 (S.L.matrix_refresh_seitenschild) {endif} {else} (L.L.matrix_BootUp_Delay) (L.S.timegap) + (S.L.matrix_BootUp_Delay) (L.L.vis_Matrix_Front) 10 > {if} (L.L.vis_Matrix_Front) (S.L.vis_Matrix_Front) {endif} {endif} {end} '------------------------------------------------------------------------------------------------------------------------------' ' Trigger: KI, Seitenschild, Steckschild ' '------------------------------------------------------------------------------------------------------------------------------' {trigger:ai_scheduled_settarget} ' Stromversorgung herstellen: 1 (S.L.elec_busbar_main_sw) 1.0 (S.L.elec_V_battery) ' Hier wird die Nummer eingestellt: (L.$.SetLineTo) (S.$.Matrix_Nr) ' Hier wird das Ziel eingestellt: 1 (S.L.elec_busbar_main_sw) (L.L.AI_target_index) s0 (M.V.GetTerminusCode) s1 (S.L.matrix_temp) ' Wenn der Terminus-Code größer als 1000 ist, dann bitte Steckschild verwenden: 1000 > {if} l1 1000 - (S.L.matrix_steckschild_index) l0 (S.L.matrix_steckschild_Termindex) ' Matrix auf 0: 0 (S.L.IBIS_TerminusIndex) s2 {else} l0 (S.L.IBIS_TerminusIndex) s2 -1 (S.L.matrix_steckschild_Termindex) -1 (S.L.Matrix_TerminusIndex_Last) ' Wenn der Bitmap-String in Verwendung ist, dann den als Integer interpretieren und ' Steckschild zusätzlich setzen: l0 6 (M.V.GetTerminusString) $StrToFloat s1 l1 1000 > {if} l1 1000 - (S.L.matrix_steckschild_index) l0 (S.L.matrix_steckschild_Termindex) {endif} {endif} (M.L.matrix_setsteckschild) l2 (M.V.GetTerminusCode) (S.L.IBIS_TerminusCode) 1 (S.L.matrix_refresh_seitenschild) 0 (S.L.Matrix_Sondersymbol_aktiv) {end} {trigger:Zettel} (L.L.Zettel_vis) ! (S.L.Zettel_vis) {end} {trigger:matrix_seitenschildklemme_drag} (L.S.mouse_y) -300 / (L.L.matrix_seitenschildklemme) + (S.L.matrix_seitenschildklemme) s0 l0 0 < {if} 0 (S.L.matrix_seitenschildklemme) {endif} l0 0.7 > {if} (L.L.matrix_seitenschild_refresh) 0 = {if} 1 (S.L.matrix_seitenschild_refresh) (T.L.ev_fahrertuer_auf) (L.$.Matrix_Seitenschild) "" $= {if} 1 (S.L.matrix_refresh_seitenschild) {else} "" (S.$.Matrix_Seitenschild) {endif} {endif} {endif} l0 1 > {if} 1 (S.L.matrix_seitenschildklemme) {endif} {end} {trigger:matrix_seitenschildklemme_off} (L.L.matrix_seitenschildklemme) 0.3 > {if} (T.L.ev_fahrertuer_zu) {endif} 0 (S.L.matrix_seitenschildklemme) (S.L.matrix_seitenschild_refresh) {end} {trigger:bus_matrix_change_steckschild} (L.L.matrix_steckschild_index) 1 + (S.L.matrix_steckschild_index) 1000 + (M.V.GetTerminusIndex) (S.L.matrix_steckschild_Termindex) (M.L.matrix_setsteckschild) (M.L.matrix_refreshIntIndex) {end} '------------------------------------------------------------------------------------------------------------------------------' ' Macros ' '------------------------------------------------------------------------------------------------------------------------------' {macro:matrix_setsteckschild} (L.L.matrix_steckschild_Termindex) s0 0 >= {if} l0 6 (M.V.GetTerminusString) (S.$.Matrix_SchildFrnt) 1 $SetLengthL $StrToFloat 1 max (S.L.matrix_steckschild_vis) "..\..\Anzeigen\SteckSchilder\" (L.$.Matrix_SchildFrnt) $+ (S.$.Matrix_SchildFrnt) {else} 0 (S.L.matrix_steckschild_index) (S.L.matrix_steckschild_vis) "" (S.$.Matrix_SchildFrnt) {endif} {end} {macro:matrix_refreshIntIndex} (L.L.matrix_steckschild_Termindex) s0 0 >= l0 0 (M.V.GetTerminusString) "" $= ! && {if} l0 {else} (L.L.IBIS_TerminusIndex) {endif} (S.L.target_index_int) {end} {macro:Matrix_CreateNr} (L.L.IBIS_Linie_Complex) (S.L.Matrix_Nr_Last) 100 / trunc s0 (L.L.IBIS_Linie_Suffix) s1 l0 0 = {if} "" {else} l0 trunc $IntToStr {endif} (S.$.Matrix_Nr) l1 1 = {if} "E" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 2 = {if} "tr" {endif} l1 3 = {if} "\s{hg}" {endif} l1 4 = {if} (L.$.Matrix_Nr) "N" $+ {endif} l1 5 = l1 24 = || {if} "S" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 6 = {if} (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces "a" $+ {endif} l1 9 = {if} (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces "E" $+ {endif} l1 10 = {if} (L.$.Matrix_Nr) "e" $+ {endif} l1 11 = {if} "D" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 12 = {if} "C" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 13 = {if} (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces "b" $+ {endif} l1 14 = {if} "A" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 15 = {if} "n" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 16 = {if} (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces "ä" $+ {endif} l1 26 = {if} "U" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 27 = {if} (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces "z" $+ {endif} l1 28 = {if} "M" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 29 = {if} "\s{bvg}" {endif} l1 30 = {if} (L.$.Matrix_Nr) "S" $+ {endif} l1 31 = {if} (L.$.Matrix_Nr) "U" $+ {endif} l1 32 = {if} (L.$.Matrix_Nr) "M" $+ {endif} l1 35 = {if} "N" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 36 = {if} "X" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 37 = {if} "CE" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 38 = {if} "NE" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 39 = {if} "SB" (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces $+ {endif} l1 42 = {if} (L.$.Matrix_Nr) 2 $SetLengthR $RemoveSpaces "*" $+ {endif} l1 40 = {if} "\s{db}" {endif} l1 41 = {if} "#" {endif} $RemoveSpaces (S.$.Matrix_Nr) {end} {macro:Matrix_CheckSymbol} "-" (S.$.Matrix_Symbol) ' Standardware, original enthalten im Matrixpack von Teneberus. (L.$.Matrix_Nr) "\s{triangle}" $= {if} "0" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{runner}" $= {if} "1" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{hg}" $= {if} "2" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{ball}" $= {if} "3" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{tram}" $= {if} "4" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{wrench}" $= {if} "5" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{pr}" $= {if} "6" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{s}" $= {if} "7" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{u}" $= {if} "8" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{coffee}" $= {if} "9" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{db}" $= {if} "a" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{bvg}" $= {if} "b" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{plane}" $= {if} "c" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{vag}" $= {if} "d" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{estw}" $= {if} "e" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{ewerk}" $= {if} "f" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{carousel}" $= {if} "g" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) "\s{infralino}" $= {if} "h" (S.$.Matrix_Symbol) {endif} (L.$.Matrix_Nr) $length 2 - $cutEnd "\s" $= {if} "404" (S.$.Matrix_Nr) {endif} (L.$.Matrix_Symbol) "-" = ! {if} 1 (S.L.Matrix_Sondersymbol_aktiv) {endif} {end} {macro:Matrix_CreateTerminus} (L.L.Matrix_TerminusIndex) 23 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL1) (L.L.Matrix_TerminusIndex) 24 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL2) (L.L.Matrix_TerminusIndex) 7 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_Bitmapfilename) (L.L.Matrix_TerminusIndex) 22 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_Sondersymbol_Linie) ' Wenn String 23 und 24 in der Hofdatei leer sind, verwende stattdessen String 1 und 2: "" (L.$.Matrix_TerminusL1) $= "" (L.$.Matrix_TerminusL2) $= && {if} (L.L.Matrix_TerminusIndex) 1 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL1) (L.L.Matrix_TerminusIndex) 2 (M.V.GetTerminusString) $RemoveSpaces (S.$.Matrix_TerminusL2) {endif} ' Wenn nur die untere Zeile beschrieben ist, dann diese nach oben und untere leeren. "" (L.$.Matrix_TerminusL1) $= {if} (L.$.Matrix_TerminusL2) (S.$.Matrix_TerminusL1) "" (S.$.Matrix_TerminusL2) {endif} 0 (S.L.matrix_invertMode) 0 (S.L.matrix_BoldMode) ' Simple Umsetzung von *I: Wenn am Ende des Ziels vorhanden, dann setze das Flag auf 1. Wenn nicht, dann 0. Rest wird bei PrintBitmapPixel gemacht. (L.$.Matrix_TerminusL1) 2 $SetLengthR "*I" $= {if} (L.$.Matrix_TerminusL1) 2 $cutEnd (S.$.Matrix_TerminusL1) 1 (S.L.matrix_invertMode) {else} 'Das gleiche mit Ziel Zeile 2. Just to make sure. Könnte später noch auf ein anderes Flag geändert werden. Ist bereits darauf vorbereitet. (L.$.Matrix_TerminusL2) 2 $SetLengthR "*I" $= {if} (L.$.Matrix_TerminusL2) 2 $cutEnd (S.$.Matrix_TerminusL2) 1 (S.L.matrix_invertMode) {endif} {endif} ' Simple Umsetzung von *IL: Wenn am Ende des Ziels vorhanden, dann setze das Flag auf 2. Wenn nicht, dann 0. Rest wird bei PrintBitmapPixel gemacht. (L.$.Matrix_TerminusL1) 3 $SetLengthR "*IL" $= {if} (L.$.Matrix_TerminusL1) 3 $cutEnd (S.$.Matrix_TerminusL1) 2 (S.L.matrix_invertMode) {else} 'Das gleiche mit Ziel Zeile 2. Just to make sure. Könnte später noch auf ein anderes Flag geändert werden. Ist bereits darauf vorbereitet. (L.$.Matrix_TerminusL2) 3 $SetLengthR "*IL" $= {if} (L.$.Matrix_TerminusL2) 3 $cutEnd (S.$.Matrix_TerminusL2) 2 (S.L.matrix_invertMode) {endif} {endif} ' Simple Umsetzung von *IK: Wenn am Ende des Ziels vorhanden, dann setze das Flag auf 3. Wenn nicht, dann 0. Rest wird bei PrintBitmapPixel gemacht. (L.$.Matrix_TerminusL1) 3 $SetLengthR "*IK" $= {if} (L.$.Matrix_TerminusL1) 3 $cutEnd (S.$.Matrix_TerminusL1) 3 (S.L.matrix_invertMode) {else} 'Das gleiche mit Ziel Zeile 2. Just to make sure. Könnte später noch auf ein anderes Flag geändert werden. Ist bereits darauf vorbereitet. (L.$.Matrix_TerminusL2) 3 $SetLengthR "*IK" $= {if} (L.$.Matrix_TerminusL2) 3 $cutEnd (S.$.Matrix_TerminusL2) 3 (S.L.matrix_invertMode) {endif} {endif} '--------------------------------------------------------------------------=============================== '--------------------------------------------------------------------------=============================== ' Simple Umsetzung von *K: Wenn am Ende des Ziels vorhanden, dann setze das Flag auf 1. Wenn nicht, dann 0. Rest wird bei PrintBitmapPixel gemacht. (L.$.Matrix_TerminusL1) 2 $SetLengthR "*K" $= {if} (L.$.Matrix_TerminusL1) 2 $cutEnd (S.$.Matrix_TerminusL1) 10 (S.L.matrix_BoldMode) {endif} 'Das gleiche mit Ziel Zeile 2. Just to make sure. Könnte später noch auf ein anderes Flag geändert werden. Ist bereits darauf vorbereitet. (L.$.Matrix_TerminusL2) 2 $SetLengthR "*K" $= {if} (L.$.Matrix_TerminusL2) 2 $cutEnd (S.$.Matrix_TerminusL2) 11 (S.L.matrix_BoldMode) {endif} ' Simple Umsetzung von *K: Wenn am Ende des Ziels vorhanden, dann setze das Flag auf 1. Wenn nicht, dann 0. Rest wird bei PrintBitmapPixel gemacht. (L.$.Matrix_TerminusL1) 2 $SetLengthR "*B" $= {if} (L.$.Matrix_TerminusL1) 2 $cutEnd (S.$.Matrix_TerminusL1) 11 (S.L.matrix_BoldMode) {endif} 'Das gleiche mit Ziel Zeile 2. Just to make sure. Könnte später noch auf ein anderes Flag geändert werden. Ist bereits darauf vorbereitet. (L.$.Matrix_TerminusL2) 2 $SetLengthR "*B" $= {if} (L.$.Matrix_TerminusL2) 2 $cutEnd (S.$.Matrix_TerminusL2) 10 (S.L.matrix_BoldMode) {endif} {end} {macro:Matrix_SetCoords} (M.L.Matrix_SetvarConfig) '---Vorne--- (L.L.Matrix_Modul) 0 = {if} 0 (S.L.Matrix_Xoffset) 0 (S.L.Matrix_Yoffset) 'Mobitec l6 0 = {if} 200 (S.L.Matrix_Width) 24 (S.L.Matrix_Height) {endif} l6 1 = {if} 128 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} l6 2 = {if} 216 (S.L.Matrix_Width) 26 (S.L.Matrix_Height) {endif} l6 3 = {if} 112 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} 'Aesys l6 10 = {if} 160 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} l6 11 = {if} 236 (S.L.Matrix_Width) 24 (S.L.Matrix_Height) {endif} l6 12 = {if} 200 (S.L.Matrix_Width) 24 (S.L.Matrix_Height) {endif} l6 13 = {if} 160 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} 'Annax l6 20 = {if} 175 (S.L.Matrix_Width) 26 (S.L.Matrix_Height) {endif} l6 21 = {if} 144 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} 'Bustec l6 30 = {if} 145 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} l6 30 > {if} 160 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} {endif} '---Linie--- (L.L.Matrix_Modul) 1 = {if} 0 (S.L.Matrix_Xoffset) 27 (S.L.Matrix_Yoffset) 'Mobitec l6 0 = {if} 40 (S.L.Matrix_Width) 24 (S.L.Matrix_Height) {endif} l6 1 = {if} 28 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} l6 2 = {if} 48 (S.L.Matrix_Width) 26 (S.L.Matrix_Height) {endif} 'Aesys l6 10 = {if} 32 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} 'Annax l6 20 = {if} 30 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} 'Bustec l6 30 = {if} 32 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} {endif} '---Heck Ziel--- (L.L.Matrix_Modul) 2 = {if} 0 (S.L.Matrix_Xoffset) 54 (S.L.Matrix_Yoffset) 'Mobitec l6 0 = {if} 160 (S.L.Matrix_Width) 24 (S.L.Matrix_Height) {endif} l6 1 = {if} 112 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} l6 2 = {if} 192 (S.L.Matrix_Width) 26 (S.L.Matrix_Height) {endif} 'Aesys l6 10 = {if} 160 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} 'Annax l6 20 = {if} 126 (S.L.Matrix_Width) 26 (S.L.Matrix_Height) {endif} l6 21 = {if} 120 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} 'Bustec l6 30 = {if} 120 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} l6 30 > {if} 112 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} {endif} '---rechts--- (L.L.Matrix_Modul) 3 = {if} 50 (S.L.Matrix_Xoffset) 27 (S.L.Matrix_Yoffset) 'Mobitec l6 0 = {if} 160 (S.L.Matrix_Width) 24 (S.L.Matrix_Height) {endif} l6 1 = {if} 112 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} l6 2 = {if} 192 (S.L.Matrix_Width) 26 (S.L.Matrix_Height) {endif} 'Aesys l6 10 = {if} 160 (S.L.Matrix_Width) 16 (S.L.Matrix_Height) {endif} 'Annax l6 20 = {if} 126 (S.L.Matrix_Width) 26 (S.L.Matrix_Height) {endif} l6 21 = {if} 120 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} 'Bustec l6 30 = {if} 120 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} l6 31 = {if} 112 (S.L.Matrix_Width) 19 (S.L.Matrix_Height) {endif} {endif} 0 (S.L.Matrix_Xpos) 0 (S.L.Matrix_Ypos) {end} {macro:Matrix_WriteNr} (L.$.Matrix_Nr) "" $= ! (C.L.LNr_Display_Behavior) ! && {if} 'Feature-Wunsch: Linie über Hof schildern. Geht so nur, wenn auch eine Linie eingeschildert ist. (Hof-String 22 aus universeller Hofdatei) 'Wenn String leer, dann tus nicht. (L.$.Matrix_Sondersymbol_Linie) "" $= ! {if} (L.$.Matrix_Sondersymbol_Linie) (S.$.Matrix_Nr) {endif} (L.L.Matrix_Modul) 0 = {if} ' Front (L.L.Matrix_Sondersymbol_aktiv) ! {if} ' Mobitec: l6 9 < {if} (L.L.Matrix_Height) 23 < {if} 0 (S.L.Matrix_Ypos) (L.$.Matrix_Nr) (L.L.Font_26x12) s0 (M.V.TextLength) s1 40 > (L.L.vis_Linie_KMG) || {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6_Mobi) s0 (M.V.TextLength) s1 {endif} {else} (L.L.Font_26x14) s0 (L.L.matrix_invertMode) 1 > (L.L.Matrix_Height) 26 = && (S.L.Matrix_Xpos) (S.L.Matrix_Ypos) {endif} {endif} ' Aesys: l6 10 = {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x12) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x8) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6) s0 {endif} {endif} {endif} l6 11 = l6 12 = || {if} (L.$.Matrix_Nr) (L.L.Font_Linie14x24) s0 (M.V.TextLength) 48 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie11x24) s0 {endif} {endif} l6 13 = {if} (L.$.Matrix_Nr) (L.L.Font_Linie14x18) s0 (M.V.TextLength) 36 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie11x19) s0 {endif} {endif} ' Annax: l6 20 = {if} (L.$.Matrix_Nr) (L.L.Anx_Font_26x14_Linie) s0 (M.V.TextLength) 44 > {if} (L.$.Matrix_Nr) (L.L.Anx_Font_26x10_Linie) s0 {endif} {endif} l6 21 = {if} (L.$.Matrix_Nr) (L.L.Anx_Font_19x9_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Anx_Font_19x7_Linie) s0 {endif} {endif} ' Bustec: l6 30 >= {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_19x11_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_18x11_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_17x9_Linie) s0 {endif} {endif} (L.$.Matrix_Nr) l0 (M.V.TextLength) 1 + s2 (L.$.Matrix_Nr) $length s3 32 l2 l3 + - 2 / trunc (L.L.Matrix_Xpos) + 2 + 5 min 0 max (S.L.Matrix_Xpos) s5 l0 (L.L.Bustec_Font_17x9_Linie) = (S.L.Matrix_Ypos) {endif} {else} ' Font-Auswahl: (L.L.Matrix_Height) 16 = {if} (L.L.Font_Sondersymbol16) s0 {endif} (L.L.Matrix_Height) 19 = {if} (L.L.Font_Sondersymbol19) s0 {endif} (L.L.Matrix_Height) 24 = {if} (L.L.Font_Sondersymbol24) s0 {endif} (L.L.Matrix_Height) 26 = {if} (L.L.Font_Sondersymbol24) s0 1 (S.L.Matrix_Ypos) {endif} (L.$.Matrix_Symbol) (S.$.Matrix_Nr) 'Besonderheit Bustec: Symbol zentriert. l6 30 >= {if} (L.$.Matrix_Symbol) l0 (M.V.TextLength) 1 + s2 (L.$.Matrix_Symbol) $length s3 32 l2 l3 + - 2 / trunc (L.L.Matrix_Xpos) + 2 + 5 min 0 max (S.L.Matrix_Xpos) s5 {endif} {endif} (L.$.Matrix_Nr) l0 (M.V.TextLength) 1 + s2 (S.L.matrix_LineWidth_Front) 0 s1 s3 {endif} (L.L.Matrix_Modul) 1 = {if} ' Linie (L.L.Matrix_Sondersymbol_aktiv) ! {if} ' Mobitec: l6 9 < {if} (L.L.Matrix_Height) 23 < {if} 0 (S.L.Matrix_Ypos) (L.$.Matrix_Nr) (L.L.Font_26x12) s0 (M.V.TextLength) s1 40 > (L.L.vis_Linie_KMG) || {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6_Mobi) s0 (M.V.TextLength) s1 1 (S.L.Matrix_Ypos) {endif} {else} (L.$.Matrix_Nr) (L.L.Font_26x14) s0 (M.V.TextLength) s1 39 > {if} (L.$.Matrix_Nr) (L.L.Font_26x12) s0 (M.V.TextLength) s1 5 (S.L.Matrix_Ypos) {else} 0 (S.L.Matrix_Ypos) (L.L.matrix_invertMode) 1 > (L.L.Matrix_Height) 26 = && (S.L.Matrix_Xpos) (S.L.Matrix_Ypos) {endif} {endif} 0 s1 {endif} ' Aesys: l6 10 = {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x12) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x8) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6) s0 {endif} {endif} 1 s1 {endif} l6 20 = {if} (L.$.Matrix_Nr) (L.L.Anx_Font_16x9_Linie) s0 (M.V.TextLength) 30 > {if} (L.$.Matrix_Nr) (L.L.Anx_Font_16x6_Linie) s0 {endif} 0 s1 {endif} ' Bustec: l6 30 = {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_19x11_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_18x11_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_17x9_Linie) s0 {endif} {endif} l0 (L.L.Bustec_Font_17x9_Linie) = (S.L.Matrix_Ypos) 0 s1 {endif} {else} ' Font-Auswahl: (L.L.Matrix_Height) 16 = {if} (L.L.Font_Sondersymbol16) s0 {endif} (L.L.Matrix_Height) 19 = {if} (L.L.Font_Sondersymbol19) s0 {endif} (L.L.Matrix_Height) 24 = {if} (L.L.Font_Sondersymbol24) s0 {endif} (L.L.Matrix_Height) 26 = {if} (L.L.Font_Sondersymbol24) s0 1 (S.L.Matrix_Ypos) {endif} (L.$.Matrix_Symbol) (S.$.Matrix_Nr) {endif} (L.$.Matrix_Nr) l0 (M.V.TextLength) 1 + s2 (L.$.Matrix_Nr) $length s3 (L.L.Matrix_Width) l2 l3 + - 2 / trunc (L.L.Matrix_Xpos) + 2 + (S.L.Matrix_Xpos) {endif} (L.L.Matrix_Modul) 2 = {if} ' Heck (L.L.Matrix_Sondersymbol_aktiv) ! {if} ' Mobitec: l6 9 < {if} (L.L.Matrix_Height) 23 < {if} 0 (S.L.Matrix_Ypos) (L.$.Matrix_Nr) (L.L.Font_26x12) s0 (M.V.TextLength) s1 26 > (L.L.vis_Linie_KMG) || {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6_Mobi) s0 (M.V.TextLength) s1 1 (S.L.Matrix_Ypos) {endif} {else} (L.$.Matrix_Nr) (L.L.Font_26x14) s0 (M.V.TextLength) s1 39 > {if} (L.$.Matrix_Nr) (L.L.Font_26x12) s0 (M.V.TextLength) s1 5 (S.L.Matrix_Ypos) {else} 0 (S.L.Matrix_Ypos) (L.L.matrix_invertMode) 1 > (L.L.Matrix_Height) 26 = && (S.L.Matrix_Xpos) (S.L.Matrix_Ypos) {endif} {endif} 0 s1 {endif} ' Aesys: l6 10 = {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x12) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x8) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6) s0 {endif} {endif} 1 s1 {endif} l6 20 = {if} (L.$.Matrix_Nr) (L.L.Anx_Font_26x14_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Anx_Font_26x10_Linie) s0 {endif} 0 s1 {endif} l6 21 = {if} (L.$.Matrix_Nr) (L.L.Anx_Font_19x9_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Anx_Font_19x7_Linie) s0 {endif} 0 s1 {endif} ' Bustec: l6 30 >= {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_19x11_Linie) s0 (M.V.TextLength) 30 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_18x11_Linie) s0 (M.V.TextLength) 30 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_17x9_Linie) s0 {endif} {endif} l0 (L.L.Bustec_Font_17x9_Linie) = (S.L.Matrix_Ypos) 0 s1 {endif} {else} ' Font-Auswahl: (L.L.Matrix_Height) 16 = {if} (L.L.Font_Sondersymbol16) s0 {endif} (L.L.Matrix_Height) 19 = {if} (L.L.Font_Sondersymbol19) s0 {endif} (L.L.Matrix_Height) 24 = {if} (L.L.Font_Sondersymbol24) s0 {endif} (L.L.Matrix_Height) 26 = {if} (L.L.Font_Sondersymbol24) s0 1 (S.L.Matrix_Ypos) {endif} (L.$.Matrix_Symbol) (S.$.Matrix_Nr) 'Besonderheit Bustec: Symbol zentriert. l6 30 >= {if} (L.$.Matrix_Symbol) l0 (M.V.TextLength) 1 + s2 (L.$.Matrix_Symbol) $length s3 32 l2 l3 + - 2 / trunc (L.L.Matrix_Xpos) + 2 + 5 min 0 max (S.L.Matrix_Xpos) s5 {endif} {endif} (L.$.Matrix_Nr) l0 (M.V.TextLength) 1 + s2 (S.L.matrix_LineWidth_Heck) (L.$.Matrix_Nr) $length s3 {endif} (L.L.Matrix_Modul) 3 = {if} ' Ziel (L.L.Matrix_Sondersymbol_aktiv) ! {if} ' Mobitec: l6 9 < {if} (L.L.Matrix_Height) 23 < {if} 0 (S.L.Matrix_Ypos) (L.$.Matrix_Nr) (L.L.Font_26x12) s0 (M.V.TextLength) s1 26 > (L.L.vis_Linie_KMG) || {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6_Mobi) s0 (M.V.TextLength) s1 1 (S.L.Matrix_Ypos) {endif} {else} (L.L.Font_26x14) s0 (L.L.matrix_invertMode) 1 > (L.L.Matrix_Height) 26 = && (S.L.Matrix_Xpos) (S.L.Matrix_Ypos) {endif} 0 s1 {endif} ' Aesys: l6 10 = {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x12) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x8) s0 (M.V.TextLength) 26 > {if} (L.$.Matrix_Nr) (L.L.Font_Linie16x6) s0 {endif} {endif} 1 s1 {endif} ' Annax: l6 20 = {if} (L.$.Matrix_Nr) (L.L.Anx_Font_26x14_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Anx_Font_26x10_Linie) s0 {endif} 0 s1 {endif} l6 21 = {if} (L.$.Matrix_Nr) (L.L.Anx_Font_19x9_Linie) s0 (M.V.TextLength) 32 > {if} (L.$.Matrix_Nr) (L.L.Anx_Font_19x7_Linie) s0 {endif} 0 s1 {endif} ' Bustec: l6 30 >= {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_19x11_Linie) s0 (M.V.TextLength) 30 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_18x11_Linie) s0 (M.V.TextLength) 30 > {if} (L.$.Matrix_Nr) (L.L.Bustec_Font_17x9_Linie) s0 {endif} {endif} l0 (L.L.Bustec_Font_17x9_Linie) = (S.L.Matrix_Ypos) 0 s1 {endif} {else} ' Font-Auswahl: (L.L.Matrix_Height) 16 = {if} (L.L.Font_Sondersymbol16) s0 {endif} (L.L.Matrix_Height) 19 = {if} (L.L.Font_Sondersymbol19) s0 {endif} (L.L.Matrix_Height) 24 = {if} (L.L.Font_Sondersymbol24) s0 {endif} (L.L.Matrix_Height) 26 = {if} (L.L.Font_Sondersymbol24) s0 1 (S.L.Matrix_Ypos) {endif} (L.$.Matrix_Symbol) (S.$.Matrix_Nr) 'Besonderheit Bustec: Symbol zentriert. l6 30 >= {if} (L.$.Matrix_Symbol) l0 (M.V.TextLength) 1 + s2 (L.$.Matrix_Symbol) $length s3 32 l2 l3 + - 2 / trunc (L.L.Matrix_Xpos) + 2 + 5 min 0 max (S.L.Matrix_Xpos) s5 {endif} {endif} {endif} (L.$.Matrix_Nr) l0 (M.V.TextLength) 1 + s2 (S.L.matrix_LineWidth_Side) (L.$.Matrix_Nr) $length s3 (L.L.Matrix_ST_1) (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l0 2 l1 (L.$.Matrix_Nr) (M.V.STTextOut) l6 30 = (L.L.Matrix_Modul) 0 = && {if} l5 2 * l2 + (S.L.Matrix_Xpos) {else} (L.L.Matrix_Xpos) l2 + l3 + 1 + (S.L.Matrix_Xpos) {endif} {else} ' Wenn die Liniennummer "" ist, dann schreibe String 22 aus der Hofdatei (Linienmatrix in der universellen Hof): (L.L.Matrix_Modul) 1 = {if} (L.$.Matrix_Sondersymbol_Linie) (L.L.Font_26x14) s0 (M.V.TextLength) 1 + s2 1 s1 (L.$.Matrix_Sondersymbol_Linie) $length s3 (L.L.Matrix_Width) l2 l3 + - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) (L.L.Matrix_ST_1) (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l0 2 0 (L.$.Matrix_Sondersymbol_Linie) (M.V.STTextOut) (L.$.Matrix_Sondersymbol_Linie) l0 (M.V.TextLength) (L.L.Matrix_Xpos) + 2 + (S.L.Matrix_Xpos) {endif} {endif} {end} {macro:Matrix_WriteTerminus} 1 s7 (M.L.Matrix_CheckDescender) (L.$.Matrix_TerminusL1) "" $= ! {if} ' Verfuegbare Breite fuer das Ziel: (L.L.Matrix_Width) (L.L.Matrix_Xpos) - s0 (L.L.matrix_invertMode) {if} l0 2 - s0 {endif} (L.$.Matrix_TerminusL2) "" $= {if} ' Einzeiliges Ziel. Einzeilige Zielmacros aufrufen, je nach eingestelltem Matrixtyp: l6 10 < {if} ' Mobitec: (L.L.Matrix_Height) 23 < {if} (M.L.Matrix_Ziel1z_Mobi16) {else} (M.L.Matrix_Ziel1z_Mobi24) {endif} {endif} l6 10 >= l6 20 < && {if} ' Aesys: (L.L.Matrix_Height) 16 = {if} (M.L.Matrix_Ziel1z_Aesys16) {endif} (L.L.Matrix_Height) 19 = {if} (M.L.Matrix_Ziel1z_Aesys19) {endif} (L.L.Matrix_Height) 24 = {if} (M.L.Matrix_Ziel1z_Aesys24) {endif} {endif} l6 20 >= l6 30 < && {if} ' Annax: (L.L.Matrix_Height) 19 = {if} (M.L.Matrix_Ziel1z_Annax19) {endif} (L.L.Matrix_Height) 26 = {if} (M.L.Matrix_Ziel1z_Annax26) {endif} {endif} l6 30 >= {if} ' Bustec: (M.L.Matrix_Ziel1z_Bustec19) {endif} ' Sperrung: l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc ' maximal 2: (L.L.matrix_Sperrung) min s3 0 < {if} 0 s3 {endif} ' Textlaenge mit Sperrung: l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung: l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: (L.L.Matrix_ST_1) (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) {else} ' Zeile 1: ' Xpos zwischenspeichern: (L.L.Matrix_Xpos) s4 'Wählen der Matrixkonfiguration: l6 10 < {if} ' Mobitec: (L.L.Matrix_Height) 23 < {if} (M.L.Matrix_Ziel2z_Mobi16z1) {else} (M.L.Matrix_Ziel2z_Mobi24z1) {endif} {endif} l6 10 >= l6 20 < && {if} ' Aesys: (L.L.Matrix_Height) 16 = {if} (M.L.Matrix_Ziel2z_Aesys16z1) {endif} (L.L.Matrix_Height) 19 = {if} (M.L.Matrix_Ziel2z_Aesys19z1) {endif} (L.L.Matrix_Height) 24 = {if} (M.L.Matrix_Ziel2z_Aesys24z1) {endif} {endif} l6 20 >= l6 30 < && {if} ' Annax: (L.L.Matrix_Height) 19 = {if} (M.L.Matrix_Ziel2z_Annax19z1) {endif} (L.L.Matrix_Height) 26 = {if} (M.L.Matrix_Ziel2z_Annax26z1) {endif} {endif} l6 30 >= {if} (M.L.Matrix_Ziel2z_Bustec19z1) {endif} '------ ' 0 (S.L.Matrix_Ypos) ' Sperrung: l0 l2 - (L.$.Matrix_TerminusL1) $length 1 - / trunc ' maximal 1: (L.L.matrix_Sperrung) min s3 0 < {if} 0 s3 {endif} ' Textlaenge mit Sperrung: l2 (L.$.Matrix_TerminusL1) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: (L.L.Matrix_ST_1) (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL1) (M.V.STTextOut) ' Zeile 2: ' Xpos zuruecksetzen: l4 (S.L.Matrix_Xpos) ' Schrift waehlen: 'Wählen der Matrixkonfiguration: l6 10 < {if} ' Mobitec: (L.L.Matrix_Height) 23 < {if} (M.L.Matrix_Ziel2z_Mobi16z2) {else} (M.L.Matrix_Ziel2z_Mobi24z2) {endif} {endif} l6 10 >= l6 20 < && {if} ' Aesys: (L.L.Matrix_Height) 16 = {if} (M.L.Matrix_Ziel2z_Aesys16z2) {endif} (L.L.Matrix_Height) 19 = {if} (M.L.Matrix_Ziel2z_Aesys19z2) {endif} (L.L.Matrix_Height) 24 = {if} (M.L.Matrix_Ziel2z_Aesys24z2) {endif} {endif} l6 20 >= l6 30 < && {if} ' Annax: (L.L.Matrix_Height) 19 = {if} (M.L.Matrix_Ziel2z_Annax19z2) {endif} (L.L.Matrix_Height) 26 = {if} (M.L.Matrix_Ziel2z_Annax26z2) {endif} {endif} l6 30 >= {if} (M.L.Matrix_Ziel2z_Bustec19z2) {endif} '------ ' Sperrung: l0 l2 - (L.$.Matrix_TerminusL2) $length 1 - / trunc ' maximal 1: (L.L.matrix_Sperrung) min s3 0 < {if} 0 s3 {endif} ' Textlaenge mit Sperrung: l2 (L.$.Matrix_TerminusL2) $length 1 - l3 * + s2 ' Zentrierung (aufgerundet, der Text soll eher rechts stehen): l0 l2 - 2 / trunc (L.L.Matrix_Xpos) + (S.L.Matrix_Xpos) ' Schreiben: (L.L.Matrix_ST_1) (L.L.Matrix_Xoffset) (L.L.Matrix_Xpos) + (L.L.Matrix_Yoffset) (L.L.Matrix_Ypos) + l1 2 l3 (L.$.Matrix_TerminusL2) (M.V.STTextOut) {endif} {endif} {end} {macro:Matrix_PrintBitmap} 0 (S.L.Matrix_Cursor) (L.L.matrix_invertMode) 1 = (L.$.Matrix_Nr) $RemoveSpaces "" $= && {if} 3 (S.L.matrix_invertMode) {endif} (M.L.Matrix_PrintBitmapPixel8) (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) (L.L.Matrix_Height) (L.L.Matrix_Width) * s7 'Bis hierher: 448 Pixel gezeichnet. =28x16. Jetzt stufenweise auf volle Größe ran fahren. l7 448 > {if} (M.L.Matrix_PrintBitmapPixel5) l7 480 > {if} (M.L.Matrix_PrintBitmapPixel5) l7 512 > {if} (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel6) l7 608 > {if} (M.L.Matrix_PrintBitmapPixel8) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel5) l7 960 > {if} (M.L.Matrix_PrintBitmapPixel8) (M.L.Matrix_PrintBitmapPixel5) l7 1248 > {if} (M.L.Matrix_PrintBitmapPixel9) (M.L.Matrix_PrintBitmapPixel5) l7 1792 > {if} (M.L.Matrix_PrintBitmapPixel8) l7 2048 > {if} (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel3) l7 2280 > {if} (M.L.Matrix_PrintBitmapPixel8) (M.L.Matrix_PrintBitmapPixel4) (M.L.Matrix_PrintBitmapPixel3) l7 2560 > {if} (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel2) l7 2755 > {if} (M.L.Matrix_PrintBitmapPixel8) (M.L.Matrix_PrintBitmapPixel4) (M.L.Matrix_PrintBitmapPixel3) (M.L.Matrix_PrintBitmapPixel1) l7 3040 > {if} (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel3) (M.L.Matrix_PrintBitmapPixel2) l7 3276 > {if} (M.L.Matrix_PrintBitmapPixel9) (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel4) (M.L.Matrix_PrintBitmapPixel2) l7 3840 > {if} (M.L.Matrix_PrintBitmapPixel9) (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel2) (M.L.Matrix_PrintBitmapPixel1) l7 4550 > {if} (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel4) (M.L.Matrix_PrintBitmapPixel3) (M.L.Matrix_PrintBitmapPixel1) l7 4800 > {if} (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel6) l7 4992 > {if} (M.L.Matrix_PrintBitmapPixel9) (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel4) l7 5616 > {if} (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel4) {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} {endif} 0 (S.L.Matrix_Cursor) {end} {macro:Matrix_PrintBitmapPixel12} '4096x (M.L.Matrix_PrintBitmapPixel11) (M.L.Matrix_PrintBitmapPixel11) {end} {macro:Matrix_PrintBitmapPixel11} '2048x (M.L.Matrix_PrintBitmapPixel10) (M.L.Matrix_PrintBitmapPixel10) {end} {macro:Matrix_PrintBitmapPixel10} '1024x (M.L.Matrix_PrintBitmapPixel9) (M.L.Matrix_PrintBitmapPixel9) {end} {macro:Matrix_PrintBitmapPixel9} '512x (M.L.Matrix_PrintBitmapPixel8) (M.L.Matrix_PrintBitmapPixel8) {end} {macro:Matrix_PrintBitmapPixel8} '256x (M.L.Matrix_PrintBitmapPixel7) (M.L.Matrix_PrintBitmapPixel7) {end} {macro:Matrix_PrintBitmapPixel7} '128x (M.L.Matrix_PrintBitmapPixel6) (M.L.Matrix_PrintBitmapPixel6) {end} {macro:Matrix_PrintBitmapPixel6} '64x (M.L.Matrix_PrintBitmapPixel5) (M.L.Matrix_PrintBitmapPixel5) {end} {macro:Matrix_PrintBitmapPixel5} '32x (M.L.Matrix_PrintBitmapPixel4) (M.L.Matrix_PrintBitmapPixel4) {end} {macro:Matrix_PrintBitmapPixel4} '16x (M.L.Matrix_PrintBitmapPixel3) (M.L.Matrix_PrintBitmapPixel3) {end} {macro:Matrix_PrintBitmapPixel3} '8x (M.L.Matrix_PrintBitmapPixel2) (M.L.Matrix_PrintBitmapPixel2) {end} {macro:Matrix_PrintBitmapPixel2} '4x (M.L.Matrix_PrintBitmapPixel1) (M.L.Matrix_PrintBitmapPixel1) {end} {macro:Matrix_PrintBitmapPixel1} '2x (M.L.Matrix_PrintBitmapPixel0) (M.L.Matrix_PrintBitmapPixel0) {end} {macro:Matrix_PrintBitmapPixel0} (L.L.Matrix_Xoffset) s0 (L.L.Matrix_Yoffset) s1 (L.L.Matrix_Cursor) (L.L.Matrix_Width) % s2 (L.L.Matrix_Cursor) (L.L.Matrix_Width) / trunc s3 ' Pixel von Speicherbitmap lesen: (L.L.Matrix_ST_1) l0 l2 + l1 l3 + (M.V.STReadPixel) (L.L.Matrix_ST_1) (M.V.STGetR) s4 'Zieltext invertieren. Liniennummer aber nicht. Deaktiviert für breite Heckmatrix, weil Probleme. (L.L.matrix_invertMode) 1 = {if} (L.L.Matrix_Modul) 0 = {if} l2 (L.L.matrix_LineWidth_Front) 1 + < ! l3 (L.L.Matrix_Height) < && {if} 255 l4 - s4 {endif} {endif} (L.L.Matrix_Modul) 1 = {if} l2 (L.L.Matrix_Width) < ! {if} 255 l4 - s4 {endif} {endif} 0 (L.L.Matrix_Modul) 2 = {if} l2 (L.L.matrix_LineWidth_Heck) 1 + < ! l3 (L.L.Matrix_Height) < && {if} 255 l4 - s4 {endif} {endif} (L.L.Matrix_Modul) 3 = {if} l2 (L.L.matrix_LineWidth_Side) 3 + (C.L.Matrix_Seite_Linieziel_kombiniert) * < ! l3 (L.L.Matrix_Height) < && {if} 255 l4 - s4 {endif} {endif} {endif} 'Liniennummer invertieren. Zieltext aber nicht. (L.L.matrix_invertMode) 2 = {if} (L.L.Matrix_Modul) 0 = {if} l2 (L.L.matrix_LineWidth_Front) 1 + < l3 (L.L.Matrix_Height) < && {if} 255 l4 - s4 {endif} {endif} (L.L.Matrix_Modul) 1 = {if} l2 (L.L.Matrix_Width) < {if} 255 l4 - s4 {endif} {endif} (L.L.Matrix_Modul) 2 = {if} l2 (L.L.matrix_LineWidth_Heck) 1 + < l3 (L.L.Matrix_Height) < && {if} 255 l4 - s4 {endif} {endif} (L.L.Matrix_Modul) 3 = (C.L.Matrix_Seite_Linieziel_kombiniert) && {if} l2 (L.L.matrix_LineWidth_Side) 3 + < l3 (L.L.Matrix_Height) < && {if} 255 l4 - s4 {endif} {endif} {endif} 'Komplett invertieren. Deaktiviert für breite Heckmatrix, weil Probleme. (L.L.matrix_invertMode) 3 = {if} 255 l4 - s4 {endif} (L.L.Matrix_ST_2) l4 255 255 255 (M.V.STSetColor) ' Pixel zeichnen: (L.L.Matrix_ST_2) l0 l2 + 8 * s4 l1 l3 + 8 * s5 l4 8 + 1 - l5 8 + 1 - (M.V.STDrawRect) ' Cursor verschieben: (L.L.Matrix_Cursor) 1 + (S.L.Matrix_Cursor) {end} {macro:Matrix_CheckDescender} ' Geprüft werden 24 Zeichen. Es ist unwahrscheinlich, dass eine Zeile eines Ziels länger ist. 0 (S.L.Matrix_TerminusL1HasDescender) 0 (S.L.Matrix_TerminusL2HasDescender) 1 (S.L.Matrix_Cursor) (M.L.Matrix_CheckDescender3) (M.L.Matrix_CheckDescender3) (M.L.Matrix_CheckDescender3) (M.L.Matrix_CheckDescender3) 0 (S.L.Matrix_Cursor) (L.$.Matrix_TerminusL2) $RemoveSpaces "" $= ! {if} (M.L.Matrix_CheckDescender32) (M.L.Matrix_CheckDescender32) (M.L.Matrix_CheckDescender32) (M.L.Matrix_CheckDescender32) {endif} {end} {macro:Matrix_CheckDescender3} (M.L.Matrix_CheckDescender2) (M.L.Matrix_CheckDescender2) {end} {macro:Matrix_CheckDescender2} (M.L.Matrix_CheckDescender1) (M.L.Matrix_CheckDescender1) {end} {macro:Matrix_CheckDescender1} (M.L.Matrix_CheckDescender0) (M.L.Matrix_CheckDescender0) {end} {macro:Matrix_CheckDescender32} (M.L.Matrix_CheckDescender22) (M.L.Matrix_CheckDescender22) {end} {macro:Matrix_CheckDescender22} (M.L.Matrix_CheckDescender12) (M.L.Matrix_CheckDescender12) {end} {macro:Matrix_CheckDescender12} (M.L.Matrix_CheckDescender02) (M.L.Matrix_CheckDescender02) {end} {macro:Matrix_CheckDescender0} (L.$.Matrix_TerminusL1) $length s7 (L.L.Matrix_Cursor) >= {if} l7 (L.L.Matrix_Cursor) - s7 (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "g" $= (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "j" $= || (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "p" $= || (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "q" $= || (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "y" $= || (L.$.Matrix_TerminusL1) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "," $= || {if} 1 (S.L.Matrix_TerminusL1HasDescender) {endif} (L.L.Matrix_Cursor) 1 + (S.L.Matrix_Cursor) {endif} {end} {macro:Matrix_CheckDescender02} (L.$.Matrix_TerminusL2) $length s7 (L.L.Matrix_Cursor) >= {if} l7 (L.L.Matrix_Cursor) - s7 (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "g" $= (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "j" $= || (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "p" $= || (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "q" $= || (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "y" $= || (L.$.Matrix_TerminusL2) (L.L.Matrix_Cursor) 1 - $cutBegin l7 $cutEnd "," $= || {if} 1 (S.L.Matrix_TerminusL2HasDescender) {endif} (L.L.Matrix_Cursor) 1 + (S.L.Matrix_Cursor) {endif} {end} {macro:Matrix_SetvarConfig} ' Setvars werden eingelesen und entsprechend für Register 7 gesetzt, mit dem dann die Matrix weiter arbeitet. Reduziert unnötigen (L.L.Matrix_Modul) 0 = {if} (L.L.vis_Matrix_Front) s6 {endif} (L.L.Matrix_Modul) 1 = {if} (L.L.vis_Matrix_Linie) s6 {endif} (L.L.Matrix_Modul) 2 = (L.L.vis_Matrix_Heck) 0 > && {if} (L.L.vis_Matrix_Heck) 1 - s6 {endif} (L.L.Matrix_Modul) 3 = {if} (L.L.vis_Matrix_Seite) s6 {endif} {end} '================== ' Zeugs für die Konfiguration via dem Dingsbums auf der Fahrertür. '================== {trigger:Konfig_up} (L.L.Konfig_Auswahl) 1 - (S.L.Konfig_Auswahl) (M.L.Matrix_Konfig_cropAuswahl) 0 (M.L.Matrix_Konfig_Display) {end} {trigger:Konfig_dn} (L.L.Konfig_Auswahl) 1 + (S.L.Konfig_Auswahl) (M.L.Matrix_Konfig_cropAuswahl) 0 (M.L.Matrix_Konfig_Display) {end} {trigger:Konfig_eing} (L.L.Konfig_Mode) ! {if} (C.L.Matrix_heck_breit_aktiv) (L.L.Konfig_Auswahl) 3 = {if} (C.L.Matrix_heck_breit_aktiv) {if} (L.L.Konfig_Auswahl) 1 + (S.L.Konfig_Mode) {endif} {else} (L.L.Konfig_Auswahl) 1 + (S.L.Konfig_Mode) {endif} {else} (L.L.Konfig_Mode) 1 = {if} (L.L.Konfig_Auswahl) (F.L.Matrix_Front) (S.L.vis_Matrix_Front) {endif} (L.L.Konfig_Mode) 2 = {if} (L.L.Konfig_Auswahl) (F.L.Matrix_Seite) (S.L.vis_Matrix_Seite) {endif} (L.L.Konfig_Mode) 3 = {if} (L.L.Konfig_Auswahl) (F.L.Matrix_Linie) (S.L.vis_Matrix_Linie) {endif} (L.L.Konfig_Mode) 4 = {if} (L.L.Konfig_Auswahl) (F.L.Matrix_Heck) (S.L.vis_Matrix_Heck) {endif} (L.L.Konfig_Mode) 5 = {if} (L.L.Konfig_Auswahl) {if} (L.L.vis_Font_Post) 1 + 3 % (S.L.vis_Font_Post) {else} (L.L.vis_Linie_KMG) ! (S.L.vis_Linie_KMG) {endif} 0 (S.L.Konfig_Mode) {endif} 1 (S.L.Matrix_Status) (C.L.Matrix_ST_2) (M.V.STNewTex) 0 (S.L.Konfig_Mode) {endif} 0 (S.L.Konfig_Auswahl) 0 (M.L.Matrix_Konfig_Display) 1 (M.L.Matrix_Konfig_Display) {end} {macro:Matrix_Konfig_cropAuswahl} (L.L.Konfig_Auswahl) 0 < {if} 0 (S.L.Konfig_Auswahl) {endif} (L.L.Konfig_Mode) ! {if} (L.L.Konfig_Auswahl) 5 % (S.L.Konfig_Auswahl) {endif} (L.L.Konfig_Mode) 1 = {if} (L.L.Konfig_Auswahl) 12 % (S.L.Konfig_Auswahl) {endif} (L.L.Konfig_Mode) 2 = {if} (L.L.Konfig_Auswahl) 8 % (S.L.Konfig_Auswahl) {endif} (L.L.Konfig_Mode) 3 = {if} (L.L.Konfig_Auswahl) 6 % (S.L.Konfig_Auswahl) {endif} (L.L.Konfig_Mode) 4 = {if} (L.L.Konfig_Auswahl) 9 % (S.L.Konfig_Auswahl) {endif} (L.L.Konfig_Mode) 5 = {if} (L.L.Konfig_Auswahl) 2 % (S.L.Konfig_Auswahl) {endif} {end} {macro:Matrix_Konfig_Display} ' Auswahl oder Optionen? ' 0 = Auswahl, 1 = Optionen ! {if} "@@" (L.L.Konfig_Auswahl) s0 {if} l0 "@" $* $+ {endif} ">" $+ (S.$.Konfig_Auswahl) 0 s6 s5 (M.L.Matrix_Konfig_CountNL_Auswahl) (L.$.Konfig_Auswahl) 20 l5 - "@" $* $+ (S.$.Konfig_Auswahl) {else} (L.L.Konfig_Mode) ! {if} "Hauptmenü" "@-------------------------------------" $+ "@Frontmatrix" $+ "@Seitenmatrix" $+ "@Linienmatrix" $+ "@Heckmatrix" $+ "@Sonderfunktionen" $+ (S.$.Konfig_Optionen) {endif} (L.L.Konfig_Mode) 1 = {if} "Konfiguration Frontmatrix" "@-------------------------------------" $+ "@MobiLED 200x24" $+ "@MobiLED 128x16" $+ "@MobiLED 216x26" $+ "@MobiLED 112x16 klein" $+ "@Aesys 160x16 klein" $+ "@Aesys 236x24" $+ "@Aesys 200x24" $+ "@Aesys 160x19" $+ "@Annax 175x26" $+ "@Annax 144x19 klein" $+ "@Bustec 145x19" $+ "@Bustec 160x19" $+ (S.$.Konfig_Optionen) {endif} (L.L.Konfig_Mode) 2 = {if} "Konfiguration Seitenmatrix" "@-------------------------------------" $+ "@MobiLED 160x24" $+ "@MobiLED 112x16" $+ "@MobiLED 192x26" $+ "@Aesys 160x16" $+ "@Annax 126x26" $+ "@Annax 120x19" $+ "@Bustec 120x19" $+ "@Bustec 112x19" $+ (S.$.Konfig_Optionen) {endif} (L.L.Konfig_Mode) 3 = {if} "Konfiguration Linienmatrix" "@-------------------------------------" $+ "@MobiLED 40x24" $+ "@MobiLED 28x16" $+ "@MobiLED 48x26" $+ "@Aesys 32x16" $+ "@Annax 30x16" $+ "@Bustec 32x19" $+ (S.$.Konfig_Optionen) {endif} (L.L.Konfig_Mode) 4 = {if} "Konfiguration Heckmatrix" "@-------------------------------------" $+ "@Nur Linienmatrix" $+ "@MobiLED 160x24" $+ "@MobiLED 112x16" $+ "@MobiLED 192x26" $+ "@Aesys 160x16" $+ "@Annax 126x26" $+ "@Annax 120x19" $+ "@Bustec 120x19" $+ "@Bustec 112x19" $+ (S.$.Konfig_Optionen) {endif} (L.L.Konfig_Mode) 5 = {if} "Konfiguration Sonderfunktionen" "@-------------------------------------" $+ "@Breite/Schmale Liniennummern" $+ (L.L.vis_Font_Post) ! {if} "@Nutze Haettenschweiler " $+ {else} "@Aktiviere kompletten erweiterten Schriftsatz " $+ {endif} (S.$.Konfig_Optionen) {endif} 0 s6 s5 (M.L.Matrix_Konfig_CountNL_Konfig) (L.$.Konfig_Optionen) 20 l5 - "@" $* $+ (S.$.Konfig_Optionen) {endif} {end} {macro:Matrix_Konfig_CountNL_Konfig} (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) (M.L.Matrix_Konfig_CountNL_Konfig_Step2) {end} {macro:Matrix_Konfig_CountNL_Konfig_Step2} (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) (M.L.Matrix_Konfig_CountNL_Konfig_Step1) {end} {macro:Matrix_Konfig_CountNL_Konfig_Step1} (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) (M.L.Matrix_Konfig_CountNL_Konfig_Step) {end} {macro:Matrix_Konfig_CountNL_Konfig_Step} (L.$.Konfig_Optionen) $length s7 l6 >= {if} l7 l6 - s7 (L.$.Konfig_Optionen) l6 1 - $cutBegin l7 $cutEnd "@" $= {if} l5 1 + s5 {endif} l6 1 + s6 {endif} {end} {macro:Matrix_Konfig_CountNL_Auswahl} (M.L.Matrix_Konfig_CountNL_Auswahl_Step1) (M.L.Matrix_Konfig_CountNL_Auswahl_Step1) (M.L.Matrix_Konfig_CountNL_Auswahl_Step1) {end} {macro:Matrix_Konfig_CountNL_Auswahl_Step1} (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) (M.L.Matrix_Konfig_CountNL_Auswahl_Step) {end} {macro:Matrix_Konfig_CountNL_Auswahl_Step} (L.$.Konfig_Auswahl) $length s7 l6 >= {if} l7 l6 - s7 (L.$.Konfig_Auswahl) l6 1 - $cutBegin l7 $cutEnd "@" $= {if} l5 1 + s5 {endif} l6 1 + s6 {endif} {end}