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
M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs
Verfasser Nachricht
mb
Tycoon
*****

Beiträge: 5.054
Registriert seit: Mar 2005
Beitrag #4
RE: M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs
3. Syntax für action1 und action2

Auch diese Implementierung ist simpel. In Spriteblöcken für Fahrzeuge treten normalerweise zwar lediglich 4- und 8-Richtung-Sprites auf, dennoch schien es hier sinnvoll dieses statement flexibler auszuführen, besonders im Hinblick auf eine spätere Erweiterung auf andere Objekte.

spriteblock({<set>}) - definiert einen sprite-Block
set({<sprite>}) - definiert einen sprite Set
sprite(<realsprite>) - definiert ein einzelnes "real sprite"

in Verbindung mit einer Implementierung für die zugehörige "action2", namens

spriteset(move(<movingstates>), load(<loadingstates>))

sieht die praktische Anwendung dann zB so aus:

Code:
//---------------------------------------
// V200
//---------------------------------------

spriteblock(
  // rot
  set(
    sprite(db_v200.pcx 66 8 01 20 8 -3 -12)
    sprite(db_v200.pcx 82 8 09 17 23 -14 -9)
    sprite(db_v200.pcx 114 8 01 12 30 -14 -8)
    sprite(db_v200.pcx 146 8 09 17 23 -5 -8)
    sprite(db_v200.pcx 178 8 01 20 8 -3 -12)
    sprite(db_v200.pcx 194 8 09 17 23 -16 -8)
    sprite(db_v200.pcx 226 8 01 12 30 -15 -8)
    sprite(db_v200.pcx 258 8 09 17 23 -7 -9)
  )
  // blau/beige
  set(
    sprite(db_v200.pcx 66 30 01 20 8 -3 -12)
    sprite(db_v200.pcx 82 30 09 17 23 -14 -9)
    sprite(db_v200.pcx 114 30 01 12 30 -14 -8)
    sprite(db_v200.pcx 146 30 09 17 23 -5 -8)
    sprite(db_v200.pcx 178 30 01 20 8 -3 -12)
    sprite(db_v200.pcx 194 30 09 17 23 -16 -8)
    sprite(db_v200.pcx 226 30 01 12 30 -15 -8)
    sprite(db_v200.pcx 258 30 09 17 23 -7 -9)
  )
)

Hierdurch werden also 2 Sets zu jeweils 8 Richtungssprites definiert.

Code:
def(0) spriteset(move(0), load(0)) // rot
def(1) spriteset(move(1), load(1)) // blau/beige

Die Funktionen "move" und "load" geben die per "spriteblock" definierten und zu verwendenden Sprite-Sets an. Im obigen Beispiel wird lediglich ein Sprite-Set pro Farbgebung verwendet, aber bei einem Güterwagen könnte dies zB so aussehen:

Code:
def(5) spriteset(move(0, 13), load(0, 9, 10, 11, 12, 13))

für 2 Fahrzustände (offen, geschlossen) und 6 Beladungszustände.


4. Syntax für action3

Auch diese Implementierung ist relativ simpel aber effektiv:

makevehicle(<veh-ID>,{c-ID/cargo type pair},<default c-ID>[{,<override>}])

Die Paare von c-IDs und zugehöriger Fracht ("cargo type") werden durch die Funktion "link" realisiert:

link(<c-ID>,{<cargotype>}), sodass eine praktische Anwendung zB so aussehen würde:

Eine Lok:

Code:
makevehicle(0x01,
    link(ref(3), MENU) // Kaufmenü
    default(ref(1)) // Lok
)

Ein Güterwagen:

Code:
makevehicle(0x43,
    link(ref(7), MENU) // Kaufmenü
    link(ref(2), LVST) // Vieh
    link(ref(6), FOOD, FISH) // Lebensmittel und Fisch
    default(ref(1)) // alles andere
)

Ein eventuell notwendiger "livery override" wird durch die Funktion "override" erzeugt:

override(<veh-ID>,<c-ID>), s. Beispiel im nächsten Abschnitt.

-------- Ende Teil 4 -------------------------

Gruß
Michael

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


Nachrichten in diesem Thema
RE: M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs - mb - 09.11.2009 21:51

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Hilfe Diverse Fragen zu OpenTTD, TTD und TTDPatch Steinborg 7 5.297 22.07.2013 18:26
Letzter Beitrag: Steinborg

Gehe zu:


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