#lang racket
(require "libtcod.rkt")
(define (handle-keys)
(call/cc (lambda (k)
(let* ([key (tcod:console-wait-for-keypress #t)]
[vk (tcod:key-vk key)]
[char (integer->char (tcod:key-c key))])
(cond
[(and (eq? 'key-enter vk) (tcod:key-left-alt key))
(tcod:console-set-fullscreen (not (tcod:console-is-fullscreen?)))
(k #f)]
[(or (eq? 'key-escape vk) (and (eq? 'key-char vk) (eq? char #\Q) (tcod:key-left-ctrl key)))
(k #t)]) ; shortcut
#f))))
(define (main-loop)
(tcod:console-set-custom-font "data/fonts/prestige12x12_gs_tc.png" 12 -1 -1)
(tcod:console-init-root 30 24 "scheme/libtcod tutorial" #f 'glsl)
(tcod:sys-set-fps 20)
(let* ([foo 1])
(let loop ([first #t])
(unless (tcod:console-is-window-closed?)
(when first
(tcod:console-flush))
(let ([break [and (not first) (handle-keys)]])
(unless break
(tcod:console-flush)
(loop #f)))))))
(main-loop)