Kategorien
Allgemein

LegacyClonk 4.9.10.15 [358]

Download: Windows x64, Windows x86, Windows Installer, Linux x64, macOS

32-Bit-Linuxbuilds werden nicht mehr angeboten, da Ubuntu 20.04 nur mehr als 64-Bit-Distribution zur Verfügung steht.

Features

  • FMOD-Unterstützung wurde entfernt, da derselbe Klangeffekt nun mit SDL2 erreicht werden kann, indem der Konfigurationseintrag Sound.PreferLinearResampling aktiviert wird.

Bugfixes

  • Graphics.RenderInactive funktioniert nun korrekt in allen Kombinationen.
  • Die Engine crasht nicht mehr bei /readycheck, wenn kein Toast erstellt werden konnte, weil das Spiel unter Windows 7 läuft.
  • Fenster im Konsolenmodus werden unter Windows wieder korrekt gruppiert.
  • Fenster im Konsolenmodus crashen nicht mehr, wenn mehr als ein Spieler verwendet wird.
  • Netzwerkspiele verbrauchen unter Linux und macOS nicht mehr unnötig viel CPU-Zeit.
  • Aufnahmen von Runden, in denen der Host /script verwendet hat, desyncen nicht mehr.
  • Unter Linux funktioniert die Zwischenablage wieder korrekt.
  • Overlays unter Linux werden wieder korrekt geladen.
Kategorien
Allgemein

LegacyClonk 4.9.10.15 [357]

Download: Windows x64, Windows x86, Linux x64, Linux x86, macOS (experimentell)

Features

  • Mit Ausnahme des Konsolenmodushauptfensters passt sich die Fenstertitelleiste unter Windows dem dunklen Farbschema an.

Bugfixes

  • Der /readycheck – Toast verursacht keinen Crash mehr, wenn er unter Windows zum zweiten Mal angezeigt wird.
  • Drag-n-Drop von Objekten aus dem Editor in den Konsolenmodus funktioniert wieder.
  • Dialogfenster im Konsolenmodus wie z.B. das Scoreboard verursachen keinen Crash mehr.
  • Maussteuerungsmodifier wie Strg und Umschalt funktionieren nun auch unter SDL-Builds, wie z.B. der macOS-Version.

Kategorien
Allgemein

LegacyClonk 4.9.10.15 [356]

Download: Windows x64, Windows x86, Linux x64, Linux x86, macOS (experimentell)

Features

  • Engineinventarmenüs wie das Kauf- oder Aktiviermenü behalten den Cursor auch auf dem richtigen Element, wenn ein anderer Spieler in der Zwischenzeit die angezeigten Elemente etwa durch Entfernen eines Objekts aus dem Inventar verändert.
  • Der Versuch, Heimatbasismaterial, welches mit einer negativen Stückzahl verfügbar ist, zu kaufen, zeigt nun dieselbe „Nicht verfügbar“ – Nachricht an, als wären 0 Elemente vorhanden.
  • Der Windows x86 – Build ist nun large address aware – damit kann LC bis zu 4 GB Arbeitsspeicher verwenden, was etwa mehr geladene Sounds ermöglicht. Empfohlen wird jedoch der Wechsel auf den Windows x64 – Build.
  • Heapbeschädigung erzeugt nun einen Crashdump unter Windows.
  • Die Shader verwenden nun GLSL anstelle von uralten ARB-/ATI-Extensions. Sie können über die Konfigurationseinstellung Graphics.Shader aktiviert werden.
  • Das Rendering verwendet nun Triangle Strips statt Polygonen, was zu besserer Performance führt.
  • Wenn die Gammaramp nicht abgefragt werden kann, wird eine Fehlermeldung geloggt.
  • C4Group-Dateien werden nun mit Kompressionslevel 2 anstelle von 9 geschrieben, was zu besserer Performance führt. (Danke an Funni.)
  • Das interne Texturladen wurde optimiert, wodurch Programmstart und Spielladen nun merkbar schneller sind.
  • Das interne Schriftladen wurde optimiert, wodurch der Programmstart nun merkbar schneller ist.
  • Die Rückgabewerte von GetPlrViewMode sind nun als Konstanten verfügbar: C4PVM_Cursor, C4PVM_Target und C4PVM_Scrolling. Zur Bedeutung sei auf die Dokumentation verwiesen.

