Thema geschlossen 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Abnutzung der Gleise
Verfasser Nachricht
Locke
Geschäftsführer
***

Beiträge: 734
Themen: 73
Registriert seit: Jan 2004
#1
Abnutzung der Gleise
Wie wäre es, wenn man die Gleise warten muss.

Oder dass z.B. Gleise die nicht mehr genutzt werden nach ein paar Jahren mit Grünzeug bewachsen sind.
Und wenn man diese Gleise dann doch braucht, muss man sie erst wieder auf Fordermann bringen.

Außerdem wäre es doch schick, wenn man Unterschiede bei den Schnellzugstrecken, Bhf.'s etc sieht.
(z.B.: So wie bei Simutrans)
01.04.2005, 17:40
Suchen
Puffer_MBO
Geschäftsführer
***

Beiträge: 398
Themen: 30
Registriert seit: Mar 2005
#2
 
Nicht übel die Idee.

Kann ja nur von jemanden aus meiner Nachbarschaft kommen Zwinkern

Das müsste denn aber auch den Strassen betreffen, wie in unserem Nachbardorf Berlin Zwinkern

Je kaputter die Strassen/ verrottener die Schienen, destso langsammer kann man fahren und destso häufiger muss das Fahrzeug zur Wartung.
(Dieser Beitrag wurde zuletzt bearbeitet: 01.04.2005, 18:08 von Puffer_MBO.)
01.04.2005, 18:00
Suchen
RK
Ehrenmitglied
*****

Beiträge: 3.270
Themen: 34
Registriert seit: Jan 2004
#3
 
LOL?

Eine wirklich tolle Idee, allerdings müsste man auch die Züge intelligenter machen, damit die nicht die kürzeste sondern die Beste Route nehmen. (I hate waypoints)
01.04.2005, 18:25
Suchen
Bernhard
Forum-Team
*****

Beiträge: 9.401
Themen: 185
Registriert seit: Jan 2004
#4
 
hat es schon mal gegeben. für OTTD. ist leider gestorben konnte man schön sehen wenn Gleise unnötig waren.
"Das Böse triumphiert alleine dadurch, daß gute Menschen nichts unternehmen!" Edward Burke, 1729-1797

"Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont!" Konrad Adenauer, 1876-1967 Zwinkern

01.04.2005, 18:38
Suchen
bugfix
Geschäftsführer
***

Beiträge: 562
Themen: 32
Registriert seit: Jun 2004
#5
 
Zitat:hat es schon mal gegeben. für OTTD. ist leider gestorben konnte man schön sehen wenn Gleise unnötig waren.


und jetzt gibts des nicht mehr?
man könnte des doch als Zusatz einbauen. Also anschaltbar und abschaltbar.
01.04.2005, 19:51
Suchen
Bernhard
Forum-Team
*****

Beiträge: 9.401
Themen: 185
Registriert seit: Jan 2004
#6
 
hat wohl den Devs nicht gefallen. Rusty Tracks hieß das ganze. Rostige Schienen
"Das Böse triumphiert alleine dadurch, daß gute Menschen nichts unternehmen!" Edward Burke, 1729-1797

"Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont!" Konrad Adenauer, 1876-1967 Zwinkern

01.04.2005, 20:57
Suchen
Supernova
Gleisarbeiter
*

Beiträge: 62
Themen: 20
Registriert seit: Mar 2005
#7
 
Gute Idee. Wie wäre es mit verschiedenen Gleisvarianten?

Gleis auf Holzschwellen
Gleis auf Stahlschwellen
Gleis auf Betonschwellen (erst ab einem bestimmten Jahr erhältlich)

Je nach Schwellenart, sind bestimmte Geschwindigkeiten möglich und unterschiedlich Abnutzungen bemerkbar.
Z.B. Ein ICE kann daher nur mit einer bestimmten Geschwindigkeit fahren, wenn er auf eine Strecke mit Holzschwellen fährt. Oder, ist ein Gleisstück oder Bereich abgenutzt sind nur bestimmte Geschwindigkeiten möglich oder schlimmstenfalls Entgleisungen der Züge treten auf.

Natürlich sollten die Kosten bei Kauf je nach Art unterschiedlich sein. Die Darstellung wäre sicherlich schwer darzustellen?

