Dieses Forum nutzt Cookies
Dieses Forum nutzt Cookies um Anmeldeinformationen (keine Passwörter) zu speichern. Dabei werden diese Informationen als kleine Textdateien auf deinem Endgerät abgelegt. Sie können nur durch dieses Forum ausgelesen werden und stellen kein Sicherheitsrisiko dar. Neben deinem letzten Login wird auch abgespeichert, welche Themen du bereits gelesen hast.

Zudem wird ein Cookie angelegt, in dem abgespeichert wird, ob du diesen Hinweis gelesen hast. Damit wird er nicht jedes mal angezeigt.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NML - NewGRF Meta Language
Verfasser Nachricht
mb
Tycoon
*****

Beiträge: 5.054
Registriert seit: Mar 2005
Beitrag #17
RE: NML - NewGRF Meta Language
officercrockey schrieb:Zu den bits: Da wäre es in der Tat gut, wenn ich mal ein kleines Beispiel hätte, wie sowas aussieht. Das Beispiel von mb habe ich zwar gesucht, aber nur einen weiteren Verweis darauf (~2006) gefunden. Dein Beitrag an sich aber nicht...

Tja, die Sufu ...


Also, ich stelle gerade fest dass ich CB 1D (can wagon be attached) dafür überhaupt nicht nutze, warum nicht fällt mir gerade nicht ein, aber es gab dafür bestimmt Gründe ...

Stattdessen überprüfe ich die Konfiguration des Zugs auf "Wendezugkompatibilität" anhand der gesetzten bits und benutze dann CB 31 (start/stop check). Damit verhindere ich das Ausfahren falsch zusammengestellter Züge aus dem Depot, bzw verhindere zumindest dass sie als Wendezüge benutzt werden können (stattdessen fahren sie dann "normal")..

Der Kern des Problems ist aber in jedem Fall (egal welcher CB nun genutzt wird) die Evaluierung der in der "user bit mask" gesetzten bits:

Code:
//------------------------------------------------------------------
// prop25 bit flags:
//
//      val     type
//      01      Fernverkehr
//      02      Nahverkehr
//      04      StW aktiv
//      08      Fernverkehr wendezugfähig
//      10      Nahverkehr wendezugfähig
//      20      n/a
//      40      n/a
//      80      S-Bahn flag
//
//      00 .. 03   = n/a
//      04       = StW aktiv
//      05 .. 07   = F: keine wendezugfähigen Wagen
//      08 .. 0B   = n/a
//      0C      = StW + 08
//      0D .. 0F   = F: enthält (auch) nicht-wendezugfähige Wagen
//      10 .. 13   = n/a
//      14      = StW + 10
//      15 .. 17   = F: enthält (auch) nicht-wendezugfähige Wagen
//      18 .. 1B   = n/a
//      1C .. 1F   = F: StW + 08 + 10 (+08) -> nicht erlaubte Mischung
//
//------------------------------------------------------------------

Diese bit-Muster werden dann geprüft und bei Vorliegen falscher Muster werden entsprechende Fehlermeldungen ausgegeben. Ich denke dass dies leicht zu verstehen ist, m4nfo verzichtet lediglich auf die redundanten Schlüsselwörter (feature, self, switch, ..) und beschränkt sich auf den Aufruf der Funktion "ubitsetrel()" die die user bit Masken aller im Zug enthaltenen Fz abfragt und die entsprechenden Fehlermeldungen ausgibt:

Code:
// start-stop check: allow only if correct types of coaches
def(21) ubitsetrel(UB_ALL-UB_NSWITCH,   // S-Bahn ausgeblendet
         attach(PP_OK) if(0 .. 3)       // normal, allow
         attach(PP_REQPPCAR) if(5 .. 7) // "Wendezugfähige Wagen erforderlich"
         attach(PP_OK) if(8 .. 11)      // normal, allow
         attach(PP_BADSET) if(12 .. 15) // "enthält nicht-wendezugfähige Wagen"
         attach(PP_OK) if(16 .. 19)     // normal, allow
         attach(PP_BADSET) if(21 .. 23) // D029
         attach(PP_OK) if(24 .. 27)     // normal, allow
         attach(PP_LDSDSET) if(28)      // "enthält N und F Wagen"
         attach(PP_BADSET) if(29 .. 31) // D029
         ref(20) else            // möglicher Wendezug: all passenger?
)

[...]

// CBs
def(22) callback(
         ref(21) if(CB_STOP) // start/stop check
         ref(23) if(CB_ARTI) // articulated    
         ref(3) else         // Grafik
)

makevehicle(_BR141,
    link(ref(10), MENU)
    default(ref(22))
    override(_PLOCALLONG, ref(X_SBAHN)) // switch S-Bahn | generic
    override(_STWDOSTO, ref(19))        // StW Dosto, bzw ..
    override(_STWLOCAL, ref(19))        // .. StW normal, je nachdem
)

Also, vielleicht auch mal mit CB31 versuchen?

HTH
Gruß
Michael

Zitat:EU-Wirtschaft- und Währungskommissar Joaquin Almunia hat alle Besorgnisse über den Schuldnerstatus Griechenlands als unbegründet zurückgewiesen.
25.08.2011 10:59
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Nachrichten in diesem Thema
RE: NML - NewGRF Meta Language - Eddi - 17.06.2010, 21:56
RE: NML - NewGRF Meta Language - Eddi - 21.06.2010, 08:58
RE: NML - NewGRF Meta Language - Eddi - 24.08.2011, 13:09
RE: NML - NewGRF Meta Language - mb - 24.08.2011, 15:53
RE: NML - NewGRF Meta Language - mb - 25.08.2011, 16:23
RE: NML - NewGRF Meta Language - mb - 25.08.2011 10:59
RE: NML - NewGRF Meta Language - Eddi - 06.09.2011, 17:01
RE: NML - NewGRF Meta Language - Eddi - 11.09.2011, 19:25

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste