-(let ((audio nil))
-
- (defun init-audio ()
- (cond ((null audio) (progn (init-sdl) (setq audio (Mix_OpenAudio 22050 MIX_DEFAULT_FORMAT 2 4096))))
- (t audio)))
-
- (defun quit-audio ()
- (setq audio (Mix_CloseAudio))))
-
-
-;;; Resources Manager
-(defstruct resource plist constructor destructor time)
-
-(defun make-resource-texture (&key filename min-filter mag-filter)
- `(:type texture :filename ,filename :min-filter ,min-filter :mag-filter ,mag-filter))
-
-(defun make-resource-font (&key filename encoding)
- `(:type font :filename ,filename :enconding ,encoding))
-
-(defun make-resource-sound (&key filename)
- `(:type sound :filename ,filename))
-
-(defun make-resource-music (&key filename)
- `(:type music :filename ,filename))
-
-(defmacro get-rtime (key)
- `(resource-time (gethash ,key resources-table)))
-
-(defmacro get-rplist (key)
- `(resource-plist (gethash ,key resources-table)))
-
-(defmacro get-rconstructor (key)
- `(resource-constructor (gethash ,key resources-table)))
-
-(defmacro get-rdestructor (key)
- `(resource-destructor (gethash ,key resources-table)))
-
-(let ((resources-table (make-hash-table :test 'equal))
- (expiration-time 50000))
-
- (defun set-expiration-time (new-time)
- (setq expiration-time new-time))