mirror of
				https://github.com/chev2/gmod-addons.git
				synced 2025-10-30 06:31:35 +00:00 
			
		
		
		
	Screenshot Editor: Fix alphanumeric filenames not being detected
If a file started with a name with numbers in it, like "c1m3_mall", the screenshot would not be loaded for the player to select. This has been fixed.
This commit is contained in:
		
							parent
							
								
									851b5f71c1
								
							
						
					
					
						commit
						1938adbf7e
					
				
					 1 changed files with 23 additions and 9 deletions
				
			
		|  | @ -3,28 +3,42 @@ screenshot_editor = screenshot_editor or {} | |||
| local SCREENSHOT_FILES = {} | ||||
| local SCREENSHOT_ITERATE_ACTIVE = false | ||||
| 
 | ||||
| -- Not a fantastic method, but it's a little smoother than file.Find("*.*") | ||||
| -- We check filenames that start with these characters in IterateScreenshotFiles() | ||||
| local charCheckList = {} | ||||
| 
 | ||||
| for i = 65, 65 + 25 do charCheckList[#charCheckList + 1] = string.char(i) end | ||||
| for i = 97, 97 + 25 do charCheckList[#charCheckList + 1] = string.char(i) end | ||||
| for i = 0, 9 do charCheckList[#charCheckList + 1] = tostring(i) end | ||||
| table.Add(charCheckList, {"_", "-", "(", ")", " "}) | ||||
| 
 | ||||
| -- Not a fantastic method, but it's smoother than file.Find("*.*") | ||||
| local function IterateScreenshotFiles() | ||||
|     local fileQueue = {} | ||||
| 
 | ||||
|     --local ctime = SysTime() | ||||
| 
 | ||||
|     -- a through z | ||||
|     for i = 97, 97 + 25 do | ||||
|         for j = 97, 97 + 25 do | ||||
|             local fileBeginner = string.char(i, j) | ||||
|     -- ! LIMITATION: This will skip over filenames NOT starting with these characters. | ||||
|     --      ! - this is a small edge case, as maps and screenshots usually shouldn't start with weird characters.. | ||||
|     for i = 1, #charCheckList do | ||||
|         for j = 1, #charCheckList do | ||||
|             local char1 = charCheckList[i] | ||||
|             local char2 = charCheckList[j] | ||||
| 
 | ||||
|             local fileBeginner = char1 .. char2 | ||||
| 
 | ||||
|             local foundScreenshotFiles = file.Find("screenshots/" .. fileBeginner .. "*.*", "MOD") | ||||
|             table.Add(fileQueue, foundScreenshotFiles) | ||||
| 
 | ||||
|             --[[if #foundScreenshotFiles > 0 then | ||||
|                 print(fileBeginner, #foundScreenshotFiles) | ||||
|             end]] | ||||
| 
 | ||||
|             coroutine.yield() | ||||
|             -- if #foundScreenshotFiles > 0 then | ||||
|             --     print(fileBeginner, #foundScreenshotFiles) | ||||
|             -- end | ||||
|         end | ||||
| 
 | ||||
|         coroutine.yield() | ||||
|     end | ||||
| 
 | ||||
|     -- Organize files by modified time, so more recently-created screenshots appear at the top of the UI | ||||
|     while #fileQueue > 0 do | ||||
|         for i = 1, 200 do | ||||
|             if #fileQueue == 0 then continue end | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue