Du bist nicht angemeldet.
Seiten: 1
Nach ein paar Tagen Urlaub wollte ich das nun ausprobieren. Leider bekomme ich ab dem Commit 52c824f [Misc] Update Lua-Reflection-Logic to conform to latest reflection.mod einen Compiler-Fehler. Anscheinend habe ich diese neue Modulversion nicht und finde sie auch nicht.
Unable to convert from TStringMap to TList.
Method _GetReflectionType:TLuaReflectionType(obj:Object)
...
If exposeType <> "selected"
_whiteListedTypes.Insert(typeName, "" )
EndIf
EndIf
"!!!!!! Hier gibts den Fehler."
For Local list:TList = EachIn [currentTypeID.Functions(), currentTypeID.Methods(), currentTypeID.Fields(), currentTypeID.Constants()]
For Local m:TMember = EachIn list
'only add non-private etc.
Hallo nochmal,
ich bin mir nicht sicher, ob das als Bug zählt, aber mir ist folgendes aufgefallen. Wenn ich in der Programmplanung die Filme und Serien eines Genres aufrufe, dort auf Seite zwei oder folgende navigiere und dann eine Serie anklicke, dann öffnet sich zum einem die Episodenliste, zum anderen aber springt die Film- und Serienliste zurück auf Seite 1. Das ist blöd, wenn man sich mal verklickt hat. (was mir leider nicht selten passiert)
Ich habe noch nicht wirklich viel Zeit in das Verständnis des Codes investiert, aber der Copilot-Agent gab mir folgende Erklärung und hat mir die Methode SetOpen in der Datei common.misc.plannerlist.programmelist.bmx umgeschrieben und es funktioniert.
Ursache:
Beim Wechsel von der normalen Lizenzliste (openState = 2) zur Episodenansicht (openState = 3) wird in UpdateTapes() SetOpen(3) aufgerufen. In SetOpen() wird jedoch pauschal bei jedem Öffnen (newState != 0) entriesPage = 1 gesetzt. Dadurch springt die Hauptliste (Filme/Serien) immer zurück auf Seite 1, obwohl nur die Episodenansicht (Subliste) geöffnet werden soll.Kurz: SetOpen() setzt entriesPage auch beim Übergang 2 → 3 zurück. Das ist unerwünscht.
Fix: entriesPage nur zurücksetzen, wenn
• komplett neu geöffnet wird (alter Zustand = 0), oder
• auf einen Zustand <= 1 reduziert wird (weil Genre-/Listen-Auswahl neu beginnt). Beim Wechsel 2 → 3 nicht zurücksetzen. subEntriesPage kann (und sollte) beim Öffnen der Episodenansicht auf 1 springen.
Alter Code:
Method SetOpen:Int(newState:Int)
newState = Max(0, newState)
If newState <= 1 Then currentgenre=-1
If newState <= 2 Then hoveredParentalLicence=Null
If newState = 0
enabled = 0
Else
enabled = 1
entriesPage = 1
subEntriesPage = 1
EndIf
Self.openState = newState
End Method
Neuer Code:
Method SetOpen:Int(newState:Int)
Local oldState:Int = Self.openState
newState = Max(0, newState)
If newState <= 1 Then currentGenre = -1
If newState <= 2 Then hoveredParentalLicence = Null
If newState = 0
enabled = 0
Else
enabled = 1
' Nur zurücksetzen wenn:
' - vorher komplett geschlossen (oldState = 0)
' - oder wir auf einen "frühen" Zustand (<=1) gehen
If oldState = 0 Or newState <= 1
entriesPage = 1
EndIf
' Episoden-Seite nur zurücksetzen wenn:
' - vorher geschlossen
' - oder wir nicht in Episodenansicht bleiben
If oldState = 0 Or newState < 3
subEntriesPage = 1
EndIf
' Beim Wechsel 2 -> 3: entriesPage bleibt erhalten, subEntriesPage wird neu (da neue Liste)
If newState = 3 And oldState <> 3
subEntriesPage = 1
EndIf
EndIf
Self.openState = newState
End Method
Gruß,
Muesli
Hallo ani,
klar doch.
Das sind dann verschiedene Sendungen, bei denen das passiert. Während die Übernahme der Einstellungen zwischen den Sendungen von "Helene Bloombergs Schlaf dich reich" noch funktionierte, hat der Wechsel zur "Kaffeefahrt" zu dem Programmabsturz geführt.
Grüße,
Martin
Hallo zusammen,
ich habe nun nach vielen Jahren TVTower wiederentdeckt und stelle mit Begeisterung meinen programplan zusammen.
Ich habe einen nachstellbaren Programmabsturz im Supermarkt.
Wenn man mehrere Sendungen für die Produktion zusammenstellt, dabei die Option "Einstellungen übernehmen" aktiviert, aber manch eine Rolle nicht so ganz zum vorherigen Eintrag passt, dann stürzt das Programm ab.
Das passiert, wenn man die Produktionen von oben nach unten durchgeht, aber auch wenn man von unten nach oben zu einer bereits bestückten, aber nicht gekauften Produktion springt.
In der Datei game.screen.supermarket.production.bmx habe ich zwei Stellen ausgemacht, bei denen quasi eine IndexOutOfRangeException bei dem Befüllen von Arrays ausgelöst wird. (Ich komme von anderen Programmiersprachen)
Im folgenden findet ihr meine korrigierte Codestellen.
Bei dem Kommentar '--- MS, 07.08.2025: Bedingung eingefügt habe ich If-Abfragen eingefügt. Das ist mein erster Tag, an dem ich BlitzMax-Code lese. Ich habe also den Code in Gänze noch nicht durchblickt, vielleicht findet ihr ja eine an die Programmlogik besser angepasste Lösung als diese.
'store old cast by their job
Local oldCastByJob:TPersonBase[][] = New TPersonBase[TVTPersonJob.GetCastJobs().Length][]
For Local jobID:Int = EachIn TVTPersonJob.GetCastJobs()
Local oldCastGroup:TPersonBase[] = takeOverConcept.GetCastGroup(jobID)
Local jobIndex:Int = TVTPersonJob.GetIndex(jobID)
'--- MS, 07.08.2025: Bedingung eingefügt
If jobIndex > 0 And jobIndex < oldCastByJob.Length
For Local oldCast:TPersonBase = EachIn oldCastGroup
oldCastByJob[jobIndex]:+ [oldCast]
Next
EndIf
Next
'find the best matching old cast (same job, correct gender)
For Local castIndex:Int = 0 Until currentProductionConcept.cast.Length
Local job:TPersonProductionJob = currentProductionConcept.script.jobs[castIndex]
If Not job.preselectCast
Local jobIndex:Int = TVTPersonJob.GetIndex(job.job)
Local gender:Int = job.gender
'--- MS, 07.08.2025: Bedingung eingefügt
If jobIndex > 0 And jobIndex < oldCastByJob.Length
Local oldCastList:TPersonBase[] = oldCastByJob[jobIndex]
For Local oldCastIndex:Int = 0 Until oldCastList.Length
Local oldCastPerson:TPersonBase = oldCastList[oldCastIndex]
If Not oldCastPerson Then Continue
If gender > 0 And gender <> oldCastPerson.gender Then Continue
currentProductionConcept.SetCast(castIndex, oldCastPerson)
'make a cast member once used unavailable
oldCastList[oldCastIndex] = Null
Exit
Next
EndIf
EndIf
Next
Beste Grüße,
Muesli
Seiten: 1