Auch bei den Brücken sollten die Abnutzungen bemerkbar werden, z.B. die Farbe der Brücke wird in Rost dargestellt. Oder man muß Brücken nach bestimmten Jahren austauschen z.B. erneuern.

Bei der Abnutzung der Schienen bzw. Brücken sind Arbeitsfahrzeuge erforderlich um diese wieder auf Vordermann zu bringen. Für die Arbeitsfahrzeuge müssen nur die Routen festgelegt werden, damit diese die Strecken abfahren. Somit hätten die Arbeitsfahrzeuge eine Aufgabe.
[Bild: wendezugmini0bn.gif]
10.04.2005, 06:55
Suchen
Roter Baron
Gleisarbeiter
*

Beiträge: 25
Themen: 5
Registriert seit: Jun 2005
#8
 
Das hört sich ja echt klasse an!
Wäre ne tolle Idee.
Wie ist das hier eigentlich?
Also solche Sachen zu zeichnen, da würd ich mich dran setzen. Ich kann kann nur nicht programmieren, etc. .
25.06.2005, 19:40
Homepage Suchen
killking
Tycoon
*****

Beiträge: 1.234
Themen: 64
Registriert seit: Jan 2005
#9
 
Zitat:Also solche Sachen zu zeichnen, da würd ich mich dran setzen. Ich kann kann nur nicht programmieren, etc. .
Solche Leute wie dich können wir immer gebrauchen!
Zeichne doch mal was du kannst und Uploade das mal, zur Bewertung.
Ein paar Programmierer werden sich schon finden (Bernhard großes Grinsen )
Der Configurator , für mich und andere Tippfaule Leute.
Welche Grafiken laufen wo? Dafür gibt es die GRF-Liste. Jetzt auch in Englisch Version 1.5
25.06.2005, 21:37
Suchen
RK
Ehrenmitglied
*****

Beiträge: 3.270
Themen: 34
Registriert seit: Jan 2004
#10
 
