// opt/convmap.cfg
// assisted AC map conversion

// - keeps a list of "maps to process" stored as aliases in saved.cfg
// - each run of the script adds the maps listed in "convmaplist", if they are not already on the list
// - script can be run multiple times
// - amends the main menu (temporarily) with an entry to the batch conversion menu
// - to add many maps, add something like convmaplist = [ac_2fort ac_abandoned ac_abyss ac_accomply ac_adventure3 ac_africa] to your autoexec
// - this toolset converts maps to map format 10 and helps to fix a lot of errors on maps
// - converts media paths that were valid with the old akimbo to the corresponding paths for akimbo2
// - also converts old unconverted map config files from versions before AC 1.2
// - generally nondestructive and can be run multiple times (double conversion should not generate problems), though stage CLEANSLOTS will always edit and save a map, no matter how often
// - stage MAPCONFIG is the only stage that will not embed the config file - all later stages embed (format 10 does not require an embedded config, but strongly encourages it)
// - can build a secondary list of licenses and mapmessages (also in saved.cfg) to allow bulk-editing of map licenses and messages outside AC

if (! (checkalias cmcur)) [ tempalias convmaplist "" ]

// pick up map names from the commandline ("run opt/convmap ac_2fort ac_abandoned ac_abyss ac_accomply")
if $execnumargs [
    convmaplist = ""
    loop i $execnumargs [
        convmaplist = (concat $convmaplist (getalias (concatword execarg (+ 1 $i))))
    ]
]

looplisti [ CMASTAGE CMAFIRSTERROR CMALASTERROR CMACOMMENT CMANUM ] n [ tempalias $n $i ]
tempalias cmstagenames [ NOP MAPCONFIG TRANSCLIP CLEANSLOTS FIXUNASSIGNEDS FIXBADENTS MANUALERRORS MANUALEDITING FIXPICKUPFHF FINDSTRAYENTS CHECKVANTAGEPOINTS ]
if (checkalias uncliptagclippedmodels) [ cmstagenames = (concat $cmstagenames REDUCECLIPS) ]
tempalias NUMSTAGES (listlen $cmstagenames)
looplisti $cmstagenames n [ tempalias $n $i ]

// make sure, all maps from convmaplist are "on the list"
looplist $convmaplist m [
    push mx (concatword __convmap__ $m)
    if (! (checkalias $mx)) [
        push res (loadmap $m)
        if (>= $res 0) [
            // add map to list
            $mx = (concat 0 (concatword "0x" (h0 8 $res)))
            echo convmap: added map $$mx
        ]
        pop res
    ]
    pop mx
]

if (! $soundvol) [ soundvol 1 ] // with soundvol 0, mapsound commands don't work properly

