summaryrefslogtreecommitdiff
path: root/strigoform/assets.scm
diff options
context:
space:
mode:
Diffstat (limited to 'strigoform/assets.scm')
-rw-r--r--strigoform/assets.scm55
1 files changed, 55 insertions, 0 deletions
diff --git a/strigoform/assets.scm b/strigoform/assets.scm
new file mode 100644
index 0000000..67524e1
--- /dev/null
+++ b/strigoform/assets.scm
@@ -0,0 +1,55 @@
+(library (strigoform assets)
+ (export load-assets!
+ image:cover
+ image:starfield-bg
+ image:starfield-fg
+ image:player
+ image:player-bullets
+ image:enemy-bullets
+ image:map
+ image:turret
+ image:popcorn
+ image:flyer0
+ image:flyer1
+ image:boss
+ image:particles
+ sound:explosion
+ sound:player-shoot
+ sound:player-death
+ sound:enemy-shoot
+ sound:bullet-hit
+ music)
+ (import (scheme base)
+ (only (hoot syntax) define-syntax-rule)
+ (strigoform image)
+ (strigoform audio))
+
+ (define *assets* '())
+
+ (define (load-assets!)
+ (for-each (lambda (thunk) (thunk)) *assets*))
+
+ (define-syntax-rule (define-asset name exp)
+ (begin
+ (define name #f)
+ (set! *assets* (cons (lambda () (set! name exp)) *assets*))))
+
+ (define-asset image:cover (load-image "images/cover.png"))
+ (define-asset image:starfield-bg (load-image "images/starfield-bg.png"))
+ (define-asset image:starfield-fg (load-image "images/starfield-fg.png"))
+ (define-asset image:player (load-image "images/player.png"))
+ (define-asset image:player-bullets (load-image "images/player-bullets.png"))
+ (define-asset image:enemy-bullets (load-image "images/enemy-bullets.png"))
+ (define-asset image:map (load-image "images/map.png"))
+ (define-asset image:turret (load-image "images/turret.png"))
+ (define-asset image:popcorn (load-image "images/popcorn.png"))
+ (define-asset image:flyer0 (load-image "images/flyer0.png"))
+ (define-asset image:flyer1 (load-image "images/flyer1.png"))
+ (define-asset image:boss (load-image "images/boss.png"))
+ (define-asset image:particles (load-image "images/particles.png"))
+ (define-asset sound:explosion (load-sound-effect "audio/explosion.wav"))
+ (define-asset sound:player-shoot (load-sound-effect "audio/player-shoot.wav"))
+ (define-asset sound:player-death (load-sound-effect "audio/player-death.wav"))
+ (define-asset sound:enemy-shoot (load-sound-effect "audio/enemy-shoot.wav"))
+ (define-asset sound:bullet-hit (load-sound-effect "audio/bullet-hit.wav"))
+ (define-asset music (load-audio "audio/music.ogg")))