Bugfixes

  • IP-Adressen werden alle in die Referenz geschrieben, anstelle ein Limit zu haben.
  • Die Flüssigkeitsanimation wird beim Laden der Landscape.png nicht mehr an falschen Stellen angezeigt.
  • LoadScenarioSection crasht nicht mehr, wenn es von einem Objektmenü-Callback aus aufgerufen wird, aber der Sektionswechsel das Objekt entfernt.
  • Das interne SetCommand in Objektmenüs verwendet nun korrekt nil statt 0.
  • Wenn die Gammaramp-Größe 0 ist, wird die Standardgammarampgröße verwendet, anstelle zu crashen.
  • Kaufmenüeinträge werden nun auch korrekt angezeigt, wenn die Grafikskalierung der Definition nicht 100 ist.
  • Die Engine verzählt sich bei den Geburtstagswünschen an Clonks nicht mehr um ein Jahr.
  • ID-Grafiken in Text ({{C4ID}}) werden nun auch korrekt angezeigt, wenn die Grafikskalierung der Definition nicht 100 ist.
  • Die Engine crasht nicht mehr, wenn man ein Gebäude mit Masse 0 zu bauen versucht.
  • Vorladen unter macOS endet nun nicht mehr mit einem schwarzen Bildschirm.
  • Vorladen unter macOS crasht nicht mehr die Engine, wenn der GL-Kontext nicht erstellt werden konnte, sondern zeigt eine Fehlermeldung an.
  • GatlingReload.wav ist nun im korrekten Format.
  • Falsche Parametertypen in Standardobjektpacks wurden korrigiert.

Kategorien
Allgemein

LegacyClonk 4.9.10.14 [355]

Download: Windows x64, Windows x86, Linux x64, Linux x86, macOS (experimentell)

Features

  • MP3 kann nun als Musik- und Sounddateiformat verwendet werden.
  • Der Credits-Dialog zeigt nun alle verwendeten Lizenzen an.

Bugfixes

  • ForceAutoContextMenu und ForceAutoStopControl werden in Sections nun korrekt von der Haupt-Scenario.txt geerbt.
  • Die Scriptfunktion PlayerObjectCommand gibt nun eine Warnung bzw. einen Fehler in #strict 3 aus, wenn Call als Command übergeben wird, da der nötige Codepfad nicht implementiert ist. Generell sollte diese Funktion nicht in neuem Code verwendet werden.
  • Bugs bei Objekten als Schlüssel für Maps wurden gefixt.
  • Pictures von Objekten und Definitionen mit Grafikskalierung als Menüsymbole werden nun korrekt gerendert.
  • SetObjectOrder gibt nun false zurück, wenn das Objekt vor oder nach sich selbst sortiert werden soll, da dies zu korrupten Objektlisten oder Endlosschleifen führt.
Kategorien
Allgemein

LegacyClonk 4.9.10.14 [353]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Features

  • Doppelte Tastendrücke werden nun als einzelne Tastendrücke behandelt, anstelle verloren zu gehen, wenn für sie kein Callback existiert.
  • SetActionKeepPhase hinzugefügt, äquivalent zu SetAction() && SetPhase() mit den jeweiligen Parametern.
  • ForcedAutoStopControl und ForcedAutoContextMenu können jetzt per Szenariosektion angegeben werden.
  • Contents() hat nun einen dritten Parameter bool returnAttached, der angibt, ob auch Objekte mit Prozedur ATTACH zurückgegeben werden sollen.
  • bool RejectGrabbed(object byObj) hinzugefügt – gibt dieser Objektcallback true zurück, wird das Anfassen des Objekts, in dem der Callback aufgerufen wird, verhindert. (Danke an TLK.)
  • Die Performance von Menüeintragssymbolen außer mit Overlays oder Objekten wurde verbessert.
  • C4MN_Add_ImgIndexedColor hinzugefügt.
  • Kann die Spielerdatei eines beitretenden Spielers im Netzwerk nicht geladen werden, wird nun eine Warnung geloggt.
  • Wird General.AllowScriptingInReplays auf true gesetzt, kann nun in Aufnahmen gescriptet werden. (Danke an Bratkartoffl.)

