ericw-tools/testmaps/make_screenshot.sh

75 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -v
set -x
LIGHT_EXE=~/dev/tyrutils/build-ninja/light/light
QUAKEDIR=~/quake
QUAKE_EXE=~/quake/QuakeSpasm-SDL2.app/Contents/MacOS/QuakeSpasm
imagename="$1"
mapname="$2"
params="$3"
viewpos="$4"
showlightmap="$5"
#strip off .map suffix
map_basename=$(basename $mapname .map)
$LIGHT_EXE -lit -extra4 $params $mapname
rm -fdr $QUAKEDIR/tyrutils-screenshots
mkdir $QUAKEDIR/tyrutils-screenshots
mkdir $QUAKEDIR/tyrutils-screenshots/maps
#copy over the map
cp $map_basename.{bsp,lit} $QUAKEDIR/tyrutils-screenshots/maps
#write an autoexec.cfg that will take the screenshot
AUTOEXEC="$QUAKEDIR/tyrutils-screenshots/autoexec.cfg"
cat << EOF > "$AUTOEXEC"
scr_conspeed 100000
scr_centertime 0
con_notifytime 0
map $map_basename
wait
wait
wait
wait
wait
EOF
if [ "$viewpos" ]; then
cat << EOF >> "$AUTOEXEC"
setpos $viewpos
EOF
fi
showents=1
if [ $showlightmap -eq 1 ]; then
showents=0
fi
cat << EOF >> "$AUTOEXEC"
fog 0
gl_texturemode gl_nearest
r_lightmap $showlightmap
r_drawviewmodel 0
r_drawentities $showents
viewsize 120
fov 110
gamma 1
wait
wait
wait
wait
screenshot
quit
EOF
#launch quake
$QUAKE_EXE -basedir $QUAKEDIR -nolauncher -window -width 1024 -height 768 -fsaa 8 -game tyrutils-screenshots
#convert the screenshot to jpg
convert $QUAKEDIR/tyrutils-screenshots/spasm0000.tga $imagename