Repository navigation
Releases
Releases · KERSEX/KERS_Overlay
Subsystems V0.3.1
Update 0.2.6 -> 0.3.0: alten Server der Python-Fassung beenden
Der Updater der 0.2.6 beendet beim Tausch nur das HUD. Der Server lief dort
als eigener Prozess (data\main.exe mit eigener Konsole) und blieb stehen: er
hielt 5100/20777, der eingebaute Server der 0.3.0 bekam die Ports nicht
("Start Server (Port belegt?)", HUD leer), bis man die alte Konsole schloss.
* alteServerBeenden(): beendet vor jedem Serverstart genau die Prozesse, deren
voller Programmpfad data\main.exe oder main.exe neben der EXE ist - ein
main.exe aus einem anderen Ordner bleibt unberuehrt. PyInstaller-onefile:
erst das Kind (haelt die Ports), dann geht der Bootloader von selbst und
raeumt seinen _MEI-Ordner weg.
* LocalServer::start (Autostart und Knopf) und --server nutzen es.
* tst_local: zwei neue Tests mit kers_schlaefer als nachgespieltem main.exe
(Bootloader + Kind, haelt den Port).
* README: Abschnitte Selbst-Update und "Port belegt".
Gebaut gegen neu erstelltes Qt 6.11.2 statisch (LLVM-MinGW clang 23.1.2):
KERS_Subsystems.exe 57.909.760 Bytes, SHA-256
17b96aad0737c8f79accc59e2ca48e857da533fe73e400006e2126cc3eb11aa0.
8 Test-Suiten gruen. Lage nach dem Update mit der echten EXE nachgestellt
(.bak, hud_state im 0.2.6-Format, laufender data\main.exe auf Testports):
alter Server beendet, eigener Server sofort oben, .bak weg.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Subsystems V0.3.0
Update 0.2.6 -> 0.3.0: alten Server der Python-Fassung beenden
Der Updater der 0.2.6 beendet beim Tausch nur das HUD. Der Server lief dort
als eigener Prozess (data\main.exe mit eigener Konsole) und blieb stehen: er
hielt 5100/20777, der eingebaute Server der 0.3.0 bekam die Ports nicht
("Start Server (Port belegt?)", HUD leer), bis man die alte Konsole schloss.
* alteServerBeenden(): beendet vor jedem Serverstart genau die Prozesse, deren
voller Programmpfad data\main.exe oder main.exe neben der EXE ist - ein
main.exe aus einem anderen Ordner bleibt unberuehrt. PyInstaller-onefile:
erst das Kind (haelt die Ports), dann geht der Bootloader von selbst und
raeumt seinen _MEI-Ordner weg.
* LocalServer::start (Autostart und Knopf) und --server nutzen es.
* tst_local: zwei neue Tests mit kers_schlaefer als nachgespieltem main.exe
(Bootloader + Kind, haelt den Port).
* README: Abschnitte Selbst-Update und "Port belegt".
Gebaut gegen neu erstelltes Qt 6.11.2 statisch (LLVM-MinGW clang 23.1.2):
KERS_Subsystems.exe 57.909.760 Bytes, SHA-256
17b96aad0737c8f79accc59e2ca48e857da533fe73e400006e2126cc3eb11aa0.
8 Test-Suiten gruen. Lage nach dem Update mit der echten EXE nachgestellt
(.bak, hud_state im 0.2.6-Format, laufender data\main.exe auf Testports):
alter Server beendet, eigener Server sofort oben, .bak weg.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Subsystems V0.2.6
Imola ausliefern - 0.2.6 neu gebaut static/tracks.json hat jetzt 14 Strecken: Imola (#27) kommt dazu, gefahren von KERS am 11.09. - 871 Punkte, geschlossene Runde, 99 % der Streckenlaenge, Luecke zwischen erstem und letztem Punkt 1 m. Die 13 bisherigen sind unveraendert. Gebaut und geprueft: KERS_Subsystems.exe, 243.448.340 Bytes, SHA-256 7AA64D589BE4B96B291602084D63D0F53DA3C4B2668EE5514D03C41A8B03DA4D, Icon gegengeprueft (alle neun Groessen), 84 + 8 Inhaltspruefungen am Archiv gruen. Im eingebetteten Server-Payload nachgesehen, denn nur main.exe liest die Strecken: 14 Strecken, Zeichen fuer Zeichen wie im Projekt. main.py, hud/derive.py, hud/models.py, hud/demo.py und static/tracks.json sind Byte fuer Byte die gebauten Quellen, der Stop-&-Go-Fix ist weiterhin drin. ⚠ Diese EXE ersetzt die aus 42c4dc8 (SHA-256 0BD8074F...) - selbe Version 0.2.6, die ist noch nicht getaggt. Im Spiel noch nicht gegengefahren. Tag und Release legt KERS selbst an. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Subsystems V0.2.5
0.2.5 ausliefern static/version.txt auf 0.2.5. Dazugekommen seit 0.2.4: * Kamera-Tasten kommen im Spiel an - die Taste wird gehalten statt angetippt * Haltezeit als Regler in /settings, falls 60 ms nicht reichen * Kamera setzen sitzt in den Tower-Zeilen statt in einem eigenen Raster Gebaut und geprueft: KERS_Subsystems.exe, 243.224.034 Bytes, SHA-256 0FE4A051B334C1CF487C828B65ED5F27FE049ABC1DF5BE0ACD89328A0B742A07, Icon gegengeprueft, 66 Inhaltspruefungen am Archiv gruen - darunter die Gegenprobe, dass das alte Kamera-Raster wirklich raus ist und nicht nur ueberdeckt. Von KERS im Spiel bestaetigt: das Setzen der Kamera funktioniert. Tag und Release legt KERS selbst an. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Subsystems V0.2.4
0.2.4 ausliefern static/version.txt auf 0.2.4. Dazugekommen seit 0.2.3: * Kamera aus der Regie setzen - ein Tipp je Position, P21/P22 ueber F8 * Abschalter dafuer in /settings, die Wahl wird gespeichert Gebaut und geprueft: KERS_Subsystems.exe, 243.223.666 Bytes, SHA-256 7B0B7BEDE51D17F46A1EEFC21F97C8B3556A1B52EDFB433C63DB63D7D49A3498, Icon gegengeprueft, 62 Inhaltspruefungen am Archiv gruen. ⚠ Eigens nachgesehen, ob pydirectinput wirklich in der EXE steckt: der Import sitzt in einem try-Block, und ein Modul, das PyInstaller nicht findet, faellt still weg - /api/cam meldete dann im fertigen Programm nur "pydirectinput fehlt". In der PYZ des Payloads liegen KEYEVENTF_SCANCODE und _genericPyDirectInputChecks, also der echte Modulcode und nicht bloss der Name aus der Import-Zeile. Tag und Release legt KERS selbst an. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Subsystems V0.2.3
0.2.3 ausliefern static/version.txt auf 0.2.3. Dazugekommen seit 0.2.2: * Freies Layout Stufe 4 - Ebenen-Liste und mehrere speicherbare Layouts * Bausteine und Ebenen in /settings als Klappbloecke * Quali-Tower 75 px schmaler, der Platz rechts war ungenutzt * Podiumszahlen schlicht, Metallverlauf umschaltbar * Layout ohne laufenden Server geht nicht mehr verloren * Quali-Status: ERS entlastet, statt zu belasten Offen bleibt der dritte Punkt von Stufe 4 - einklappbare Bausteine. Dafuer muss erst feststehen, was "eingeklappt" je Baustein heissen soll. Gebaut und geprueft: KERS_Subsystems.exe, 243.207.428 Bytes, SHA-256 FC44C3BB01DCFF59AB88AB1DCDE18F5570E2433397D613589EF0F2D4F95519E8, Icon gegengeprueft, 51 Inhaltspruefungen am Archiv gruen. Tag und Release legt KERS selbst an. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Subsystems V0.2.2
0.2.2: Quali-Tower ist 75 px schmaler - der Platz rechts war ungenutzt
Gemeldet: in der Quali steht rechts neben der Status-Spalte eine leere Flaeche.
Der Panelboden ist fest gesetzt, Quali 732 und Rennen 628. Die 732 stammen aus
tower.css, und dort hat die Quali bis heute eine Sektoren-Spalte (.quali-mode,
150 px). Im QML steht die auf 0 - die Sektorzeiten stehen unten in den
Hotlap-Boxen -, der Boden ist aber stehengeblieben.
Nachgemessen: 657 px Inhalt in einem 732 px breiten Panel, also 75 px tote
Flaeche. In der Quali bestimmt jetzt der Inhalt die Breite.
Der Rennen-Boden von 628 BLEIBT: dort fuellen die Spalten 615 px, und die 13 px
Rest sind die Aufteilung, die so aussehen soll. Im Web-Overlay bleibt 732
ebenfalls richtig - dort gibt es die Sektoren noch.
Die Status-Spalte selbst bleibt bei 86 px. Nachgemessen will die breiteste Pille
("HOTLAP") 70,1 plus 12 Rand = 82,1 und die Kopfzeile 72,0 - da sind vier Pixel
Luft, weiter schrumpfen wuerde abschneiden. Der tote Platz sass rechts NEBEN der
Spalte, nicht darin.
Geprueft mit einem neuen Skript in beiden Modi: Quali 657 zu 657 (nichts
ungenutzt), Rennen unveraendert 628 zu 615.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Subsystems V0.2.1
0.2.1: Groesse waechst aus der gehaltenen Ecke, nicht aus der Mitte Fabians Rueckmeldung: es soll von da wachsen, wo man zieht. Bisher richtete sich das Groessenziehen nach dem ANKERPUNKT des Bausteins: die Lage blieb fest, und weil x und y aus Ankerpunkt und Flaeche gerechnet werden, wuchs er von seiner Ankerecke weg. Bei sieben der dreizehn Bausteine ist die mittig (tc/bc/cc) - Meldungs-Banner, Fastest-Lap-Banner, Ampel, Battle-Boxen, Hotlap-Boxen, Lower-Third, Gefahrenzone. Die wuchsen dadurch nach BEIDEN Seiten gleichzeitig, also genau aus der Mitte heraus. Jetzt bleibt die GEGENUEBERLIEGENDE Ecke liegen: zieht man unten rechts, steht oben links still, und umgekehrt. Neu ist groesseKarte(), die aus der beim Anfassen eingefrorenen Flaeche und dem Verhaeltnis der Faktoren die neue Lage mitrechnet. Bewusst nicht an der Mausposition: so bleibt die feste Ecke wirklich stehen, statt um Rundungsreste zu wandern. festDx/festDy entfallen dafuer. ⚠ Beim Messen aufgefallen: das Groessenziehen kannte keine Randbegrenzung. Zieht man einen Baustein an der oberen linken Ecke auf, waechst er nach links - und lief ungebremst aus dem Bild (gemessen x = -60). Das Verschieben begrenzt seit Stufe 3 auf die Szene, das Skalieren nicht. Jetzt beides. Am Rand gibt dann die feste Ecke nach; das ist das kleinere Uebel gegenueber einem Baustein, den man nicht mehr sieht und ohne die Regler in /settings nicht zurueckholt. Gemessen an der echten Szene: unten rechts aufziehen laesst linke und obere Kante stehen (500 -> 500, 400 -> 400), oben links aufziehen laesst rechte und untere stehen (809 -> 808, 591 -> 590), und bei den mittig verankerten Battle-Boxen steht die linke Kante still statt mitzuwandern (1117 -> 1117). Kleiner ziehen, Verschieben in der Mitte und die Randbegrenzung ebenfalls geprueft; ein Baustein, den man ueber die Ecke aus dem Bild ziehen will, landet auf 0/0 statt draussen. ⚠ Fuer den Test: einen Baustein erst auf einen freien Platz stellen. Das Onboard hat an seinem Standardplatz nur 28 px bis zur Unterkante - dort misst man beim Aufziehen die Randbegrenzung statt der Verankerung, und der Test schlug aus dem falschen Grund fehl. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Subsystems V0.2.0
0.2.0: Knopf heisst Standard Layout statt Positionen zurueck Fabians Wunsch. Nur die Beschriftung und der Titel der Rueckfrage - was der Knopf tut, bleibt gleich: er leert die Einstellung layout, damit in Overlay.qml wieder der einprogrammierte Ausdruck je Baustein gilt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Subsystems V0.1.9
0.1.9: Boxenzahl als Regler unter "Battles & Strategie", 0 = aus Beide Werte stehen jetzt als Schieberegler (0-4) im Abschnitt "Battles & Strategie" statt als Zahlenfelder im Feintuning. 0 heisst aus - damit ersetzt der Regler den frueheren Schalter "Battle-Boxen", der aus der Liste raus ist. Der alte Schluessel "battles" wird beim Ziehen MITGESCHRIEBEN (battles = wert>0). Grund: das Web-Overlay (static/parts/battles.js) liest ihn weiter, und er steckt in den Presets. Ohne das haette der Regler im QML gewirkt und im Web-Renderer nicht. Umgekehrt zeigt der Regler 0, wenn battles false ist - sonst stuende dort eine 4, waehrend unten nichts zu sehen ist. ⚠ Dafuer musste renderToggles() umgebaut werden. Die Liste wurde bisher bei JEDER Aenderung komplett neu gebaut (save -> renderAll -> innerHTML). Mit reinen Schaltern ging das; ein Schieberegler darin waere beim Ziehen bei jedem Ereignis neu erzeugt worden, haette den Fokus verloren und sich nicht ziehen lassen. Jetzt wird einmal gebaut und danach nur aufgefrischt (Auf/Zu, Zaehler, Schalter). Presets ergaenzt: voll und kompakt 4/4, minimal 0/0. main.py laesst jetzt 0 zu (vorher 1-4), parts._box_wunsch ebenso - 0 ergibt eine leere Anzeigeliste, alle Boxen blenden sich aus. Geprueft im Browser gegen die echte Seite: Abschnitt zeigt zwei Regler 0-4 mit richtigen Werten, der alte Schalter ist weg, bei 0 steht "aus", die Presets setzen 0/0 bzw. 4/4 - und der Regler ist nach einem Neuzeichnen noch DASSELBE DOM-Element (der Punkt, an dem es sonst zerbrochen waere). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>