Bugfixes

  • Die Engine crasht nicht mehr, wenn eine Definition neu geladen wird, die als Menüeintragssymbol verwendet wird.
  • Korrupte Zeitstempel in Gruppen verursachen keinen Crash mehr, wenn man als Client versucht, sie vom Host zu laden.
  • Zeilenbrüche duplizieren Markup (<i> und <c>) nicht mehr.
  • Wird im Konsolenmodus ein Objekt ausgewählt, werden nun nicht mehr alle globalen Scriptfunktionen sowie alle Objektfunktionen auf public gesetzt.
  • LoadScenarioSection speichert Landschaft und Objekte wieder korrekt.
  • nil wird nun auch korrekt zu int oder bool konvertiert, wenn die strict 3 – Funktion indirekt von einer Funktion mit niedrigerer Strictness aufgerufen wird.
  • Mannschaftsmitglieder, die inaktiv gesetzt worden sind und damit über den Sektionswechsel hinweg erhalten bleiben, bleiben bei Sektionswechsel stehen, um eine feststeckende ComDir zu vermeiden.
  • Alle Clonks im Originalpack verwenden nun dieselben Vertices wie der Standardclonk.
  • Alle Clonks im Originalpack verwenden bei Inventarwechsel nun unter allen Umständen die korrekte Action + Phase.
  • Eine Warnung wegen falschem Parametertypen im Inuk wurde behoben.
Kategorien
Allgemein

LegacyClonk 4.9.10.12 [351]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Dies ist ein Bugfixrelease zu [350].

Bugfixes

  • Bei nicht passenden Parametertypen von Callbacks, welche in #strict 2 oder niedriger eine Warnung verursachen, wird die Funktion nun auch tatsächlich trotzdem ausgeführt.

Kategorien
Allgemein

LegacyClonk 4.9.10.12 [350]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Dies ist primär ein Bugfixrelease zu [349], enthält aber auch neue Features.
Das Update wird bei Macspielern Preloading aufgrund möglicher Crashes ausschalten, sofern aktiviert; es kann manuell in den Einstellungen wieder aktiviert werden.

Scriptwarnungen / -fehler bei falsch angegebenen Parametertypen in Enginecallbacks

Vor diesem Release wurden Parametertypen von Callbacks, die von der Engine erfolgen, nicht gecheckt und damit auch keine Typumwandlungen durchgeführt. Dies hat zu Bugs geführt, mit denen die Engine auch gecrasht werden konnte.

In 350 werden die Typangaben nun respektiert. Das führt bei nicht passenden Typen zu Warnungen bzw. Fehlern:


Beispiel: EffectCall übergibt der Funktion einen String als Argument, die Funktion will allerdings einen Integer.

  • Ist das Script #strict 2 oder niedriger, wird eine Warnung ausgegeben und die Typangabe des Parameters im Funktionsheader ignoriert.
  • Ist das Script #strict 3, wird ein Fehler ausgegeben.

Weitere Features

  • HTTP-Anfragen werden nun auch über die Fallback-Adresse ausgeführt, wenn die Verbindung sofort fehlschlägt. Damit funktionieren Anfragen auch, wenn diese davor über IPv6 getätigt wurden, aber die Verfügbarkeit verschwindet, ohne dass dafür die Engine neu gestartet werden muss.
  • Scriptfehler in Funktionen, die durch EffectCall, CheckEffect oder AddEffect aufgerufen werden, geben nun einen kompletten Stacktrace aus, wie von normalen Funktionen gewöhnt – davor ist nur bis zum EffectCall / … Aufruf ausgegeben worden, aber nicht, was EffectCall / … überhaupt aufgerufen hat.
  • Die Sortierreihenfolge von Szenarienordnern mit Auswahlkarten und Definitionen mit Sounds oder Rangnamen ist verbessert worden – neu gepackte Gruppen können sich über eine Geschwindigkeitserhöhung freuen.
  • Zu lange Stringliterale (mehr als 1024 Zeichen in einem Literal) verursachen in #strict 3 nun einen Fehler; kleinere #strict – Versionen verursachen weiterhin nur eine Warnung.

Bugfixes

  • Preloading bei macOS ist nun standardmäßig deaktiviert, da es Crashes verursachen kann.
  • Clonkrang und -name im HUD werden nun wieder in der korrekten Ordnung angezeigt – erst der Rang, dann der Name.
  • c4group.exe -s (Gruppe sortieren) speichert jetzt auch die Gruppe nach dem Sortieren und lässt die Änderungen nicht einfach verloren gehen.
  • Ein Client sendet nur noch Spielerupdatepakete, wenn die Änderung am Client passiert ist, um race conditions zu vermeiden.
  • Der Readycheck-Toast setzt den Spieler nicht mehr auf „nicht bereit“, wenn der Toast geschlossen wird; damit bleibt auch der Lobby-Dialog offen. Dies löst das Problem mit sofort geschlossenen Lobby-Dialogen im Vollbildmodus unter Windows.
  • Ein unnötiges leeres <i> – Tag aus Spielernachrichten wurde entfernt.
  • Scriptmaterialreaktionen bekommen Referenzparameter nun korrekt übergeben.
  • Zeichen in Spielstandsbeschreibungen werden nun korrekt escaped.
  • Musik kann nun ingame auch eingeschaltet werden, wenn Music.c4g überladen wurde.
  • Nicht invertierte Materialreaktionen mit einem einzelnen Material als TargetSpec funktionieren wieder.
