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:
  • 3 Bewertungen - 4.33 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
FIRS Industry Replacement Set Diskussion [war: Full Industry Replacement Set ?!?]
Verfasser Nachricht
Eddi
Tycoon
*****

Beiträge: 4.066
Registriert seit: Aug 2008
Beitrag #11
RE: Full Industry Replacement Set ?!?
Also. Crashkurs in Bitmasken:

Schritt 1: Vorbereitung
Du brauchst
  1. Die DBSet-Readme, um nachzuschlagen, welche ID der Kesselwagen hat.
  2. Die "Cargo Translation Table" von FIRS (das ist ein langer String, der meistens mit "PASSCOALMAIL..." anfängt)
  3. Eine Beschreibung, wie du eine Bitmaske (z.B. 0010 0000 0101 0110, mit der ersten Ziffer als "least significant bit" (LSB)) in einen "little endian"-Kodierten Hexadezimalwert umrechnet (hier Beispiel "04 6A")


Schritt 2: Suchen des richtigen Sprite
Die Einträge für die Refitmasken sehen alle so aus:
Code:
nn * 10     00 00 01 01 xx 1D yy yy yy yy
Dabei muß xx mit der ID übereinstimmen, die du gerade aus der Readme herausgelesen hast. yy yy yy yy wird dann durch unsere Bitmaske (32 bit) ersetzt.


Schritt 3: Zerlegen der Cargo Translation Table
Die Cargo Translation Table ist ein langer String, der in 4-Buchstaben-Folgen zerlegt werden muß, beispielsweise:
"PASS" "COAL" "MAIL" "OIL_" ... [die kann man auch in NFO exakt in dieser Weise hintereinanderschreiben]
Das müssen insgesamt 32 Einträge sein (können mehr sein, aber die können wir im weiteren Vorgehen nicht verarbeiten)

Am besten Gruppiert man diese Einträge in Vierergruppen, mit jeweils zwei Vierergruppen in einer Zeile, das ist für das weitere vorgehen hilfreich, weil man nicht so viel zählen muß.

Schritt 4: heraussuchen der zu setzenden Bit
Angenommen du möchtest jetzt Öl und Benzin im Kesselwagen transportieren, dann mußt du die passenden 4-Byte-Folgen aus dem Wiki heraussuchen, "OIL_" und "PETR", und deren Position innerhalb der Cargo Translation Table suchen. "OIL_" steht wahrscheinlich an der 4. Stelle, "PETR" woanders.

Diese Bits setzt du auf 1, alle anderen auf 0. Das könnte zum Beispiel so aussehen:
0001 0000 0000 0010 0000 0000 0000 0000 [müssen genau 32 bit sein]

Schritt 5: umrechnen auf Hexadezimal
Das ist nicht ganz so einfach, weil die meisten "binärfähigen" Rechner das LSB hinten annehmen, hier steht es aber vorne, also mußt du das ganze vielleicht umdrehen. Dann bekommst du aber einen "big endian" Wert heraus, den du wieder umdrehen mußt, um "little endian" zu bekommen. jedenfalls wäre für dieses Beispiel der Wert "08 20 00 00"

fertig
(Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2010 18:11 von Eddi.)
30.05.2010 17:20
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Nachrichten in diesem Thema
RE: Full Industry Replacement Set ?!? - Eddi - 30.05.2010 17:20

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  OTTD newGRF Full TTO Conversion waldo 2 247 30.12.2023 20:02
Letzter Beitrag: waldo
  FIRS 2.0.0 Timeflyer 7 4.062 02.04.2016 11:09
Letzter Beitrag: Eddi
  FIRS und GermanRV RWS 18 5.798 17.08.2015 11:31
Letzter Beitrag: RWS
  Alpine Climate und FIRS hurrlipurr 4 2.228 22.07.2015 13:11
Letzter Beitrag: Eddi
  Cargodist-FIRS, Probleme bei der Verteilung Mitropa 3 1.774 24.05.2015 10:33
Letzter Beitrag: Mitropa

Gehe zu:


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