#!/bin/bash if [ -z "$1" ]; then echo "Usage: ./start.sh " exit 1 fi TITLE="$1" if [ ! -d "$TITLE/start" ]; then echo "Error: game '$TITLE' not found. Run 'make' first." exit 1 fi TEMP_RC=$(mktemp) cat > "$TEMP_RC" << EOF show_img() { printf '\033[H' kitten icat "\$1" 2>/dev/null || img2sixel "\$1" 2>/dev/null } fade_in() { local img="\$1" local size=\$(magick identify -format "%wx%h" "\$img") for pct in 0 33 66 100; do local inv=\$((100-pct)) magick -size "\$size" xc:white "\$img" -compose blend -define compose:args="\$pct,\$inv" -composite /tmp/gg_frame.jpg show_img /tmp/gg_frame.jpg sleep 0.5 done rm -f /tmp/gg_frame.jpg } cd() { builtin cd "\$@" clear if [ -f .scene.jpg ]; then fade_in .scene.jpg; fi echo echo if [ -f .description ]; then cat .description | python3 -c 'import sys,time;[print(c,end="",flush=True) or time.sleep(0.03) for c in sys.stdin.read()]' fi read echo echo "---" ls | cat echo } alias q=exit cd $TITLE/start export PS1='(galgame) ' EOF bash --rcfile "$TEMP_RC" rm "$TEMP_RC"