Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Simutrans Preview 0.85
#31
Vorher gings auch ohne -res5, ich probiers mal. Ansonsten bislang keine Abstürze bei mir. Gefällt mir.
Zitieren
#32
Zitat:Original von prissi
Ich teste immer im Fenster. Hast du da nicht -res 5 vergessen?

Ich hatte die -res Schalter mal als obsolet erklärt. Hast Du die wieder eingeführt?

Wenn ja, dann würde ich vorschlagen zusätzlich zu -screensize (Vollbild) ein -windowsize (Fenstermodus) einzuführen und die -res Schalter endgültig aus dem Code zu entfernen. Die Namen sind selbsterklärend, die -res Parameter sind es nicht.

Ich habe die -res Schalter nur beibehalten weil SimuStarter die Schalter nutzte und ich das Tool nicht zerbrechen wollte.
Zitieren
#33
Wie gesagt, ich habe eigentlich außer dem Introscreen und der Reihenfolge des Ladens der Übersetzungen (nach dem Introbildschirm) nichts geändert. Wie seit Urzeiten starte ich immer mit -res 5. (Was intern eh nur auf Bildschirmgröße 672*496 umgesetzt wird, wie ich sehe.)

Kann es sein, dass die neue SDL, die ich ja zwangsweise bei meiner Linuxneuinstallation runtergeladen habe, alle Auflösungen nach Vollbild schreibt? Ich habe nachgesehen, der entscheidenende Aufruf lautet:

// open the window
int dr_os_open(int w, int h)
{
...
// open the window now
screen = SDL_SetVideoMode(w, h, 8, SDL_HWPALETTE);
if (screen == NULL) {
printf("Couldn't open the window: %s\n", SDL_GetError());
return FALSE;
}
if (screen->pitch != w) {
printf("!!!!!!!!!!!!!!!!!warnign, pitch != width\n");
}
...
}

Das Modul habe ich nicht mal angefasst. Hmm.
Zitieren
#34
In der Tat, da stimmt etwas nicht. Da Fehlt die Berechnung des FULLSCREEN Flags. Mein Code lautete:

Code:
// open the window
int dr_os_open(int w, int h)
{
  Uint32 flags = SDL_HWPALETTE;
  
  width = w;
  height = h;
  
  if(width == 640 ||
     width == 800 ||
     width == 1024 ||
     width == 1280) {
    
    flags |= SDL_FULLSCREEN;
  }
  
  // open the window now
  screen = SDL_SetVideoMode(w, h, 16, flags);
  if (screen == NULL) {
    printf("Couldn't open the window: %s\n", SDL_GetError());
    return FALSE;
  }

Das ist aus simsys_s16.c

Dein Code sieht aus wie aus simsys_s.c, das stammt noch aus der Zeit als Simutrans intern mit 8 bit und Farbpalette arbeitete?
Zitieren
#35
Ok, ich bin tatsächlich im falschen File gelandet. Vielleicht wird unter Unix das dazugelinkt, statt wie unter Windows die simsys_s16.c. Aber dann sollten doch kein 16 Bit farben erscheinen, oder? Ok, vermutlich ist es nur ein Problem im Makefile oder so. Werde dem nachgehen.

Noch eine dumme Frage. Es gibt ja auch die Allegro-Header, womit man z.B. auch eine MAC-version bauen könnte. Hatte Allegro eigentlich irgendwelche Nachteile gegenüber SDL?

Vielen Dank, Hajo
Zitieren
#36
Falls Du den -windowsize Schalter einführen möchtest, dann wirst Du Feststellen, dass die Schnittstelle zwischen der Grafikschicht und der Programmschicht keinen Parameter anbiete um Vollbild- bzw. Fenstermodus zu unterscheiden. Deshalb versucht die Grafikschicht anhand der Auflösung zu entscheiden ob es Vollbild wird oder Fenster.

Ganz am Anfang hatte ich die Idee die Grafikschicht für mehere Projekte gemeinsam zu verwenden. Teile des Codes stammes aus meinem Zeichenprogramm Drops, deshalb haben einige Funktionen auch ein dr_ Präfix. Schnitstellenänderungen sind nicht so einfach möglich wenn mehre Projekte diesselbe Schnittstelle benutzen, deshalb habe ich den Paramter nicht eingeführt.

Inzwischen ist das aber kein Argument mehr, Simutran hat eine eigen Codebasis und damit kann man die Schnittstelle erweitern ohne viel Rücksicht nehmen zu müssen.

Linken: Ich glaube nicht, dass eine Simutrans-Version die PAK files liest (16 Bit Grafikdaten) mit dem 8 Bit simsys_s.c funktionieren kann. Ich würde das Problem woanders suchen.
Zitieren
#37
Leider noch etwas gefunden:

Die Neu erstellten Fabriken (Kohlegruben, Sandkuhlen etc.) brauchen keine Arbeiter .... selbst wenn sie direkt neben einer Stadt vom programm gebaut werden.

Gruß,
Werner
Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind expliziet unter die GPL gestellt ....

Für "Simutrans-Nightlys" und aktuelle PAK: http://nightly.simutrans-germany.com
Zitieren
#38
Kann ich NICHT bestätigen, bei mir funktionierts!!!!
Ich spiele PAK-German
Zitieren
#39
Zitat:Original von Hajo
Ich habe die -res Schalter nur beibehalten weil SimuStarter die Schalter nutzte und ich das Tool nicht zerbrechen wollte.
Die aktuelle SimuStarter Beta-Version (0-29-10) verwendet -res nicht mehr. Das stabile Release verwendet den schalter aber noch.
Zitieren
#40
Wie wäre mal eine Simustarterversion, die auch die Einträge in den Conf-Dateien ändert? (Timeline, ... )

Oder habe ich da was versäumt?
Zitieren


Gehe zu:


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