if (! (checkalias cmcur)) [ // execute this only once

    const cmset [ // cmset ident index value
        push nv ""
        loop i (+ 1 (- $arg2 (listlen $$arg1))) [ $arg1 = (concatword $$arg1 " \"\"") ]
        looplisti $$arg1 v [
            if $i [ nv = (concatword $nv " ") ]
            if (= $i $arg2) [ nv = (concatword $nv (escape $arg3)) ] [ nv = (concatword $nv (escape $v)) ]
        ]
        $arg1 = (pop nv)
    ]

    const cmget [ // cmget ident index
        result (at $$arg1 $arg2)
    ]

    const cmprinterror [
        if (&b $arg1 0x0000001) [ echo (concatword $arg2 "entity attribute overflow") ]
        if (&b $arg1 0x0000010) [ echo (concatword $arg2 "map decoder error") ]
        if (&b $arg1 0x0000100) [ echo (concatword $arg2 "world error -1") ]
        if (&b $arg1 0x0000200) [ echo (concatword $arg2 "world error -2") ]
        if (&b $arg1 0x0001000) [ echo (concatword $arg2 "missing skymap texture files") ]
        if (&b $arg1 0x0002000) [ echo (concatword $arg2 "missing world texture files") ]
        if (&b $arg1 0x0004000) [ echo (concatword $arg2 "missing mapmodel files") ]
        if (&b $arg1 0x0008000) [ echo (concatword $arg2 "missing mapsound files") ]
        if (&b $arg1 0x0010000) [ echo (concatword $arg2 "bad mapsound command in map config") ]
        if (&b $arg1 0x0020000) [ echo (concatword $arg2 "bad mapmodel command in map config") ]
        if (&b $arg1 0x0040000) [ echo (concatword $arg2 "bad texture command in map config") ]
        if (&b $arg1 0x0080000) [ echo (concatword $arg2 "bad loadnotexture command in map config") ]
        if (&b $arg1 0x0100000) [ echo (concatword $arg2 "error during loading of mapmodels (see earlier console output)") ]
        if (&b $arg1 0x0200000) [ echo (concatword $arg2 "using unassigned texture slot") ]
        if (&b $arg1 0x1000000) [ echo (concatword $arg2 "out of range integer value in map config") ]
        if (&b $arg1 0x2000000) [ echo (concatword $arg2 "out of range float value in map config") ]
        if (&b $arg1 0x4000000) [ echo (concatword $arg2 "generic cubescript error in map config") ]
    ]

    const cmerr_abort    0x0000111 // abort immediately
    const cmerr_editsave 0x0000200 // fixed by map save in edit mode
    const cmerr_fixlater 0x010f000 // fix manually anytime
    const cmerr_config   0x70f0000 // config file error (requires manually fixed config file, abort in stage MAPCONFIG)

    // state of converter
    tempalias cmcur ""
    tempalias cmediting ""
    tempalias cmeditstage 0
    tempalias cmdoneediting ""
    alias cmstage 1
    alias cmdomanual 0 // 1: pause for manual fixing of correctable errors
    alias cmconverredit 1 // 1: pause for manual edit on conversion error

    newmenu main
    menuitem "" -1
    menuitem "Map conversion \i\1" [showmenu "Convert maps"]

    newmenu "Convert maps"
    menuinit [
        resetcurmenu
        if (! $connected) [
            menuheader "" "\f2Please backup all your maps before using convmap. Thx."
            cmafterfinishediting = ""
            //if (&& (strlen $cmediting) (! $unsavededits)) [ cmdoneediting ]
            if (strlen $cmediting) [
                menuitem (concatword "Currently editing \fs\f1" $cmediting "\fr in stage " $cmeditstage " (" (at $cmstagenames $cmeditstage) ")") -1
                menuitem "" -1
                menuitem "Save changes ->" [ cmafterfinishediting = "showmenu [Convert maps]" ; showmenu "Convmap save" ]
            ] [
                menuitem "\f0[ Start/Continue map conversion ]" cmwork
            ]
            menuitem "" -1
            if (strlen $cmcur) [
                menuitem (concatword "Batch processing currently limited to map \fs\f1" $cmcur "\fr only") -1
                menuitem "[Remove limitation and continue editing the whole batch]" [ cmcur = "" ; refreshcurmenudelayed ]
                menuitem "" -1
            ]
            menuitemslider "Conversion stage:\t" 0 -1 $cmstage $cmstagenames [ cmstage = $arg1 ]
            menuitemradio "On map load errors:\t\t" 0 1 $cmdomanual [ "abort map" "edit manually" ][ cmdomanual = $arg1 ]
            menuitemradio "On conversion errors:\t\t" 0 1 $cmconverredit [ "abort map" "edit manually" ][ cmconverredit = $arg1 ]
            menuitem "" -1
            menuitem "Show list of maps \i\1" [showmenu "List maps to convert"]
            menuitem "Add map to list \i\1"   [showmenu "Add map to convmap list"]
            menuitem "Tools menu \i\1"        [showmenu "Convert maps tools"]
        ][
            menuheader "" ""
            menuitem "\f3convmap can only be used offline" -1
        ]
    ]

    newmenu [Add map to convmap list]
    menudirlist "packages/maps" cgz [run opt/convmap $arg1 ; closecurmenu]

    const __cmconfirm [
        echo "\fs\f0Done:\fr\t" $arg1
        refreshcurmenudelayed
    ]

    const cmsetnonabortstage [
        looplist (enumalias __convmap__) [mx m] [
            if (>= (cmget $mx $CMASTAGE) 0) [
                cmset $mx $CMASTAGE $arg1
            ]
        ]
        cmstage = (+ $arg1 1)
    ]

    newmenu "Convert maps tools"
    menuinit [
        resetcurmenu
        menuheader "" "\f2Please backup all your maps before using convmap. Thx."
        menuitem "Show list of maps \i\1" [showmenu "List maps to convert"]
        menuitem "Retry all aborted maps (change negative stages to zero)" [ looplist (enumalias __convmap__) [mx m] [ if (< (cmget $mx $CMASTAGE) 0) [ cmset $mx $CMASTAGE 0 ] ] ; __cmconfirm ]
        menuitem "Retry all maps (change all stages to zero)" [ looplist (enumalias __convmap__) [mx m] [ cmset $mx $CMASTAGE 0 ] ; __cmconfirm ]
        looplisti $cmstagenames n [
            if (> $i 2) [
                menuitem (concat "Set all non-aborted maps to continue with stage" $n) (concat "cmsetnonabortstage" (- $i 1) "; __cmconfirm")
            ]
        ]
        menuitem "\f3Delete list of maps" [ looplist (enumalias __convmap__) [mx m] [ delalias $mx ] ; __cmconfirm ]
        menuitem "Delete aborted maps from list" [ looplist (enumalias __convmap__) [mx m] [ if (< (cmget $mx $CMASTAGE) 0) [ delalias $mx ] ] ; __cmconfirm ]
        menuitem "Delete non-aborted maps from list" [ looplist (enumalias __convmap__) [mx m] [ if (> (cmget $mx $CMASTAGE) 0) [ delalias $mx ] ] ; __cmconfirm ]
        menuitem "" -1
        menuitem "Show list of licenses and mapmessages \i\1" [showmenu "List licenses and mapmessages"]
        menuitem "Generate list of licenses and mapmessages (does not delete existing list)" [cmgenlicenses ; __cmconfirm ]
        menuitem "Apply list of licenses and mapmessages" [cmapplylicenses ; __cmconfirm ]
        menuitem "\f3Delete list of licenses and mapmessages" [ looplist (enumalias __convmaplicenses__) [mx m] [ delalias $mx ] ; __cmconfirm ]
        menuitem "Delete unchanged licenses and mapmessages from list" [cmchangedlicensesonly ; __cmconfirm]
        menuitem "" -1
        menuitem "Reset notexture on all maps in stage 2 or higher" [ looplist (enumalias __convmap__) [mx m] [ if (> (cmget $mx $CMASTAGE) 1) [ loadmap $m ; loadnotexture ; savemap ] ] ; __cmconfirm ]
        menuitem "Extract config files of maps in stage 2 or higher with errors remaining" [ looplist (enumalias __convmap__) [mx m] [ if (&& (> (cmget $mx $CMASTAGE) 1) (concat loadmap $m)) [ extractconfigfile ; savemap ] ] ; __cmconfirm ]
        menuitem "Extract config files of maps in stage 2 or higher" [ looplist (enumalias __convmap__) [mx m] [ if (> (cmget $mx $CMASTAGE) 1) [ loadmap $m ; extractconfigfile ; savemap ] ] ; __cmconfirm ]
        menuitem "Check used media sources of all maps (write list to comment)" [ cm_mediasourcetocomment ; __cmconfirm ]
    ]

    newmenu "List licenses and mapmessages"
    menuinit [
        resetcurmenu
        menusynctabstops 1
        looplist (enumalias __convmaplicenses__) [mx m] [
            menuitem (concatword $$mx "\t" $m) (concat cmpickmap $m)
        ]
    ]

    const cmgenlicenses [
        looplist (enumalias __convmap__) [mx m] [
            push mlx (concatword __convmaplicenses__ $m)
            if (! (checkalias $mlx)) [
                loadmap $m
                $mlx = (concat (escape $mapinfo_license) (escape $mapinfo_comment) (escape $mapmsg))
                echo (concatword $m ".cfg: alias " $mlx " " (escape $$mlx))
            ]
            pop mlx
        ]
    ]

    const cmapplylicenses [
        looplist (enumalias __convmaplicenses__) [mlx m] [
            loadmap $m
            push changed 0
            looplisti $$mlx [ license comment mapmessage ] [
                if (! i) [
                    if (&& (strlen $license) (! (strcmp $license $mapinfo_license))) [ mapinfo_license $license ; changed = 1 ]
                    if (&& (strlen $license) (! (strcmp $comment $mapinfo_comment))) [ mapinfo_comment $comment ; changed = 1 ]
                    if (&& (strlen $mapmessage) (! (strcmp $mapmessage $mapmsg))) [ mapmsg $mapmessage ; changed = 1 ]
                ]
            ]
            if (pop changed) savemap
        ]
    ]

    const cmchangedlicensesonly [
        looplist (enumalias __convmaplicenses__) [mlx m] [
            loadmap $m
            if (&& (strcmp (cmget $mlx 2) $mapmsg) (strcmp (cmget $mlx 0) $mapinfo_license)) [
                if (|| (! (strlen $mapinfo_license)) (strcmp (cmget $mlx 0) $mapinfo_comment)) [
                    delalias $mlx
                ]
            ]
        ]
    ]

    const cm_mediasourcetocomment [
        looplist (enumalias __convmaporigin__) [mx m] [ delalias $mx ]
        looplist (enumalias __convmap__) [mx m] [
            loadmap $m
            push path ""
            push origin ""
            loop i 256 [
                path = (mapmodelslotname $i)
                if (strlen $path) [
                    origin = (getmapmodelattributes $path distribution)
                    if (! (strlen $origin)) [ origin = "custom_unsorted" ]
                    [__convmaporigin__@(escapenoquotes $origin)] = $origin
                ]
            ]
            looplisti (textureslotusagelist) [cnt used] [
                path = (at (edittextureslot $i) 1)
                if (strlen $path) [
                    origin = (gettextureorigin $path)
                    [__convmaporigin__@(escapenoquotes $origin)] = $origin
                ]
            ]
            loop i 256 [
                path = (at (editmapsoundslot $i) 0)
                if (strlen $path) [
                    origin = (getmapsoundorigin $path)
                    [__convmaporigin__@(escapenoquotes $origin)] = $origin
                ]
            ]
            origin = "\f1media sources: official\f2"
            delalias __convmaporigin__official
            looplist (enumalias __convmaporigin__) [mx m] [ origin = (concat $origin $$mx) ; delalias $mx ]
            cmset $mx $CMACOMMENT (pop origin path)
        ]
    ]

    const cmpickmap [ tempalias cmpick $arg1 ; showmenu "Map conversion state" ]

    newmenu "Map conversion state"
    menuinit [
        resetcurmenu
        push mx (concatword __convmap__ $cmpick)
        menuheader "" (concatword "conversion state for map \f1" $cmpick)
        if (< (cmget $mx $CMASTAGE) 0) [
            menuitemtextinput "Conversion aborted at stage\t" (concat cmget $mx $CMASTAGE) (concat cmset $mx $CMASTAGE "$arg1")
        ][
            menuitemtextinput "Converted up to stage\t\t" (concat cmget $mx $CMASTAGE) (concat cmset $mx $CMASTAGE "$arg1")
        ]
        menuitem (concat "Errors during first map load:\t\t" (cmget $mx $CMAFIRSTERROR)) (concat cmprinterror (cmget $mx $CMAFIRSTERROR))
        menuitem (concat "Errors during most recent map load:\t" (cmget $mx $CMALASTERROR)) (concat cmprinterror (cmget $mx $CMALASTERROR))
        menuitemtextinput "Comment\t" [escapenoquotes (cmget @mx @CMACOMMENT)] [cmset @mx @CMACOMMENT (at (addpunct $arg1) 0)]
        menuitem "" -1
        menuitem "\f3[Delete map from batch processing list]" (concat delalias $mx "; closemenu [Map conversion state]")
        menuitem "[Limit batch processing to this single map]" (concat "cmcur =" $cmpick)
        menuitemmapload "[Load map]" (concat coop $cmpick)
        pop mx
    ]

    newmenu "List maps to convert"
    menuinit [
        resetcurmenu
        looplist (enumalias __convmap__) [mx m] [
            push mi ""
            push nt (+ $CMANUM 1)
            looplisti $$mx v [
                mi = (concatword "\fs" $mi $v "\fr\t")
                -= nt 1
            ]
            loop i $nt [ mi = (concatword $mi "\t") ]
            menuitem (concatword $mi $m) (concat cmpickmap $m)
            pop mi nt
        ]
    ]

    newmenu "Convmap save"
    menuinit [
        resetcurmenu
        if (&& (&& (strlen $cmediting) (strcmp $cmediting (curmap))) $unsavededits) [
            menuitem (concatword "\f0[Save changes to " $cmediting "]") (concat savemap $cmediting "; cmdoneediting ; " $cmafterfinishediting)
            menuitem "" -1
            menuitem (concatword "\f3[Throw away changes on " $cmediting "]") (concat "cmdoneediting ; " $cmafterfinishediting)
        ][
            menuitem "nothing to save" (concat "cmdoneediting ; " $cmafterfinishediting)
        ]
    ]

    const cmfinishediting [
        if (&& (strlen $cmediting) (strcmp $cmediting (curmap))) [
            showmenu "Convmap save"
            result 1
        ][
            result 0
        ]
    ]

    const cmwork [
        if $editing edittoggle   // end edit mode
        if (! (player1 alive)) [
            spectate
            sleep 100 cmwork // try again
        ][
            cmwork_contd // alive: go to work
        ]
    ]

    const cmwork_contd [
        echo "\f0Continue map conversion up to stage \f1" $cmstage

        // process unsaved edits
        tempalias cmafterfinishediting cmwork
        if (! (cmfinishediting)) [
            tempalias cmafterfinishediting ""
            push n ""
            push abort 0
            push stagefail 0
            // loop through all maps and all requested stages
            loop _curstage $cmstage [
                push curstage (+ $_curstage 1)
                looplist (enumalias __convmap__) [mx mn] [
                    if (&& (strlen $cmcur) (! (strcmp $cmcur $mn))) continue // fast-forward to cmcur

                    n = (cmget $mx $CMASTAGE)
                    if (&& (&& (>= $n 0) (< $n $curstage)) (! $abort)) [
                        echo "Processing conversion on map \fs\f1" $mn "\fr stage \fs\f1" (cmget $mx $CMASTAGE) "\fr"
                        // process map $mn stage $curstage
                        if (= $curstage $MAPCONFIG) [ _ignoreillegalpaths 1 ] // hopefully, the illegal paths will be converted...
                        n = (loadmap $mn)
                        _ignoreillegalpaths 0
                        cmset $mx $CMALASTERROR (concatword "0x" (h0 8 $n))
                        if (&b $n (if (= $curstage $MAPCONFIG) $cmerr_config $cmerr_abort)) [
                            cmprinterror $n (concatword "\f3aborting map " $mn ": ")
                            cmset $mx $CMASTAGE (- 0 $curstage)
                            cmset $mx $CMACOMMENT "aborted"
                        ] [
                            // enter edit mode
                            if (! $editing) edittoggle
                            stagefail = 0

                            (concatword cm_dostage_ (at $cmstagenames $curstage)) $mx $mn $curstage $n

                            if (&& $stagefail (! $cmconverredit)) [
                                echo "\f3aborting map" $mn due to problems in conversion stage $curstage
                                cmset $mx $CMASTAGE (- 0 $curstage)
                                cmset $mx $CMACOMMENT "aborted"
                            ]

                            cmprinterror $n "map load error: "
                            if (&& (&b $cmerr_fixlater $n) $cmdomanual) [ abort = 1 ]
                            if (&& $stagefail $cmconverredit) [ abort = 1 ]
                            if $abort [
                                echo "\f3Pausing for manual error correction. Continue batch run with \"/cmwork\" or use the menu."
                                cmediting = (curmap)
                                cmdoneediting = (concat cmset $mx $CMASTAGE $curstage " ; cmdoneediting = [] ; cmediting = [] ")
                                cmeditstage = $curstage
                            ] [
                                if $editing edittoggle   // end edit mode
                                if (! $stagefail) [ // no errors: save result
                                    cmset $mx $CMASTAGE $curstage
                                    if (&& $unsavededits (strcmp (curmap) $mn)) [
                                        // finish stage and save changes
                                        savemap
                                    ]
                                ]
                            ]
                        ]
                    ]
                ]
                pop curstage
            ]
            if (! $abort) [ echo "\f0Finished map conversion up to stage \f1" $cmstage ]
            if (&& $abort (strlen (enumtodoentities))) [ sleep 1000 "if (! $editing) edittoggle ; showmenu [TODO entities]" ]
            pop n abort stagefail
        ]
    ]

    const cm_dostage_ [ echo stage $arg3 processing not available ]

    const cm_dostage_NOP []

    const cm_dostage_MAPCONFIG [ // only change config file - no changes to the cgz in this stage
        automapconfig // embed config file

        push cnt (+ (cmfixmapmodelpaths) (cmfixtexturepaths) (cmfixmapsoundpaths) (cmfixskymappaths))
        push fixcfg (&b $arg4 0x0000f000)
        if (!= $cmstage 1) [ fixcfg = 0 ]
        if (|| $cnt $fixcfg) [ // write cfg, if paths were changed - or if media files were missing (to get a clean cfg to fix manually)
            savemap ________mapconvtemp // write to temp cgz to clear $unsavededits
            extractconfigfile // only write config file
        ]
        pop cnt fixcfg
    ]

    const cm_dostage_TRANSCLIP [ // translate clip entities
        // automatic changes
        transformclipentities

        // general cleanup
        if (< $waterlevel -128) [
          // no water
          waterlevel -10000
          watercolour
          echo no water used: values reset to defaults
        ]
        if (&b $arg4 $cmerr_editsave) savemap
    ]

    const cm_dostage_CLEANSLOTS [ // strip and sort all config slots
        // delete all unused config slots
        loop ii 256 [ push i (- 255 $ii) ; if (&& (strlen (mapmodelslotname $i)) (strcmp "" (mapmodelslotusage $i))) [deletemapmodelslot $i] ; pop i]
        loop ii 251 [ push i (- 255 $ii) ; if (&& (strlen (edittextureslot $i)) (strcmp "" (textureslotusage $i))) [deletetextureslot $i] ; pop i]
        loop ii 256 [ push i (- 255 $ii) ; if (&& (strlen (editmapsoundslot $i)) (strcmp "" (mapsoundslotusage $i))) [deletemapsoundslot $i] ; pop i]

        // sort all config slots and merge doubles
        sortmapmodelslots mergeused
        sorttextureslots mergeused
        sortmapsoundslots mergeused
    ]

    const cm_dostage_FIXUNASSIGNEDS [ // pause on maps with unassigned map models or -sounds
        if (entstats) [ stagefail = 1 ]
    ]

    const cm_dostage_FIXBADENTS [ // pause on maps with entities with illegal attributes
        looplist (enumentities playerstart) i [
            push a (at (editentity $i) 5) // attr2
            if (&& (&& (!= $a 0) (!= $a 1)) (!= $a 100)) [
                echo (concatword "playerstart entity #" $i " has an illegal attr2 value (" $a ") - allowed are 0, 1 and 100")
                addtodoentity $i (concatword "illegal attr2 value (" $a ") - allowed are 0, 1 and 100")
                stagefail = 1
            ]
            pop a
        ]
        looplist (enumentities ctf-flag) i [
            push a (at (editentity $i) 5) // attr2
            if (&& (!= $a 0) (!= $a 1)) [
                echo (concatword "ctf-flag entity #" $i " has an illegal attr2 value (" $a ") - allowed are 0 and 1")
                addtodoentity $i (concatword "illegal attr2 value (" $a ") - allowed are 0 and 1")
                stagefail = 1
            ]
            pop a
        ]
        looplist [playerstart 2 pistol 1 ammobox 1 grenades 1 health 1 helmet 1 armour 1 akimbo 1 ladder 1 ctf-flag 2] [ent attrs] [
            looplist (enumentities $ent) i [
                push t 0
                loop a (- 4 $attrs) [
                    if (!= (at (editentity $i) (+ 4 $attrs $a)) 0) [ t = 1 ]
                ]
                if (pop t) [
                    addtodoentity $i "unused entity attribute has non-zero value"
                    stagefail = 1
                ]
            ]
        ]
    ]

    const cm_dostage_MANUALERRORS [ // pause on all maps with any errors left
        if $arg4 [ stagefail = 1 ]
    ]

    const cm_dostage_MANUALEDITING [ // pause on all maps
        stagefail = 1
    ]

    const cm_dostage_REDUCECLIPS [ // automatically un-clip mapmodels if possible
        if (|| (uncliptagclippedmodels) (unclipentclippedmodels)) [
            if $dryrun [stagefail = 1] [duplicateclippedslots_cleanup]
        ]
    ]

    const cm_dostage_FIXPICKUPFHF [ // pause on maps with entities with pickups elevated by unnecessary heightfields
        looplist [pistol ammobox grenades health helmet armour akimbo] ent [
            looplist (enumentities $ent) i [
                push entinfo (editentity $i)
                select (at $entinfo 1) (at $entinfo 2) 2 2
                push v 0
                selectionwalk [
                    if (|| $sw_rel_x $sw_rel_y) [
                        if (|| (= $sw_type 2) (!= $sw_vdelta $v)) [ v = 0 ]  // if FHF around or different vdelta: not just an elevated model
                    ][
                        if (= $sw_type 2) [ v = $sw_vdelta ]        // FHF below pickup
                    ]
                ]
                if (&& $v (! (&b $v 3))) [          // only mark elevations by whole cube sizes
                    addtodoentity $i "pickup entity elevated old-style, use attr1 instead"
                    stagefail = 1
                ]
                pop v entinfo
            ]
        ]
    ]

    const cm_dostage_FINDSTRAYENTS [ // find entities sitting in 8x8 solid cubes
        looplist [playerstart pistol ammobox grenades health helmet armour akimbo ladder ctf-flag light mapmodel ] ent [
            looplist (enumentities $ent) i [
                push t 0
                select (- (at (editentity $i) 1) 4) (- (at (editentity $i) 2) 4) 8 8
                selectionwalk [ += t $sw_type ]
                if (&& (! (pop t)) (strlen (selx))) [
                    addtodoentity $i "entity placed in solid cubes"
                    stagefail = 1
                ]
            ]
        ]
    ]

    const cm_dostage_CHECKVANTAGEPOINTS [ // check for vantage points, abort if there's no valid one
        if (! gotovantagepoint) [
            echo "\t\t\f9No vantage point set."
            stagefail = 1
        ]
    ]

    const cmfixmapmodelpaths [
        push cnt 0
        push ispre12 0
        looplisti [
            laptop1             jcdpc/laptop                        // convert official older than 1.2
            rattrap/cbbox       toca/cardboardbox
            rattrap/rbbox       ratboy/toca_cardboardbox_reskin
            rattrap/hanginlamp  jcdpc/hanginglamp
            rattrap/ventflap    jcdpc/ventflap
            rattrap/milkcrate2  ratboy/toca_milkcrate_blue
            rattrap/milkcrate1  ratboy/toca_milkcrate_red
            aard                makke/aardapple_enginebox
            barrel              makke/barrel
            barrel2             makke/barrel_fallen
            barrel-toxic        makke/barrel_toxic
            rattrapbarrel       makke/barrel_newsteel
            rattrapbarrel2      makke/barrel_newsteel_fallen
            bridge              makke/platform
            bridge_shine        makke/platform_shine
            bulb                makke/lightbulb
            can                 makke/coke_can
            can2                makke/coke_can_fallen
            chair1              makke/office_chair
            coffeemug           makke/coffee_mug
            comp_bridge         makke/platform_bridge
            drainpipe           makke/drainpipe
            dumpster            makke/dumpster
            elektro             makke/electric_meter
            europalette         makke/pallet
            fag                 makke/cigarette
            fence               makke/fence_chainlink
            fencegate_closed    makke/fence_chainlink_closed_gate
            fencegate_open      makke/fence_chainlink_no_gate
            fencepost           makke/fence_chainlink_post
            flyer               makke/flyer_propaganda
            tree01              makke/flyer_environmental
            gastank             makke/fuel_tank
            icicle              makke/icicle
            hook                makke/hook
            locker              makke/locker
            light01             makke/fluorescent_lamp
            wood01              makke/broken_wood
            wrench              makke/wrench
            strahler            makke/wall_spotlight
            streetlamp          makke/street_light
            ladder_rung         makke/ladder_1x
            ladder_7x           makke/ladder_7x
            ladder_8x           makke/ladder_8x
            ladder_10x          makke/ladder_10x
            ladder_11x          makke/ladder_11x
            ladder_15x          makke/ladder_15x
            ladderx15_center3   makke/ladder_15x_offset
            gutter_h            cleaner/grates/grate_hor
            gutter_v            cleaner/grates/grate_vert
            minelift            makke/mine-shaft_elevator
            screw               makke/bolt_nut
            sail                makke/sail
            snowsail            makke/sail_snow
            wires/2x8           makke/wires/2x8
            wires/3x8           makke/wires/3x8
            wires/4x8           makke/wires/4x8
            wires/4x8a          makke/wires/4x8a
            poster              makke/signs/wanted
            signs/arab          makke/signs/arab
            signs/biohazard     makke/signs/biohazard
            signs/caution       makke/signs/caution_voltage
            signs/maint         makke/signs/caution_maintainence
            signs/flammable     makke/signs/flammable
            signs/speed         makke/signs/speed
            nocamp              makke/signs/no_camping
            roadblock01         makke/roadblock
            roadblock02         makke/roadblock_graffiti
            nothing             makke/nothing_clip
            picture1            makke/picture
            plant01             makke/plant_leafy
            plant01_d           makke/plant_leafy_dry
            plant01_s           makke/plant_leafy_snow
            grass01             makke/grass_short
            grass01_d           makke/grass_short_dry
            grass01_s           makke/grass_short_snow
            grass02             makke/grass_long
            grass02_d           makke/grass_long_dry
            grass02_s           makke/grass_long_snow
            shadowfix/boeufmironton/bidon1          boeufmironton/bidon1            // duplicates
            shadowfix/boeufmironton/bidon2          boeufmironton/bidon2
            shadowfix/boeufmironton/caisse01        boeufmironton/caisse01
            shadowfix/boeufmironton/caisse02        boeufmironton/caisse02
            shadowfix/boeufmironton/carton1         boeufmironton/carton1
            shadowfix/boeufmironton/citerne         boeufmironton/citerne
            shadowfix/boeufmironton/commande1       boeufmironton/commande1
            shadowfix/boeufmironton/elevateur       boeufmironton/elevateur
            shadowfix/boeufmironton/palan1          boeufmironton/palan1
            shadowfix/boeufmironton/palette1        boeufmironton/palette1
            shadowfix/boeufmironton/passerelle      boeufmironton/passerelle
            shadowfix/boeufmironton/portique        boeufmironton/portique
            shadowfix/boeufmironton/poutrelle1      boeufmironton/poutrelle1
            shadowfix/boeufmironton/rail            boeufmironton/rail
            shadowfix/boeufmironton/tuyaux1         boeufmironton/tuyaux1
            shadowfix/boeufmironton/wagon           boeufmironton/wagon
            shadowfix/sr_persian/wagon              sr_persian/wagon
            shadowfix/sr_persian/wagon2             sr_persian/wagon2
            ice/ventflap                            jcdpc/ventflap
            pink/lights/ovallamp                    misterfloppy/ovallamp
            halfdoor                                dcp/halfdoor
            fantomas/barsign                        fantomas.ua/bar_sign
            pink/lights/hanginlamp                  jcdpc/hanginglamp
            pink/lights/minelamp                    misterfloppy/minelamp
            ton                                     ton/up
            cleaner/gutter_h                        cleaner/grates/grate_hor
            cleaner/gutter_v                        cleaner/grates/grate_vert
            makkes/vase                             dcp/vases/vase
            models/warning_light                    cleaner/warning_light
            europalette2                            makke/pallet_vert
            ayers_skull                             ayers/skull                     // moved models
            barique                                 boeufmironton/barique
            barrel6                                 dcp/barrel6
            beerbottle/beerbottle1                  zz_unsorted/beerbottle/1
            beerbottle/beerbottle2                  zz_unsorted/beerbottle/2
            bench2                                  zz_unsorted/bench
            boxtrailer                              sitters/boxtrailer
            bridge_incas2                           boeufmironton/bridge_incas2
            bridge_incas                            boeufmironton/bridge_incas
            bukz/sundial                            primevil/sundial
            campbed                                 sitters/campbed
            candle                                  dementium4ever/candle
            car                                     sitters/car2
            chain                                   tentus/chains/chain
            coffin                                  zz_unsorted/coffin
            container                               cleaner/container
            crate                                   psionic/crate
            curvechain                              tentus/chains/curvechain
            dcp_candle                              dcp/candle
            digicode                                cleaner/digicode
            elecbox                                 acord/elecbox
            geartrooper/warning_light               cleaner/warning_light
            goal                                    sniper/goal
            goblet                                  zz_unsorted/goblet
            grass                                   dcp/grass
            gravure01                               boeufmironton/gravure01
            gravure02                               boeufmironton/gravure02
            gutter_h                                cleaner/grates/grate_hor
            gutter_v                                cleaner/grates/grate_vert
            helicopter                              dementium4ever/helicopter
            heli                                    sitters/heli
            hotel_sign                              sr_persian/hotel_sign
            jeep                                    sitters/jeep
            kt_kubalwagon                           kenbeyer/kt_kubalwagon
            leafs                                   dcp/leafs
            makke/med_chand                         dcp/chandelier
            makke/signs/exit                        signs/exit2
            money                                   sunnyd/money
            oldchair                                sr_persian/oldchair
            old_table                               sr_persian/old_table
            old_wagon                               sr_persian/old_wagon
            paquet                                  deathstar/paquet
            piano                                   zz_unsorted/piano
            picture2                                zz_unsorted/picture2
            plant1                                  dcp/plant1
            red_cross_jeep                          cleaner/red_cross_jeep
            rope                                    zz_unsorted/rope
            skintrolpc                              zz_unsorted/trolpc
            smplant                                 dcp/smplant
            soleil2                                 boeufmironton/soleil2
            soleil                                  boeufmironton/soleil
            stairs                                  zz_unsorted/stairs
            statue                                  deathstar/statue
            tankwall                                sitters/tankwall
            ton/down                                sitters/ton/down
            ton/up                                  sitters/ton/up
            tree_models/mushroom                    dcp/mushroom
            treppe                                  sr_persian/treppe2
            vent                                    dcp/vent
            victorian/oldclock                      cleaner/victorian/oldclock
            wagon                                   sitters/wagon
            warning_light                           geartrooper/warning_light
            cleaner/dockingring                     cleaner/docking_ring
            cleaner/floorhole                       cleaner/floor_hole
            cleaner/saloondoors                     cleaner/saloon_doors
            cleaner/westerndoors2                   cleaner/western_doors_2
            cleaner/westerndoors3                   cleaner/western_doors_3
            cleaner/westerndoorssnoo                cleaner/western_doors_snoo
            cleaner/westernsigns/butts              cleaner/western_signs/butts
            cleaner/westernsigns/noguns             cleaner/western_signs/noguns
            "cleaner/planks/plank(hor)"             cleaner/planks/plank_hor
            thekid/skateboard                       TheKid/skateboard
            Raczo/fence1                            raczo/fence1
            Raczo/fence-post                        raczo/fence-post
            pink/lights/light1                      sitters/light1
            pink/lights/light2                      sitters/light2
            pink/lights/light3                      sitters/light3
            pink/lights/light4                      sitters/light4
            pink/lights/light5                      sitters/light5
            pink/indust/pallette                    sitters/pallette
            cleaner/exting                          sitters/exting
            ice/barrel_ice                          deathstar/barrel_ice
            ice/tree_snow                           deathstar/tree_snow
            ac_library/book                         zero/book/red
            ac_library/book2                        zero/book/blue
            ac_library/book3                        zero/book
            ac_library/ladder                       zero/ladder
            zero/ac_archives/book_1                 zero/book/fault
            zero/ac_archives/book_2                 zero/book
            zero/ac_archives/book_3                 zero/book
            zero/ac_archives/book_4                 zero/book/red
            zero/ac_archives/book_5                 zero/book/mock
            zero/ac_archives/book_new               zero/book/fault
            zero/ac_archives/book_new2              zero/book/blue
            zero/ac_archives/book_new3              zero/book/green
            zero/ac_archives/book_new4              zero/book/red
            zero/ac_archives/book_new5              zero/book/mock
            zero/ac_archives/desk                   zero/desk
            zero/ac_archives/ivy                    zero/ivy
            zero/ac_roots/oldchair_new              zero/oldchair_new
            zero/ac_roots/tonneletv                 zero/tonneletv_roots
            zero/ac_roots/yopasign                  zero/sign/yopa
            zero/ac_tanglewood/bulletinboard        zero/bulletinboard
            zero/ac_tanglewood/flowerbox            zero/flowerbox
            zero/ac_tanglewood/flowerbox2           zero/flowerbox/2
            zero/ac_tanglewood/flowerbox3           zero/flowerbox/3
            zero/ac_tanglewood/ghost                zero/ghost
            zero/ac_tanglewood/statue               zero/statue
            zero/ac_tanglewood/statue2              zero/statue/2
            zero/ac_tanglewood/window1              zero/window/1
            zero/ac_tanglewood/window2              zero/window/2
            zero/ac_tanglewood/window3              zero/window/3
        ] [ns nr] [
            looplist (mapmodelslotbyname (concatword "mapmodels/" $ns)) n [
                editmapmodelslot $n "" "" "" "" $nr
                += cnt 1
                if (< $i 79) [ += ispre12 1 ]
            ]
        ]
        push newbench "zz_unsorted/bench"
        if (> $ispre12 1) [ newbench = "makke/bench_seat" ] // special treatment for "bench", if the config file is "unconverted pre 1.2"
        looplist (mapmodelslotbyname "mapmodels/bench") n [
            editmapmodelslot $n "" "" "" "" $newbench
            += cnt 1
        ]
        if $cnt [echo replaced $cnt mapmodel slot paths]
        pop newbench ispre12
        result (pop cnt)
    ]

    const cmfixtexturepaths [
        push cnt 0
        looplist [
            wotwot/skin/drainpipe.jpg                   ../models/mapmodels/wotwot/makke_drainpipe_gritty/skin.jpg      // convert official older than 1.2
            wotwot/skin/commrack.jpg                    ../models/mapmodels/wotwot/toca_commrack_dull/skin.jpg
            wotwot/skin/monitor.jpg                     ../models/mapmodels/wotwot/toca_monitor_dull/skin.jpg
            wotwot/skin/milkcarton.jpg                  ../models/mapmodels/wotwot/toca_milkcarton_dull/skin.jpg
            wotwot/skin/guardrail2.jpg                  ../models/mapmodels/wotwot/toca_guardrail2_dull/skin.jpg
            mitaman/zastrow/metal_overlaps.jpg          zastrow/metal_overlaps.jpg
            mitaman/zastrow/metal_plate_fill.jpg        zastrow/metal_plate_fill.jpg
            mitaman/zastrow/metal_siding_kinksb.jpg     zastrow/metal_siding_kinksb.jpg
            mitaman/zastrow/metal_siding_kinks.jpg      zastrow/metal_siding_kinks.jpg
            mitaman/zastrow/sub_doors512A10.jpg         zastrow/sub_doors512A10.jpg
            mitaman/zastrow/sub_doors512A16.jpg         zastrow/sub_doors512A16.jpg
            mitaman/zastrow/sub_doors512B05.jpg         zastrow/sub_doors512B05.jpg
            mitaman/zastrow/sub_window31.jpg            zastrow/sub_window31.jpg
            mitaman/zastrow/sub_window33.jpg            zastrow/sub_window33.jpg
            sub/sub_sand.jpg                            zastrow/sub_sand.jpg
            sub/brick_wall_08.jpg                       zastrow/brick_wall_08.jpg
            sub/brick_wall_09.jpg                       zastrow/brick_wall_09.jpg
            mitaman/various/sub_window23.jpg            zastrow/sub_window23.jpg
            mitaman/various/vent_cap.jpg                zastrow/vent_cap.jpg
            mitaman/various/sub_window38.jpg            zastrow/sub_window38.jpg
            mitaman/various/sub_doors256nf_01.jpg       zastrow/sub_doors256nf_01.jpg
            rattrap/rb_box_07.jpg                       zastrow/rb_box_07.jpg
            mitaman/golgotha/elecpanelstwo.jpg          golgotha/elecpanelstwo.jpg
            mitaman/golgotha/metal_bumps2.jpg           golgotha/metal_bumps2.jpg
            mitaman/golgotha/tunnel_ceiling.jpg         golgotha/tunnel_ceiling.jpg
            mitaman/golgotha/hhroofgray.jpg             golgotha/hhroofgray.jpg
            mitaman/golgotha/metal_bumps3.jpg           golgotha/metal_bumps3.jpg
            mitaman/golgotha/tunnel_ceiling_b.jpg       golgotha/tunnel_ceiling_b.jpg
            mitaman/various/5sqtunnelroad.jpg           golgotha/5sqtunnelroad.jpg
            mitaman/3dcafe/door07_a.jpg                 3dcafe/door07_a.jpg
            mitaman/3dcafe/door07.jpg                   3dcafe/door07.jpg
            mitaman/3dcafe/door10_a.jpg                 3dcafe/door10_a.jpg
            mitaman/3dcafe/door10.jpg                   3dcafe/door10.jpg
            mitaman/3dcafe/door12.jpg                   3dcafe/door12.jpg
            mitaman/3dcafe/door15.jpg                   3dcafe/door15.jpg
            mitaman/3dcafe/objects08.jpg                3dcafe/objects08.jpg
            mitaman/3dcafe/objects09_a.jpg              3dcafe/objects09_a.jpg
            mitaman/3dcafe/stone18.jpg                  3dcafe/stone18.jpg
            mitaman/grsites/brick051.jpg                grsites/brick051.jpg
            mitaman/grsites/brick065.jpg                grsites/brick065.jpg
            mitaman/grsites/wood060.jpg                 grsites/wood060.jpg
            mitaman/various/metal020.jpg                grsites/metal020.jpg
            mitaman/various/metal026.jpg                grsites/metal026.jpg
            mitaman/various/036metal.jpg                lemog/036metal.jpg
            mitaman/various/006metal.jpg                lemog/006metal.jpg
            mitaman/various/063bois.jpg                 lemog/063bois.jpg
            mitaman/various/063bois_b.jpg               lemog/063bois_b.jpg
            mitaman/various/027metal.jpg                lemog/027metal.jpg
            makke/windows.jpg                           golgotha/windows.jpg
            makke/window.jpg                            golgotha/window.jpg
            makke/panel.jpg                             golgotha/panel.jpg
            makke/door.jpg                              golgotha/door.jpg
            makke/smallsteelbox.jpg                     golgotha/smallsteelbox.jpg
            makke/klappe3.jpg                           golgotha/klappe3.jpg
            makke/bricks_2.jpg                          mayang/bricks_2.jpg
            wotwot/urban/manhole1.jpg                   mayang/manhole1.jpg
            wotwot/urban/hatch1.jpg                     mayang/hatch1.jpg
            wotwot/urban/grill2_s.jpg                   mayang/grill2_s.jpg
            wotwot/urban/door3.jpg                      mayang/door3.jpg
            wotwot/urban/airvent1.jpg                   mayang/airvent1.jpg
            rattrap/rb_trim_03.jpg                      golgotha/rb_trim_03.jpg
            rattrap/rb_window.jpg                       makke/rb_window.jpg
            rattrap/rb_window2.jpg                      makke/rb_window2.jpg
            rattrap/rb_trim_01.jpg                      noctua/ground/rb_trim_01.jpg
            rattrap/rb_trim_02.jpg                      makke/rb_trim_02.jpg
            rattrap/rb_box_01.jpg                       makke/rattrap/rb_box_01.jpg
            rattrap/rb_box_02.jpg                       makke/rattrap/rb_box_02.jpg
            rattrap/rb_box_03.jpg                       makke/rattrap/rb_box_03.jpg
            rattrap/rb_box_04.jpg                       makke/rattrap/rb_box_04.jpg
            rattrap/rb_box_05.jpg                       makke/rattrap/rb_box_05.jpg
            rattrap/rb_box_06.jpg                       makke/rattrap/rb_box_06.jpg
            rattrap/rb_concrete.jpg                     makke/rattrap/rb_concrete.jpg
            rattrap/rb_bricks_01.jpg                    mayang/rb_bricks_01.jpg
            rattrap/rb_bricks_02.jpg                    mayang/rb_bricks_02.jpg
            rattrap/rb_bricks_03.jpg                    mayang/rb_bricks_03.jpg
            rattrap/rb_planks02_trim.jpg                noctua/wood/planks02_trim_vert.jpg
            exoduss/text45.jpg                          exoduss/arab2.jpg                   // duplicates
            exoduss/text14.jpg                          exoduss/granite1.jpg
            exoduss/text32.jpg                          exoduss/granite8.jpg
            exoduss/text22.jpg                          exoduss/mot190.jpg
            exoduss/text23.jpg                          exoduss/lol6.jpg
            exoduss/text36.jpg                          exoduss/granite6.jpg
            exoduss/text30.jpg                          exoduss/lol4.jpg
            exoduss/text3.jpg                           exoduss/lol1.jpg
            exoduss/text27.jpg                          exoduss/lol2.jpg
            exoduss/text2.jpg                           exoduss/granite4.jpg
            exoduss/stripes.jpg                         exoduss/granite7.jpg
            exoduss/text21.jpg                          exoduss/granite7.jpg
            exoduss/text37.jpg                          exoduss/granite7.jpg
            exoduss/text1.jpg                           exoduss/granite3.jpg
            exoduss/text17.jpg                          exoduss/wall.jpg
            exoduss/text38.jpg                          exoduss/granite5.jpg
            exoduss/text28.jpg                          exoduss/lol3.jpg
            exoduss/text13.jpg                          exoduss/aztec3.jpg
            exoduss/wall4.jpg                           exoduss/text33.jpg
            exoduss/text35.jpg                          exoduss/granite2.jpg
            exoduss/text4.jpg                           exoduss/ground3.jpg
            exoduss/text9.jpg                           exoduss/floor.jpg
            exoduss/text24.jpg                          exoduss/lol5.jpg
            exoduss/text8.jpg                           exoduss/wall10.jpg
            exoduss/text15.jpg                          exoduss/wall7.jpg
            exoduss/text20.jpg                          exoduss/wall8.jpg
            exoduss/text29.jpg                          exoduss/ground2.jpg
            exoduss/text10.jpg                          exoduss/256-01a.jpg
            exoduss/text7.jpg                           exoduss/wall9.jpg
            exoduss/text19.jpg                          exoduss/wall6.jpg
            exoduss/text31.jpg                          exoduss/granite10.jpg
            exoduss/text18.jpg                          exoduss/wall5.jpg
            cleaner/ikbase/ik_floor_conc128a.jpg        cube/ikbase/ik_floor_conc128a.jpg
            exoduss/floor.jpg                           cube/ikbase/ik_floor_conc128a.jpg
            bukz/door1.jpg                              3dcafe/door10_a.jpg
            bukz/door2.jpg                              3dcafe/door07_a.jpg
            exoduss/text6.jpg                           cube/dg/muv158.jpg
            exoduss/mot190.jpg                          cleaner/dg/mot190.jpg
            mitaman/063bois.jpg                         lemog/063bois.jpg
            RKTnoob/b10.jpg                             RKTnoob/brick10.jpg                 // renamed
            RKTnoob/b1.jpg                              RKTnoob/brick1.jpg
            RKTnoob/b2.jpg                              RKTnoob/brick2.jpg
            RKTnoob/b3.jpg                              RKTnoob/brick3.jpg
            RKTnoob/b4.jpg                              RKTnoob/brick4.jpg
            RKTnoob/b5.jpg                              RKTnoob/brick5.jpg
            RKTnoob/b6.jpg                              RKTnoob/brick6.jpg
            RKTnoob/b7.jpg                              RKTnoob/brick7.jpg
            RKTnoob/b8.jpg                              RKTnoob/brick8.jpg
            RKTnoob/b9.jpg                              RKTnoob/brick9.jpg
            RKTnoob/c10.jpg                             RKTnoob/color10.jpg
            RKTnoob/c11.jpg                             RKTnoob/color11.jpg
            RKTnoob/c12.jpg                             RKTnoob/color12.jpg
            RKTnoob/c13.jpg                             RKTnoob/color13.jpg
            RKTnoob/c14.jpg                             RKTnoob/color14.jpg
            RKTnoob/c15.jpg                             RKTnoob/color15.jpg
            RKTnoob/c16.jpg                             RKTnoob/color16.jpg
            RKTnoob/c17.jpg                             RKTnoob/color17.jpg
            RKTnoob/c18.jpg                             RKTnoob/color18.jpg
            RKTnoob/c19.jpg                             RKTnoob/color19.jpg
            RKTnoob/c1.jpg                              RKTnoob/color1.jpg
            RKTnoob/c20.jpg                             RKTnoob/color20.jpg
            RKTnoob/c21.jpg                             RKTnoob/color21.jpg
            RKTnoob/c22.jpg                             RKTnoob/color22.jpg
            RKTnoob/c23.jpg                             RKTnoob/color23.jpg
            RKTnoob/c24.jpg                             RKTnoob/color24.jpg
            RKTnoob/c25.jpg                             RKTnoob/color25.jpg
            RKTnoob/c26.jpg                             RKTnoob/color26.jpg
            RKTnoob/c27.jpg                             RKTnoob/color27.jpg
            RKTnoob/c28.jpg                             RKTnoob/color28.jpg
            RKTnoob/c29.jpg                             RKTnoob/color29.jpg
            RKTnoob/c2.jpg                              RKTnoob/color2.jpg
            RKTnoob/c30.jpg                             RKTnoob/color30.jpg
            RKTnoob/c31.jpg                             RKTnoob/color31.jpg
            RKTnoob/c32.jpg                             RKTnoob/color32.jpg
            RKTnoob/c3.jpg                              RKTnoob/color3.jpg
            RKTnoob/c4.jpg                              RKTnoob/color4.jpg
            RKTnoob/c5.jpg                              RKTnoob/color5.jpg
            RKTnoob/c6.jpg                              RKTnoob/color6.jpg
            RKTnoob/c7.jpg                              RKTnoob/color7.jpg
            RKTnoob/c8.jpg                              RKTnoob/color8.jpg
            RKTnoob/c9.jpg                              RKTnoob/color9.jpg
            RKTnoob/f1.jpg                              RKTnoob/floor1.jpg
            RKTnoob/f2.jpg                              RKTnoob/floor2.jpg
            RKTnoob/f3.jpg                              RKTnoob/floor3.jpg
            RKTnoob/g10.jpg                             RKTnoob/gate10.jpg
            RKTnoob/g11.jpg                             RKTnoob/gate11.jpg
            RKTnoob/g12.jpg                             RKTnoob/gate12.jpg
            RKTnoob/g13.jpg                             RKTnoob/gate13.jpg
            RKTnoob/g14.jpg                             RKTnoob/gate14.jpg
            RKTnoob/g1.jpg                              RKTnoob/gate1.jpg
            RKTnoob/g2.jpg                              RKTnoob/gate2.jpg
            RKTnoob/g3.jpg                              RKTnoob/gate3.jpg
            RKTnoob/g4.jpg                              RKTnoob/gate4.jpg
            RKTnoob/g5.jpg                              RKTnoob/gate5.jpg
            RKTnoob/g6.jpg                              RKTnoob/gate6.jpg
            RKTnoob/g7.jpg                              RKTnoob/gate7.jpg
            RKTnoob/g8.jpg                              RKTnoob/gate8.jpg
            RKTnoob/g9.jpg                              RKTnoob/gate9.jpg
            RKTnoob/m2/10.jpg                           RKTnoob/metal2/floor4.jpg
            RKTnoob/m2/11.jpg                           RKTnoob/metal2/floor5.jpg
            RKTnoob/m2/12.jpg                           RKTnoob/metal2/floor6.jpg
            RKTnoob/m2/13.jpg                           RKTnoob/metal2/floor7.jpg
            RKTnoob/m2/14.jpg                           RKTnoob/metal2/floor8.jpg
            RKTnoob/m2/15.jpg                           RKTnoob/metal2/floor9.jpg
            RKTnoob/m2/16.jpg                           RKTnoob/metal2/wall7.jpg
            RKTnoob/m2/17.jpg                           RKTnoob/metal2/wall8.jpg
            RKTnoob/m2/18.jpg                           RKTnoob/metal2/wall9.jpg
            RKTnoob/m2/19.jpg                           RKTnoob/metal2/wall10.jpg
            RKTnoob/m2/1.jpg                            RKTnoob/metal2/floor1.jpg
            RKTnoob/m2/20.jpg                           RKTnoob/metal2/wall11.jpg
            RKTnoob/m2/21.jpg                           RKTnoob/metal2/wall12.jpg
            RKTnoob/m2/22.jpg                           RKTnoob/metal2/wall13.jpg
            RKTnoob/m2/23.jpg                           RKTnoob/metal2/wall14.jpg
            RKTnoob/m2/24.jpg                           RKTnoob/metal2/wall15.jpg
            RKTnoob/m2/25.jpg                           RKTnoob/metal2/wall16.jpg
            RKTnoob/m2/26.jpg                           RKTnoob/metal2/wall17.jpg
            RKTnoob/m2/27.jpg                           RKTnoob/metal2/wall18.jpg
            RKTnoob/m2/28.jpg                           RKTnoob/metal2/wall19.jpg
            RKTnoob/m2/29.jpg                           RKTnoob/metal2/wall20.jpg
            RKTnoob/m2/2.jpg                            RKTnoob/metal2/floor2.jpg
            RKTnoob/m2/3.jpg                            RKTnoob/metal2/floor3.jpg
            RKTnoob/m2/4.jpg                            RKTnoob/metal2/wall1.jpg
            RKTnoob/m2/5.jpg                            RKTnoob/metal2/wall2.jpg
            RKTnoob/m2/6.jpg                            RKTnoob/metal2/wall3.jpg
            RKTnoob/m2/7.jpg                            RKTnoob/metal2/wall4.jpg
            RKTnoob/m2/8.jpg                            RKTnoob/metal2/wall5.jpg
            RKTnoob/m2/9.jpg                            RKTnoob/metal2/wall6.jpg
            RKTnoob/m2/a1.jpg                           RKTnoob/metal2/sand1.jpg
            RKTnoob/m2/a2.jpg                           RKTnoob/metal2/rock1.jpg
            RKTnoob/m2/a3.jpg                           RKTnoob/metal2/rock2.jpg
            RKTnoob/m2/a4.jpg                           RKTnoob/metal2/floor10.jpg
            RKTnoob/m2/a5.jpg                           RKTnoob/metal2/sand2.jpg
            RKTnoob/m2/a6.jpg                           RKTnoob/metal2/floor11.jpg
            RKTnoob/m2/a7.jpg                           RKTnoob/metal2/floor12.jpg
            RKTnoob/m2/a8.jpg                           RKTnoob/metal2/floor13.jpg
            RKTnoob/m2/a9.jpg                           RKTnoob/metal2/floor14.jpg
            RKTnoob/m2/b1.jpg                           RKTnoob/metal2/floor15.jpg
            RKTnoob/m2/b2.jpg                           RKTnoob/metal2/floor16.jpg
            RKTnoob/m2/b3.jpg                           RKTnoob/metal2/floor17.jpg
            RKTnoob/m2/b4.jpg                           RKTnoob/metal2/floor18.jpg
            RKTnoob/m2/b5.jpg                           RKTnoob/metal2/floor19.jpg
            RKTnoob/m2/b6.jpg                           RKTnoob/metal2/rock3.jpg
            RKTnoob/m2/b7.jpg                           RKTnoob/metal2/tiles1.jpg
            RKTnoob/m2/b8.jpg                           RKTnoob/metal2/tiles2.jpg
            RKTnoob/m2/b9.jpg                           RKTnoob/metal2/tiles3.jpg
            RKTnoob/m2/c1.jpg                           RKTnoob/metal2/tiles4.jpg
            RKTnoob/m2/c2.jpg                           RKTnoob/metal2/wall21.jpg
            RKTnoob/m2/c3.jpg                           RKTnoob/metal2/wall22.jpg
            RKTnoob/m2/c4.jpg                           RKTnoob/metal2/rock4.jpg
            RKTnoob/m2/c5.jpg                           RKTnoob/metal2/rock5.jpg
            RKTnoob/m2/c6.jpg                           RKTnoob/metal2/rock6.jpg
            RKTnoob/m2/c7.jpg                           RKTnoob/metal2/rock7.jpg
            RKTnoob/m2/d1.jpg                           RKTnoob/metal2/floor20.jpg
            RKTnoob/m2/d2.jpg                           RKTnoob/metal2/floor21.jpg
            RKTnoob/m2/d3.jpg                           RKTnoob/metal2/sand3.jpg
            RKTnoob/m2/d4.jpg                           RKTnoob/metal2/rock8.jpg
            RKTnoob/m2/d5.jpg                           RKTnoob/metal2/sand4.jpg
            RKTnoob/m2/r08_dark.jpg                     RKTnoob/metal2/floor22.jpg
            RKTnoob/m2/r08_light.jpg                    RKTnoob/metal2/floor23.jpg
            RKTnoob/m2/x01_dark.jpg                     RKTnoob/metal2/floor24.jpg
            RKTnoob/m2/xx10.jpg                         RKTnoob/metal2/facade1.jpg
            RKTnoob/m2/xx11.jpg                         RKTnoob/metal2/brick10.jpg
            RKTnoob/m2/xx12.jpg                         RKTnoob/metal2/brick11.jpg
            RKTnoob/m2/xx13.jpg                         RKTnoob/metal2/brick12.jpg
            RKTnoob/m2/xx14.jpg                         RKTnoob/metal2/brick13.jpg
            RKTnoob/m2/xx15.jpg                         RKTnoob/metal2/tiles5.jpg
            RKTnoob/m2/xx16.jpg                         RKTnoob/metal2/rock9.jpg
            RKTnoob/m2/xx17.jpg                         RKTnoob/metal2/floor25.jpg
            RKTnoob/m2/xx18.jpg                         RKTnoob/metal2/facade2.jpg
            RKTnoob/m2/xx19.jpg                         RKTnoob/metal2/facade3.jpg
            RKTnoob/m2/xx1.jpg                          RKTnoob/metal2/brick1.jpg
            RKTnoob/m2/xx20.jpg                         RKTnoob/metal2/door1.jpg
            RKTnoob/m2/xx21.jpg                         RKTnoob/metal2/door2.jpg
            RKTnoob/m2/xx22.jpg                         RKTnoob/metal2/door3.jpg
            RKTnoob/m2/xx23.jpg                         RKTnoob/metal2/door4.jpg
            RKTnoob/m2/xx24.jpg                         RKTnoob/metal2/floor26.jpg
            RKTnoob/m2/xx25.jpg                         RKTnoob/metal2/floor27.jpg
            RKTnoob/m2/xx26.jpg                         RKTnoob/metal2/floor28.jpg
            RKTnoob/m2/xx27.jpg                         RKTnoob/metal2/wall23.jpg
            RKTnoob/m2/xx28.jpg                         RKTnoob/metal2/wall24.jpg
            RKTnoob/m2/xx29.jpg                         RKTnoob/metal2/wall25.jpg
            RKTnoob/m2/xx2.jpg                          RKTnoob/metal2/brick2.jpg
            RKTnoob/m2/xx30.jpg                         RKTnoob/metal2/wall26.jpg
            RKTnoob/m2/xx31.jpg                         RKTnoob/metal2/wall27.jpg
            RKTnoob/m2/xx32.jpg                         RKTnoob/metal2/wall28.jpg
            RKTnoob/m2/xx33.jpg                         RKTnoob/metal2/wall29.jpg
            RKTnoob/m2/xx34.jpg                         RKTnoob/metal2/wall30.jpg
            RKTnoob/m2/xx35.jpg                         RKTnoob/metal2/border1.jpg
            RKTnoob/m2/xx36.jpg                         RKTnoob/metal2/border2.jpg
            RKTnoob/m2/xx37.jpg                         RKTnoob/metal2/wood1.jpg
            RKTnoob/m2/xx38.jpg                         RKTnoob/metal2/wood2.jpg
            RKTnoob/m2/xx39.jpg                         RKTnoob/metal2/brick14.jpg
            RKTnoob/m2/xx3.jpg                          RKTnoob/metal2/brick3.jpg
            RKTnoob/m2/xx40.jpg                         RKTnoob/metal2/brick15.jpg
            RKTnoob/m2/xx41.jpg                         RKTnoob/metal2/brick16.jpg
            RKTnoob/m2/xx42.jpg                         RKTnoob/metal2/brick17.jpg
            RKTnoob/m2/xx43.jpg                         RKTnoob/metal2/brick18.jpg
            RKTnoob/m2/xx44.jpg                         RKTnoob/metal2/brick19.jpg
            RKTnoob/m2/xx45.jpg                         RKTnoob/metal2/brick20.jpg
            RKTnoob/m2/xx46.jpg                         RKTnoob/metal2/brick21.jpg
            RKTnoob/m2/xx47.jpg                         RKTnoob/metal2/brick22.jpg
            RKTnoob/m2/xx48.jpg                         RKTnoob/metal2/brick23.jpg
            RKTnoob/m2/xx4.jpg                          RKTnoob/metal2/brick4.jpg
            RKTnoob/m2/xx5.jpg                          RKTnoob/metal2/brick5.jpg
            RKTnoob/m2/xx6.jpg                          RKTnoob/metal2/brick6.jpg
            RKTnoob/m2/xx7.jpg                          RKTnoob/metal2/brick7.jpg
            RKTnoob/m2/xx8.jpg                          RKTnoob/metal2/brick8.jpg
            RKTnoob/m2/xx9.jpg                          RKTnoob/metal2/brick9.jpg
            RKTnoob/m/b01.jpg                           RKTnoob/metal/brick01.jpg
            RKTnoob/m/b02.jpg                           RKTnoob/metal/brick02.jpg
            RKTnoob/m/b03.jpg                           RKTnoob/metal/brick03.jpg
            RKTnoob/m/b04.jpg                           RKTnoob/metal/brick04.jpg
            RKTnoob/m/b05.jpg                           RKTnoob/metal/brick05.jpg
            RKTnoob/m/b06.jpg                           RKTnoob/metal/brick06.jpg
            RKTnoob/m/b07.jpg                           RKTnoob/metal/brick07.jpg
            RKTnoob/m/b08.jpg                           RKTnoob/metal/brick08.jpg
            RKTnoob/m/b09.jpg                           RKTnoob/metal/brick09.jpg
            RKTnoob/m/b10.jpg                           RKTnoob/metal/brick10.jpg
            RKTnoob/m/b11.jpg                           RKTnoob/metal/brick11.jpg
            RKTnoob/m/b12.jpg                           RKTnoob/metal/brick12.jpg
            RKTnoob/m/b13.jpg                           RKTnoob/metal/brick13.jpg
            RKTnoob/m/b14.jpg                           RKTnoob/metal/brick14.jpg
            RKTnoob/m/b15.jpg                           RKTnoob/metal/brick15.jpg
            RKTnoob/m/b16.jpg                           RKTnoob/metal/brick16.jpg
            RKTnoob/m/b17.jpg                           RKTnoob/metal/brick17.jpg
            RKTnoob/m/b18.jpg                           RKTnoob/metal/brick18.jpg
            RKTnoob/m/b19.jpg                           RKTnoob/metal/brick19.jpg
            RKTnoob/m/crate1.jpg                        RKTnoob/metal/crate1.jpg
            RKTnoob/m/crate2.jpg                        RKTnoob/metal/crate2.jpg
            RKTnoob/m/crate3.jpg                        RKTnoob/metal/crate3.jpg
            RKTnoob/m/crate4.jpg                        RKTnoob/metal/crate4.jpg
            RKTnoob/m/g01.jpg                           RKTnoob/metal/green01.jpg
            RKTnoob/m/g02.jpg                           RKTnoob/metal/green02.jpg
            RKTnoob/m/g03.jpg                           RKTnoob/metal/green03.jpg
            RKTnoob/m/g04.jpg                           RKTnoob/metal/green04.jpg
            RKTnoob/m/g05.jpg                           RKTnoob/metal/green05.jpg
            RKTnoob/m/r01.jpg                           RKTnoob/metal/red01.jpg
            RKTnoob/m/r02.jpg                           RKTnoob/metal/red02.jpg
            RKTnoob/m/r03.jpg                           RKTnoob/metal/red03.jpg
            RKTnoob/m/r04.jpg                           RKTnoob/metal/red04.jpg
            RKTnoob/m/r05.jpg                           RKTnoob/metal/red05.jpg
            RKTnoob/m/r06.jpg                           RKTnoob/metal/red06.jpg
            RKTnoob/m/r07.jpg                           RKTnoob/metal/red07.jpg
            RKTnoob/m/r08.jpg                           RKTnoob/metal/red08.jpg
            RKTnoob/m/r09.jpg                           RKTnoob/metal/red09.jpg
            RKTnoob/m/r10.jpg                           RKTnoob/metal/red10.jpg
            RKTnoob/m/r11.jpg                           RKTnoob/metal/red11.jpg
            RKTnoob/m/x01.jpg                           RKTnoob/metal/misc01.jpg
            RKTnoob/m/x02.jpg                           RKTnoob/metal/misc02.jpg
            RKTnoob/m/x03.jpg                           RKTnoob/metal/misc03.jpg
            RKTnoob/m/x04.jpg                           RKTnoob/metal/misc04.jpg
            RKTnoob/m/x05.jpg                           RKTnoob/metal/misc05.jpg
            RKTnoob/m/x06b.jpg                          RKTnoob/metal/misc06b.jpg
            RKTnoob/m/x06.jpg                           RKTnoob/metal/misc06.jpg
            RKTnoob/m/x07.jpg                           RKTnoob/metal/misc07.jpg
            RKTnoob/m/x08.jpg                           RKTnoob/metal/misc08.jpg
            RKTnoob/m/x09.jpg                           RKTnoob/metal/misc09.jpg
            RKTnoob/m/x10.jpg                           RKTnoob/metal/misc10.jpg
            RKTnoob/m/x11.jpg                           RKTnoob/metal/misc11.jpg
            RKTnoob/m/x12.jpg                           RKTnoob/metal/misc12.jpg
            RKTnoob/m/x13.jpg                           RKTnoob/metal/misc13.jpg
            RKTnoob/m/x14.jpg                           RKTnoob/metal/misc14.jpg
            RKTnoob/m/x15.jpg                           RKTnoob/metal/misc15.jpg
            RKTnoob/m/x16.jpg                           RKTnoob/metal/misc16.jpg
            RKTnoob/m/y01.jpg                           RKTnoob/metal/yellow01.jpg
            RKTnoob/m/y02.jpg                           RKTnoob/metal/yellow02.jpg
            RKTnoob/m/y03.jpg                           RKTnoob/metal/yellow03.jpg
            RKTnoob/m/y04.jpg                           RKTnoob/metal/yellow04.jpg
            RKTnoob/m/y05.jpg                           RKTnoob/metal/yellow05.jpg
            RKTnoob/m/y06.jpg                           RKTnoob/metal/yellow06.jpg
            RKTnoob/o/a1.jpg                            RKTnoob/open/wall1.jpg
            RKTnoob/o/a2.jpg                            RKTnoob/open/wall2.jpg
            RKTnoob/o/a3.jpg                            RKTnoob/open/floor1.jpg
            RKTnoob/o/a4.jpg                            RKTnoob/open/wall3.jpg
            RKTnoob/o/a5.jpg                            RKTnoob/open/wood1.jpg
            RKTnoob/o/a6.jpg                            RKTnoob/open/wall4.jpg
            RKTnoob/o/box_r.jpg                         RKTnoob/open/fakebox.jpg
            RKTnoob/pinyin/a17.jpg                      RKTnoob/pinyin/tiles1.jpg
            RKTnoob/pinyin/a18.jpg                      RKTnoob/pinyin/tiles2.jpg
            RKTnoob/pinyin/a19.jpg                      RKTnoob/pinyin/tiles3.jpg
            RKTnoob/pinyin/a20.jpg                      RKTnoob/pinyin/tiles4.jpg
            RKTnoob/pinyin/a21.jpg                      RKTnoob/pinyin/tiles5.jpg
            RKTnoob/pinyin/a22.jpg                      RKTnoob/pinyin/facade4.jpg
            RKTnoob/pinyin/a23.jpg                      RKTnoob/pinyin/wall1.jpg
            RKTnoob/pinyin/a26.jpg                      RKTnoob/pinyin/wall3.jpg
            RKTnoob/pinyin/a27.jpg                      RKTnoob/pinyin/border2.jpg
            RKTnoob/pinyin/a7.jpg                       RKTnoob/pinyin/facade1.jpg
            RKTnoob/pinyin/a8.jpg                       RKTnoob/pinyin/facade2.jpg
            RKTnoob/pinyin/a9.jpg                       RKTnoob/pinyin/facade3.jpg
            RKTnoob/s1.jpg                              RKTnoob/special1.jpg
            RKTnoob/s2.jpg                              RKTnoob/special2.jpg
            RKTnoob/s3.jpg                              RKTnoob/special3.jpg
            RKTnoob/s4.jpg                              RKTnoob/special4.jpg
            RKTnoob/s5.jpg                              RKTnoob/special5.jpg
            RKTnoob/s6.jpg                              RKTnoob/special6.jpg
            RKTnoob/s7.jpg                              RKTnoob/special7.jpg
            RKTnoob/sf2/c10.png                         RKTnoob/scifi2/rivet10.png
            RKTnoob/sf2/c11.png                         RKTnoob/scifi2/rivet11.png
            RKTnoob/sf2/c12.png                         RKTnoob/scifi2/rivet12.png
            RKTnoob/sf2/c1.png                          RKTnoob/scifi2/rivet1.png
            RKTnoob/sf2/c2.png                          RKTnoob/scifi2/rivet2.png
            RKTnoob/sf2/c3.png                          RKTnoob/scifi2/rivet3.png
            RKTnoob/sf2/c4.png                          RKTnoob/scifi2/rivet4.png
            RKTnoob/sf2/c5.png                          RKTnoob/scifi2/rivet5.png
            RKTnoob/sf2/c6.png                          RKTnoob/scifi2/rivet6.png
            RKTnoob/sf2/c7.png                          RKTnoob/scifi2/rivet7.png
            RKTnoob/sf2/c8.png                          RKTnoob/scifi2/rivet8.png
            RKTnoob/sf2/c9.png                          RKTnoob/scifi2/rivet9.png
            RKTnoob/sf2/ee.png                          RKTnoob/scifi2/easteregg.png
            RKTnoob/sf/b1.jpg                           RKTnoob/scifi/box1.jpg
            RKTnoob/sf/b2.jpg                           RKTnoob/scifi/box2.jpg
            RKTnoob/sf/b3.jpg                           RKTnoob/scifi/box3.jpg
            RKTnoob/sf/b4.jpg                           RKTnoob/scifi/box4.jpg
            RKTnoob/sf/d1.jpg                           RKTnoob/scifi/door1.jpg
            RKTnoob/sf/d2.jpg                           RKTnoob/scifi/door2.jpg
            RKTnoob/sf/d3.jpg                           RKTnoob/scifi/door3.jpg
            RKTnoob/sf/d4.jpg                           RKTnoob/scifi/door4.jpg
            RKTnoob/sf/d5.jpg                           RKTnoob/scifi/door5.jpg
            RKTnoob/sf/d6.jpg                           RKTnoob/scifi/door6.jpg
            RKTnoob/sf/f10.jpg                          RKTnoob/scifi/floor10.jpg
            RKTnoob/sf/f11.jpg                          RKTnoob/scifi/floor11.jpg
            RKTnoob/sf/f12.jpg                          RKTnoob/scifi/floor12.jpg
            RKTnoob/sf/f13.jpg                          RKTnoob/scifi/floor13.jpg
            RKTnoob/sf/f14.jpg                          RKTnoob/scifi/floor14.jpg
            RKTnoob/sf/f15.jpg                          RKTnoob/scifi/floor15.jpg
            RKTnoob/sf/f16.jpg                          RKTnoob/scifi/floor16.jpg
            RKTnoob/sf/f17.jpg                          RKTnoob/scifi/floor17.jpg
            RKTnoob/sf/f18.jpg                          RKTnoob/scifi/floor18.jpg
            RKTnoob/sf/f19.jpg                          RKTnoob/scifi/floor19.jpg
            RKTnoob/sf/f1.jpg                           RKTnoob/scifi/floor1.jpg
            RKTnoob/sf/f20.jpg                          RKTnoob/scifi/floor20.jpg
            RKTnoob/sf/f21.jpg                          RKTnoob/scifi/floor21.jpg
            RKTnoob/sf/f22.jpg                          RKTnoob/scifi/floor22.jpg
            RKTnoob/sf/f23.jpg                          RKTnoob/scifi/floor23.jpg
            RKTnoob/sf/f24.jpg                          RKTnoob/scifi/floor24.jpg
            RKTnoob/sf/f25.jpg                          RKTnoob/scifi/floor25.jpg
            RKTnoob/sf/f26.jpg                          RKTnoob/scifi/floor26.jpg
            RKTnoob/sf/f27.jpg                          RKTnoob/scifi/floor27.jpg
            RKTnoob/sf/f28.jpg                          RKTnoob/scifi/floor28.jpg
            RKTnoob/sf/f29.jpg                          RKTnoob/scifi/floor29.jpg
            RKTnoob/sf/f2.jpg                           RKTnoob/scifi/floor2.jpg
            RKTnoob/sf/f30.jpg                          RKTnoob/scifi/floor30.jpg
            RKTnoob/sf/f31.jpg                          RKTnoob/scifi/floor31.jpg
            RKTnoob/sf/f32.jpg                          RKTnoob/scifi/floor32.jpg
            RKTnoob/sf/f33.jpg                          RKTnoob/scifi/floor33.jpg
            RKTnoob/sf/f34.jpg                          RKTnoob/scifi/floor34.jpg
            RKTnoob/sf/f35.jpg                          RKTnoob/scifi/floor35.jpg
            RKTnoob/sf/f36.jpg                          RKTnoob/scifi/floor36.jpg
            RKTnoob/sf/f37.jpg                          RKTnoob/scifi/floor37.jpg
            RKTnoob/sf/f38.jpg                          RKTnoob/scifi/floor38.jpg
            RKTnoob/sf/f39.jpg                          RKTnoob/scifi/floor39.jpg
            RKTnoob/sf/f3.jpg                           RKTnoob/scifi/floor3.jpg
            RKTnoob/sf/f40.jpg                          RKTnoob/scifi/floor40.jpg
            RKTnoob/sf/f41.jpg                          RKTnoob/scifi/floor41.jpg
            RKTnoob/sf/f42.jpg                          RKTnoob/scifi/floor42.jpg
            RKTnoob/sf/f43.jpg                          RKTnoob/scifi/floor43.jpg
            RKTnoob/sf/f44.jpg                          RKTnoob/scifi/floor44.jpg
            RKTnoob/sf/f45.jpg                          RKTnoob/scifi/floor45.jpg
            RKTnoob/sf/f46.jpg                          RKTnoob/scifi/floor46.jpg
            RKTnoob/sf/f47.jpg                          RKTnoob/scifi/floor47.jpg
            RKTnoob/sf/f48.jpg                          RKTnoob/scifi/floor48.jpg
            RKTnoob/sf/f49.jpg                          RKTnoob/scifi/floor49.jpg
            RKTnoob/sf/f4.jpg                           RKTnoob/scifi/floor4.jpg
            RKTnoob/sf/f50.jpg                          RKTnoob/scifi/floor50.jpg
            RKTnoob/sf/f51.jpg                          RKTnoob/scifi/floor51.jpg
            RKTnoob/sf/f52.jpg                          RKTnoob/scifi/floor52.jpg
            RKTnoob/sf/f53.jpg                          RKTnoob/scifi/floor53.jpg
            RKTnoob/sf/f54.jpg                          RKTnoob/scifi/floor54.jpg
            RKTnoob/sf/f55.jpg                          RKTnoob/scifi/floor55.jpg
            RKTnoob/sf/f56.jpg                          RKTnoob/scifi/floor56.jpg
            RKTnoob/sf/f57.jpg                          RKTnoob/scifi/floor57.jpg
            RKTnoob/sf/f58.jpg                          RKTnoob/scifi/floor58.jpg
            RKTnoob/sf/f5.jpg                           RKTnoob/scifi/floor5.jpg
            RKTnoob/sf/f6.jpg                           RKTnoob/scifi/floor6.jpg
            RKTnoob/sf/f7.jpg                           RKTnoob/scifi/floor7.jpg
            RKTnoob/sf/f8.jpg                           RKTnoob/scifi/floor8.jpg
            RKTnoob/sf/f9.jpg                           RKTnoob/scifi/floor9.jpg
            RKTnoob/sf/l10.jpg                          RKTnoob/scifi/line10.jpg
            RKTnoob/sf/l11.jpg                          RKTnoob/scifi/line11.jpg
            RKTnoob/sf/l12.jpg                          RKTnoob/scifi/line12.jpg
            RKTnoob/sf/l13.jpg                          RKTnoob/scifi/line13.jpg
            RKTnoob/sf/l14.jpg                          RKTnoob/scifi/line14.jpg
            RKTnoob/sf/l15.jpg                          RKTnoob/scifi/line15.jpg
            RKTnoob/sf/l16.jpg                          RKTnoob/scifi/line16.jpg
            RKTnoob/sf/l17.jpg                          RKTnoob/scifi/line17.jpg
            RKTnoob/sf/l18.jpg                          RKTnoob/scifi/line18.jpg
            RKTnoob/sf/l19.jpg                          RKTnoob/scifi/line19.jpg
            RKTnoob/sf/l1.jpg                           RKTnoob/scifi/line1.jpg
            RKTnoob/sf/l20.jpg                          RKTnoob/scifi/line20.jpg
            RKTnoob/sf/l21.jpg                          RKTnoob/scifi/line21.jpg
            RKTnoob/sf/l22.jpg                          RKTnoob/scifi/line22.jpg
            RKTnoob/sf/l23.jpg                          RKTnoob/scifi/line23.jpg
            RKTnoob/sf/l24.jpg                          RKTnoob/scifi/line24.jpg
            RKTnoob/sf/l25.jpg                          RKTnoob/scifi/line25.jpg
            RKTnoob/sf/l26.jpg                          RKTnoob/scifi/line26.jpg
            RKTnoob/sf/l27.jpg                          RKTnoob/scifi/line27.jpg
            RKTnoob/sf/l28.jpg                          RKTnoob/scifi/line28.jpg
            RKTnoob/sf/l29.jpg                          RKTnoob/scifi/line29.jpg
            RKTnoob/sf/l2.jpg                           RKTnoob/scifi/line2.jpg
            RKTnoob/sf/l30.jpg                          RKTnoob/scifi/line30.jpg
            RKTnoob/sf/l31.jpg                          RKTnoob/scifi/line31.jpg
            RKTnoob/sf/l32.jpg                          RKTnoob/scifi/line32.jpg
            RKTnoob/sf/l33.jpg                          RKTnoob/scifi/line33.jpg
            RKTnoob/sf/l34.jpg                          RKTnoob/scifi/line34.jpg
            RKTnoob/sf/l35.jpg                          RKTnoob/scifi/line35.jpg
            RKTnoob/sf/l36.jpg                          RKTnoob/scifi/line36.jpg
            RKTnoob/sf/l37.jpg                          RKTnoob/scifi/line37.jpg
            RKTnoob/sf/l38.jpg                          RKTnoob/scifi/line38.jpg
            RKTnoob/sf/l39.jpg                          RKTnoob/scifi/line39.jpg
            RKTnoob/sf/l3.jpg                           RKTnoob/scifi/line3.jpg
            RKTnoob/sf/l40.jpg                          RKTnoob/scifi/line40.jpg
            RKTnoob/sf/l41.jpg                          RKTnoob/scifi/line41.jpg
            RKTnoob/sf/l42.jpg                          RKTnoob/scifi/line42.jpg
            RKTnoob/sf/l43.jpg                          RKTnoob/scifi/line43.jpg
            RKTnoob/sf/l44.jpg                          RKTnoob/scifi/line44.jpg
            RKTnoob/sf/l45.jpg                          RKTnoob/scifi/line45.jpg
            RKTnoob/sf/l46.jpg                          RKTnoob/scifi/line46.jpg
            RKTnoob/sf/l47.jpg                          RKTnoob/scifi/line47.jpg
            RKTnoob/sf/l48.jpg                          RKTnoob/scifi/line48.jpg
            RKTnoob/sf/l4.jpg                           RKTnoob/scifi/line4.jpg
            RKTnoob/sf/l5.jpg                           RKTnoob/scifi/line5.jpg
            RKTnoob/sf/l6.jpg                           RKTnoob/scifi/line6.jpg
            RKTnoob/sf/l7.jpg                           RKTnoob/scifi/line7.jpg
            RKTnoob/sf/l8.jpg                           RKTnoob/scifi/line8.jpg
            RKTnoob/sf/l9.jpg                           RKTnoob/scifi/line9.jpg
            RKTnoob/sf/m1.jpg                           RKTnoob/scifi/mesh1.jpg
            RKTnoob/sf/m2.jpg                           RKTnoob/scifi/mesh2.jpg
            RKTnoob/sf/m3.jpg                           RKTnoob/scifi/mesh3.jpg
            RKTnoob/sf/m4.jpg                           RKTnoob/scifi/mesh4.jpg
            RKTnoob/sf/m5.jpg                           RKTnoob/scifi/mesh5.jpg
            RKTnoob/sf/m6.jpg                           RKTnoob/scifi/mesh6.jpg
            RKTnoob/sf/r1.jpg                           RKTnoob/scifi/border1.jpg
            RKTnoob/sf/r2.jpg                           RKTnoob/scifi/border2.jpg
            RKTnoob/sf/s10.jpg                          RKTnoob/scifi/console10.jpg
            RKTnoob/sf/s11.jpg                          RKTnoob/scifi/console11.jpg
            RKTnoob/sf/s12.jpg                          RKTnoob/scifi/console12.jpg
            RKTnoob/sf/s13.jpg                          RKTnoob/scifi/console13.jpg
            RKTnoob/sf/s14.jpg                          RKTnoob/scifi/console14.jpg
            RKTnoob/sf/s15.jpg                          RKTnoob/scifi/console15.jpg
            RKTnoob/sf/s16.jpg                          RKTnoob/scifi/console16.jpg
            RKTnoob/sf/s1.jpg                           RKTnoob/scifi/console1.jpg
            RKTnoob/sf/s2.jpg                           RKTnoob/scifi/console2.jpg
            RKTnoob/sf/s3.jpg                           RKTnoob/scifi/console3.jpg
            RKTnoob/sf/s4.jpg                           RKTnoob/scifi/console4.jpg
            RKTnoob/sf/s5.jpg                           RKTnoob/scifi/console5.jpg
            RKTnoob/sf/s6.jpg                           RKTnoob/scifi/console6.jpg
            RKTnoob/sf/s7.jpg                           RKTnoob/scifi/console7.jpg
            RKTnoob/sf/s8.jpg                           RKTnoob/scifi/console8.jpg
            RKTnoob/sf/s9.jpg                           RKTnoob/scifi/console9.jpg
            RKTnoob/sf/w10.jpg                          RKTnoob/scifi/wall10.jpg
            RKTnoob/sf/w11.jpg                          RKTnoob/scifi/wall11.jpg
            RKTnoob/sf/w12.jpg                          RKTnoob/scifi/wall12.jpg
            RKTnoob/sf/w13.jpg                          RKTnoob/scifi/wall13.jpg
            RKTnoob/sf/w14.jpg                          RKTnoob/scifi/wall14.jpg
            RKTnoob/sf/w15.jpg                          RKTnoob/scifi/wall15.jpg
            RKTnoob/sf/w16.jpg                          RKTnoob/scifi/wall16.jpg
            RKTnoob/sf/w17.jpg                          RKTnoob/scifi/wall17.jpg
            RKTnoob/sf/w18.jpg                          RKTnoob/scifi/wall18.jpg
            RKTnoob/sf/w19.jpg                          RKTnoob/scifi/wall19.jpg
            RKTnoob/sf/w1.jpg                           RKTnoob/scifi/wall1.jpg
            RKTnoob/sf/w20.jpg                          RKTnoob/scifi/wall20.jpg
            RKTnoob/sf/w21.jpg                          RKTnoob/scifi/wall21.jpg
            RKTnoob/sf/w22.jpg                          RKTnoob/scifi/wall22.jpg
            RKTnoob/sf/w23.jpg                          RKTnoob/scifi/wall23.jpg
            RKTnoob/sf/w24.jpg                          RKTnoob/scifi/wall24.jpg
            RKTnoob/sf/w25.jpg                          RKTnoob/scifi/wall25.jpg
            RKTnoob/sf/w26.jpg                          RKTnoob/scifi/wall26.jpg
            RKTnoob/sf/w27.jpg                          RKTnoob/scifi/wall27.jpg
            RKTnoob/sf/w28.jpg                          RKTnoob/scifi/wall28.jpg
            RKTnoob/sf/w2.jpg                           RKTnoob/scifi/wall2.jpg
            RKTnoob/sf/w3.jpg                           RKTnoob/scifi/wall3.jpg
            RKTnoob/sf/w4.jpg                           RKTnoob/scifi/wall4.jpg
            RKTnoob/sf/w5.jpg                           RKTnoob/scifi/wall5.jpg
            RKTnoob/sf/w6.jpg                           RKTnoob/scifi/wall6.jpg
            RKTnoob/sf/w7.jpg                           RKTnoob/scifi/wall7.jpg
            RKTnoob/sf/w8.jpg                           RKTnoob/scifi/wall8.jpg
            RKTnoob/sf/w9.jpg                           RKTnoob/scifi/wall9.jpg
            RKTnoob/sf/x10.jpg                          RKTnoob/scifi/border9.jpg
            RKTnoob/sf/x11.jpg                          RKTnoob/scifi/border10.jpg
            RKTnoob/sf/x12.jpg                          RKTnoob/scifi/border11.jpg
            RKTnoob/sf/x13.jpg                          RKTnoob/scifi/border12.jpg
            RKTnoob/sf/x14.jpg                          RKTnoob/scifi/neon1.jpg
            RKTnoob/sf/x15.jpg                          RKTnoob/scifi/neon2.jpg
            RKTnoob/sf/x16.jpg                          RKTnoob/scifi/neon3.jpg
            RKTnoob/sf/x17.jpg                          RKTnoob/scifi/neon4.jpg
            RKTnoob/sf/x18.jpg                          RKTnoob/scifi/neon5.jpg
            RKTnoob/sf/x19.jpg                          RKTnoob/scifi/neon6.jpg
            RKTnoob/sf/x1.jpg                           RKTnoob/scifi/misc1.jpg
            RKTnoob/sf/x20.jpg                          RKTnoob/scifi/neon7.jpg
            RKTnoob/sf/x21.jpg                          RKTnoob/scifi/neon8.jpg
            RKTnoob/sf/x22.jpg                          RKTnoob/scifi/neon9.jpg
            RKTnoob/sf/x23.jpg                          RKTnoob/scifi/neon10.jpg
            RKTnoob/sf/x24.jpg                          RKTnoob/scifi/neon11.jpg
            RKTnoob/sf/x25.jpg                          RKTnoob/scifi/neon12.jpg
            RKTnoob/sf/x26.jpg                          RKTnoob/scifi/neon13.jpg
            RKTnoob/sf/x27.jpg                          RKTnoob/scifi/neon14.jpg
            RKTnoob/sf/x28.jpg                          RKTnoob/scifi/mesh8.jpg
            RKTnoob/sf/x29.jpg                          RKTnoob/scifi/mesh9.jpg
            RKTnoob/sf/x2.jpg                           RKTnoob/scifi/mesh7.jpg
            RKTnoob/sf/x30.jpg                          RKTnoob/scifi/mesh10.jpg
            RKTnoob/sf/x31.jpg                          RKTnoob/scifi/neon15.jpg
            RKTnoob/sf/x32.jpg                          RKTnoob/scifi/neon16.jpg
            RKTnoob/sf/x33.jpg                          RKTnoob/scifi/neon17.jpg
            RKTnoob/sf/x34.jpg                          RKTnoob/scifi/neon18.jpg
            RKTnoob/sf/x35.jpg                          RKTnoob/scifi/neon19.jpg
            RKTnoob/sf/x36.jpg                          RKTnoob/scifi/neon20.jpg
            RKTnoob/sf/x37.jpg                          RKTnoob/scifi/neon21.jpg
            RKTnoob/sf/x38.jpg                          RKTnoob/scifi/neon22.jpg
            RKTnoob/sf/x39.jpg                          RKTnoob/scifi/neon23.jpg
            RKTnoob/sf/x3.jpg                           RKTnoob/scifi/misc2.jpg
            RKTnoob/sf/x40.jpg                          RKTnoob/scifi/border13.jpg
            RKTnoob/sf/x41.jpg                          RKTnoob/scifi/border14.jpg
            RKTnoob/sf/x42.jpg                          RKTnoob/scifi/border15.jpg
            RKTnoob/sf/x43.jpg                          RKTnoob/scifi/border16.jpg
            RKTnoob/sf/x44.jpg                          RKTnoob/scifi/border17.jpg
            RKTnoob/sf/x45.jpg                          RKTnoob/scifi/border18.jpg
            RKTnoob/sf/x46.jpg                          RKTnoob/scifi/border19.jpg
            RKTnoob/sf/x47.jpg                          RKTnoob/scifi/border20.jpg
            RKTnoob/sf/x48.jpg                          RKTnoob/scifi/border21.jpg
            RKTnoob/sf/x49.jpg                          RKTnoob/scifi/border22.jpg
            RKTnoob/sf/x4.jpg                           RKTnoob/scifi/border3.jpg
            RKTnoob/sf/x5.jpg                           RKTnoob/scifi/border4.jpg
            RKTnoob/sf/x6.jpg                           RKTnoob/scifi/border5.jpg
            RKTnoob/sf/x7.jpg                           RKTnoob/scifi/border6.jpg
            RKTnoob/sf/x8.jpg                           RKTnoob/scifi/border7.jpg
            RKTnoob/sf/x9.jpg                           RKTnoob/scifi/border8.jpg
            RKTnoob/w1.jpg                              RKTnoob/wood1.jpg
            RKTnoob/w2.jpg                              RKTnoob/wood2.jpg
            RKTnoob/w3.jpg                              RKTnoob/wood3.jpg
            RKTnoob/w4.jpg                              RKTnoob/wood4.jpg
            RKTnoob/w5.jpg                              RKTnoob/wood5.jpg
            RKTnoob/w6.jpg                              RKTnoob/wood6.jpg
            RKTnoob/w7.jpg                              RKTnoob/wood7.jpg
            RKTnoob/x10.jpg                             RKTnoob/misc10.jpg
            RKTnoob/x11.jpg                             RKTnoob/misc11.jpg
            RKTnoob/x12.jpg                             RKTnoob/misc12.jpg
            RKTnoob/x13.jpg                             RKTnoob/misc13.jpg
            RKTnoob/x14.jpg                             RKTnoob/misc14.jpg
            RKTnoob/x15.jpg                             RKTnoob/misc15.jpg
            RKTnoob/x16.jpg                             RKTnoob/misc16.jpg
            RKTnoob/x17.jpg                             RKTnoob/misc17.jpg
            RKTnoob/x18.jpg                             RKTnoob/misc18.jpg
            RKTnoob/x19.jpg                             RKTnoob/misc19.jpg
            RKTnoob/x1.jpg                              RKTnoob/misc1.jpg
            RKTnoob/x20.jpg                             RKTnoob/misc20.jpg
            RKTnoob/x21.jpg                             RKTnoob/misc21.jpg
            RKTnoob/x22.jpg                             RKTnoob/misc22.jpg
            RKTnoob/x23.jpg                             RKTnoob/misc23.jpg
            RKTnoob/x24.jpg                             RKTnoob/misc24.jpg
            RKTnoob/x25.jpg                             RKTnoob/misc25.jpg
            RKTnoob/x26.jpg                             RKTnoob/misc26.jpg
            RKTnoob/x27.jpg                             RKTnoob/misc27.jpg
            RKTnoob/x28.jpg                             RKTnoob/misc28.jpg
            RKTnoob/x29.jpg                             RKTnoob/misc29.jpg
            RKTnoob/x2.jpg                              RKTnoob/misc2.jpg
            RKTnoob/x30.jpg                             RKTnoob/misc30.jpg
            RKTnoob/x31.jpg                             RKTnoob/misc31.jpg
            RKTnoob/x32.jpg                             RKTnoob/misc32.jpg
            RKTnoob/x33.jpg                             RKTnoob/misc33.jpg
            RKTnoob/x3.jpg                              RKTnoob/misc3.jpg
            RKTnoob/x4.jpg                              RKTnoob/misc4.jpg
            RKTnoob/x5.jpg                              RKTnoob/misc5.jpg
            RKTnoob/x6.jpg                              RKTnoob/misc6.jpg
            RKTnoob/x7.jpg                              RKTnoob/misc7.jpg
            RKTnoob/x8.jpg                              RKTnoob/misc8.jpg
            RKTnoob/x9.jpg                              RKTnoob/misc9.jpg
            cleaner/egyptsoc/032-03c.jpg                cube/egyptsoc/032-03c.jpg
            cleaner/egyptsoc/032-04a.jpg                cube/egyptsoc/032-04a.jpg
            cleaner/egyptsoc/032-05d.jpg                cube/egyptsoc/032-05d.jpg
            cleaner/egyptsoc/048-02h.jpg                cube/egyptsoc/048-02h.jpg
            cleaner/egyptsoc/064-02b.jpg                cube/egyptsoc/064-02b.jpg
            cleaner/egyptsoc/064-03a.jpg                cube/egyptsoc/064-03a.jpg
            cleaner/egyptsoc/128-02a.jpg                cube/egyptsoc/128-02a.jpg
            cleaner/egyptsoc/128-04a.jpg                cube/egyptsoc/128-04a.jpg
            cleaner/egyptsoc/256-01a.jpg                cube/egyptsoc/256-01a.jpg
            cleaner/egyptsoc/256-03b.jpg                cube/egyptsoc/256-03b.jpg
            cleaner/egyptsoc/block01a.jpg               cube/egyptsoc/block01a.jpg
            cleaner/egyptsoc/block07b.jpg               cube/egyptsoc/block07b.jpg
            cleaner/egyptsoc/block10c.jpg               cube/egyptsoc/block10c.jpg
            cleaner/egyptsoc/lig_032-03b1.jpg           cube/egyptsoc/lig_032-03b1.jpg
            cleaner/egyptsoc/lig_032-03r1.jpg           cube/egyptsoc/lig_032-03r1.jpg
            cleaner/egyptsoc/lig_032-04b1.jpg           cube/egyptsoc/lig_032-04b1.jpg
            cleaner/egyptsoc/lig_032-04r1.jpg           cube/egyptsoc/lig_032-04r1.jpg
            cleaner/egyptsoc/lig_064-01b1.jpg           cube/egyptsoc/lig_064-01b1.jpg
            cleaner/egyptsoc/lig_128-05b1.jpg           cube/egyptsoc/lig_128-05b1.jpg
            cleaner/egyptsoc/s064-01e.jpg               cube/egyptsoc/s064-01e.jpg
            cleaner/egyptsoc/s064-03a.jpg               cube/egyptsoc/s064-03a.jpg
            cleaner/egyptsoc/s064-05c.jpg               cube/egyptsoc/s064-05c.jpg
            cleaner/egyptsoc/s064-05f.jpg               cube/egyptsoc/s064-05f.jpg
            cleaner/egyptsoc/solidgrate1b.jpg           cube/egyptsoc/solidgrate1b.jpg
            cleaner/egyptsoc/stone01a.jpg               cube/egyptsoc/stone01a.jpg
            cleaner/egyptsoc/stone01b.jpg               cube/egyptsoc/stone01b.jpg
            cleaner/egyptsoc/stone01d.jpg               cube/egyptsoc/stone01d.jpg
            cleaner/egyptsoc/stone02b.jpg               cube/egyptsoc/stone02b.jpg
            cleaner/egyptsoc/stone03b.jpg               cube/egyptsoc/stone03b.jpg
            cleaner/egyptsoc/stone04b.jpg               cube/egyptsoc/stone04b.jpg
            cleaner/egyptsoc/stone04d.jpg               cube/egyptsoc/stone04d.jpg
            cleaner/egyptsoc/stone10b.jpg               cube/egyptsoc/stone10b.jpg
            cleaner/egyptsoc/stone10d.jpg               cube/egyptsoc/stone10d.jpg
            cleaner/egyptsoc/v064-01b.jpg               cube/egyptsoc/v064-01b.jpg
            cleaner/egyptsoc/v096-01b.jpg               cube/egyptsoc/v096-01b.jpg
            cleaner/egyptsoc/v128-03a.jpg               cube/egyptsoc/v128-03a.jpg
            cleaner/egyptsoc/woodmgrid1a.jpg            cube/egyptsoc/woodmgrid1a.jpg
            cleaner/ikbase/ik_cwall06a.jpg              cube/ikbase/ik_cwall06a.jpg
            cleaner/jf1/jf32.jpg                        cube/jf1/jf32.jpg
            cleaner/jf1/jfflr.jpg                       cube/jf1/jfflr.jpg
            cleaner/jf1/jfgrid.jpg                      cube/jf1/jfgrid.jpg
            exoduss/256-01a.jpg                         cube/egyptsoc/256-01a.jpg
            exoduss/lol5.jpg                            cube/ik2k/ik_brick_6464a.jpg
            exoduss/lol6.jpg                            cube/ik2k/ik_brick_6464c.jpg
            exoduss/text16.jpg                          cube/dg/floor_pavement_stone4_4moss.jpg
            exoduss/text25.jpg                          cube/dg/floor_pavement_stone4_2.jpg
            exoduss/text26.jpg                          cube/dg/floor_pavement_stone4_3.jpg
            exoduss/text34.jpg                          cube/dg/mur059.jpg
            exoduss/text39.jpg                          cube/egyptsoc/128-02a.jpg
            exoduss/text40.jpg                          cube/ik2k/ik_floor_brick128a.jpg
            exoduss/text41.jpg                          cube/ik2k/ik_floor_brick128b.jpg
            exoduss/text42.jpg                          cube/payne/SlimyTile02_128x128.jpg
            exoduss/text43.jpg                          cube/ik2k/ik_floor_tile128b.jpg
            exoduss/text44.jpg                          cube/schwenz/dt_tile_check.01.jpg
            exoduss/text5.jpg                           cube/dg/mur079.jpg
            cleaner/dg/mot067.jpg                       cube/dg/mot067.jpg
            cleaner/dg/mot190.jpg                       cube/dg/mot190.jpg
            cleaner/dg/mur013.jpg                       cube/dg/mur013.jpg
            cleaner/dg/muv204.jpg                       cube/dg/muv204.jpg
            cleaner/dust/256_iv_floor01.jpg             cube/rorschach/256_iv_floor01.jpg
            cleaner/g-pack/g-floor01.jpg                cube/g-pack/g-floor01.jpg
            cleaner/lunaran/hexflr1_d.jpg               cube/lunaran/hexflr1_d.jpg
            exoduss/lol4.jpg                            cube/egyptsoc/032-01a.jpg
            exoduss/lol1.jpg                            cube/dg/sue011.jpg
            exoduss/lol2.jpg                            cube/dg/floor_pavement_stone5_2.jpg
            exoduss/lol3.jpg                            cube/egyptsoc/032-04a.jpg
            ice/brick.jpg                               cube/aftas/par10_a.jpg
            ice/brick2.jpg                              cube/aftas/par10_c.jpg
            ice/ceiling.jpg                             cube/evil_textures/e7bricks01.jpg
            ice/door.jpg                                cube/mitaman/mm-metalpanel-b.jpg
            ice/tile.jpg                                cube/payne/SlimyTile02_128x128.jpg
            ice/wall.jpg                                cube/evil_textures/e7walldesign01b.jpg
            ac_archives/bookshelves_1.jpg               zero/ac_archives/bookshelves_1.jpg
            ac_archives/bookshelves_1_2.jpg             zero/ac_archives/bookshelves_1_2.jpg
            ac_archives/bookshelves_2.jpg               zero/ac_archives/bookshelves_2.jpg
            ac_archives/bookshelves_3.jpg               zero/ac_archives/bookshelves_3.jpg
            ac_archives/bookshelves_4.jpg               zero/ac_archives/bookshelves_4.jpg
            ac_archives/bookshelves_4_2.jpg             zero/ac_archives/bookshelves_4_2.jpg
            ac_archives/bookshelves_5.jpg               zero/ac_archives/bookshelves_5.jpg
            ac_archives/carpet2.jpg                     zero/ac_library/carpet.jpg
            ac_archives/floor_1.jpg                     zero/ac_archives/floor_1.jpg
            ac_archives/floor_2.jpg                     zero/ac_archives/floor_2.jpg
            ac_archives/flowerbed.jpg                   zero/ac_archives/flowerbed.jpg
            ac_archives/stone1.jpg                      zero/ac_archives/stone1.jpg
            ac_library/bookcase1.jpg                    zero/ac_library/bookcase1.jpg
            ac_library/bookcase2.jpg                    zero/ac_library/bookcase2.jpg
            ac_library/bookcase3.jpg                    zero/ac_library/bookcase3.jpg
            ac_library/bookcase4.jpg                    zero/ac_library/bookcase4.jpg
            ac_library/carpet1.jpg                      zero/ac_library/carpet.jpg
            ac_library/stairs1.jpg                      zero/ac_library/stairs1.jpg
            ac_library/stone1.jpg                       zero/ac_library/stone1.jpg
            ac_library/wood1.jpg                        zero/ac_library/wood1.jpg
            ac_library/wood2.jpg                        zero/ac_library/wood_h.jpg
            ac_library/wood3.jpg                        zero/ac_library/wood_v.jpg
            ac_roots/bricksmall0007_blue.jpg            zero/ac_roots/bricksmall0007_blue.jpg
            ac_roots/doorsgarage0195_b.jpg              zero/ac_roots/doorsgarage0195_b.jpg
            ac_roots/doorsgarage0195_blue.jpg           zero/ac_roots/doorsgarage0195_blue.jpg
            ac_roots/metal026b.jpg                      zero/ac_roots/metal026b.jpg
            ac_roots/rooftiles.jpg                      zero/ac_roots/rooftiles.jpg
            ac_roots/rooftiles_trim.jpg                 zero/ac_roots/rooftiles_trim.jpg
            ac_roots/stonewall_4ivy.jpg                 zero/ac_roots/stonewall_4ivy.jpg
            ac_roots/stonewall_4ivy2.jpg                zero/ac_roots/stonewall_4ivy2.jpg
            ac_roots/stonewall_4ivy3.jpg                zero/ac_roots/stonewall_4ivy3.jpg
            ac_roots1.3/stonewall_4ivyred.jpg           zero/ac_roots1.3/stonewall_4ivyred.jpg
            ac_roots1.3/stonewall_4ivyred2.jpg          zero/ac_roots1.3/stonewall_4ivyred2.jpg
            ac_roots1.3/stonewall_4ivyred3.jpg          zero/ac_roots1.3/stonewall_4ivyred3.jpg
            ac_roots1.3/stonewall_4ivyred4.jpg          zero/ac_roots1.3/stonewall_4ivyred4.jpg
            ac_roots1.3/stonewall_4ivyred5.jpg          zero/ac_roots1.3/stonewall_4ivyred5.jpg
            ac_roots1.3/stonewall_4ivyred6.jpg          zero/ac_roots1.3/stonewall_4ivyred6.jpg
            ac_tanglewood/carpet1.jpg                   zero/ac_tanglewood/carpet1.jpg
            ac_tanglewood/carpet3.jpg                   zero/ac_tanglewood/carpet3.jpg
            ac_tanglewood/carpet3_step.jpg              zero/ac_tanglewood/carpet3_step.jpg
            ac_tanglewood/carpet4.jpg                   zero/ac_tanglewood/carpet4.jpg
            ac_tanglewood/carpet4_step.jpg              zero/ac_tanglewood/carpet4_step.jpg
            ac_tanglewood/muv158_ivy.jpg                zero/ac_tanglewood/muv158_ivy.jpg
            ac_tanglewood/muv158_ivy2.jpg               zero/ac_tanglewood/muv158_ivy2.jpg
            ac_tanglewood/muv158_ivy3.jpg               zero/ac_tanglewood/muv158_ivy3.jpg
            ac_tanglewood/winerack.jpg                  zero/ac_tanglewood/winerack.jpg
            ac_tanglewood/winerack_2.jpg                zero/ac_tanglewood/winerack_2.jpg
        ] [ns nr] [
            looplist (textureslotbyname $ns) i [
                edittextureslot $i "" $nr
                += cnt 1
            ]
        ]
        if $cnt [echo replaced $cnt texture slot paths]
        result (pop cnt)
    ]

    const cmfixmapsoundpaths [
        push cnt 0
        looplist [
            sounds/ambience/troglodytes.ogg		troglodytes.ogg
        ] [ns nr] [
            looplist (mapsoundslotbyname $ns) i [
                editmapsoundslot $i $nr
                += cnt 1
            ]
        ]
        if $cnt [echo replaced $cnt mapsound slot paths]
        result (pop cnt)
    ]

    const cmfixskymappaths [
        push cnt 0
        looplist [
            sharp05/sharp05                     sharp/sharp05
            egypt1/egypt                        egypt/egypt
            "aftas sky/orbe"        		    aftassky/orbe
            "Mighty Pete/bloody-marvelous512"	MightyPete/bloody-marvelous512
        ] [ns nr] [
            if (strcmp $loadsky $ns) [
                loadsky $nr
                += cnt 1
            ]
        ]
        if $cnt [echo fixed skymap path]
        result (pop cnt)
    ]

]
