################################################ ### ### ####### POI-Tauscher ####### ### ### ####### ####### ### (c) 2008 Team Sokobana ### ####### http://forum.pocketnavigation.de ####### ### http://www.varioskin.de ### ################################################ ############################################################ ### Anwendung auf eigene Gefahr und ohne Gewährleistung! ### ### Dieses Programm unterliegt den Rechten der ### ###Creative Commons Attribut Non-Commercial Share Alike 3### ### Lizenz. Genaue Angaben finden Sie beiliegend ### ### in der Datei Lizenz_VarioSkin3.txt ### ############################################################ # nach einem Script von hsuelzen # - NEU: automatische Übernahme neuer POIs in den Tauscher # - NEU: Namenspeicherung für POI # Version 2.3 # # Änderung am 14.09.07: Txt-file mit den Namen erzeugen, wenn nicht vorhanden # Änderung am 23.09.07: Schreibfehler beseitigt # Änderung am 28.09.07: Löschfunktion eingebaut # Anderung am 29.09.07: Verbesserte Abfrage eingebaut # Änderung am 09.11.07: Umstellung auf INI-Datei # Änderung am 17.02.08: Versch. Veränderungen # Änderung am 10.04.08: komplett neue Verwaltung # Änderung am 26.04.08: Die Hilfsscripts POI_x.MSCR werden nicht mehr benötigt # Aufruf der POIVerwaltung entfernt # Möglichkeit zum Sichern/Wiederherstellen der Konfiguration # eines POI-Satzes eingebaut # Nur noch POI-Satz 1 ist schreibgeschützt # # -------------------------------------------------------------------- POIV = 0 If not (FileExists ("\My Flash Disk\Sokobana\MortScript\poi.ini")) IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_1", "Name", "Original Gopal POI") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_2", "Name", "Glas-Button POI mit POIVerwaltung") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_3", "Name", "Name 3") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_4", "Name", "BroadwayLamb POI mit POIVerwaltung") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_5", "Name", "Name 5") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_6", "Name", "Name 6") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_7", "Name", "Name 7") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_8", "Name", "Name 8") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_9", "Name", "Name 9") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_10", "Name", "Name 10") EndIf poi_1 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_1", "Name") poi_2 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_2", "Name") poi_3 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_3", "Name") poi_4 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_4", "Name") poi_5 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_5", "Name") poi_6 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_6", "Name") poi_7 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_7", "Name") poi_8 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_8", "Name") poi_9 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_9", "Name") poi_10 = IniRead ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_10", "Name") POI = RegRead ("HKCU","Software\sokobana", "POI") poi_akt = EVAL("poi_"& POI) POINEU = Choice ("POI-Auswahl","Aktueller POI-Satz: " & %poi_akt% & "^CR^" & "Bitte wählen Sie einen neuen POI-Satz aus, um diesen anzuzeigen:",0,0,"POI 1: " & %poi_1%,"POI 2: " & %poi_2%,"POI 3: " & %poi_3%,"POI 4: " & %poi_4%,"POI 5: " & %poi_5%,"POI 6: " & %poi_6%,"POI 7: " & %poi_7%,"POI 8: " & %poi_8%,"POI 9: " & %poi_9%,"POI 10: " & %poi_10%) If (POINEU = 0) Exit EndIf # Wurde der bereits aktive POI-Satz gewählt? If (POI = POINEU) # Ja Message ("Der ausgewählte POI-Satz ist bereits aktiv.","Hinweis") Exit Else # Es wurde ein anderer POI-Satz als der aktive ausgwwählt poi_sel = EVAL("poi_"& POINEU) # Existiert das Verzeichnis des POI-Satzes? If (DirExists ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU)) # Ja # Anzeigen (Zum POI-Satz wechseln) oder löschen? Switch ( question (%poi_sel% & "^CR^" & "Bitte wählen Sie eine Aktion:" & "^CR^" & "Yes = Diese POI anzeigen" & "^CR^" & "No = Diese POI löschen" & "^CR^" & "Cancel = Abbruch","Auswahl","YesNoCancel")) # Löschen Case (0) # Wurde Satz 1-2 oder 4 ausgewählt (Darf nicht geändert werden)? If ( (POINEU < 3) OR (POINEU = 4) ) # Ja Message ("Hinweis: Die mitgelieferten POI-Sätze dürfen nicht gelöscht werden","Hinweis") Exit Else # Anderer Satz als POI-Satz 1-2 oder 4 ausgewählt DelTree ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\*.*") IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_" & POINEU, "Name", "Name " & POINEU) Message ("Daten wurden gelöscht") EndIf # Wechseln Case (1) # Bildschirm abdunkeln Call Warten # Läuft GoPal (Neustart nötig)? Call GoPal # Kopierarbeiten # Zielverzeichnis löschen DelTree ("\My Flash Disk\Navigation\poi\*.*") # POI-Icons kopieren RunWait ("\My Flash Disk\Sokobana\Koord\koord465.exe", "window=0 copy=\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\poi|\My Flash Disk\Navigation\poi|3") ErrorLevel("warn") # Kategorietexte kopieren If FileExists ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\PFPoi.skn") Copy ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\PFPoi.skn","\My Flash Disk\Navigation\res\de\PFPoi.skn", TRUE) EndIf # Kategorieicons kopieren If FileExists ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\poi_categories.png") Copy ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\poi_categories.png","\My Flash Disk\Navigation\Skin480x272\PPSkin\poi_categories.png", TRUE) EndIf # 30x30 Kategorieicons kopieren If FileExists ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\poi_categories_30x30.png") Copy ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\poi_categories_30x30.png","\My Flash Disk\Navigation\Skin480x272\PPSkin\poi_categories_30x30.png", TRUE) EndIf # Konfiguration anpassen # Löscht evtl. bestehende Einträge If (RegValueExists ("HKCU", "Software\sokobana", "POI")) RegDelete ("HKCU", "Software\sokobana", "POI") EndIf # Legt Eintrag an If not (RegValueExists ("HKCU", "Software\sokobana", "POI")) RegWriteDWord ("HKCU","Software\sokobana", "POI", POINEU) EndIf # INI schreiben If (FileExists ("\Storage Card\backupV3\user.ini")) IniWrite ("\Storage Card\backupV3\user.ini", "POI", "Wert", POINEU) EndIf # Bildschirm wieder freigeben Call Fertig Case (2) # Abbruch Exit EndSwitch Else # Das Verzeichnis des ausgewählten POI-Satzes existiert nicht # Aktuellen Satz in den ausgewählten Slot kopieren? If( question( %poi_akt% & " auf Platz " & POINEU & " kopieren?" ) ) # Ja # Namen des neuen POI-Satzes abfragen Run ("\My Flash Disk\Sokobana\Koord\koord465.exe", "window=0 sip=1") Sleep 50 newname = Input( "Bitte neuen Namen eingeben:","Name ?","","", %poi_sel% ) # Bildschirm abdunkeln Call Warten # Neuen Namen in der INI hinterlegen IniWrite ("\My Flash Disk\Sokobana\MortScript\poi.ini", "POI_" & POINEU, "Name", newname) # Slot anlegen MkDir ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU) # Wenn vorhanden, POIVerwaltung in den Slot verschieben If (DirExists ("\My Flash Disk\navigation\poi\POIVerwaltung")) MkDir ("\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU\POIVerwaltung) Move ("\My Flash Disk\Navigation\poi\POIVerwaltung\*.*", "\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\POIVerwaltung", 1, 1) DelTree ("\My Flash Disk\navigation\poi\POIVerwaltung") EndIf # POI-Symbole in den Slot kopieren RunWait ("\My Flash Disk\Sokobana\Koord\koord465.exe", "window=0 copy=\My Flash Disk\Navigation\poi|\My Flash Disk\Navigation\Skin480x272\poi_" & POINEU & "\poi|2") # Kategorietexte in den Slot kopieren XCopy ("\My Flash Disk\navigation\res\de\PFPoi.skn","\My Flash Disk\navigation\Skin480x272\poi_" & POINEU & "\", 1) # Kategorieicons in den Slot kopieren If (FileExists ("\My Flash Disk\navigation\Skin480x272\PPSkin\poi_categories.png")) XCopy ("\My Flash Disk\navigation\Skin480x272\PPSkin\poi_categories.png","\My Flash Disk\navigation\Skin480x272\poi_" & POINEU & "\", 1) EndIf # 30x30 Kategorieicons in den Slot kopieren If (FileExists ("\My Flash Disk\navigation\Skin480x272\PPSkin\poi_categories_30x30.png")) XCopy ("\My Flash Disk\navigation\Skin480x272\PPSkin\poi_categories_30x30.png","\My Flash Disk\navigation\Skin480x272\poi_" & POINEU & "\", 1) EndIf # Löscht evtl. bestehende Einträge If (RegValueExists ("HKCU", "Software\sokobana", "POI")) RegDelete ("HKCU", "Software\sokobana", "POI") EndIf # Legt Eintrag an If not (RegValueExists ("HKCU", "Software\sokobana", "POI")) RegWriteDWord ("HKCU","Software\sokobana", "POI", POINEU) EndIf # INI schreiben If (FileExists ("\Storage Card\backupV3\user.ini")) IniWrite ("\Storage Card\backupV3\user.ini", "POI", "Wert", POINEU) EndIf Call Fertig # Der nächste Abschnitt sollte nicht nötig sein #If( question( %newname% & " gleich aktivieren?" ) ) # Call GoPal #EndIf Else Exit EndIf Endif EndIf If (Reset = 1) CallScript ("\My Flash Disk\Sokobana\MortScript\sokobana_auto_restart.mscr") Else Call Fertig EndIf Sub GoPal If WndExists ("GoPal Navigator") KillScript ("run_nogyro.mscr") Close ("GoPal Navigator") Speicher=FreeMemory() While (Speicher < 22000) Speicher=FreeMemory() Sleep (5000) EndWhile Reset = 1 Else Reset = 0 EndIf EndSub Sub Warten Run ("\My Flash Disk\Sokobana\Koord2\koord465.exe", "Window=0 KoordServ=1 wndrefresh=-1 t=1 rb=0 gb=0 bb=0 ServWnd=text,0,0,-1,-1,5060,255,0,0,-1,-1{bitte warten...}\text,450,0,30,30,-5030,255,255,0,-1,0{x}|") EndSub Sub Fertig Run ("\My Flash Disk\Sokobana\Koord2\koord465.exe", "Window=0 SendKey=\fPrototype\m0x0010") EndSub