Kategorien
Allgemein

LegacyClonk 4.9.10.12 [349]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Toasts

Clonk kann nun Toast-Benachrichtigungen unter Windows und Linux anzeigen. Momentan werden diese nur für /readycheck verwendet, wodurch der Spieler / die Spielerin auch darüber benachrichtigt wird, wenn Clonk nicht das aktive Fenster ist; außerdem kann Ja / Nein direkt über die Benachrichtigung ausgewählt werden. Ein Klick auf die Benachrichtigung setzt einen als bereit, da man schließlich am PC sein muss, um sie zu beantworten.

Sollten diese Benachrichtungen unerwünscht sein, können Toasts je nach Anwendungsfall über das Bearbeiten der Einstellungen in der Registrierung oder Konfigurationsdatei im Abschnitt Toasts ausgeschaltet werden; für Readycheck ist dies ReadyCheck.

LinuxspielerInnen seien daran erinnert, dass die Benachrichtungen über libnotify funktionieren und nur verwendet werden, wenn damit gebaut wird; sollte die Benachrichtigung aufgrund von Systemproblemen nicht korrekt erstellt werden können, wird eine Fehlermeldung geloggt.

Weitere Features

  • Wenn die Logdatei aufgrund fehlender Berechtigungen im Clonkordner nicht geöffnet werden kann, wird nun eine Fehlermeldung angezeigt.
  • Ports können jetzt größer als 32767 sein und das volle Spektrum bis 65535 verwenden. (#59)
  • Dateiendungen und das clonk:// – Protokoll werden unter Windows jetzt im Nutzerpfad der Registrierung eingetragen, sodass keine Administratorrechte mehr notwendig sind, um sie zu setzen.

Bugfixes

  • Ungültige Namen für SetPlrExtraData und SetCrewExtraData verursachen nun eine Warnung und werden ignoriert, anstelle die Chance zu haben, alle Werte zu löschen.
  • Automatisches Objektverkaufen verkauft nun alle Objekte in einem Schritt.
  • Der fehlende Punkt in der Versionsangabe in der Fehlermeldung, die auftritt, wenn das Szenario eine neuere Engineversion als vorhanden verlangt, ist nun vorhanden.
  • Stacktraces geben Parameter, die einen zu false konvertierbaren Typen haben, mit dem korrekten Typ anstelle von 0 aus.
  • Die Engine behandelt WM_USER_LOG nicht mehr, da es einfach einen vom Nutzer übergebenen Zeiger als String behandelt und daher unter anderem Crashes verursachen kann.
  • global-> kann nun korrekt in Statements verwendet werden.
  • Die Engine crasht nicht mehr, wenn ein Initialisierungsfehler auftritt, bevor das Musiksystem initialisiert worden ist.
  • /console crasht unter X11 nicht mehr.
  • Zufallsteams werden nun korrekt rebalanciert, wenn ein Spieler von einem schon kleineren Team entfernt wird.
  • { ist in Nicks nicht mehr erlaubt, da es zu Ausgabeproblemen in Teamchat führt.
  • In Endlosschleife laufender Musik wird jetzt wieder korrekt ohne Pause und Lognachricht abgespielt. (#55)
  • In Spielständen kann nun gejoint werden, auch wenn die maximale Spieleranzahl niedriger als die Anzahl der TeilnehmerInnen gesetzt worden ist.
  • Scrollen mit den Pfeiltasten funktioniert nun korrekt, wenn das Spiel pausiert ist (#56; danke an Cyprex).
  • Das Copyrightzeichen wird nun wieder korrekt in der Anwendungsbeschreibung angezeigt.
  • /fullscreen wird nicht mehr in die Registrierung eingetragen, da es entfernt worden ist.
  • Die Linux-X11-Konfiguration erkennt nun die rechte Umschalttaste korrekt.
  • Der Lobbycountdown wird von /readycheck auch mit größeren Standardcountdownwerten korrekt abgebrochen und gestartet.
  • c4group.exe wird im experimentellen Windows x64-Build korrekt geupdatet.
  • #strict 3 erzeugt bei return; jetzt korrekt return nil; anstelle von return 0;.
Kategorien
Allgemein

LegacyClonk 4.9.10.11 [348]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Neues Verhalten der Ingame-Musikeinstellungen

Das Drücken von F3 schaltet die Musik nur für die laufende Runde an / aus. Um diese Einstellung permanent zu setzen, kann der Eintrag im Optionsmenü in den Spieloptionen verwendet werden.

Natürlich gibt es weiterhin die Möglichkeit, dies außerhalb der Runde in den Optionen einzustellen.

Weitere Features

  • Bei ModulateClr und CustomMessage ist es in #strict 3– Scripts nun möglich, durch Angabe von 0 als Farbargument echtes Schwarz zu übergeben; nil entspricht weiterhin dem alten Verhalten in #strict 2 und kleiner und verwendet die Farbe weiß.
  • Der Download der experimentellen 64-Bit-Windows-Version ermöglicht nun das Verwenden einer 64-Bit-Version von Fmod, sofern vorhanden.
  • Die DefCore-Eigenschaft HideHUDElements hat nun einen neuen Wert – Inventory – erhalten, mit dem die Sichtbarkeit des Inventars an der linken unteren Bildschirmecke gesteuert werden kann. Benutzung erfolgt analog zu den anderen Flags, wofür ich auf die Dokumentation bzw. den Blogpost zu [346] verweise.
  • Maps löschen nun Einträge, die ein Objekt als Schlüssel verwenden, beim Entfernen dieses Objekts.
  • Die Anzahl der maximal verwendeten Soundkanäle wurde von 100 auf 1024 erhoben, um eine größere Vielfalt der Klangkulisse zu ermöglichen. 1024 ist dabei leider das Maximum, da Fmod nur so viele Kanäle gleichzeitig unterstützt und die Standardvoraussetzungen für FMod und SDL2_mixer dieselben sein sollten.
  • Der Auswertungsdialog hat nun nicht mehr Runde beenden im Fokus, wodurch versehentliches Beenden durch Drücken der Entertaste mit der Intention, den Chat zu öffnen, vermieden wird. Stattdessen öffnet das Drücken von Enter im Auswertungsdialog nun immer den Chat.
    Für schnelles Beenden über die Tastatur ist weiterhin das Drücken der Escapetaste möglich.

Bugfixes

  • Der Konsolenmodus crasht nicht mehr, wenn mehr als ein Sichtfenster offen ist und diese nicht in umgekehrter Reihenfolge geschlossen werden.
  • Das Spiel crasht nicht mehr, wenn zu wenig Soundkanäle für das Abspielen neuer Sounds vorhanden sind.
  • In [346] wurde eingeführt, dass Hit(int xdir, int ydir) nur noch in Objektdefinitionen ab Clonk Rage mit Argumenten abgerufen wird, da der Callback davor diese Parameter nicht hatte, was etwa in der Clonk Planet – Forschungsstation zu Scriptfehlern geführt hat. Leider ist uns dabei nicht aufgefallen, dass der mit Clonk Rage mitgelieferte Clonk Editor standardmäßig Definitionen mit der Versionsnummer 4.9.5, was Clonk Endeavour entspricht, erstellt – für Clonk Rage wäre mindestens 4.9.6 nötig. Warum dies der Fall ist, bleibt ein Mysterium; eigentlich sollte es auch keine Auswirkungen haben, da die Dokumentation das Anpassen der Versionsnummer an die jeweils aktuelle Version und / oder die Zielversion bei Änderungen des Objekts vorschreibt; die Realität sieht, wie so oft, aber anders aus. Daher wurde dieser Bugfix wieder rückgängig gemacht.

Kategorien
Allgemein

LegacyClonk 4.9.10.11 [347]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Dies ist ein reines Bugfixrelease zu 346.

  • Der Konsolenmodus crasht nicht mehr beim Beenden von Clonk, wenn mehr als ein Sichtfenster offen ist.
  • Zur Wahrung der Kompatibilität werden Definitionen ohne Versionsangabe nicht mehr als uralte Definitionen, sondern wie Definitionen mit der Versionsnummer 4.9.10.7, was Clonk Rage entspricht, behandelt. Allerdings wird eine entsprechende Warnung ausgegeben, da die Versionsnummer erforderlich ist und wir keine näheren Garantien zum Verhalten bei deren Fehlen abgeben!
  • Debugbuilds der Engine sind nun wieder kompilierbar, das Inkludieren eines Headers hat gefehlt.