Das wird definitiv nicht in naher Zukunft implementiert und das Bernhard programmieren kann ist mir neu. ?(
25.06.2005, 21:52
Suchen
killking
Tycoon
*****

Beiträge: 1.234
Themen: 64
Registriert seit: Jan 2005
#11
 
Zitat:Original von RK
Das wird definitiv nicht in naher Zukunft implementiert und das Bernhard programmieren kann ist mir neu. ?(
1. Schade!

zu Bernhard:
Hmm aber er hat doch mal gesagt das er Coden kann.ich dachte das wär das gleiche. ?(

Zitat:Orginal von Bernhard
[.]Und wenn Du mit zeichen Fertig bist machen wir das coden zusammen
Hab ich aus DIESEM Threat.
Der Configurator , für mich und andere Tippfaule Leute.
Welche Grafiken laufen wo? Dafür gibt es die GRF-Liste. Jetzt auch in Englisch Version 1.5
25.06.2005, 23:23
Suchen
RK
Ehrenmitglied
*****

Beiträge: 3.270
Themen: 34
Registriert seit: Jan 2004
#12
 
Mit coden bezeichnet man hier das editieren der *.nfo Datei um die *.grf zum laufen zu bringen. Dabei kannst du aber nur das coden, was Patchman schon im Patch programmiert hat. Eine Action "1F" für abgenutze Gleis-Grafiken gibt es z.B. noch nicht.
26.06.2005, 09:53
Suchen
killking
Tycoon
*****

Beiträge: 1.234
Themen: 64
Registriert seit: Jan 2005
#13
 
Zitat:Original von RK
Mit coden bezeichnet man hier das editieren der *.nfo Datei um die *.grf zum laufen zu bringen. Dabei kannst du aber nur das coden, was Patchman schon im Patch programmiert hat. Eine Action "1F" für abgenutze Gleis-Grafiken gibt es z.B. noch nicht.
Ok, damit hab ich mich jetzt als totalen Programmiertrottel ausgezeichnet. 8)
Danke für die Klarstellung, wieder was gelernt!
Der Configurator , für mich und andere Tippfaule Leute.
Welche Grafiken laufen wo? Dafür gibt es die GRF-Liste. Jetzt auch in Englisch Version 1.5
26.06.2005, 12:56
Suchen
jkl
Gleisarbeiter
*

Beiträge: 4
Themen: 2
Registriert seit: Feb 2006
#14
 
kann mir mal einer den Link fuer den rusty tracks code geben?

Ich moecte mir das mal ansehen wenns in C geschrieben wurde!

In welcher open TTD version hatten sie es mal drin?
21.02.2006, 18:13
Suchen
Bernhard
Forum-Team
*****

Beiträge: 9.401
Themen: 185
Registriert seit: Jan 2004
#15
 
hier ist der Thread. Bei mir ist es allerdings nie gelaufen .

http://www.tt-forums.net/viewtopic.php?t=9293

und hier die Diff großes Grinsen http://www.tt-forums.net//files/usedtracksv1.diff

Code:
Index: OpenTTD_UsedTracks/ttd.h =================================================================== --- OpenTTD_UsedTracks/ttd.h (revision 71) +++ OpenTTD_UsedTracks/ttd.h (working copy) @@ -472,7 +472,8 @@ enum Sprites { SPR_CANALS_BASE = 0x1406, SPR_SLOPES_BASE = SPR_CANALS_BASE + 70, - SPR_OPENTTD_BASE = SPR_SLOPES_BASE + 74, + SPR_OPENTTD_BASE = SPR_SLOPES_BASE + 74, + SPR_USED_TRACKS_BASE = SPR_OPENTTD_BASE + 75, }; enum MAP_OWNERS { Index: OpenTTD_UsedTracks/variables.h =================================================================== --- OpenTTD_UsedTracks/variables.h (revision 71) +++ OpenTTD_UsedTracks/variables.h (working copy) @@ -397,7 +397,9 @@ extern byte _map3_hi[TILES_X * TILES_Y]; extern byte _map_owner[TILES_X * TILES_Y]; extern byte _map2[TILES_X * TILES_Y]; -extern byte _map_extra_bits[TILES_X * TILES_Y/4]; +extern byte _map_extra_bits[TILES_X * TILES_Y/4]; +// usage of tracks need bits +extern byte _map_usage[TILES_X * TILES_Y]; static const byte _inclined_tileh[] = { 3,9,3,6,12,6,12,9, Index: OpenTTD_UsedTracks/gfx.h =================================================================== --- OpenTTD_UsedTracks/gfx.h (revision 71) +++ OpenTTD_UsedTracks/gfx.h (working copy) @@ -102,6 +102,7 @@ //enum { NUM_SPRITES = 0x1320 }; //enum { NUM_SPRITES = 0x1500 }; enum { NUM_SPRITES = 0x3500 }; // 1500 + space for custom GRF sets + /* tables.h */ extern byte _palettes[4][256 * 3]; Index: OpenTTD_UsedTracks/train_cmd.c =================================================================== --- OpenTTD_UsedTracks/train_cmd.c (revision 71) +++ OpenTTD_UsedTracks/train_cmd.c (working copy) @@ -2096,6 +2096,9 @@ AffectSpeedByDirChange(v, chosen_dir); } + // al is ok, update track usage: + UpdateTrackUsage(v->tile,1); + v->direction = chosen_dir; } } else { Index: OpenTTD_UsedTracks/rail_cmd.c =================================================================== --- OpenTTD_UsedTracks/rail_cmd.c (revision 71) +++ OpenTTD_UsedTracks/rail_cmd.c (working copy) @@ -31,6 +31,14 @@ RAIL_CHECKPOINT_TRACK_MASK = 1, RAIL_CHECKPOINT_UNUSED_BITS = 0x3E, }; + +enum { /* track usage */ + USAGE_NEVER = 0, + USAGE_RARE = 5, + USAGE_NORMAL = 50, + USAGE_OFTEN = 100, +}; + #define IS_RAIL_DEPOT(x) (((x) & (RAIL_TYPE_DEPOT|RAIL_DEPOT_UNUSED_BITS)) == RAIL_TYPE_DEPOT) #define IS_RAIL_CHECKPOINT(x) (((x) & (RAIL_TYPE_CHECKPOINT|RAIL_CHECKPOINT_UNUSED_BITS)) == RAIL_TYPE_CHECKPOINT) @@ -92,8 +100,37 @@ * 01abcdef => rail w/ signals * 10uuuuuu => unused * 11uuuudd => rail depot - */ + */ + +// return (new) state of track +int UpdateTrackUsage(uint tile, int amount) +{ + int before = _map_usage[tile]; + + // do nothing. + if (amount >=0 ) { + if (_map_usage[tile] >= 200 ) amount = 0; + }else{// decrease + if (_map_usage[tile] == USAGE_NEVER ) amount = 0; + } + + _map_usage[tile] += amount; + + if (before != _map_usage[tile]) + MarkTileDirtyByTile(tile); + + + if (_map_usage[tile]== USAGE_NEVER) return USAGE_NEVER; + + else if (_map_usage[tile] < USAGE_NORMAL) return USAGE_RARE; + + else if (_map_usage[tile] < USAGE_OFTEN) return USAGE_NORMAL; + + else return USAGE_OFTEN; + +} + static bool CheckTrackCombination(byte map5, byte trackbits, byte flags) { _error_message = STR_1001_IMPOSSIBLE_TRACK_COMBINATION; @@ -364,7 +401,9 @@ _map_type_and_height[tile] &= 0xF; _map_type_and_height[tile] |= MP_RAILWAY << 4; _map5[tile] |= rail_bit; - _map2[tile] &= ~RAIL_MAP2LO_GROUND_MASK; + _map2[tile] &= ~RAIL_MAP2LO_GROUND_MASK; + + _map_usage[tile] = (USAGE_NORMAL + USAGE_OFTEN)/2; // start in between // In case it's a tile without signals, clear the signal bits. Why? if ((_map5[tile] & RAIL_TYPE_MASK) != RAIL_TYPE_SIGNALS) @@ -1403,72 +1442,89 @@ DetTrackDrawProc_Null, DetTrackDrawProc_Null, }; + + static void DrawTile_Track(TileInfo *ti) -{ +{ + // never, rarely, normal, often, standard, monorail, maglev + int usage_offs[4] = {0,59,118,177 }; uint32 tracktype_offs, image; - byte m5; + byte m5; + int u = 3; //0-3 _drawtile_track_palette = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(_map_owner[ti->tile])); + + if ( _map3_lo[ti->tile] & 0xF ){ //mono/maglev + tracktype_offs = (_map3_lo[ti->tile] & 0xF) * TRACKTYPE_SPRITE_PITCH; + }else{ // normal rail + switch (UpdateTrackUsage(ti->tile,0)){ + case USAGE_NEVER: u = 0; break; + case USAGE_RARE: u = 1; break; + case USAGE_NORMAL: u = 2; break; + case USAGE_OFTEN: u = 3; break; + } + tracktype_offs = SPR_USED_TRACKS_BASE + usage_offs[u] + 7 - 0x3F3; + } - tracktype_offs = (_map3_lo[ti->tile] & 0xF) * TRACKTYPE_SPRITE_PITCH; m5 = (byte)ti->map5; if (!(m5 & RAIL_TYPE_SPECIAL)) { - bool special; - + bool special; + m5 &= RAIL_BIT_MASK; + special = false; - // select the sprite to use based on the map5 byte. - (image = 0x3F3, m5 == RAIL_BIT_DIAG2) || - (image++, m5 == RAIL_BIT_DIAG1) || - (image++, m5 == RAIL_BIT_UPPER) || - (image++, m5 == RAIL_BIT_LOWER) || - (image++, m5 == RAIL_BIT_RIGHT) || - (image++, m5 == RAIL_BIT_LEFT) || - (image++, m5 == (RAIL_BIT_DIAG1|RAIL_BIT_DIAG2)) || - - (image = 0x40B, m5 == (RAIL_BIT_UPPER|RAIL_BIT_LOWER)) || - (image++, m5 == (RAIL_BIT_LEFT|RAIL_BIT_RIGHT)) || - - (special=true, false) || - - (image = 0x3FA, !(m5 & (RAIL_BIT_RIGHT|RAIL_BIT_UPPER|RAIL_BIT_DIAG1))) || - (image++, !(m5 & (RAIL_BIT_LEFT|RAIL_BIT_LOWER|RAIL_BIT_DIAG1))) || - (image++, !(m5 & (RAIL_BIT_LEFT|RAIL_BIT_UPPER|RAIL_BIT_DIAG2))) || - (image++, !(m5 & (RAIL_BIT_RIGHT|RAIL_BIT_LOWER|RAIL_BIT_DIAG2))) || - (image++, true); - - if (ti->tileh != 0) { - int f = GetRailFoundation(ti->tileh, ti->map5 & 0x3F); - if (f) DrawFoundation(ti, f); - - // default sloped sprites. - if (ti->tileh != 0) image = _track_sloped_sprites[ti->tileh - 1] + 0x3F3; + // select the sprite to use based on the map5 byte. + (image = 0x3F3, m5 == RAIL_BIT_DIAG2) || + (image++, m5 == RAIL_BIT_DIAG1) || + (image++, m5 == RAIL_BIT_UPPER) || + (image++, m5 == RAIL_BIT_LOWER) || + (image++, m5 == RAIL_BIT_RIGHT) || + (image++, m5 == RAIL_BIT_LEFT) || + (image++, m5 == (RAIL_BIT_DIAG1|RAIL_BIT_DIAG2)) || + + (image = 0x40B, m5 == (RAIL_BIT_UPPER|RAIL_BIT_LOWER)) || + (image++, m5 == (RAIL_BIT_LEFT|RAIL_BIT_RIGHT)) || + + (special=true, false) || + + (image = 0x3FA, !(m5 & (RAIL_BIT_RIGHT|RAIL_BIT_UPPER|RAIL_BIT_DIAG1))) || + (image++, !(m5 & (RAIL_BIT_LEFT|RAIL_BIT_LOWER|RAIL_BIT_DIAG1))) || + (image++, !(m5 & (RAIL_BIT_LEFT|RAIL_BIT_UPPER|RAIL_BIT_DIAG2))) || + (image++, !(m5 & (RAIL_BIT_RIGHT|RAIL_BIT_LOWER|RAIL_BIT_DIAG2))) || + (image++, true); + + if (ti->tileh != 0) { + int f = GetRailFoundation(ti->tileh, ti->map5 & 0x3F); + if (f) DrawFoundation(ti, f); + + // default sloped sprites. + if (ti->tileh != 0) image = _track_sloped_sprites[ti->tileh - 1] + 0x3F3; + } + + if ((_map2[ti->tile] & RAIL_MAP2LO_GROUND_MASK)==RAIL_GROUND_BROWN) + image = (image & 0xFFFF) | 0x3178000; // use a brown palette + else if ((_map2[ti->tile] & RAIL_MAP2LO_GROUND_MASK)==RAIL_GROUND_ICE_DESERT) + image += 26; + + DrawGroundSprite(image + tracktype_offs); + + if (special) { + if (m5 & RAIL_BIT_DIAG1) DrawGroundSprite(0x3ED + tracktype_offs); + if (m5 & RAIL_BIT_DIAG2) DrawGroundSprite(0x3EE + tracktype_offs); + if (m5 & RAIL_BIT_UPPER) DrawGroundSprite(0x3EF + tracktype_offs); + if (m5 & RAIL_BIT_LOWER) DrawGroundSprite(0x3F0 + tracktype_offs); + if (m5 & RAIL_BIT_LEFT) DrawGroundSprite(0x3F2 + tracktype_offs); + if (m5 & RAIL_BIT_RIGHT) DrawGroundSprite(0x3F1 + tracktype_offs); + } + + if (_display_opt & DO_FULL_DETAIL) { + _detailed_track_proc[_map2[ti->tile] & RAIL_MAP2LO_GROUND_MASK](ti); } - if ((_map2[ti->tile] & RAIL_MAP2LO_GROUND_MASK)==RAIL_GROUND_BROWN) - image = (image & 0xFFFF) | 0x3178000; // use a brown palette - else if ((_map2[ti->tile] & RAIL_MAP2LO_GROUND_MASK)==RAIL_GROUND_ICE_DESERT) - image += 26; - - DrawGroundSprite(image + tracktype_offs); - - if (special) { - if (m5 & RAIL_BIT_DIAG1) DrawGroundSprite(0x3ED + tracktype_offs); - if (m5 & RAIL_BIT_DIAG2) DrawGroundSprite(0x3EE + tracktype_offs); - if (m5 & RAIL_BIT_UPPER) DrawGroundSprite(0x3EF + tracktype_offs); - if (m5 & RAIL_BIT_LOWER) DrawGroundSprite(0x3F0 + tracktype_offs); - if (m5 & RAIL_BIT_LEFT) DrawGroundSprite(0x3F2 + tracktype_offs); - if (m5 & RAIL_BIT_RIGHT) DrawGroundSprite(0x3F1 + tracktype_offs); - } - - if (_display_opt & DO_FULL_DETAIL) { - _detailed_track_proc[_map2[ti->tile] & RAIL_MAP2LO_GROUND_MASK](ti); - } - /* draw signals also? */ if (!(ti->map5 & RAIL_TYPE_SIGNALS)) return; @@ -1511,8 +1567,12 @@ } } else { const byte *s; - const DrawTrackSeqStruct *drss; + const DrawTrackSeqStruct *drss; + + // to normal value again(depots and stuff) + tracktype_offs = (_map3_lo[ti->tile] & 0xF) * TRACKTYPE_SPRITE_PITCH; + if (!(m5 & (RAIL_TYPE_MASK&~RAIL_TYPE_SPECIAL))) return; @@ -1854,7 +1914,9 @@ byte m2; byte owner; - m2 = _map2[tile] & 0xF; + m2 = _map2[tile] & 0xF; + + UpdateTrackUsage(tile,-1); /* special code for alps landscape */ if (_opt.landscape == LT_HILLY) { Index: OpenTTD_UsedTracks/landscape.c =================================================================== --- OpenTTD_UsedTracks/landscape.c (revision 71) +++ OpenTTD_UsedTracks/landscape.c (working copy) @@ -12,7 +12,8 @@ byte _map3_hi[TILES_X * TILES_Y]; byte _map_owner[TILES_X * TILES_Y]; byte _map2[TILES_X * TILES_Y]; -byte _map_extra_bits[TILES_X * TILES_Y/4]; +byte _map_extra_bits[TILES_X * TILES_Y/4]; +byte _map_usage[TILES_X * TILES_Y]; extern const TileTypeProcs _tile_type_clear_procs, @@ -499,7 +500,8 @@ for(i=0; i!=TILES_Y-1; i++) memset(_map_type_and_height + i*TILES_X, 0, TILES_X-1); - memset(_map5, 3, sizeof(_map5)); + memset(_map5, 3, sizeof(_map5)); + memset(_map_usage,0,sizeof(_map_usage)); } void ConvertGroundTilesIntoWaterTiles() Index: OpenTTD_UsedTracks/spritecache.c =================================================================== --- OpenTTD_UsedTracks/spritecache.c (revision 71) +++ OpenTTD_UsedTracks/spritecache.c (working copy) @@ -699,7 +699,11 @@ load_index = SPR_CANALS_BASE; load_index += LoadGrfFile("canalsw.grf", load_index, i++); /* XXX: Only for debugging. Will be more generic. */ - + + // Dribbel: Used Tracks + load_index = SPR_USED_TRACKS_BASE; + load_index += LoadGrfFile("used.grf", load_index, i++); + for(j=0; j!=lengthof(_newgrf_files) && _newgrf_files[j]; j++) load_index += LoadGrfFile(_newgrf_files[j], load_index, i++); @@ -714,7 +718,8 @@ FioOpenFile(i,_filename_list[i]); FioOpenFile(i, "openttd.grf"); - FioOpenFile(i+1, "canalsw.grf"); + FioOpenFile(i+1, "canalsw.grf"); + FioOpenFile(i+2, "used.grf"); if (_sprite_page_to_load != 0) FioOpenFile(i+2, _landscape_filenames[_sprite_page_to_load-1]);
"Das Böse triumphiert alleine dadurch, daß gute Menschen nichts unternehmen!" Edward Burke, 1729-1797

"Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont!" Konrad Adenauer, 1876-1967 Zwinkern

21.02.2006, 20:10
Suchen
Thema geschlossen 


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  zwei Gleise auf einem Quadrat officercrockey 11 6.313 27.09.2010, 20:17
Letzter Beitrag: DonRazzi

Gehe zu:


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

Kontakt | Transport Tycoon Main Station | Nach oben | Archiv-Modus | RSS-Synchronisation