summaryrefslogtreecommitdiff
path: root/strigoform/assets.scm
blob: 67524e19fdd7fecbd2b5a20cf39024db08b57d00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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")))