convmap.cfg 101 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588
  1. // opt/convmap.cfg
  2. // assisted AC map conversion
  3. // - keeps a list of "maps to process" stored as aliases in saved.cfg
  4. // - each run of the script adds the maps listed in "convmaplist", if they are not already on the list
  5. // - script can be run multiple times
  6. // - amends the main menu (temporarily) with an entry to the batch conversion menu
  7. // - to add many maps, add something like convmaplist = [ac_2fort ac_abandoned ac_abyss ac_accomply ac_adventure3 ac_africa] to your autoexec
  8. // - this toolset converts maps to map format 10 and helps to fix a lot of errors on maps
  9. // - converts media paths that were valid with the old akimbo to the corresponding paths for akimbo2
  10. // - also converts old unconverted map config files from versions before AC 1.2
  11. // - 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
  12. // - 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)
  13. // - can build a secondary list of licenses and mapmessages (also in saved.cfg) to allow bulk-editing of map licenses and messages outside AC
  14. if (! (checkalias cmcur)) [ tempalias convmaplist "" ]
  15. // pick up map names from the commandline ("run opt/convmap ac_2fort ac_abandoned ac_abyss ac_accomply")
  16. if $execnumargs [
  17. convmaplist = ""
  18. loop i $execnumargs [
  19. convmaplist = (concat $convmaplist (getalias (concatword execarg (+ 1 $i))))
  20. ]
  21. ]
  22. looplisti [ CMASTAGE CMAFIRSTERROR CMALASTERROR CMACOMMENT CMANUM ] n [ tempalias $n $i ]
  23. tempalias cmstagenames [ NOP MAPCONFIG TRANSCLIP CLEANSLOTS FIXUNASSIGNEDS FIXBADENTS MANUALERRORS MANUALEDITING FIXPICKUPFHF FINDSTRAYENTS CHECKVANTAGEPOINTS ]
  24. if (checkalias uncliptagclippedmodels) [ cmstagenames = (concat $cmstagenames REDUCECLIPS) ]
  25. tempalias NUMSTAGES (listlen $cmstagenames)
  26. looplisti $cmstagenames n [ tempalias $n $i ]
  27. // make sure, all maps from convmaplist are "on the list"
  28. looplist $convmaplist m [
  29. push mx (concatword __convmap__ $m)
  30. if (! (checkalias $mx)) [
  31. push res (loadmap $m)
  32. if (>= $res 0) [
  33. // add map to list
  34. $mx = (concat 0 (concatword "0x" (h0 8 $res)))
  35. echo convmap: added map $$mx
  36. ]
  37. pop res
  38. ]
  39. pop mx
  40. ]
  41. if (! $soundvol) [ soundvol 1 ] // with soundvol 0, mapsound commands don't work properly
  42. if (! (checkalias cmcur)) [ // execute this only once
  43. const cmset [ // cmset ident index value
  44. push nv ""
  45. loop i (+ 1 (- $arg2 (listlen $$arg1))) [ $arg1 = (concatword $$arg1 " \"\"") ]
  46. looplisti $$arg1 v [
  47. if $i [ nv = (concatword $nv " ") ]
  48. if (= $i $arg2) [ nv = (concatword $nv (escape $arg3)) ] [ nv = (concatword $nv (escape $v)) ]
  49. ]
  50. $arg1 = (pop nv)
  51. ]
  52. const cmget [ // cmget ident index
  53. result (at $$arg1 $arg2)
  54. ]
  55. const cmprinterror [
  56. if (&b $arg1 0x0000001) [ echo (concatword $arg2 "entity attribute overflow") ]
  57. if (&b $arg1 0x0000010) [ echo (concatword $arg2 "map decoder error") ]
  58. if (&b $arg1 0x0000100) [ echo (concatword $arg2 "world error -1") ]
  59. if (&b $arg1 0x0000200) [ echo (concatword $arg2 "world error -2") ]
  60. if (&b $arg1 0x0001000) [ echo (concatword $arg2 "missing skymap texture files") ]
  61. if (&b $arg1 0x0002000) [ echo (concatword $arg2 "missing world texture files") ]
  62. if (&b $arg1 0x0004000) [ echo (concatword $arg2 "missing mapmodel files") ]
  63. if (&b $arg1 0x0008000) [ echo (concatword $arg2 "missing mapsound files") ]
  64. if (&b $arg1 0x0010000) [ echo (concatword $arg2 "bad mapsound command in map config") ]
  65. if (&b $arg1 0x0020000) [ echo (concatword $arg2 "bad mapmodel command in map config") ]
  66. if (&b $arg1 0x0040000) [ echo (concatword $arg2 "bad texture command in map config") ]
  67. if (&b $arg1 0x0080000) [ echo (concatword $arg2 "bad loadnotexture command in map config") ]
  68. if (&b $arg1 0x0100000) [ echo (concatword $arg2 "error during loading of mapmodels (see earlier console output)") ]
  69. if (&b $arg1 0x0200000) [ echo (concatword $arg2 "using unassigned texture slot") ]
  70. if (&b $arg1 0x1000000) [ echo (concatword $arg2 "out of range integer value in map config") ]
  71. if (&b $arg1 0x2000000) [ echo (concatword $arg2 "out of range float value in map config") ]
  72. if (&b $arg1 0x4000000) [ echo (concatword $arg2 "generic cubescript error in map config") ]
  73. ]
  74. const cmerr_abort 0x0000111 // abort immediately
  75. const cmerr_editsave 0x0000200 // fixed by map save in edit mode
  76. const cmerr_fixlater 0x010f000 // fix manually anytime
  77. const cmerr_config 0x70f0000 // config file error (requires manually fixed config file, abort in stage MAPCONFIG)
  78. // state of converter
  79. tempalias cmcur ""
  80. tempalias cmediting ""
  81. tempalias cmeditstage 0
  82. tempalias cmdoneediting ""
  83. alias cmstage 1
  84. alias cmdomanual 0 // 1: pause for manual fixing of correctable errors
  85. alias cmconverredit 1 // 1: pause for manual edit on conversion error
  86. newmenu main
  87. menuitem "" -1
  88. menuitem "Map conversion \i\1" [showmenu "Convert maps"]
  89. newmenu "Convert maps"
  90. menuinit [
  91. resetcurmenu
  92. if (! $connected) [
  93. menuheader "" "\f2Please backup all your maps before using convmap. Thx."
  94. cmafterfinishediting = ""
  95. //if (&& (strlen $cmediting) (! $unsavededits)) [ cmdoneediting ]
  96. if (strlen $cmediting) [
  97. menuitem (concatword "Currently editing \fs\f1" $cmediting "\fr in stage " $cmeditstage " (" (at $cmstagenames $cmeditstage) ")") -1
  98. menuitem "" -1
  99. menuitem "Save changes ->" [ cmafterfinishediting = "showmenu [Convert maps]" ; showmenu "Convmap save" ]
  100. ] [
  101. menuitem "\f0[ Start/Continue map conversion ]" cmwork
  102. ]
  103. menuitem "" -1
  104. if (strlen $cmcur) [
  105. menuitem (concatword "Batch processing currently limited to map \fs\f1" $cmcur "\fr only") -1
  106. menuitem "[Remove limitation and continue editing the whole batch]" [ cmcur = "" ; refreshcurmenudelayed ]
  107. menuitem "" -1
  108. ]
  109. menuitemslider "Conversion stage:\t" 0 -1 $cmstage $cmstagenames [ cmstage = $arg1 ]
  110. menuitemradio "On map load errors:\t\t" 0 1 $cmdomanual [ "abort map" "edit manually" ][ cmdomanual = $arg1 ]
  111. menuitemradio "On conversion errors:\t\t" 0 1 $cmconverredit [ "abort map" "edit manually" ][ cmconverredit = $arg1 ]
  112. menuitem "" -1
  113. menuitem "Show list of maps \i\1" [showmenu "List maps to convert"]
  114. menuitem "Add map to list \i\1" [showmenu "Add map to convmap list"]
  115. menuitem "Tools menu \i\1" [showmenu "Convert maps tools"]
  116. ][
  117. menuheader "" ""
  118. menuitem "\f3convmap can only be used offline" -1
  119. ]
  120. ]
  121. newmenu [Add map to convmap list]
  122. menudirlist "packages/maps" cgz [run opt/convmap $arg1 ; closecurmenu]
  123. const __cmconfirm [
  124. echo "\fs\f0Done:\fr\t" $arg1
  125. refreshcurmenudelayed
  126. ]
  127. const cmsetnonabortstage [
  128. looplist (enumalias __convmap__) [mx m] [
  129. if (>= (cmget $mx $CMASTAGE) 0) [
  130. cmset $mx $CMASTAGE $arg1
  131. ]
  132. ]
  133. cmstage = (+ $arg1 1)
  134. ]
  135. newmenu "Convert maps tools"
  136. menuinit [
  137. resetcurmenu
  138. menuheader "" "\f2Please backup all your maps before using convmap. Thx."
  139. menuitem "Show list of maps \i\1" [showmenu "List maps to convert"]
  140. 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 ]
  141. menuitem "Retry all maps (change all stages to zero)" [ looplist (enumalias __convmap__) [mx m] [ cmset $mx $CMASTAGE 0 ] ; __cmconfirm ]
  142. looplisti $cmstagenames n [
  143. if (> $i 2) [
  144. menuitem (concat "Set all non-aborted maps to continue with stage" $n) (concat "cmsetnonabortstage" (- $i 1) "; __cmconfirm")
  145. ]
  146. ]
  147. menuitem "\f3Delete list of maps" [ looplist (enumalias __convmap__) [mx m] [ delalias $mx ] ; __cmconfirm ]
  148. menuitem "Delete aborted maps from list" [ looplist (enumalias __convmap__) [mx m] [ if (< (cmget $mx $CMASTAGE) 0) [ delalias $mx ] ] ; __cmconfirm ]
  149. menuitem "Delete non-aborted maps from list" [ looplist (enumalias __convmap__) [mx m] [ if (> (cmget $mx $CMASTAGE) 0) [ delalias $mx ] ] ; __cmconfirm ]
  150. menuitem "" -1
  151. menuitem "Show list of licenses and mapmessages \i\1" [showmenu "List licenses and mapmessages"]
  152. menuitem "Generate list of licenses and mapmessages (does not delete existing list)" [cmgenlicenses ; __cmconfirm ]
  153. menuitem "Apply list of licenses and mapmessages" [cmapplylicenses ; __cmconfirm ]
  154. menuitem "\f3Delete list of licenses and mapmessages" [ looplist (enumalias __convmaplicenses__) [mx m] [ delalias $mx ] ; __cmconfirm ]
  155. menuitem "Delete unchanged licenses and mapmessages from list" [cmchangedlicensesonly ; __cmconfirm]
  156. menuitem "" -1
  157. 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 ]
  158. 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 ]
  159. 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 ]
  160. menuitem "Check used media sources of all maps (write list to comment)" [ cm_mediasourcetocomment ; __cmconfirm ]
  161. ]
  162. newmenu "List licenses and mapmessages"
  163. menuinit [
  164. resetcurmenu
  165. menusynctabstops 1
  166. looplist (enumalias __convmaplicenses__) [mx m] [
  167. menuitem (concatword $$mx "\t" $m) (concat cmpickmap $m)
  168. ]
  169. ]
  170. const cmgenlicenses [
  171. looplist (enumalias __convmap__) [mx m] [
  172. push mlx (concatword __convmaplicenses__ $m)
  173. if (! (checkalias $mlx)) [
  174. loadmap $m
  175. $mlx = (concat (escape $mapinfo_license) (escape $mapinfo_comment) (escape $mapmsg))
  176. echo (concatword $m ".cfg: alias " $mlx " " (escape $$mlx))
  177. ]
  178. pop mlx
  179. ]
  180. ]
  181. const cmapplylicenses [
  182. looplist (enumalias __convmaplicenses__) [mlx m] [
  183. loadmap $m
  184. push changed 0
  185. looplisti $$mlx [ license comment mapmessage ] [
  186. if (! i) [
  187. if (&& (strlen $license) (! (strcmp $license $mapinfo_license))) [ mapinfo_license $license ; changed = 1 ]
  188. if (&& (strlen $license) (! (strcmp $comment $mapinfo_comment))) [ mapinfo_comment $comment ; changed = 1 ]
  189. if (&& (strlen $mapmessage) (! (strcmp $mapmessage $mapmsg))) [ mapmsg $mapmessage ; changed = 1 ]
  190. ]
  191. ]
  192. if (pop changed) savemap
  193. ]
  194. ]
  195. const cmchangedlicensesonly [
  196. looplist (enumalias __convmaplicenses__) [mlx m] [
  197. loadmap $m
  198. if (&& (strcmp (cmget $mlx 2) $mapmsg) (strcmp (cmget $mlx 0) $mapinfo_license)) [
  199. if (|| (! (strlen $mapinfo_license)) (strcmp (cmget $mlx 0) $mapinfo_comment)) [
  200. delalias $mlx
  201. ]
  202. ]
  203. ]
  204. ]
  205. const cm_mediasourcetocomment [
  206. looplist (enumalias __convmaporigin__) [mx m] [ delalias $mx ]
  207. looplist (enumalias __convmap__) [mx m] [
  208. loadmap $m
  209. push path ""
  210. push origin ""
  211. loop i 256 [
  212. path = (mapmodelslotname $i)
  213. if (strlen $path) [
  214. origin = (getmapmodelattributes $path distribution)
  215. if (! (strlen $origin)) [ origin = "custom_unsorted" ]
  216. [__convmaporigin__@(escapenoquotes $origin)] = $origin
  217. ]
  218. ]
  219. looplisti (textureslotusagelist) [cnt used] [
  220. path = (at (edittextureslot $i) 1)
  221. if (strlen $path) [
  222. origin = (gettextureorigin $path)
  223. [__convmaporigin__@(escapenoquotes $origin)] = $origin
  224. ]
  225. ]
  226. loop i 256 [
  227. path = (at (editmapsoundslot $i) 0)
  228. if (strlen $path) [
  229. origin = (getmapsoundorigin $path)
  230. [__convmaporigin__@(escapenoquotes $origin)] = $origin
  231. ]
  232. ]
  233. origin = "\f1media sources: official\f2"
  234. delalias __convmaporigin__official
  235. looplist (enumalias __convmaporigin__) [mx m] [ origin = (concat $origin $$mx) ; delalias $mx ]
  236. cmset $mx $CMACOMMENT (pop origin path)
  237. ]
  238. ]
  239. const cmpickmap [ tempalias cmpick $arg1 ; showmenu "Map conversion state" ]
  240. newmenu "Map conversion state"
  241. menuinit [
  242. resetcurmenu
  243. push mx (concatword __convmap__ $cmpick)
  244. menuheader "" (concatword "conversion state for map \f1" $cmpick)
  245. if (< (cmget $mx $CMASTAGE) 0) [
  246. menuitemtextinput "Conversion aborted at stage\t" (concat cmget $mx $CMASTAGE) (concat cmset $mx $CMASTAGE "$arg1")
  247. ][
  248. menuitemtextinput "Converted up to stage\t\t" (concat cmget $mx $CMASTAGE) (concat cmset $mx $CMASTAGE "$arg1")
  249. ]
  250. menuitem (concat "Errors during first map load:\t\t" (cmget $mx $CMAFIRSTERROR)) (concat cmprinterror (cmget $mx $CMAFIRSTERROR))
  251. menuitem (concat "Errors during most recent map load:\t" (cmget $mx $CMALASTERROR)) (concat cmprinterror (cmget $mx $CMALASTERROR))
  252. menuitemtextinput "Comment\t" [escapenoquotes (cmget @mx @CMACOMMENT)] [cmset @mx @CMACOMMENT (at (addpunct $arg1) 0)]
  253. menuitem "" -1
  254. menuitem "\f3[Delete map from batch processing list]" (concat delalias $mx "; closemenu [Map conversion state]")
  255. menuitem "[Limit batch processing to this single map]" (concat "cmcur =" $cmpick)
  256. menuitemmapload "[Load map]" (concat coop $cmpick)
  257. pop mx
  258. ]
  259. newmenu "List maps to convert"
  260. menuinit [
  261. resetcurmenu
  262. looplist (enumalias __convmap__) [mx m] [
  263. push mi ""
  264. push nt (+ $CMANUM 1)
  265. looplisti $$mx v [
  266. mi = (concatword "\fs" $mi $v "\fr\t")
  267. -= nt 1
  268. ]
  269. loop i $nt [ mi = (concatword $mi "\t") ]
  270. menuitem (concatword $mi $m) (concat cmpickmap $m)
  271. pop mi nt
  272. ]
  273. ]
  274. newmenu "Convmap save"
  275. menuinit [
  276. resetcurmenu
  277. if (&& (&& (strlen $cmediting) (strcmp $cmediting (curmap))) $unsavededits) [
  278. menuitem (concatword "\f0[Save changes to " $cmediting "]") (concat savemap $cmediting "; cmdoneediting ; " $cmafterfinishediting)
  279. menuitem "" -1
  280. menuitem (concatword "\f3[Throw away changes on " $cmediting "]") (concat "cmdoneediting ; " $cmafterfinishediting)
  281. ][
  282. menuitem "nothing to save" (concat "cmdoneediting ; " $cmafterfinishediting)
  283. ]
  284. ]
  285. const cmfinishediting [
  286. if (&& (strlen $cmediting) (strcmp $cmediting (curmap))) [
  287. showmenu "Convmap save"
  288. result 1
  289. ][
  290. result 0
  291. ]
  292. ]
  293. const cmwork [
  294. if $editing edittoggle // end edit mode
  295. if (! (player1 alive)) [
  296. spectate
  297. sleep 100 cmwork // try again
  298. ][
  299. cmwork_contd // alive: go to work
  300. ]
  301. ]
  302. const cmwork_contd [
  303. echo "\f0Continue map conversion up to stage \f1" $cmstage
  304. // process unsaved edits
  305. tempalias cmafterfinishediting cmwork
  306. if (! (cmfinishediting)) [
  307. tempalias cmafterfinishediting ""
  308. push n ""
  309. push abort 0
  310. push stagefail 0
  311. // loop through all maps and all requested stages
  312. loop _curstage $cmstage [
  313. push curstage (+ $_curstage 1)
  314. looplist (enumalias __convmap__) [mx mn] [
  315. if (&& (strlen $cmcur) (! (strcmp $cmcur $mn))) continue // fast-forward to cmcur
  316. n = (cmget $mx $CMASTAGE)
  317. if (&& (&& (>= $n 0) (< $n $curstage)) (! $abort)) [
  318. echo "Processing conversion on map \fs\f1" $mn "\fr stage \fs\f1" (cmget $mx $CMASTAGE) "\fr"
  319. // process map $mn stage $curstage
  320. if (= $curstage $MAPCONFIG) [ _ignoreillegalpaths 1 ] // hopefully, the illegal paths will be converted...
  321. n = (loadmap $mn)
  322. _ignoreillegalpaths 0
  323. cmset $mx $CMALASTERROR (concatword "0x" (h0 8 $n))
  324. if (&b $n (if (= $curstage $MAPCONFIG) $cmerr_config $cmerr_abort)) [
  325. cmprinterror $n (concatword "\f3aborting map " $mn ": ")
  326. cmset $mx $CMASTAGE (- 0 $curstage)
  327. cmset $mx $CMACOMMENT "aborted"
  328. ] [
  329. // enter edit mode
  330. if (! $editing) edittoggle
  331. stagefail = 0
  332. (concatword cm_dostage_ (at $cmstagenames $curstage)) $mx $mn $curstage $n
  333. if (&& $stagefail (! $cmconverredit)) [
  334. echo "\f3aborting map" $mn due to problems in conversion stage $curstage
  335. cmset $mx $CMASTAGE (- 0 $curstage)
  336. cmset $mx $CMACOMMENT "aborted"
  337. ]
  338. cmprinterror $n "map load error: "
  339. if (&& (&b $cmerr_fixlater $n) $cmdomanual) [ abort = 1 ]
  340. if (&& $stagefail $cmconverredit) [ abort = 1 ]
  341. if $abort [
  342. echo "\f3Pausing for manual error correction. Continue batch run with \"/cmwork\" or use the menu."
  343. cmediting = (curmap)
  344. cmdoneediting = (concat cmset $mx $CMASTAGE $curstage " ; cmdoneediting = [] ; cmediting = [] ")
  345. cmeditstage = $curstage
  346. ] [
  347. if $editing edittoggle // end edit mode
  348. if (! $stagefail) [ // no errors: save result
  349. cmset $mx $CMASTAGE $curstage
  350. if (&& $unsavededits (strcmp (curmap) $mn)) [
  351. // finish stage and save changes
  352. savemap
  353. ]
  354. ]
  355. ]
  356. ]
  357. ]
  358. ]
  359. pop curstage
  360. ]
  361. if (! $abort) [ echo "\f0Finished map conversion up to stage \f1" $cmstage ]
  362. if (&& $abort (strlen (enumtodoentities))) [ sleep 1000 "if (! $editing) edittoggle ; showmenu [TODO entities]" ]
  363. pop n abort stagefail
  364. ]
  365. ]
  366. const cm_dostage_ [ echo stage $arg3 processing not available ]
  367. const cm_dostage_NOP []
  368. const cm_dostage_MAPCONFIG [ // only change config file - no changes to the cgz in this stage
  369. automapconfig // embed config file
  370. push cnt (+ (cmfixmapmodelpaths) (cmfixtexturepaths) (cmfixmapsoundpaths) (cmfixskymappaths))
  371. push fixcfg (&b $arg4 0x0000f000)
  372. if (!= $cmstage 1) [ fixcfg = 0 ]
  373. if (|| $cnt $fixcfg) [ // write cfg, if paths were changed - or if media files were missing (to get a clean cfg to fix manually)
  374. savemap ________mapconvtemp // write to temp cgz to clear $unsavededits
  375. extractconfigfile // only write config file
  376. ]
  377. pop cnt fixcfg
  378. ]
  379. const cm_dostage_TRANSCLIP [ // translate clip entities
  380. // automatic changes
  381. transformclipentities
  382. // general cleanup
  383. if (< $waterlevel -128) [
  384. // no water
  385. waterlevel -10000
  386. watercolour
  387. echo no water used: values reset to defaults
  388. ]
  389. if (&b $arg4 $cmerr_editsave) savemap
  390. ]
  391. const cm_dostage_CLEANSLOTS [ // strip and sort all config slots
  392. // delete all unused config slots
  393. loop ii 256 [ push i (- 255 $ii) ; if (&& (strlen (mapmodelslotname $i)) (strcmp "" (mapmodelslotusage $i))) [deletemapmodelslot $i] ; pop i]
  394. loop ii 251 [ push i (- 255 $ii) ; if (&& (strlen (edittextureslot $i)) (strcmp "" (textureslotusage $i))) [deletetextureslot $i] ; pop i]
  395. loop ii 256 [ push i (- 255 $ii) ; if (&& (strlen (editmapsoundslot $i)) (strcmp "" (mapsoundslotusage $i))) [deletemapsoundslot $i] ; pop i]
  396. // sort all config slots and merge doubles
  397. sortmapmodelslots mergeused
  398. sorttextureslots mergeused
  399. sortmapsoundslots mergeused
  400. ]
  401. const cm_dostage_FIXUNASSIGNEDS [ // pause on maps with unassigned map models or -sounds
  402. if (entstats) [ stagefail = 1 ]
  403. ]
  404. const cm_dostage_FIXBADENTS [ // pause on maps with entities with illegal attributes
  405. looplist (enumentities playerstart) i [
  406. push a (at (editentity $i) 5) // attr2
  407. if (&& (&& (!= $a 0) (!= $a 1)) (!= $a 100)) [
  408. echo (concatword "playerstart entity #" $i " has an illegal attr2 value (" $a ") - allowed are 0, 1 and 100")
  409. addtodoentity $i (concatword "illegal attr2 value (" $a ") - allowed are 0, 1 and 100")
  410. stagefail = 1
  411. ]
  412. pop a
  413. ]
  414. looplist (enumentities ctf-flag) i [
  415. push a (at (editentity $i) 5) // attr2
  416. if (&& (!= $a 0) (!= $a 1)) [
  417. echo (concatword "ctf-flag entity #" $i " has an illegal attr2 value (" $a ") - allowed are 0 and 1")
  418. addtodoentity $i (concatword "illegal attr2 value (" $a ") - allowed are 0 and 1")
  419. stagefail = 1
  420. ]
  421. pop a
  422. ]
  423. looplist [playerstart 2 pistol 1 ammobox 1 grenades 1 health 1 helmet 1 armour 1 akimbo 1 ladder 1 ctf-flag 2] [ent attrs] [
  424. looplist (enumentities $ent) i [
  425. push t 0
  426. loop a (- 4 $attrs) [
  427. if (!= (at (editentity $i) (+ 4 $attrs $a)) 0) [ t = 1 ]
  428. ]
  429. if (pop t) [
  430. addtodoentity $i "unused entity attribute has non-zero value"
  431. stagefail = 1
  432. ]
  433. ]
  434. ]
  435. ]
  436. const cm_dostage_MANUALERRORS [ // pause on all maps with any errors left
  437. if $arg4 [ stagefail = 1 ]
  438. ]
  439. const cm_dostage_MANUALEDITING [ // pause on all maps
  440. stagefail = 1
  441. ]
  442. const cm_dostage_REDUCECLIPS [ // automatically un-clip mapmodels if possible
  443. if (|| (uncliptagclippedmodels) (unclipentclippedmodels)) [
  444. if $dryrun [stagefail = 1] [duplicateclippedslots_cleanup]
  445. ]
  446. ]
  447. const cm_dostage_FIXPICKUPFHF [ // pause on maps with entities with pickups elevated by unnecessary heightfields
  448. looplist [pistol ammobox grenades health helmet armour akimbo] ent [
  449. looplist (enumentities $ent) i [
  450. push entinfo (editentity $i)
  451. select (at $entinfo 1) (at $entinfo 2) 2 2
  452. push v 0
  453. selectionwalk [
  454. if (|| $sw_rel_x $sw_rel_y) [
  455. if (|| (= $sw_type 2) (!= $sw_vdelta $v)) [ v = 0 ] // if FHF around or different vdelta: not just an elevated model
  456. ][
  457. if (= $sw_type 2) [ v = $sw_vdelta ] // FHF below pickup
  458. ]
  459. ]
  460. if (&& $v (! (&b $v 3))) [ // only mark elevations by whole cube sizes
  461. addtodoentity $i "pickup entity elevated old-style, use attr1 instead"
  462. stagefail = 1
  463. ]
  464. pop v entinfo
  465. ]
  466. ]
  467. ]
  468. const cm_dostage_FINDSTRAYENTS [ // find entities sitting in 8x8 solid cubes
  469. looplist [playerstart pistol ammobox grenades health helmet armour akimbo ladder ctf-flag light mapmodel ] ent [
  470. looplist (enumentities $ent) i [
  471. push t 0
  472. select (- (at (editentity $i) 1) 4) (- (at (editentity $i) 2) 4) 8 8
  473. selectionwalk [ += t $sw_type ]
  474. if (&& (! (pop t)) (strlen (selx))) [
  475. addtodoentity $i "entity placed in solid cubes"
  476. stagefail = 1
  477. ]
  478. ]
  479. ]
  480. ]
  481. const cm_dostage_CHECKVANTAGEPOINTS [ // check for vantage points, abort if there's no valid one
  482. if (! gotovantagepoint) [
  483. echo "\t\t\f9No vantage point set."
  484. stagefail = 1
  485. ]
  486. ]
  487. const cmfixmapmodelpaths [
  488. push cnt 0
  489. push ispre12 0
  490. looplisti [
  491. laptop1 jcdpc/laptop // convert official older than 1.2
  492. rattrap/cbbox toca/cardboardbox
  493. rattrap/rbbox ratboy/toca_cardboardbox_reskin
  494. rattrap/hanginlamp jcdpc/hanginglamp
  495. rattrap/ventflap jcdpc/ventflap
  496. rattrap/milkcrate2 ratboy/toca_milkcrate_blue
  497. rattrap/milkcrate1 ratboy/toca_milkcrate_red
  498. aard makke/aardapple_enginebox
  499. barrel makke/barrel
  500. barrel2 makke/barrel_fallen
  501. barrel-toxic makke/barrel_toxic
  502. rattrapbarrel makke/barrel_newsteel
  503. rattrapbarrel2 makke/barrel_newsteel_fallen
  504. bridge makke/platform
  505. bridge_shine makke/platform_shine
  506. bulb makke/lightbulb
  507. can makke/coke_can
  508. can2 makke/coke_can_fallen
  509. chair1 makke/office_chair
  510. coffeemug makke/coffee_mug
  511. comp_bridge makke/platform_bridge
  512. drainpipe makke/drainpipe
  513. dumpster makke/dumpster
  514. elektro makke/electric_meter
  515. europalette makke/pallet
  516. fag makke/cigarette
  517. fence makke/fence_chainlink
  518. fencegate_closed makke/fence_chainlink_closed_gate
  519. fencegate_open makke/fence_chainlink_no_gate
  520. fencepost makke/fence_chainlink_post
  521. flyer makke/flyer_propaganda
  522. tree01 makke/flyer_environmental
  523. gastank makke/fuel_tank
  524. icicle makke/icicle
  525. hook makke/hook
  526. locker makke/locker
  527. light01 makke/fluorescent_lamp
  528. wood01 makke/broken_wood
  529. wrench makke/wrench
  530. strahler makke/wall_spotlight
  531. streetlamp makke/street_light
  532. ladder_rung makke/ladder_1x
  533. ladder_7x makke/ladder_7x
  534. ladder_8x makke/ladder_8x
  535. ladder_10x makke/ladder_10x
  536. ladder_11x makke/ladder_11x
  537. ladder_15x makke/ladder_15x
  538. ladderx15_center3 makke/ladder_15x_offset
  539. gutter_h cleaner/grates/grate_hor
  540. gutter_v cleaner/grates/grate_vert
  541. minelift makke/mine-shaft_elevator
  542. screw makke/bolt_nut
  543. sail makke/sail
  544. snowsail makke/sail_snow
  545. wires/2x8 makke/wires/2x8
  546. wires/3x8 makke/wires/3x8
  547. wires/4x8 makke/wires/4x8
  548. wires/4x8a makke/wires/4x8a
  549. poster makke/signs/wanted
  550. signs/arab makke/signs/arab
  551. signs/biohazard makke/signs/biohazard
  552. signs/caution makke/signs/caution_voltage
  553. signs/maint makke/signs/caution_maintainence
  554. signs/flammable makke/signs/flammable
  555. signs/speed makke/signs/speed
  556. nocamp makke/signs/no_camping
  557. roadblock01 makke/roadblock
  558. roadblock02 makke/roadblock_graffiti
  559. nothing makke/nothing_clip
  560. picture1 makke/picture
  561. plant01 makke/plant_leafy
  562. plant01_d makke/plant_leafy_dry
  563. plant01_s makke/plant_leafy_snow
  564. grass01 makke/grass_short
  565. grass01_d makke/grass_short_dry
  566. grass01_s makke/grass_short_snow
  567. grass02 makke/grass_long
  568. grass02_d makke/grass_long_dry
  569. grass02_s makke/grass_long_snow
  570. shadowfix/boeufmironton/bidon1 boeufmironton/bidon1 // duplicates
  571. shadowfix/boeufmironton/bidon2 boeufmironton/bidon2
  572. shadowfix/boeufmironton/caisse01 boeufmironton/caisse01
  573. shadowfix/boeufmironton/caisse02 boeufmironton/caisse02
  574. shadowfix/boeufmironton/carton1 boeufmironton/carton1
  575. shadowfix/boeufmironton/citerne boeufmironton/citerne
  576. shadowfix/boeufmironton/commande1 boeufmironton/commande1
  577. shadowfix/boeufmironton/elevateur boeufmironton/elevateur
  578. shadowfix/boeufmironton/palan1 boeufmironton/palan1
  579. shadowfix/boeufmironton/palette1 boeufmironton/palette1
  580. shadowfix/boeufmironton/passerelle boeufmironton/passerelle
  581. shadowfix/boeufmironton/portique boeufmironton/portique
  582. shadowfix/boeufmironton/poutrelle1 boeufmironton/poutrelle1
  583. shadowfix/boeufmironton/rail boeufmironton/rail
  584. shadowfix/boeufmironton/tuyaux1 boeufmironton/tuyaux1
  585. shadowfix/boeufmironton/wagon boeufmironton/wagon
  586. shadowfix/sr_persian/wagon sr_persian/wagon
  587. shadowfix/sr_persian/wagon2 sr_persian/wagon2
  588. ice/ventflap jcdpc/ventflap
  589. pink/lights/ovallamp misterfloppy/ovallamp
  590. halfdoor dcp/halfdoor
  591. fantomas/barsign fantomas.ua/bar_sign
  592. pink/lights/hanginlamp jcdpc/hanginglamp
  593. pink/lights/minelamp misterfloppy/minelamp
  594. ton ton/up
  595. cleaner/gutter_h cleaner/grates/grate_hor
  596. cleaner/gutter_v cleaner/grates/grate_vert
  597. makkes/vase dcp/vases/vase
  598. models/warning_light cleaner/warning_light
  599. europalette2 makke/pallet_vert
  600. ayers_skull ayers/skull // moved models
  601. barique boeufmironton/barique
  602. barrel6 dcp/barrel6
  603. beerbottle/beerbottle1 zz_unsorted/beerbottle/1
  604. beerbottle/beerbottle2 zz_unsorted/beerbottle/2
  605. bench2 zz_unsorted/bench
  606. boxtrailer sitters/boxtrailer
  607. bridge_incas2 boeufmironton/bridge_incas2
  608. bridge_incas boeufmironton/bridge_incas
  609. bukz/sundial primevil/sundial
  610. campbed sitters/campbed
  611. candle dementium4ever/candle
  612. car sitters/car2
  613. chain tentus/chains/chain
  614. coffin zz_unsorted/coffin
  615. container cleaner/container
  616. crate psionic/crate
  617. curvechain tentus/chains/curvechain
  618. dcp_candle dcp/candle
  619. digicode cleaner/digicode
  620. elecbox acord/elecbox
  621. geartrooper/warning_light cleaner/warning_light
  622. goal sniper/goal
  623. goblet zz_unsorted/goblet
  624. grass dcp/grass
  625. gravure01 boeufmironton/gravure01
  626. gravure02 boeufmironton/gravure02
  627. gutter_h cleaner/grates/grate_hor
  628. gutter_v cleaner/grates/grate_vert
  629. helicopter dementium4ever/helicopter
  630. heli sitters/heli
  631. hotel_sign sr_persian/hotel_sign
  632. jeep sitters/jeep
  633. kt_kubalwagon kenbeyer/kt_kubalwagon
  634. leafs dcp/leafs
  635. makke/med_chand dcp/chandelier
  636. makke/signs/exit signs/exit2
  637. money sunnyd/money
  638. oldchair sr_persian/oldchair
  639. old_table sr_persian/old_table
  640. old_wagon sr_persian/old_wagon
  641. paquet deathstar/paquet
  642. piano zz_unsorted/piano
  643. picture2 zz_unsorted/picture2
  644. plant1 dcp/plant1
  645. red_cross_jeep cleaner/red_cross_jeep
  646. rope zz_unsorted/rope
  647. skintrolpc zz_unsorted/trolpc
  648. smplant dcp/smplant
  649. soleil2 boeufmironton/soleil2
  650. soleil boeufmironton/soleil
  651. stairs zz_unsorted/stairs
  652. statue deathstar/statue
  653. tankwall sitters/tankwall
  654. ton/down sitters/ton/down
  655. ton/up sitters/ton/up
  656. tree_models/mushroom dcp/mushroom
  657. treppe sr_persian/treppe2
  658. vent dcp/vent
  659. victorian/oldclock cleaner/victorian/oldclock
  660. wagon sitters/wagon
  661. warning_light geartrooper/warning_light
  662. cleaner/dockingring cleaner/docking_ring
  663. cleaner/floorhole cleaner/floor_hole
  664. cleaner/saloondoors cleaner/saloon_doors
  665. cleaner/westerndoors2 cleaner/western_doors_2
  666. cleaner/westerndoors3 cleaner/western_doors_3
  667. cleaner/westerndoorssnoo cleaner/western_doors_snoo
  668. cleaner/westernsigns/butts cleaner/western_signs/butts
  669. cleaner/westernsigns/noguns cleaner/western_signs/noguns
  670. "cleaner/planks/plank(hor)" cleaner/planks/plank_hor
  671. thekid/skateboard TheKid/skateboard
  672. Raczo/fence1 raczo/fence1
  673. Raczo/fence-post raczo/fence-post
  674. pink/lights/light1 sitters/light1
  675. pink/lights/light2 sitters/light2
  676. pink/lights/light3 sitters/light3
  677. pink/lights/light4 sitters/light4
  678. pink/lights/light5 sitters/light5
  679. pink/indust/pallette sitters/pallette
  680. cleaner/exting sitters/exting
  681. ice/barrel_ice deathstar/barrel_ice
  682. ice/tree_snow deathstar/tree_snow
  683. ac_library/book zero/book/red
  684. ac_library/book2 zero/book/blue
  685. ac_library/book3 zero/book
  686. ac_library/ladder zero/ladder
  687. zero/ac_archives/book_1 zero/book/fault
  688. zero/ac_archives/book_2 zero/book
  689. zero/ac_archives/book_3 zero/book
  690. zero/ac_archives/book_4 zero/book/red
  691. zero/ac_archives/book_5 zero/book/mock
  692. zero/ac_archives/book_new zero/book/fault
  693. zero/ac_archives/book_new2 zero/book/blue
  694. zero/ac_archives/book_new3 zero/book/green
  695. zero/ac_archives/book_new4 zero/book/red
  696. zero/ac_archives/book_new5 zero/book/mock
  697. zero/ac_archives/desk zero/desk
  698. zero/ac_archives/ivy zero/ivy
  699. zero/ac_roots/oldchair_new zero/oldchair_new
  700. zero/ac_roots/tonneletv zero/tonneletv_roots
  701. zero/ac_roots/yopasign zero/sign/yopa
  702. zero/ac_tanglewood/bulletinboard zero/bulletinboard
  703. zero/ac_tanglewood/flowerbox zero/flowerbox
  704. zero/ac_tanglewood/flowerbox2 zero/flowerbox/2
  705. zero/ac_tanglewood/flowerbox3 zero/flowerbox/3
  706. zero/ac_tanglewood/ghost zero/ghost
  707. zero/ac_tanglewood/statue zero/statue
  708. zero/ac_tanglewood/statue2 zero/statue/2
  709. zero/ac_tanglewood/window1 zero/window/1
  710. zero/ac_tanglewood/window2 zero/window/2
  711. zero/ac_tanglewood/window3 zero/window/3
  712. ] [ns nr] [
  713. looplist (mapmodelslotbyname (concatword "mapmodels/" $ns)) n [
  714. editmapmodelslot $n "" "" "" "" $nr
  715. += cnt 1
  716. if (< $i 79) [ += ispre12 1 ]
  717. ]
  718. ]
  719. push newbench "zz_unsorted/bench"
  720. if (> $ispre12 1) [ newbench = "makke/bench_seat" ] // special treatment for "bench", if the config file is "unconverted pre 1.2"
  721. looplist (mapmodelslotbyname "mapmodels/bench") n [
  722. editmapmodelslot $n "" "" "" "" $newbench
  723. += cnt 1
  724. ]
  725. if $cnt [echo replaced $cnt mapmodel slot paths]
  726. pop newbench ispre12
  727. result (pop cnt)
  728. ]
  729. const cmfixtexturepaths [
  730. push cnt 0
  731. looplist [
  732. wotwot/skin/drainpipe.jpg ../models/mapmodels/wotwot/makke_drainpipe_gritty/skin.jpg // convert official older than 1.2
  733. wotwot/skin/commrack.jpg ../models/mapmodels/wotwot/toca_commrack_dull/skin.jpg
  734. wotwot/skin/monitor.jpg ../models/mapmodels/wotwot/toca_monitor_dull/skin.jpg
  735. wotwot/skin/milkcarton.jpg ../models/mapmodels/wotwot/toca_milkcarton_dull/skin.jpg
  736. wotwot/skin/guardrail2.jpg ../models/mapmodels/wotwot/toca_guardrail2_dull/skin.jpg
  737. mitaman/zastrow/metal_overlaps.jpg zastrow/metal_overlaps.jpg
  738. mitaman/zastrow/metal_plate_fill.jpg zastrow/metal_plate_fill.jpg
  739. mitaman/zastrow/metal_siding_kinksb.jpg zastrow/metal_siding_kinksb.jpg
  740. mitaman/zastrow/metal_siding_kinks.jpg zastrow/metal_siding_kinks.jpg
  741. mitaman/zastrow/sub_doors512A10.jpg zastrow/sub_doors512A10.jpg
  742. mitaman/zastrow/sub_doors512A16.jpg zastrow/sub_doors512A16.jpg
  743. mitaman/zastrow/sub_doors512B05.jpg zastrow/sub_doors512B05.jpg
  744. mitaman/zastrow/sub_window31.jpg zastrow/sub_window31.jpg
  745. mitaman/zastrow/sub_window33.jpg zastrow/sub_window33.jpg
  746. sub/sub_sand.jpg zastrow/sub_sand.jpg
  747. sub/brick_wall_08.jpg zastrow/brick_wall_08.jpg
  748. sub/brick_wall_09.jpg zastrow/brick_wall_09.jpg
  749. mitaman/various/sub_window23.jpg zastrow/sub_window23.jpg
  750. mitaman/various/vent_cap.jpg zastrow/vent_cap.jpg
  751. mitaman/various/sub_window38.jpg zastrow/sub_window38.jpg
  752. mitaman/various/sub_doors256nf_01.jpg zastrow/sub_doors256nf_01.jpg
  753. rattrap/rb_box_07.jpg zastrow/rb_box_07.jpg
  754. mitaman/golgotha/elecpanelstwo.jpg golgotha/elecpanelstwo.jpg
  755. mitaman/golgotha/metal_bumps2.jpg golgotha/metal_bumps2.jpg
  756. mitaman/golgotha/tunnel_ceiling.jpg golgotha/tunnel_ceiling.jpg
  757. mitaman/golgotha/hhroofgray.jpg golgotha/hhroofgray.jpg
  758. mitaman/golgotha/metal_bumps3.jpg golgotha/metal_bumps3.jpg
  759. mitaman/golgotha/tunnel_ceiling_b.jpg golgotha/tunnel_ceiling_b.jpg
  760. mitaman/various/5sqtunnelroad.jpg golgotha/5sqtunnelroad.jpg
  761. mitaman/3dcafe/door07_a.jpg 3dcafe/door07_a.jpg
  762. mitaman/3dcafe/door07.jpg 3dcafe/door07.jpg
  763. mitaman/3dcafe/door10_a.jpg 3dcafe/door10_a.jpg
  764. mitaman/3dcafe/door10.jpg 3dcafe/door10.jpg
  765. mitaman/3dcafe/door12.jpg 3dcafe/door12.jpg
  766. mitaman/3dcafe/door15.jpg 3dcafe/door15.jpg
  767. mitaman/3dcafe/objects08.jpg 3dcafe/objects08.jpg
  768. mitaman/3dcafe/objects09_a.jpg 3dcafe/objects09_a.jpg
  769. mitaman/3dcafe/stone18.jpg 3dcafe/stone18.jpg
  770. mitaman/grsites/brick051.jpg grsites/brick051.jpg
  771. mitaman/grsites/brick065.jpg grsites/brick065.jpg
  772. mitaman/grsites/wood060.jpg grsites/wood060.jpg
  773. mitaman/various/metal020.jpg grsites/metal020.jpg
  774. mitaman/various/metal026.jpg grsites/metal026.jpg
  775. mitaman/various/036metal.jpg lemog/036metal.jpg
  776. mitaman/various/006metal.jpg lemog/006metal.jpg
  777. mitaman/various/063bois.jpg lemog/063bois.jpg
  778. mitaman/various/063bois_b.jpg lemog/063bois_b.jpg
  779. mitaman/various/027metal.jpg lemog/027metal.jpg
  780. makke/windows.jpg golgotha/windows.jpg
  781. makke/window.jpg golgotha/window.jpg
  782. makke/panel.jpg golgotha/panel.jpg
  783. makke/door.jpg golgotha/door.jpg
  784. makke/smallsteelbox.jpg golgotha/smallsteelbox.jpg
  785. makke/klappe3.jpg golgotha/klappe3.jpg
  786. makke/bricks_2.jpg mayang/bricks_2.jpg
  787. wotwot/urban/manhole1.jpg mayang/manhole1.jpg
  788. wotwot/urban/hatch1.jpg mayang/hatch1.jpg
  789. wotwot/urban/grill2_s.jpg mayang/grill2_s.jpg
  790. wotwot/urban/door3.jpg mayang/door3.jpg
  791. wotwot/urban/airvent1.jpg mayang/airvent1.jpg
  792. rattrap/rb_trim_03.jpg golgotha/rb_trim_03.jpg
  793. rattrap/rb_window.jpg makke/rb_window.jpg
  794. rattrap/rb_window2.jpg makke/rb_window2.jpg
  795. rattrap/rb_trim_01.jpg noctua/ground/rb_trim_01.jpg
  796. rattrap/rb_trim_02.jpg makke/rb_trim_02.jpg
  797. rattrap/rb_box_01.jpg makke/rattrap/rb_box_01.jpg
  798. rattrap/rb_box_02.jpg makke/rattrap/rb_box_02.jpg
  799. rattrap/rb_box_03.jpg makke/rattrap/rb_box_03.jpg
  800. rattrap/rb_box_04.jpg makke/rattrap/rb_box_04.jpg
  801. rattrap/rb_box_05.jpg makke/rattrap/rb_box_05.jpg
  802. rattrap/rb_box_06.jpg makke/rattrap/rb_box_06.jpg
  803. rattrap/rb_concrete.jpg makke/rattrap/rb_concrete.jpg
  804. rattrap/rb_bricks_01.jpg mayang/rb_bricks_01.jpg
  805. rattrap/rb_bricks_02.jpg mayang/rb_bricks_02.jpg
  806. rattrap/rb_bricks_03.jpg mayang/rb_bricks_03.jpg
  807. rattrap/rb_planks02_trim.jpg noctua/wood/planks02_trim_vert.jpg
  808. exoduss/text45.jpg exoduss/arab2.jpg // duplicates
  809. exoduss/text14.jpg exoduss/granite1.jpg
  810. exoduss/text32.jpg exoduss/granite8.jpg
  811. exoduss/text22.jpg exoduss/mot190.jpg
  812. exoduss/text23.jpg exoduss/lol6.jpg
  813. exoduss/text36.jpg exoduss/granite6.jpg
  814. exoduss/text30.jpg exoduss/lol4.jpg
  815. exoduss/text3.jpg exoduss/lol1.jpg
  816. exoduss/text27.jpg exoduss/lol2.jpg
  817. exoduss/text2.jpg exoduss/granite4.jpg
  818. exoduss/stripes.jpg exoduss/granite7.jpg
  819. exoduss/text21.jpg exoduss/granite7.jpg
  820. exoduss/text37.jpg exoduss/granite7.jpg
  821. exoduss/text1.jpg exoduss/granite3.jpg
  822. exoduss/text17.jpg exoduss/wall.jpg
  823. exoduss/text38.jpg exoduss/granite5.jpg
  824. exoduss/text28.jpg exoduss/lol3.jpg
  825. exoduss/text13.jpg exoduss/aztec3.jpg
  826. exoduss/wall4.jpg exoduss/text33.jpg
  827. exoduss/text35.jpg exoduss/granite2.jpg
  828. exoduss/text4.jpg exoduss/ground3.jpg
  829. exoduss/text9.jpg exoduss/floor.jpg
  830. exoduss/text24.jpg exoduss/lol5.jpg
  831. exoduss/text8.jpg exoduss/wall10.jpg
  832. exoduss/text15.jpg exoduss/wall7.jpg
  833. exoduss/text20.jpg exoduss/wall8.jpg
  834. exoduss/text29.jpg exoduss/ground2.jpg
  835. exoduss/text10.jpg exoduss/256-01a.jpg
  836. exoduss/text7.jpg exoduss/wall9.jpg
  837. exoduss/text19.jpg exoduss/wall6.jpg
  838. exoduss/text31.jpg exoduss/granite10.jpg
  839. exoduss/text18.jpg exoduss/wall5.jpg
  840. cleaner/ikbase/ik_floor_conc128a.jpg cube/ikbase/ik_floor_conc128a.jpg
  841. exoduss/floor.jpg cube/ikbase/ik_floor_conc128a.jpg
  842. bukz/door1.jpg 3dcafe/door10_a.jpg
  843. bukz/door2.jpg 3dcafe/door07_a.jpg
  844. exoduss/text6.jpg cube/dg/muv158.jpg
  845. exoduss/mot190.jpg cleaner/dg/mot190.jpg
  846. mitaman/063bois.jpg lemog/063bois.jpg
  847. RKTnoob/b10.jpg RKTnoob/brick10.jpg // renamed
  848. RKTnoob/b1.jpg RKTnoob/brick1.jpg
  849. RKTnoob/b2.jpg RKTnoob/brick2.jpg
  850. RKTnoob/b3.jpg RKTnoob/brick3.jpg
  851. RKTnoob/b4.jpg RKTnoob/brick4.jpg
  852. RKTnoob/b5.jpg RKTnoob/brick5.jpg
  853. RKTnoob/b6.jpg RKTnoob/brick6.jpg
  854. RKTnoob/b7.jpg RKTnoob/brick7.jpg
  855. RKTnoob/b8.jpg RKTnoob/brick8.jpg
  856. RKTnoob/b9.jpg RKTnoob/brick9.jpg
  857. RKTnoob/c10.jpg RKTnoob/color10.jpg
  858. RKTnoob/c11.jpg RKTnoob/color11.jpg
  859. RKTnoob/c12.jpg RKTnoob/color12.jpg
  860. RKTnoob/c13.jpg RKTnoob/color13.jpg
  861. RKTnoob/c14.jpg RKTnoob/color14.jpg
  862. RKTnoob/c15.jpg RKTnoob/color15.jpg
  863. RKTnoob/c16.jpg RKTnoob/color16.jpg
  864. RKTnoob/c17.jpg RKTnoob/color17.jpg
  865. RKTnoob/c18.jpg RKTnoob/color18.jpg
  866. RKTnoob/c19.jpg RKTnoob/color19.jpg
  867. RKTnoob/c1.jpg RKTnoob/color1.jpg
  868. RKTnoob/c20.jpg RKTnoob/color20.jpg
  869. RKTnoob/c21.jpg RKTnoob/color21.jpg
  870. RKTnoob/c22.jpg RKTnoob/color22.jpg
  871. RKTnoob/c23.jpg RKTnoob/color23.jpg
  872. RKTnoob/c24.jpg RKTnoob/color24.jpg
  873. RKTnoob/c25.jpg RKTnoob/color25.jpg
  874. RKTnoob/c26.jpg RKTnoob/color26.jpg
  875. RKTnoob/c27.jpg RKTnoob/color27.jpg
  876. RKTnoob/c28.jpg RKTnoob/color28.jpg
  877. RKTnoob/c29.jpg RKTnoob/color29.jpg
  878. RKTnoob/c2.jpg RKTnoob/color2.jpg
  879. RKTnoob/c30.jpg RKTnoob/color30.jpg
  880. RKTnoob/c31.jpg RKTnoob/color31.jpg
  881. RKTnoob/c32.jpg RKTnoob/color32.jpg
  882. RKTnoob/c3.jpg RKTnoob/color3.jpg
  883. RKTnoob/c4.jpg RKTnoob/color4.jpg
  884. RKTnoob/c5.jpg RKTnoob/color5.jpg
  885. RKTnoob/c6.jpg RKTnoob/color6.jpg
  886. RKTnoob/c7.jpg RKTnoob/color7.jpg
  887. RKTnoob/c8.jpg RKTnoob/color8.jpg
  888. RKTnoob/c9.jpg RKTnoob/color9.jpg
  889. RKTnoob/f1.jpg RKTnoob/floor1.jpg
  890. RKTnoob/f2.jpg RKTnoob/floor2.jpg
  891. RKTnoob/f3.jpg RKTnoob/floor3.jpg
  892. RKTnoob/g10.jpg RKTnoob/gate10.jpg
  893. RKTnoob/g11.jpg RKTnoob/gate11.jpg
  894. RKTnoob/g12.jpg RKTnoob/gate12.jpg
  895. RKTnoob/g13.jpg RKTnoob/gate13.jpg
  896. RKTnoob/g14.jpg RKTnoob/gate14.jpg
  897. RKTnoob/g1.jpg RKTnoob/gate1.jpg
  898. RKTnoob/g2.jpg RKTnoob/gate2.jpg
  899. RKTnoob/g3.jpg RKTnoob/gate3.jpg
  900. RKTnoob/g4.jpg RKTnoob/gate4.jpg
  901. RKTnoob/g5.jpg RKTnoob/gate5.jpg
  902. RKTnoob/g6.jpg RKTnoob/gate6.jpg
  903. RKTnoob/g7.jpg RKTnoob/gate7.jpg
  904. RKTnoob/g8.jpg RKTnoob/gate8.jpg
  905. RKTnoob/g9.jpg RKTnoob/gate9.jpg
  906. RKTnoob/m2/10.jpg RKTnoob/metal2/floor4.jpg
  907. RKTnoob/m2/11.jpg RKTnoob/metal2/floor5.jpg
  908. RKTnoob/m2/12.jpg RKTnoob/metal2/floor6.jpg
  909. RKTnoob/m2/13.jpg RKTnoob/metal2/floor7.jpg
  910. RKTnoob/m2/14.jpg RKTnoob/metal2/floor8.jpg
  911. RKTnoob/m2/15.jpg RKTnoob/metal2/floor9.jpg
  912. RKTnoob/m2/16.jpg RKTnoob/metal2/wall7.jpg
  913. RKTnoob/m2/17.jpg RKTnoob/metal2/wall8.jpg
  914. RKTnoob/m2/18.jpg RKTnoob/metal2/wall9.jpg
  915. RKTnoob/m2/19.jpg RKTnoob/metal2/wall10.jpg
  916. RKTnoob/m2/1.jpg RKTnoob/metal2/floor1.jpg
  917. RKTnoob/m2/20.jpg RKTnoob/metal2/wall11.jpg
  918. RKTnoob/m2/21.jpg RKTnoob/metal2/wall12.jpg
  919. RKTnoob/m2/22.jpg RKTnoob/metal2/wall13.jpg
  920. RKTnoob/m2/23.jpg RKTnoob/metal2/wall14.jpg
  921. RKTnoob/m2/24.jpg RKTnoob/metal2/wall15.jpg
  922. RKTnoob/m2/25.jpg RKTnoob/metal2/wall16.jpg
  923. RKTnoob/m2/26.jpg RKTnoob/metal2/wall17.jpg
  924. RKTnoob/m2/27.jpg RKTnoob/metal2/wall18.jpg
  925. RKTnoob/m2/28.jpg RKTnoob/metal2/wall19.jpg
  926. RKTnoob/m2/29.jpg RKTnoob/metal2/wall20.jpg
  927. RKTnoob/m2/2.jpg RKTnoob/metal2/floor2.jpg
  928. RKTnoob/m2/3.jpg RKTnoob/metal2/floor3.jpg
  929. RKTnoob/m2/4.jpg RKTnoob/metal2/wall1.jpg
  930. RKTnoob/m2/5.jpg RKTnoob/metal2/wall2.jpg
  931. RKTnoob/m2/6.jpg RKTnoob/metal2/wall3.jpg
  932. RKTnoob/m2/7.jpg RKTnoob/metal2/wall4.jpg
  933. RKTnoob/m2/8.jpg RKTnoob/metal2/wall5.jpg
  934. RKTnoob/m2/9.jpg RKTnoob/metal2/wall6.jpg
  935. RKTnoob/m2/a1.jpg RKTnoob/metal2/sand1.jpg
  936. RKTnoob/m2/a2.jpg RKTnoob/metal2/rock1.jpg
  937. RKTnoob/m2/a3.jpg RKTnoob/metal2/rock2.jpg
  938. RKTnoob/m2/a4.jpg RKTnoob/metal2/floor10.jpg
  939. RKTnoob/m2/a5.jpg RKTnoob/metal2/sand2.jpg
  940. RKTnoob/m2/a6.jpg RKTnoob/metal2/floor11.jpg
  941. RKTnoob/m2/a7.jpg RKTnoob/metal2/floor12.jpg
  942. RKTnoob/m2/a8.jpg RKTnoob/metal2/floor13.jpg
  943. RKTnoob/m2/a9.jpg RKTnoob/metal2/floor14.jpg
  944. RKTnoob/m2/b1.jpg RKTnoob/metal2/floor15.jpg
  945. RKTnoob/m2/b2.jpg RKTnoob/metal2/floor16.jpg
  946. RKTnoob/m2/b3.jpg RKTnoob/metal2/floor17.jpg
  947. RKTnoob/m2/b4.jpg RKTnoob/metal2/floor18.jpg
  948. RKTnoob/m2/b5.jpg RKTnoob/metal2/floor19.jpg
  949. RKTnoob/m2/b6.jpg RKTnoob/metal2/rock3.jpg
  950. RKTnoob/m2/b7.jpg RKTnoob/metal2/tiles1.jpg
  951. RKTnoob/m2/b8.jpg RKTnoob/metal2/tiles2.jpg
  952. RKTnoob/m2/b9.jpg RKTnoob/metal2/tiles3.jpg
  953. RKTnoob/m2/c1.jpg RKTnoob/metal2/tiles4.jpg
  954. RKTnoob/m2/c2.jpg RKTnoob/metal2/wall21.jpg
  955. RKTnoob/m2/c3.jpg RKTnoob/metal2/wall22.jpg
  956. RKTnoob/m2/c4.jpg RKTnoob/metal2/rock4.jpg
  957. RKTnoob/m2/c5.jpg RKTnoob/metal2/rock5.jpg
  958. RKTnoob/m2/c6.jpg RKTnoob/metal2/rock6.jpg
  959. RKTnoob/m2/c7.jpg RKTnoob/metal2/rock7.jpg
  960. RKTnoob/m2/d1.jpg RKTnoob/metal2/floor20.jpg
  961. RKTnoob/m2/d2.jpg RKTnoob/metal2/floor21.jpg
  962. RKTnoob/m2/d3.jpg RKTnoob/metal2/sand3.jpg
  963. RKTnoob/m2/d4.jpg RKTnoob/metal2/rock8.jpg
  964. RKTnoob/m2/d5.jpg RKTnoob/metal2/sand4.jpg
  965. RKTnoob/m2/r08_dark.jpg RKTnoob/metal2/floor22.jpg
  966. RKTnoob/m2/r08_light.jpg RKTnoob/metal2/floor23.jpg
  967. RKTnoob/m2/x01_dark.jpg RKTnoob/metal2/floor24.jpg
  968. RKTnoob/m2/xx10.jpg RKTnoob/metal2/facade1.jpg
  969. RKTnoob/m2/xx11.jpg RKTnoob/metal2/brick10.jpg
  970. RKTnoob/m2/xx12.jpg RKTnoob/metal2/brick11.jpg
  971. RKTnoob/m2/xx13.jpg RKTnoob/metal2/brick12.jpg
  972. RKTnoob/m2/xx14.jpg RKTnoob/metal2/brick13.jpg
  973. RKTnoob/m2/xx15.jpg RKTnoob/metal2/tiles5.jpg
  974. RKTnoob/m2/xx16.jpg RKTnoob/metal2/rock9.jpg
  975. RKTnoob/m2/xx17.jpg RKTnoob/metal2/floor25.jpg
  976. RKTnoob/m2/xx18.jpg RKTnoob/metal2/facade2.jpg
  977. RKTnoob/m2/xx19.jpg RKTnoob/metal2/facade3.jpg
  978. RKTnoob/m2/xx1.jpg RKTnoob/metal2/brick1.jpg
  979. RKTnoob/m2/xx20.jpg RKTnoob/metal2/door1.jpg
  980. RKTnoob/m2/xx21.jpg RKTnoob/metal2/door2.jpg
  981. RKTnoob/m2/xx22.jpg RKTnoob/metal2/door3.jpg
  982. RKTnoob/m2/xx23.jpg RKTnoob/metal2/door4.jpg
  983. RKTnoob/m2/xx24.jpg RKTnoob/metal2/floor26.jpg
  984. RKTnoob/m2/xx25.jpg RKTnoob/metal2/floor27.jpg
  985. RKTnoob/m2/xx26.jpg RKTnoob/metal2/floor28.jpg
  986. RKTnoob/m2/xx27.jpg RKTnoob/metal2/wall23.jpg
  987. RKTnoob/m2/xx28.jpg RKTnoob/metal2/wall24.jpg
  988. RKTnoob/m2/xx29.jpg RKTnoob/metal2/wall25.jpg
  989. RKTnoob/m2/xx2.jpg RKTnoob/metal2/brick2.jpg
  990. RKTnoob/m2/xx30.jpg RKTnoob/metal2/wall26.jpg
  991. RKTnoob/m2/xx31.jpg RKTnoob/metal2/wall27.jpg
  992. RKTnoob/m2/xx32.jpg RKTnoob/metal2/wall28.jpg
  993. RKTnoob/m2/xx33.jpg RKTnoob/metal2/wall29.jpg
  994. RKTnoob/m2/xx34.jpg RKTnoob/metal2/wall30.jpg
  995. RKTnoob/m2/xx35.jpg RKTnoob/metal2/border1.jpg
  996. RKTnoob/m2/xx36.jpg RKTnoob/metal2/border2.jpg
  997. RKTnoob/m2/xx37.jpg RKTnoob/metal2/wood1.jpg
  998. RKTnoob/m2/xx38.jpg RKTnoob/metal2/wood2.jpg
  999. RKTnoob/m2/xx39.jpg RKTnoob/metal2/brick14.jpg
  1000. RKTnoob/m2/xx3.jpg RKTnoob/metal2/brick3.jpg
  1001. RKTnoob/m2/xx40.jpg RKTnoob/metal2/brick15.jpg
  1002. RKTnoob/m2/xx41.jpg RKTnoob/metal2/brick16.jpg
  1003. RKTnoob/m2/xx42.jpg RKTnoob/metal2/brick17.jpg
  1004. RKTnoob/m2/xx43.jpg RKTnoob/metal2/brick18.jpg
  1005. RKTnoob/m2/xx44.jpg RKTnoob/metal2/brick19.jpg
  1006. RKTnoob/m2/xx45.jpg RKTnoob/metal2/brick20.jpg
  1007. RKTnoob/m2/xx46.jpg RKTnoob/metal2/brick21.jpg
  1008. RKTnoob/m2/xx47.jpg RKTnoob/metal2/brick22.jpg
  1009. RKTnoob/m2/xx48.jpg RKTnoob/metal2/brick23.jpg
  1010. RKTnoob/m2/xx4.jpg RKTnoob/metal2/brick4.jpg
  1011. RKTnoob/m2/xx5.jpg RKTnoob/metal2/brick5.jpg
  1012. RKTnoob/m2/xx6.jpg RKTnoob/metal2/brick6.jpg
  1013. RKTnoob/m2/xx7.jpg RKTnoob/metal2/brick7.jpg
  1014. RKTnoob/m2/xx8.jpg RKTnoob/metal2/brick8.jpg
  1015. RKTnoob/m2/xx9.jpg RKTnoob/metal2/brick9.jpg
  1016. RKTnoob/m/b01.jpg RKTnoob/metal/brick01.jpg
  1017. RKTnoob/m/b02.jpg RKTnoob/metal/brick02.jpg
  1018. RKTnoob/m/b03.jpg RKTnoob/metal/brick03.jpg
  1019. RKTnoob/m/b04.jpg RKTnoob/metal/brick04.jpg
  1020. RKTnoob/m/b05.jpg RKTnoob/metal/brick05.jpg
  1021. RKTnoob/m/b06.jpg RKTnoob/metal/brick06.jpg
  1022. RKTnoob/m/b07.jpg RKTnoob/metal/brick07.jpg
  1023. RKTnoob/m/b08.jpg RKTnoob/metal/brick08.jpg
  1024. RKTnoob/m/b09.jpg RKTnoob/metal/brick09.jpg
  1025. RKTnoob/m/b10.jpg RKTnoob/metal/brick10.jpg
  1026. RKTnoob/m/b11.jpg RKTnoob/metal/brick11.jpg
  1027. RKTnoob/m/b12.jpg RKTnoob/metal/brick12.jpg
  1028. RKTnoob/m/b13.jpg RKTnoob/metal/brick13.jpg
  1029. RKTnoob/m/b14.jpg RKTnoob/metal/brick14.jpg
  1030. RKTnoob/m/b15.jpg RKTnoob/metal/brick15.jpg
  1031. RKTnoob/m/b16.jpg RKTnoob/metal/brick16.jpg
  1032. RKTnoob/m/b17.jpg RKTnoob/metal/brick17.jpg
  1033. RKTnoob/m/b18.jpg RKTnoob/metal/brick18.jpg
  1034. RKTnoob/m/b19.jpg RKTnoob/metal/brick19.jpg
  1035. RKTnoob/m/crate1.jpg RKTnoob/metal/crate1.jpg
  1036. RKTnoob/m/crate2.jpg RKTnoob/metal/crate2.jpg
  1037. RKTnoob/m/crate3.jpg RKTnoob/metal/crate3.jpg
  1038. RKTnoob/m/crate4.jpg RKTnoob/metal/crate4.jpg
  1039. RKTnoob/m/g01.jpg RKTnoob/metal/green01.jpg
  1040. RKTnoob/m/g02.jpg RKTnoob/metal/green02.jpg
  1041. RKTnoob/m/g03.jpg RKTnoob/metal/green03.jpg
  1042. RKTnoob/m/g04.jpg RKTnoob/metal/green04.jpg
  1043. RKTnoob/m/g05.jpg RKTnoob/metal/green05.jpg
  1044. RKTnoob/m/r01.jpg RKTnoob/metal/red01.jpg
  1045. RKTnoob/m/r02.jpg RKTnoob/metal/red02.jpg
  1046. RKTnoob/m/r03.jpg RKTnoob/metal/red03.jpg
  1047. RKTnoob/m/r04.jpg RKTnoob/metal/red04.jpg
  1048. RKTnoob/m/r05.jpg RKTnoob/metal/red05.jpg
  1049. RKTnoob/m/r06.jpg RKTnoob/metal/red06.jpg
  1050. RKTnoob/m/r07.jpg RKTnoob/metal/red07.jpg
  1051. RKTnoob/m/r08.jpg RKTnoob/metal/red08.jpg
  1052. RKTnoob/m/r09.jpg RKTnoob/metal/red09.jpg
  1053. RKTnoob/m/r10.jpg RKTnoob/metal/red10.jpg
  1054. RKTnoob/m/r11.jpg RKTnoob/metal/red11.jpg
  1055. RKTnoob/m/x01.jpg RKTnoob/metal/misc01.jpg
  1056. RKTnoob/m/x02.jpg RKTnoob/metal/misc02.jpg
  1057. RKTnoob/m/x03.jpg RKTnoob/metal/misc03.jpg
  1058. RKTnoob/m/x04.jpg RKTnoob/metal/misc04.jpg
  1059. RKTnoob/m/x05.jpg RKTnoob/metal/misc05.jpg
  1060. RKTnoob/m/x06b.jpg RKTnoob/metal/misc06b.jpg
  1061. RKTnoob/m/x06.jpg RKTnoob/metal/misc06.jpg
  1062. RKTnoob/m/x07.jpg RKTnoob/metal/misc07.jpg
  1063. RKTnoob/m/x08.jpg RKTnoob/metal/misc08.jpg
  1064. RKTnoob/m/x09.jpg RKTnoob/metal/misc09.jpg
  1065. RKTnoob/m/x10.jpg RKTnoob/metal/misc10.jpg
  1066. RKTnoob/m/x11.jpg RKTnoob/metal/misc11.jpg
  1067. RKTnoob/m/x12.jpg RKTnoob/metal/misc12.jpg
  1068. RKTnoob/m/x13.jpg RKTnoob/metal/misc13.jpg
  1069. RKTnoob/m/x14.jpg RKTnoob/metal/misc14.jpg
  1070. RKTnoob/m/x15.jpg RKTnoob/metal/misc15.jpg
  1071. RKTnoob/m/x16.jpg RKTnoob/metal/misc16.jpg
  1072. RKTnoob/m/y01.jpg RKTnoob/metal/yellow01.jpg
  1073. RKTnoob/m/y02.jpg RKTnoob/metal/yellow02.jpg
  1074. RKTnoob/m/y03.jpg RKTnoob/metal/yellow03.jpg
  1075. RKTnoob/m/y04.jpg RKTnoob/metal/yellow04.jpg
  1076. RKTnoob/m/y05.jpg RKTnoob/metal/yellow05.jpg
  1077. RKTnoob/m/y06.jpg RKTnoob/metal/yellow06.jpg
  1078. RKTnoob/o/a1.jpg RKTnoob/open/wall1.jpg
  1079. RKTnoob/o/a2.jpg RKTnoob/open/wall2.jpg
  1080. RKTnoob/o/a3.jpg RKTnoob/open/floor1.jpg
  1081. RKTnoob/o/a4.jpg RKTnoob/open/wall3.jpg
  1082. RKTnoob/o/a5.jpg RKTnoob/open/wood1.jpg
  1083. RKTnoob/o/a6.jpg RKTnoob/open/wall4.jpg
  1084. RKTnoob/o/box_r.jpg RKTnoob/open/fakebox.jpg
  1085. RKTnoob/pinyin/a17.jpg RKTnoob/pinyin/tiles1.jpg
  1086. RKTnoob/pinyin/a18.jpg RKTnoob/pinyin/tiles2.jpg
  1087. RKTnoob/pinyin/a19.jpg RKTnoob/pinyin/tiles3.jpg
  1088. RKTnoob/pinyin/a20.jpg RKTnoob/pinyin/tiles4.jpg
  1089. RKTnoob/pinyin/a21.jpg RKTnoob/pinyin/tiles5.jpg
  1090. RKTnoob/pinyin/a22.jpg RKTnoob/pinyin/facade4.jpg
  1091. RKTnoob/pinyin/a23.jpg RKTnoob/pinyin/wall1.jpg
  1092. RKTnoob/pinyin/a26.jpg RKTnoob/pinyin/wall3.jpg
  1093. RKTnoob/pinyin/a27.jpg RKTnoob/pinyin/border2.jpg
  1094. RKTnoob/pinyin/a7.jpg RKTnoob/pinyin/facade1.jpg
  1095. RKTnoob/pinyin/a8.jpg RKTnoob/pinyin/facade2.jpg
  1096. RKTnoob/pinyin/a9.jpg RKTnoob/pinyin/facade3.jpg
  1097. RKTnoob/s1.jpg RKTnoob/special1.jpg
  1098. RKTnoob/s2.jpg RKTnoob/special2.jpg
  1099. RKTnoob/s3.jpg RKTnoob/special3.jpg
  1100. RKTnoob/s4.jpg RKTnoob/special4.jpg
  1101. RKTnoob/s5.jpg RKTnoob/special5.jpg
  1102. RKTnoob/s6.jpg RKTnoob/special6.jpg
  1103. RKTnoob/s7.jpg RKTnoob/special7.jpg
  1104. RKTnoob/sf2/c10.png RKTnoob/scifi2/rivet10.png
  1105. RKTnoob/sf2/c11.png RKTnoob/scifi2/rivet11.png
  1106. RKTnoob/sf2/c12.png RKTnoob/scifi2/rivet12.png
  1107. RKTnoob/sf2/c1.png RKTnoob/scifi2/rivet1.png
  1108. RKTnoob/sf2/c2.png RKTnoob/scifi2/rivet2.png
  1109. RKTnoob/sf2/c3.png RKTnoob/scifi2/rivet3.png
  1110. RKTnoob/sf2/c4.png RKTnoob/scifi2/rivet4.png
  1111. RKTnoob/sf2/c5.png RKTnoob/scifi2/rivet5.png
  1112. RKTnoob/sf2/c6.png RKTnoob/scifi2/rivet6.png
  1113. RKTnoob/sf2/c7.png RKTnoob/scifi2/rivet7.png
  1114. RKTnoob/sf2/c8.png RKTnoob/scifi2/rivet8.png
  1115. RKTnoob/sf2/c9.png RKTnoob/scifi2/rivet9.png
  1116. RKTnoob/sf2/ee.png RKTnoob/scifi2/easteregg.png
  1117. RKTnoob/sf/b1.jpg RKTnoob/scifi/box1.jpg
  1118. RKTnoob/sf/b2.jpg RKTnoob/scifi/box2.jpg
  1119. RKTnoob/sf/b3.jpg RKTnoob/scifi/box3.jpg
  1120. RKTnoob/sf/b4.jpg RKTnoob/scifi/box4.jpg
  1121. RKTnoob/sf/d1.jpg RKTnoob/scifi/door1.jpg
  1122. RKTnoob/sf/d2.jpg RKTnoob/scifi/door2.jpg
  1123. RKTnoob/sf/d3.jpg RKTnoob/scifi/door3.jpg
  1124. RKTnoob/sf/d4.jpg RKTnoob/scifi/door4.jpg
  1125. RKTnoob/sf/d5.jpg RKTnoob/scifi/door5.jpg
  1126. RKTnoob/sf/d6.jpg RKTnoob/scifi/door6.jpg
  1127. RKTnoob/sf/f10.jpg RKTnoob/scifi/floor10.jpg
  1128. RKTnoob/sf/f11.jpg RKTnoob/scifi/floor11.jpg
  1129. RKTnoob/sf/f12.jpg RKTnoob/scifi/floor12.jpg
  1130. RKTnoob/sf/f13.jpg RKTnoob/scifi/floor13.jpg
  1131. RKTnoob/sf/f14.jpg RKTnoob/scifi/floor14.jpg
  1132. RKTnoob/sf/f15.jpg RKTnoob/scifi/floor15.jpg
  1133. RKTnoob/sf/f16.jpg RKTnoob/scifi/floor16.jpg
  1134. RKTnoob/sf/f17.jpg RKTnoob/scifi/floor17.jpg
  1135. RKTnoob/sf/f18.jpg RKTnoob/scifi/floor18.jpg
  1136. RKTnoob/sf/f19.jpg RKTnoob/scifi/floor19.jpg
  1137. RKTnoob/sf/f1.jpg RKTnoob/scifi/floor1.jpg
  1138. RKTnoob/sf/f20.jpg RKTnoob/scifi/floor20.jpg
  1139. RKTnoob/sf/f21.jpg RKTnoob/scifi/floor21.jpg
  1140. RKTnoob/sf/f22.jpg RKTnoob/scifi/floor22.jpg
  1141. RKTnoob/sf/f23.jpg RKTnoob/scifi/floor23.jpg
  1142. RKTnoob/sf/f24.jpg RKTnoob/scifi/floor24.jpg
  1143. RKTnoob/sf/f25.jpg RKTnoob/scifi/floor25.jpg
  1144. RKTnoob/sf/f26.jpg RKTnoob/scifi/floor26.jpg
  1145. RKTnoob/sf/f27.jpg RKTnoob/scifi/floor27.jpg
  1146. RKTnoob/sf/f28.jpg RKTnoob/scifi/floor28.jpg
  1147. RKTnoob/sf/f29.jpg RKTnoob/scifi/floor29.jpg
  1148. RKTnoob/sf/f2.jpg RKTnoob/scifi/floor2.jpg
  1149. RKTnoob/sf/f30.jpg RKTnoob/scifi/floor30.jpg
  1150. RKTnoob/sf/f31.jpg RKTnoob/scifi/floor31.jpg
  1151. RKTnoob/sf/f32.jpg RKTnoob/scifi/floor32.jpg
  1152. RKTnoob/sf/f33.jpg RKTnoob/scifi/floor33.jpg
  1153. RKTnoob/sf/f34.jpg RKTnoob/scifi/floor34.jpg
  1154. RKTnoob/sf/f35.jpg RKTnoob/scifi/floor35.jpg
  1155. RKTnoob/sf/f36.jpg RKTnoob/scifi/floor36.jpg
  1156. RKTnoob/sf/f37.jpg RKTnoob/scifi/floor37.jpg
  1157. RKTnoob/sf/f38.jpg RKTnoob/scifi/floor38.jpg
  1158. RKTnoob/sf/f39.jpg RKTnoob/scifi/floor39.jpg
  1159. RKTnoob/sf/f3.jpg RKTnoob/scifi/floor3.jpg
  1160. RKTnoob/sf/f40.jpg RKTnoob/scifi/floor40.jpg
  1161. RKTnoob/sf/f41.jpg RKTnoob/scifi/floor41.jpg
  1162. RKTnoob/sf/f42.jpg RKTnoob/scifi/floor42.jpg
  1163. RKTnoob/sf/f43.jpg RKTnoob/scifi/floor43.jpg
  1164. RKTnoob/sf/f44.jpg RKTnoob/scifi/floor44.jpg
  1165. RKTnoob/sf/f45.jpg RKTnoob/scifi/floor45.jpg
  1166. RKTnoob/sf/f46.jpg RKTnoob/scifi/floor46.jpg
  1167. RKTnoob/sf/f47.jpg RKTnoob/scifi/floor47.jpg
  1168. RKTnoob/sf/f48.jpg RKTnoob/scifi/floor48.jpg
  1169. RKTnoob/sf/f49.jpg RKTnoob/scifi/floor49.jpg
  1170. RKTnoob/sf/f4.jpg RKTnoob/scifi/floor4.jpg
  1171. RKTnoob/sf/f50.jpg RKTnoob/scifi/floor50.jpg
  1172. RKTnoob/sf/f51.jpg RKTnoob/scifi/floor51.jpg
  1173. RKTnoob/sf/f52.jpg RKTnoob/scifi/floor52.jpg
  1174. RKTnoob/sf/f53.jpg RKTnoob/scifi/floor53.jpg
  1175. RKTnoob/sf/f54.jpg RKTnoob/scifi/floor54.jpg
  1176. RKTnoob/sf/f55.jpg RKTnoob/scifi/floor55.jpg
  1177. RKTnoob/sf/f56.jpg RKTnoob/scifi/floor56.jpg
  1178. RKTnoob/sf/f57.jpg RKTnoob/scifi/floor57.jpg
  1179. RKTnoob/sf/f58.jpg RKTnoob/scifi/floor58.jpg
  1180. RKTnoob/sf/f5.jpg RKTnoob/scifi/floor5.jpg
  1181. RKTnoob/sf/f6.jpg RKTnoob/scifi/floor6.jpg
  1182. RKTnoob/sf/f7.jpg RKTnoob/scifi/floor7.jpg
  1183. RKTnoob/sf/f8.jpg RKTnoob/scifi/floor8.jpg
  1184. RKTnoob/sf/f9.jpg RKTnoob/scifi/floor9.jpg
  1185. RKTnoob/sf/l10.jpg RKTnoob/scifi/line10.jpg
  1186. RKTnoob/sf/l11.jpg RKTnoob/scifi/line11.jpg
  1187. RKTnoob/sf/l12.jpg RKTnoob/scifi/line12.jpg
  1188. RKTnoob/sf/l13.jpg RKTnoob/scifi/line13.jpg
  1189. RKTnoob/sf/l14.jpg RKTnoob/scifi/line14.jpg
  1190. RKTnoob/sf/l15.jpg RKTnoob/scifi/line15.jpg
  1191. RKTnoob/sf/l16.jpg RKTnoob/scifi/line16.jpg
  1192. RKTnoob/sf/l17.jpg RKTnoob/scifi/line17.jpg
  1193. RKTnoob/sf/l18.jpg RKTnoob/scifi/line18.jpg
  1194. RKTnoob/sf/l19.jpg RKTnoob/scifi/line19.jpg
  1195. RKTnoob/sf/l1.jpg RKTnoob/scifi/line1.jpg
  1196. RKTnoob/sf/l20.jpg RKTnoob/scifi/line20.jpg
  1197. RKTnoob/sf/l21.jpg RKTnoob/scifi/line21.jpg
  1198. RKTnoob/sf/l22.jpg RKTnoob/scifi/line22.jpg
  1199. RKTnoob/sf/l23.jpg RKTnoob/scifi/line23.jpg
  1200. RKTnoob/sf/l24.jpg RKTnoob/scifi/line24.jpg
  1201. RKTnoob/sf/l25.jpg RKTnoob/scifi/line25.jpg
  1202. RKTnoob/sf/l26.jpg RKTnoob/scifi/line26.jpg
  1203. RKTnoob/sf/l27.jpg RKTnoob/scifi/line27.jpg
  1204. RKTnoob/sf/l28.jpg RKTnoob/scifi/line28.jpg
  1205. RKTnoob/sf/l29.jpg RKTnoob/scifi/line29.jpg
  1206. RKTnoob/sf/l2.jpg RKTnoob/scifi/line2.jpg
  1207. RKTnoob/sf/l30.jpg RKTnoob/scifi/line30.jpg
  1208. RKTnoob/sf/l31.jpg RKTnoob/scifi/line31.jpg
  1209. RKTnoob/sf/l32.jpg RKTnoob/scifi/line32.jpg
  1210. RKTnoob/sf/l33.jpg RKTnoob/scifi/line33.jpg
  1211. RKTnoob/sf/l34.jpg RKTnoob/scifi/line34.jpg
  1212. RKTnoob/sf/l35.jpg RKTnoob/scifi/line35.jpg
  1213. RKTnoob/sf/l36.jpg RKTnoob/scifi/line36.jpg
  1214. RKTnoob/sf/l37.jpg RKTnoob/scifi/line37.jpg
  1215. RKTnoob/sf/l38.jpg RKTnoob/scifi/line38.jpg
  1216. RKTnoob/sf/l39.jpg RKTnoob/scifi/line39.jpg
  1217. RKTnoob/sf/l3.jpg RKTnoob/scifi/line3.jpg
  1218. RKTnoob/sf/l40.jpg RKTnoob/scifi/line40.jpg
  1219. RKTnoob/sf/l41.jpg RKTnoob/scifi/line41.jpg
  1220. RKTnoob/sf/l42.jpg RKTnoob/scifi/line42.jpg
  1221. RKTnoob/sf/l43.jpg RKTnoob/scifi/line43.jpg
  1222. RKTnoob/sf/l44.jpg RKTnoob/scifi/line44.jpg
  1223. RKTnoob/sf/l45.jpg RKTnoob/scifi/line45.jpg
  1224. RKTnoob/sf/l46.jpg RKTnoob/scifi/line46.jpg
  1225. RKTnoob/sf/l47.jpg RKTnoob/scifi/line47.jpg
  1226. RKTnoob/sf/l48.jpg RKTnoob/scifi/line48.jpg
  1227. RKTnoob/sf/l4.jpg RKTnoob/scifi/line4.jpg
  1228. RKTnoob/sf/l5.jpg RKTnoob/scifi/line5.jpg
  1229. RKTnoob/sf/l6.jpg RKTnoob/scifi/line6.jpg
  1230. RKTnoob/sf/l7.jpg RKTnoob/scifi/line7.jpg
  1231. RKTnoob/sf/l8.jpg RKTnoob/scifi/line8.jpg
  1232. RKTnoob/sf/l9.jpg RKTnoob/scifi/line9.jpg
  1233. RKTnoob/sf/m1.jpg RKTnoob/scifi/mesh1.jpg
  1234. RKTnoob/sf/m2.jpg RKTnoob/scifi/mesh2.jpg
  1235. RKTnoob/sf/m3.jpg RKTnoob/scifi/mesh3.jpg
  1236. RKTnoob/sf/m4.jpg RKTnoob/scifi/mesh4.jpg
  1237. RKTnoob/sf/m5.jpg RKTnoob/scifi/mesh5.jpg
  1238. RKTnoob/sf/m6.jpg RKTnoob/scifi/mesh6.jpg
  1239. RKTnoob/sf/r1.jpg RKTnoob/scifi/border1.jpg
  1240. RKTnoob/sf/r2.jpg RKTnoob/scifi/border2.jpg
  1241. RKTnoob/sf/s10.jpg RKTnoob/scifi/console10.jpg
  1242. RKTnoob/sf/s11.jpg RKTnoob/scifi/console11.jpg
  1243. RKTnoob/sf/s12.jpg RKTnoob/scifi/console12.jpg
  1244. RKTnoob/sf/s13.jpg RKTnoob/scifi/console13.jpg
  1245. RKTnoob/sf/s14.jpg RKTnoob/scifi/console14.jpg
  1246. RKTnoob/sf/s15.jpg RKTnoob/scifi/console15.jpg
  1247. RKTnoob/sf/s16.jpg RKTnoob/scifi/console16.jpg
  1248. RKTnoob/sf/s1.jpg RKTnoob/scifi/console1.jpg
  1249. RKTnoob/sf/s2.jpg RKTnoob/scifi/console2.jpg
  1250. RKTnoob/sf/s3.jpg RKTnoob/scifi/console3.jpg
  1251. RKTnoob/sf/s4.jpg RKTnoob/scifi/console4.jpg
  1252. RKTnoob/sf/s5.jpg RKTnoob/scifi/console5.jpg
  1253. RKTnoob/sf/s6.jpg RKTnoob/scifi/console6.jpg
  1254. RKTnoob/sf/s7.jpg RKTnoob/scifi/console7.jpg
  1255. RKTnoob/sf/s8.jpg RKTnoob/scifi/console8.jpg
  1256. RKTnoob/sf/s9.jpg RKTnoob/scifi/console9.jpg
  1257. RKTnoob/sf/w10.jpg RKTnoob/scifi/wall10.jpg
  1258. RKTnoob/sf/w11.jpg RKTnoob/scifi/wall11.jpg
  1259. RKTnoob/sf/w12.jpg RKTnoob/scifi/wall12.jpg
  1260. RKTnoob/sf/w13.jpg RKTnoob/scifi/wall13.jpg
  1261. RKTnoob/sf/w14.jpg RKTnoob/scifi/wall14.jpg
  1262. RKTnoob/sf/w15.jpg RKTnoob/scifi/wall15.jpg
  1263. RKTnoob/sf/w16.jpg RKTnoob/scifi/wall16.jpg
  1264. RKTnoob/sf/w17.jpg RKTnoob/scifi/wall17.jpg
  1265. RKTnoob/sf/w18.jpg RKTnoob/scifi/wall18.jpg
  1266. RKTnoob/sf/w19.jpg RKTnoob/scifi/wall19.jpg
  1267. RKTnoob/sf/w1.jpg RKTnoob/scifi/wall1.jpg
  1268. RKTnoob/sf/w20.jpg RKTnoob/scifi/wall20.jpg
  1269. RKTnoob/sf/w21.jpg RKTnoob/scifi/wall21.jpg
  1270. RKTnoob/sf/w22.jpg RKTnoob/scifi/wall22.jpg
  1271. RKTnoob/sf/w23.jpg RKTnoob/scifi/wall23.jpg
  1272. RKTnoob/sf/w24.jpg RKTnoob/scifi/wall24.jpg
  1273. RKTnoob/sf/w25.jpg RKTnoob/scifi/wall25.jpg
  1274. RKTnoob/sf/w26.jpg RKTnoob/scifi/wall26.jpg
  1275. RKTnoob/sf/w27.jpg RKTnoob/scifi/wall27.jpg
  1276. RKTnoob/sf/w28.jpg RKTnoob/scifi/wall28.jpg
  1277. RKTnoob/sf/w2.jpg RKTnoob/scifi/wall2.jpg
  1278. RKTnoob/sf/w3.jpg RKTnoob/scifi/wall3.jpg
  1279. RKTnoob/sf/w4.jpg RKTnoob/scifi/wall4.jpg
  1280. RKTnoob/sf/w5.jpg RKTnoob/scifi/wall5.jpg
  1281. RKTnoob/sf/w6.jpg RKTnoob/scifi/wall6.jpg
  1282. RKTnoob/sf/w7.jpg RKTnoob/scifi/wall7.jpg
  1283. RKTnoob/sf/w8.jpg RKTnoob/scifi/wall8.jpg
  1284. RKTnoob/sf/w9.jpg RKTnoob/scifi/wall9.jpg
  1285. RKTnoob/sf/x10.jpg RKTnoob/scifi/border9.jpg
  1286. RKTnoob/sf/x11.jpg RKTnoob/scifi/border10.jpg
  1287. RKTnoob/sf/x12.jpg RKTnoob/scifi/border11.jpg
  1288. RKTnoob/sf/x13.jpg RKTnoob/scifi/border12.jpg
  1289. RKTnoob/sf/x14.jpg RKTnoob/scifi/neon1.jpg
  1290. RKTnoob/sf/x15.jpg RKTnoob/scifi/neon2.jpg
  1291. RKTnoob/sf/x16.jpg RKTnoob/scifi/neon3.jpg
  1292. RKTnoob/sf/x17.jpg RKTnoob/scifi/neon4.jpg
  1293. RKTnoob/sf/x18.jpg RKTnoob/scifi/neon5.jpg
  1294. RKTnoob/sf/x19.jpg RKTnoob/scifi/neon6.jpg
  1295. RKTnoob/sf/x1.jpg RKTnoob/scifi/misc1.jpg
  1296. RKTnoob/sf/x20.jpg RKTnoob/scifi/neon7.jpg
  1297. RKTnoob/sf/x21.jpg RKTnoob/scifi/neon8.jpg
  1298. RKTnoob/sf/x22.jpg RKTnoob/scifi/neon9.jpg
  1299. RKTnoob/sf/x23.jpg RKTnoob/scifi/neon10.jpg
  1300. RKTnoob/sf/x24.jpg RKTnoob/scifi/neon11.jpg
  1301. RKTnoob/sf/x25.jpg RKTnoob/scifi/neon12.jpg
  1302. RKTnoob/sf/x26.jpg RKTnoob/scifi/neon13.jpg
  1303. RKTnoob/sf/x27.jpg RKTnoob/scifi/neon14.jpg
  1304. RKTnoob/sf/x28.jpg RKTnoob/scifi/mesh8.jpg
  1305. RKTnoob/sf/x29.jpg RKTnoob/scifi/mesh9.jpg
  1306. RKTnoob/sf/x2.jpg RKTnoob/scifi/mesh7.jpg
  1307. RKTnoob/sf/x30.jpg RKTnoob/scifi/mesh10.jpg
  1308. RKTnoob/sf/x31.jpg RKTnoob/scifi/neon15.jpg
  1309. RKTnoob/sf/x32.jpg RKTnoob/scifi/neon16.jpg
  1310. RKTnoob/sf/x33.jpg RKTnoob/scifi/neon17.jpg
  1311. RKTnoob/sf/x34.jpg RKTnoob/scifi/neon18.jpg
  1312. RKTnoob/sf/x35.jpg RKTnoob/scifi/neon19.jpg
  1313. RKTnoob/sf/x36.jpg RKTnoob/scifi/neon20.jpg
  1314. RKTnoob/sf/x37.jpg RKTnoob/scifi/neon21.jpg
  1315. RKTnoob/sf/x38.jpg RKTnoob/scifi/neon22.jpg
  1316. RKTnoob/sf/x39.jpg RKTnoob/scifi/neon23.jpg
  1317. RKTnoob/sf/x3.jpg RKTnoob/scifi/misc2.jpg
  1318. RKTnoob/sf/x40.jpg RKTnoob/scifi/border13.jpg
  1319. RKTnoob/sf/x41.jpg RKTnoob/scifi/border14.jpg
  1320. RKTnoob/sf/x42.jpg RKTnoob/scifi/border15.jpg
  1321. RKTnoob/sf/x43.jpg RKTnoob/scifi/border16.jpg
  1322. RKTnoob/sf/x44.jpg RKTnoob/scifi/border17.jpg
  1323. RKTnoob/sf/x45.jpg RKTnoob/scifi/border18.jpg
  1324. RKTnoob/sf/x46.jpg RKTnoob/scifi/border19.jpg
  1325. RKTnoob/sf/x47.jpg RKTnoob/scifi/border20.jpg
  1326. RKTnoob/sf/x48.jpg RKTnoob/scifi/border21.jpg
  1327. RKTnoob/sf/x49.jpg RKTnoob/scifi/border22.jpg
  1328. RKTnoob/sf/x4.jpg RKTnoob/scifi/border3.jpg
  1329. RKTnoob/sf/x5.jpg RKTnoob/scifi/border4.jpg
  1330. RKTnoob/sf/x6.jpg RKTnoob/scifi/border5.jpg
  1331. RKTnoob/sf/x7.jpg RKTnoob/scifi/border6.jpg
  1332. RKTnoob/sf/x8.jpg RKTnoob/scifi/border7.jpg
  1333. RKTnoob/sf/x9.jpg RKTnoob/scifi/border8.jpg
  1334. RKTnoob/w1.jpg RKTnoob/wood1.jpg
  1335. RKTnoob/w2.jpg RKTnoob/wood2.jpg
  1336. RKTnoob/w3.jpg RKTnoob/wood3.jpg
  1337. RKTnoob/w4.jpg RKTnoob/wood4.jpg
  1338. RKTnoob/w5.jpg RKTnoob/wood5.jpg
  1339. RKTnoob/w6.jpg RKTnoob/wood6.jpg
  1340. RKTnoob/w7.jpg RKTnoob/wood7.jpg
  1341. RKTnoob/x10.jpg RKTnoob/misc10.jpg
  1342. RKTnoob/x11.jpg RKTnoob/misc11.jpg
  1343. RKTnoob/x12.jpg RKTnoob/misc12.jpg
  1344. RKTnoob/x13.jpg RKTnoob/misc13.jpg
  1345. RKTnoob/x14.jpg RKTnoob/misc14.jpg
  1346. RKTnoob/x15.jpg RKTnoob/misc15.jpg
  1347. RKTnoob/x16.jpg RKTnoob/misc16.jpg
  1348. RKTnoob/x17.jpg RKTnoob/misc17.jpg
  1349. RKTnoob/x18.jpg RKTnoob/misc18.jpg
  1350. RKTnoob/x19.jpg RKTnoob/misc19.jpg
  1351. RKTnoob/x1.jpg RKTnoob/misc1.jpg
  1352. RKTnoob/x20.jpg RKTnoob/misc20.jpg
  1353. RKTnoob/x21.jpg RKTnoob/misc21.jpg
  1354. RKTnoob/x22.jpg RKTnoob/misc22.jpg
  1355. RKTnoob/x23.jpg RKTnoob/misc23.jpg
  1356. RKTnoob/x24.jpg RKTnoob/misc24.jpg
  1357. RKTnoob/x25.jpg RKTnoob/misc25.jpg
  1358. RKTnoob/x26.jpg RKTnoob/misc26.jpg
  1359. RKTnoob/x27.jpg RKTnoob/misc27.jpg
  1360. RKTnoob/x28.jpg RKTnoob/misc28.jpg
  1361. RKTnoob/x29.jpg RKTnoob/misc29.jpg
  1362. RKTnoob/x2.jpg RKTnoob/misc2.jpg
  1363. RKTnoob/x30.jpg RKTnoob/misc30.jpg
  1364. RKTnoob/x31.jpg RKTnoob/misc31.jpg
  1365. RKTnoob/x32.jpg RKTnoob/misc32.jpg
  1366. RKTnoob/x33.jpg RKTnoob/misc33.jpg
  1367. RKTnoob/x3.jpg RKTnoob/misc3.jpg
  1368. RKTnoob/x4.jpg RKTnoob/misc4.jpg
  1369. RKTnoob/x5.jpg RKTnoob/misc5.jpg
  1370. RKTnoob/x6.jpg RKTnoob/misc6.jpg
  1371. RKTnoob/x7.jpg RKTnoob/misc7.jpg
  1372. RKTnoob/x8.jpg RKTnoob/misc8.jpg
  1373. RKTnoob/x9.jpg RKTnoob/misc9.jpg
  1374. cleaner/egyptsoc/032-03c.jpg cube/egyptsoc/032-03c.jpg
  1375. cleaner/egyptsoc/032-04a.jpg cube/egyptsoc/032-04a.jpg
  1376. cleaner/egyptsoc/032-05d.jpg cube/egyptsoc/032-05d.jpg
  1377. cleaner/egyptsoc/048-02h.jpg cube/egyptsoc/048-02h.jpg
  1378. cleaner/egyptsoc/064-02b.jpg cube/egyptsoc/064-02b.jpg
  1379. cleaner/egyptsoc/064-03a.jpg cube/egyptsoc/064-03a.jpg
  1380. cleaner/egyptsoc/128-02a.jpg cube/egyptsoc/128-02a.jpg
  1381. cleaner/egyptsoc/128-04a.jpg cube/egyptsoc/128-04a.jpg
  1382. cleaner/egyptsoc/256-01a.jpg cube/egyptsoc/256-01a.jpg
  1383. cleaner/egyptsoc/256-03b.jpg cube/egyptsoc/256-03b.jpg
  1384. cleaner/egyptsoc/block01a.jpg cube/egyptsoc/block01a.jpg
  1385. cleaner/egyptsoc/block07b.jpg cube/egyptsoc/block07b.jpg
  1386. cleaner/egyptsoc/block10c.jpg cube/egyptsoc/block10c.jpg
  1387. cleaner/egyptsoc/lig_032-03b1.jpg cube/egyptsoc/lig_032-03b1.jpg
  1388. cleaner/egyptsoc/lig_032-03r1.jpg cube/egyptsoc/lig_032-03r1.jpg
  1389. cleaner/egyptsoc/lig_032-04b1.jpg cube/egyptsoc/lig_032-04b1.jpg
  1390. cleaner/egyptsoc/lig_032-04r1.jpg cube/egyptsoc/lig_032-04r1.jpg
  1391. cleaner/egyptsoc/lig_064-01b1.jpg cube/egyptsoc/lig_064-01b1.jpg
  1392. cleaner/egyptsoc/lig_128-05b1.jpg cube/egyptsoc/lig_128-05b1.jpg
  1393. cleaner/egyptsoc/s064-01e.jpg cube/egyptsoc/s064-01e.jpg
  1394. cleaner/egyptsoc/s064-03a.jpg cube/egyptsoc/s064-03a.jpg
  1395. cleaner/egyptsoc/s064-05c.jpg cube/egyptsoc/s064-05c.jpg
  1396. cleaner/egyptsoc/s064-05f.jpg cube/egyptsoc/s064-05f.jpg
  1397. cleaner/egyptsoc/solidgrate1b.jpg cube/egyptsoc/solidgrate1b.jpg
  1398. cleaner/egyptsoc/stone01a.jpg cube/egyptsoc/stone01a.jpg
  1399. cleaner/egyptsoc/stone01b.jpg cube/egyptsoc/stone01b.jpg
  1400. cleaner/egyptsoc/stone01d.jpg cube/egyptsoc/stone01d.jpg
  1401. cleaner/egyptsoc/stone02b.jpg cube/egyptsoc/stone02b.jpg
  1402. cleaner/egyptsoc/stone03b.jpg cube/egyptsoc/stone03b.jpg
  1403. cleaner/egyptsoc/stone04b.jpg cube/egyptsoc/stone04b.jpg
  1404. cleaner/egyptsoc/stone04d.jpg cube/egyptsoc/stone04d.jpg
  1405. cleaner/egyptsoc/stone10b.jpg cube/egyptsoc/stone10b.jpg
  1406. cleaner/egyptsoc/stone10d.jpg cube/egyptsoc/stone10d.jpg
  1407. cleaner/egyptsoc/v064-01b.jpg cube/egyptsoc/v064-01b.jpg
  1408. cleaner/egyptsoc/v096-01b.jpg cube/egyptsoc/v096-01b.jpg
  1409. cleaner/egyptsoc/v128-03a.jpg cube/egyptsoc/v128-03a.jpg
  1410. cleaner/egyptsoc/woodmgrid1a.jpg cube/egyptsoc/woodmgrid1a.jpg
  1411. cleaner/ikbase/ik_cwall06a.jpg cube/ikbase/ik_cwall06a.jpg
  1412. cleaner/jf1/jf32.jpg cube/jf1/jf32.jpg
  1413. cleaner/jf1/jfflr.jpg cube/jf1/jfflr.jpg
  1414. cleaner/jf1/jfgrid.jpg cube/jf1/jfgrid.jpg
  1415. exoduss/256-01a.jpg cube/egyptsoc/256-01a.jpg
  1416. exoduss/lol5.jpg cube/ik2k/ik_brick_6464a.jpg
  1417. exoduss/lol6.jpg cube/ik2k/ik_brick_6464c.jpg
  1418. exoduss/text16.jpg cube/dg/floor_pavement_stone4_4moss.jpg
  1419. exoduss/text25.jpg cube/dg/floor_pavement_stone4_2.jpg
  1420. exoduss/text26.jpg cube/dg/floor_pavement_stone4_3.jpg
  1421. exoduss/text34.jpg cube/dg/mur059.jpg
  1422. exoduss/text39.jpg cube/egyptsoc/128-02a.jpg
  1423. exoduss/text40.jpg cube/ik2k/ik_floor_brick128a.jpg
  1424. exoduss/text41.jpg cube/ik2k/ik_floor_brick128b.jpg
  1425. exoduss/text42.jpg cube/payne/SlimyTile02_128x128.jpg
  1426. exoduss/text43.jpg cube/ik2k/ik_floor_tile128b.jpg
  1427. exoduss/text44.jpg cube/schwenz/dt_tile_check.01.jpg
  1428. exoduss/text5.jpg cube/dg/mur079.jpg
  1429. cleaner/dg/mot067.jpg cube/dg/mot067.jpg
  1430. cleaner/dg/mot190.jpg cube/dg/mot190.jpg
  1431. cleaner/dg/mur013.jpg cube/dg/mur013.jpg
  1432. cleaner/dg/muv204.jpg cube/dg/muv204.jpg
  1433. cleaner/dust/256_iv_floor01.jpg cube/rorschach/256_iv_floor01.jpg
  1434. cleaner/g-pack/g-floor01.jpg cube/g-pack/g-floor01.jpg
  1435. cleaner/lunaran/hexflr1_d.jpg cube/lunaran/hexflr1_d.jpg
  1436. exoduss/lol4.jpg cube/egyptsoc/032-01a.jpg
  1437. exoduss/lol1.jpg cube/dg/sue011.jpg
  1438. exoduss/lol2.jpg cube/dg/floor_pavement_stone5_2.jpg
  1439. exoduss/lol3.jpg cube/egyptsoc/032-04a.jpg
  1440. ice/brick.jpg cube/aftas/par10_a.jpg
  1441. ice/brick2.jpg cube/aftas/par10_c.jpg
  1442. ice/ceiling.jpg cube/evil_textures/e7bricks01.jpg
  1443. ice/door.jpg cube/mitaman/mm-metalpanel-b.jpg
  1444. ice/tile.jpg cube/payne/SlimyTile02_128x128.jpg
  1445. ice/wall.jpg cube/evil_textures/e7walldesign01b.jpg
  1446. ac_archives/bookshelves_1.jpg zero/ac_archives/bookshelves_1.jpg
  1447. ac_archives/bookshelves_1_2.jpg zero/ac_archives/bookshelves_1_2.jpg
  1448. ac_archives/bookshelves_2.jpg zero/ac_archives/bookshelves_2.jpg
  1449. ac_archives/bookshelves_3.jpg zero/ac_archives/bookshelves_3.jpg
  1450. ac_archives/bookshelves_4.jpg zero/ac_archives/bookshelves_4.jpg
  1451. ac_archives/bookshelves_4_2.jpg zero/ac_archives/bookshelves_4_2.jpg
  1452. ac_archives/bookshelves_5.jpg zero/ac_archives/bookshelves_5.jpg
  1453. ac_archives/carpet2.jpg zero/ac_library/carpet.jpg
  1454. ac_archives/floor_1.jpg zero/ac_archives/floor_1.jpg
  1455. ac_archives/floor_2.jpg zero/ac_archives/floor_2.jpg
  1456. ac_archives/flowerbed.jpg zero/ac_archives/flowerbed.jpg
  1457. ac_archives/stone1.jpg zero/ac_archives/stone1.jpg
  1458. ac_library/bookcase1.jpg zero/ac_library/bookcase1.jpg
  1459. ac_library/bookcase2.jpg zero/ac_library/bookcase2.jpg
  1460. ac_library/bookcase3.jpg zero/ac_library/bookcase3.jpg
  1461. ac_library/bookcase4.jpg zero/ac_library/bookcase4.jpg
  1462. ac_library/carpet1.jpg zero/ac_library/carpet.jpg
  1463. ac_library/stairs1.jpg zero/ac_library/stairs1.jpg
  1464. ac_library/stone1.jpg zero/ac_library/stone1.jpg
  1465. ac_library/wood1.jpg zero/ac_library/wood1.jpg
  1466. ac_library/wood2.jpg zero/ac_library/wood_h.jpg
  1467. ac_library/wood3.jpg zero/ac_library/wood_v.jpg
  1468. ac_roots/bricksmall0007_blue.jpg zero/ac_roots/bricksmall0007_blue.jpg
  1469. ac_roots/doorsgarage0195_b.jpg zero/ac_roots/doorsgarage0195_b.jpg
  1470. ac_roots/doorsgarage0195_blue.jpg zero/ac_roots/doorsgarage0195_blue.jpg
  1471. ac_roots/metal026b.jpg zero/ac_roots/metal026b.jpg
  1472. ac_roots/rooftiles.jpg zero/ac_roots/rooftiles.jpg
  1473. ac_roots/rooftiles_trim.jpg zero/ac_roots/rooftiles_trim.jpg
  1474. ac_roots/stonewall_4ivy.jpg zero/ac_roots/stonewall_4ivy.jpg
  1475. ac_roots/stonewall_4ivy2.jpg zero/ac_roots/stonewall_4ivy2.jpg
  1476. ac_roots/stonewall_4ivy3.jpg zero/ac_roots/stonewall_4ivy3.jpg
  1477. ac_roots1.3/stonewall_4ivyred.jpg zero/ac_roots1.3/stonewall_4ivyred.jpg
  1478. ac_roots1.3/stonewall_4ivyred2.jpg zero/ac_roots1.3/stonewall_4ivyred2.jpg
  1479. ac_roots1.3/stonewall_4ivyred3.jpg zero/ac_roots1.3/stonewall_4ivyred3.jpg
  1480. ac_roots1.3/stonewall_4ivyred4.jpg zero/ac_roots1.3/stonewall_4ivyred4.jpg
  1481. ac_roots1.3/stonewall_4ivyred5.jpg zero/ac_roots1.3/stonewall_4ivyred5.jpg
  1482. ac_roots1.3/stonewall_4ivyred6.jpg zero/ac_roots1.3/stonewall_4ivyred6.jpg
  1483. ac_tanglewood/carpet1.jpg zero/ac_tanglewood/carpet1.jpg
  1484. ac_tanglewood/carpet3.jpg zero/ac_tanglewood/carpet3.jpg
  1485. ac_tanglewood/carpet3_step.jpg zero/ac_tanglewood/carpet3_step.jpg
  1486. ac_tanglewood/carpet4.jpg zero/ac_tanglewood/carpet4.jpg
  1487. ac_tanglewood/carpet4_step.jpg zero/ac_tanglewood/carpet4_step.jpg
  1488. ac_tanglewood/muv158_ivy.jpg zero/ac_tanglewood/muv158_ivy.jpg
  1489. ac_tanglewood/muv158_ivy2.jpg zero/ac_tanglewood/muv158_ivy2.jpg
  1490. ac_tanglewood/muv158_ivy3.jpg zero/ac_tanglewood/muv158_ivy3.jpg
  1491. ac_tanglewood/winerack.jpg zero/ac_tanglewood/winerack.jpg
  1492. ac_tanglewood/winerack_2.jpg zero/ac_tanglewood/winerack_2.jpg
  1493. ] [ns nr] [
  1494. looplist (textureslotbyname $ns) i [
  1495. edittextureslot $i "" $nr
  1496. += cnt 1
  1497. ]
  1498. ]
  1499. if $cnt [echo replaced $cnt texture slot paths]
  1500. result (pop cnt)
  1501. ]
  1502. const cmfixmapsoundpaths [
  1503. push cnt 0
  1504. looplist [
  1505. sounds/ambience/troglodytes.ogg troglodytes.ogg
  1506. ] [ns nr] [
  1507. looplist (mapsoundslotbyname $ns) i [
  1508. editmapsoundslot $i $nr
  1509. += cnt 1
  1510. ]
  1511. ]
  1512. if $cnt [echo replaced $cnt mapsound slot paths]
  1513. result (pop cnt)
  1514. ]
  1515. const cmfixskymappaths [
  1516. push cnt 0
  1517. looplist [
  1518. sharp05/sharp05 sharp/sharp05
  1519. egypt1/egypt egypt/egypt
  1520. "aftas sky/orbe" aftassky/orbe
  1521. "Mighty Pete/bloody-marvelous512" MightyPete/bloody-marvelous512
  1522. ] [ns nr] [
  1523. if (strcmp $loadsky $ns) [
  1524. loadsky $nr
  1525. += cnt 1
  1526. ]
  1527. ]
  1528. if $cnt [echo fixed skymap path]
  1529. result (pop cnt)
  1530. ]
  1531. ]