whiterussian_ch
Geocacher
Wie man kürzlich schon mal in einer meiner Fragen lesen konnte, arbeite ich gerade daran eine meiner Cartridges mit Urwigo mehrsprachig zu machen (und bevor jemand fragt: Ich möchte bei Urwigo bleiben, mag ich einfach zu sehr).
Als Grundlage habe ich diesen Blogbeitrag von Krolock verwendet: Einen Wherigo in verschiedenen Sprachen anbieten.
Grundlage dafür ist eine LUA-Funktion, welche eine variable Anzahl Argumente entgegennimmt, das sieht so aus:

Im Emulator hat das natürlich wie so oft auf prima geklappt und ich gehe mal davon aus, dass es auch auf dem Garmin funktioniert, denn sonst hätte Krolock das wohl nicht so veröffentlicht.
Auf Android wird die folgende Fehlermeldung ausgespuckt (mit anschliessendem Absturz der Catridge):
Und auch auf dem iPhone (wohl 4 scheint mir aber hier nebensächlich) meines Bruders klappte es nicht:

Hier geht es einfach weiter, aber die Ersetzungen werden nicht ausgeführt. Ich vermute mal, die Funktion bricht ab, aber die Cartridge läuft an sich weiter:

Nun die Frage: Sieht jemand an Krolocks Code Optimierungspotential, so dass man das zum Laufen kriegt?
Klar, ich könnte einfach die Funktion so schreiben, dass sie eine fixe Anzahl Argumente entgegennimmt, welche ich auf das Maximum der in dieser Cartridge benötigten Argumente setze und ggf. bei weniger Argumenten leere Strings übergeben. Aber wenn es irgendwie geht, würde ich das eigentlich ganz gerne vermeiden.
Hat jemand eine andere Idee?
Als Grundlage habe ich diesen Blogbeitrag von Krolock verwendet: Einen Wherigo in verschiedenen Sprachen anbieten.
Grundlage dafür ist eine LUA-Funktion, welche eine variable Anzahl Argumente entgegennimmt, das sieht so aus:

Im Emulator hat das natürlich wie so oft auf prima geklappt und ich gehe mal davon aus, dass es auch auf dem Garmin funktioniert, denn sonst hätte Krolock das wohl nicht so veröffentlicht.
Auf Android wird die folgende Fehlermeldung ausgespuckt (mit anschliessendem Absturz der Catridge):
.java.lang.RuntimeException: _len not defined for operand
Und auch auf dem iPhone (wohl 4 scheint mir aber hier nebensächlich) meines Bruders klappte es nicht:

Hier geht es einfach weiter, aber die Ersetzungen werden nicht ausgeführt. Ich vermute mal, die Funktion bricht ab, aber die Cartridge läuft an sich weiter:

Nun die Frage: Sieht jemand an Krolocks Code Optimierungspotential, so dass man das zum Laufen kriegt?
Klar, ich könnte einfach die Funktion so schreiben, dass sie eine fixe Anzahl Argumente entgegennimmt, welche ich auf das Maximum der in dieser Cartridge benötigten Argumente setze und ggf. bei weniger Argumenten leere Strings übergeben. Aber wenn es irgendwie geht, würde ich das eigentlich ganz gerne vermeiden.
Hat jemand eine andere Idee?