# GodMode9 "Spaghetti code sample" # Tutorial script - read / run this to learn how it works # last changed: 20180118 # author: d0k3 # quick preview mode as default, otherwise slow set PREVIEW_MODE quick # choose example to try labelsel -o -s "Choose example" spaghetti_* goto outside # if-else-elif-end sample code @spaghetti_ifelse_example if ask "?set PREVIEW_MODE off?" set PREVIEW_MODE off elif ask "?set PREVIEW_MODE quick?" set PREVIEW_MODE quick elif ask "?set PREVIEW_MODE full?" set PREVIEW_MODE full elif ask "?set PREVIEW_MODE V:/GodMode9_splash.png?" set PREVIEW_MODE V:/GodMode9_splash.png elif ask "?set PREVIEW_MODE 'No preview for you, sorry'?" set PREVIEW_MODE "No preview for you, sorry" else echo "**Nothing**" end if ask "Try this again?" goto spaghetti_ifelse_example end goto outside # labelsel sample code @spaghetti_labelsel_example @choice_Preview_off set PREVIEW_MODE off goto chooser @choice_Preview_quick set PREVIEW_MODE quick goto chooser @choice_Preview_full set PREVIEW_MODE full goto chooser @choice_Preview_png set PREVIEW_MODE V:/GodMode9_splash.png goto chooser @choice_Preview_custom set PREVIEW_MODE "Your text can be here" input -o "Enter anything:" PREVIEW_MODE goto chooser @choice_Leave_script goto outside @chooser labelsel -o -s "Choose preview mode" choice_* goto outside # keysel sample code @spaghetti_keysel_example @kchoice_X_Preview_off set PREVIEW_MODE off goto kchooser @kchoice_Y_Preview_quick set PREVIEW_MODE quick goto kchooser @kchoice_R_Preview_full set PREVIEW_MODE full goto kchooser @kchoice_L_Preview_png set PREVIEW_MODE V:/GodMode9_splash.png goto kchooser @kchoice_SELECT_Preview_custom set PREVIEW_MODE "Your text can be here" input -o "Enter anything:" PREVIEW_MODE goto kchooser @kchoice_START_Leave_script goto outside @kchooser keysel -o -s "Choose preview mode via key" kchoice_* goto outside # for-next sample code @spaghetti_fornext_sample echo "This will display entries\nfrom your SD card root." if ask "Use recursive 'for'?" for -r 0: * # check type of current entry set TYPE "File" if isdir $[FORPATH] set TYPE "Dir" end # output on screen if not ask "$[TYPE]: $[FORPATH]\nShow next entry?" goto outside end next else for 0: * # everything inside the loop pretty much identical to above # check type of current entry set TYPE "File" if isdir $[FORPATH] set TYPE "Dir" end # output on screen if not ask "$[TYPE]: $[FORPATH]\nShow next entry?" goto outside end if not exist $[FORPATH] echo "WTF" # can never happen here, just a demonstration end next end goto outside @outside