mb
Tycoon
    
Beiträge: 5.054
Registriert seit: Mar 2005
|
RE: M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs
4.1 Beispiel V200
Nun wollen wir in einem einfachen Beispiel mal zusammenfassen, was wir bis jetzt haben. Wie gesagt, habe ich bereits die Version 0.9 des DB Set in die neue Syntax übertragen, so dass auch die üblicherweise vorkommenden komplizierteren Konstruktionen (zB Callbacks oder "recolourings") bereits von der aktuellen Implementierung dieser Makrosammlung abgedeckt werden.
Hier also erst mal die einfache V200:
Code:
//------------------------------------------------------------------
// BR 220 V 200
//------------------------------------------------------------------
train(10, {"BR 220 (ex V 200)"},
intro(1954) // Einführungsjahr
reliability(11) // Abnahme der Fz-Verlässlichkeit
vehlife(30) // Lebensdauer des Fz (in Jahren)
modlife(30) // Verfügbarkeit des Modells (in Jahren)
enginetype(DIESEL) // Traktionsart und Kostentabelle
speed(140 km/h) // Höchstgeschwindigkeit
power(2700 PS) // Dauerleistung
runningcost(120) // Wartungskosten
dualhead(NO) // einfache Lok
capacity(0) // keine Frachtkapazität
weight(80 t) // Dienstgewicht
price(75) // Kaufpreis
aiusage(10) // AI Rang
effort(235 kN) // Zugkraft
shorter(0) // normale Fahrzeuglänge
retire(2) // frühzeitige Entfernung aus Kaufliste
)
spriteblock(
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)
)
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)
)
)
def(0) spriteset(move(0), load(0)) // rot
def(1) spriteset(move(1), load(1)) // blau/beige
def(2) yearbuilt(
ref(0) ifyear(1920 .. 1974) // rot
ref(1) else // blau/beige
)
//------------------------------------------------------------------
// Anzeige
//------------------------------------------------------------------
spriteblock(
set(
sprite(db_v200.pcx 226 50 01 12 30 -14 -8) // rot
)
set(
sprite(db_v200.pcx 226 70 01 12 30 -14 -8) // blau/beige
)
)
def(0) spriteset(move(0), load(0)) // rot
def(1) spriteset(move(1), load(1)) // blau/beige
def(3) year(
ref(0) ifyear(1920 .. 1973) // rot
ref(1) else // blau/beige
)
// callbacks Anzeige
def(4) callback(
TLH_V200 if(CB_TEXT) // Hilfstext für Lok
ref(3) else // Grafik für Anzeige
)
//------------------------------------------------------------------
// Wagen für V200: Passagiere (fern + extra)
//------------------------------------------------------------------
def(0) yearbuilt(
ref(XSPW_WRUM) ifyear(1920 .. 1960) // 1950 - 1960 switch Wrüm | Aüm
ref(X_TEEHUMP) ifyear(1969 .. 1973) // switch TEE Buckel | generic
ref(F_BB74) ifyear(1974 .. 1986) // DB74
ref(X_IRIC) ifyear(1987 .. 1996) // switch IR87 | IC87
ref(LF_) else // 1997- generic (k. SPW!)
)
//------------------------------------------------------------------
// Wagen für V200: Post (fern + extra)
//------------------------------------------------------------------
def(1) yearbuilt(
ref(XP_TEE) ifyear(1969 .. 1973) // switch TEE | generic
ref(FP_BB74) ifyear(1974 .. 1986) // DB74
ref(XP_IRIC) ifyear(1987 .. 1996) // switch IR87 | IC87
ref(LFP_) else // 1997- generic
)
makevehicle(0x0A,
link(ref(4),MENU) // Kaufmenü
default(ref(2)) // Lok
override(0x4D,ref(0)) // Passagiere
override(0x4E,ref(1)) // Post
)
Wie man sieht, sind hier die einzelnen Wagenklassen aus Gründen der Übersichtlichkeit über "label" defineirt bzw referenziert, und nicht über c-ID Nummern. Dies ist entsprechend natürlich auch für die veh-IDs möglich.
------------ Ende Teil 5 -----------------------------
Gruß
Michael
Zitat:EU-Wirtschaft- und Währungskommissar Joaquin Almunia hat alle Besorgnisse über den Schuldnerstatus Griechenlands als unbegründet zurückgewiesen.
(Dieser Beitrag wurde zuletzt bearbeitet: 11.11.2009 22:58 von mb.)
|
|
11.11.2009 22:58 |
|