| 
									
										
										
										
											2023-11-23 09:59:00 +00:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | LOG_FILE="$rdhome/.logs/gzdoom.log" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-24 23:13:07 +00:00
										 |  |  | if [ -e "$LOG_FILE" ]; then | 
					
						
							|  |  |  |     rm "$LOG_FILE" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "RetroDECK GZDOOM wrapper init." | tee -a "$LOG_FILE" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-24 13:01:40 +00:00
										 |  |  | # List of IWAD files | 
					
						
							|  |  |  | IWAD_FILES=("DOOM1.WAD" "DOOM.WAD" "DOOM2.WAD" "DOOM2F.WAD" "DOOM64.WAD" "TNT.WAD" | 
					
						
							|  |  |  |             "PLUTONIA.WAD" "HERETIC1.WAD" "HERETIC.WAD" "HEXEN.WAD" "HEXDD.WAD" | 
					
						
							|  |  |  |             "STRIFE0.WAD" "STRIFE1.WAD" "VOICES.WAD" "CHEX.WAD" | 
					
						
							| 
									
										
										
										
											2023-11-30 08:37:26 +00:00
										 |  |  |             "CHEX3.WAD" "HACX.WAD" "freedoom1.wad" "freedoom2.wad" "freedm.wad" # unlicensed iwads | 
					
						
							| 
									
										
										
										
											2023-11-24 13:12:34 +00:00
										 |  |  |             "doom_complete.pk3"                                                 # this includes them all | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2023-11-23 09:59:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-24 23:13:07 +00:00
										 |  |  | echo "Trying to load \"$1\"." | tee -a "$LOG_FILE" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ ! -e "$1" ]; then | 
					
						
							|  |  |  |     echo "$1 not found. Quitting." | tee -a "$LOG_FILE" | 
					
						
							|  |  |  |     exit 0 | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2023-11-23 15:11:55 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-24 23:13:07 +00:00
										 |  |  | filename=$(basename "$1")  # Extracts only the filename from the full path | 
					
						
							| 
									
										
										
										
											2023-11-30 08:37:26 +00:00
										 |  |  | extension="${filename##*.}"  # Extracts the file extension | 
					
						
							| 
									
										
										
										
											2023-11-24 23:13:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-30 08:37:26 +00:00
										 |  |  | if [ "$extension" == "doom" ]; then | 
					
						
							|  |  |  |     map_file="$1" | 
					
						
							|  |  |  |     iwad="-iwad $(head -n 1 "$map_file")" | 
					
						
							|  |  |  |     file="-file $(tail -n +2 "$map_file" | sed 's/.*/-file &/')" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     echo "Found a .doom file: $1, parsing it." | tee -a "$LOG_FILE" | 
					
						
							|  |  |  |     echo "Calling GZDoom with: \"$iwad $file\"." | tee -a "$LOG_FILE" | 
					
						
							|  |  |  |     gzdoom -config /var/config/gzdoom/gzdoom.ini $iwad $file | tee -a "$LOG_FILE" | 
					
						
							| 
									
										
										
										
											2023-11-23 09:59:00 +00:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2023-11-30 08:37:26 +00:00
										 |  |  |     shopt -s nocasematch   # Enable case-insensitive matching | 
					
						
							|  |  |  |     if [[ "${IWAD_FILES[@]}" =~ "$filename" ]]; then | 
					
						
							|  |  |  |         type="iwad" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |         type="file" | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     shopt -u nocasematch   # Disable case-insensitive matching after use | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     echo "Found $type: $1, loading it." | tee -a "$LOG_FILE" | 
					
						
							|  |  |  |     gzdoom -config /var/config/gzdoom/gzdoom.ini -$type "$1" | tee -a "$LOG_FILE" | 
					
						
							| 
									
										
										
										
											2023-11-24 23:13:07 +00:00
										 |  |  | fi |