annotate libmlk-example/mlk/example/registry.c @ 585:76ce31b0151f

misc: minor edits
author David Demelier <markand@malikania.fr>
date Sat, 18 Mar 2023 17:21:05 +0100
parents 459ff09c09b3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * registry.h -- registry of resources
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
445
773a082f0b91 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 431
diff changeset
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <stddef.h>
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
585
76ce31b0151f misc: minor edits
David Demelier <markand@malikania.fr>
parents: 580
diff changeset
21 #include <mlk/core/err.h>
431
8f59201dc76b core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents: 414
diff changeset
22 #include <mlk/core/image.h>
8f59201dc76b core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents: 414
diff changeset
23 #include <mlk/core/panic.h>
585
76ce31b0151f misc: minor edits
David Demelier <markand@malikania.fr>
parents: 580
diff changeset
24 #include <mlk/core/sys.h>
431
8f59201dc76b core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents: 414
diff changeset
25 #include <mlk/core/util.h>
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
27 #include <assets/images/battle-background.h>
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
28 #include <assets/images/black-cat.h>
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
29 #include <assets/images/haunted-wood.h>
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
30 #include <assets/images/sword.h>
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
31
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
32 #include <assets/sounds/fire.h>
482
f78455f45bf6 examples: improve example-action more
David Demelier <markand@malikania.fr>
parents: 479
diff changeset
33 #include <assets/sounds/open-chest.h>
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
580
459ff09c09b3 core: animation can be looped
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
35 #include <assets/sprites/cat-running.h>
479
8e41ed5474cf examples: resurrect example-action
David Demelier <markand@malikania.fr>
parents: 474
diff changeset
36 #include <assets/sprites/chest.h>
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
37 #include <assets/sprites/explosion.h>
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
38 #include <assets/sprites/john-sword.h>
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
39 #include <assets/sprites/john-walk.h>
554
cdbc13ceff85 rpg: do the same for map
David Demelier <markand@malikania.fr>
parents: 552
diff changeset
40 #include <assets/sprites/john.h>
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
41 #include <assets/sprites/numbers.h>
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
42 #include <assets/sprites/people.h>
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
43 #include <assets/sprites/ui-cursor.h>
552
ffd972a3d084 rpg: major rewrite of tilesets
David Demelier <markand@malikania.fr>
parents: 547
diff changeset
44 #include <assets/sprites/water.h>
ffd972a3d084 rpg: major rewrite of tilesets
David Demelier <markand@malikania.fr>
parents: 547
diff changeset
45 #include <assets/sprites/world.h>
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
46
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
47 #include <assets/music/vabsounds-romance.h>
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
48
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
49 #include "registry.h"
263
cd5bdb995052 cmake: create a new libmlk-data library
David Demelier <markand@malikania.fr>
parents: 261
diff changeset
50
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
51 struct mlk_texture mlk_registry_images[MLK_REGISTRY_IMAGE_LAST] = {0};
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
52 struct mlk_texture mlk_registry_textures[MLK_REGISTRY_TEXTURE_LAST] = {0};
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
53 struct mlk_sprite mlk_registry_sprites[MLK_REGISTRY_TEXTURE_LAST] = {0};
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
54 struct mlk_sound mlk_registry_sounds[MLK_REGISTRY_SOUND_LAST] = {0};
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
55 struct mlk_music mlk_registry_music[MLK_REGISTRY_MUSIC_LAST] = {0};
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
57 #define MLK_REGISTRY_IMAGE(i, data) \
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
58 { (i), (data), sizeof (data) }
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
59 #define MLK_REGISTRY_TEXTURE(s, data, cw, ch) \
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
60 { (s), (data), sizeof (data), (cw), (ch) }
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
61 #define MLK_REGISTRY_SOUND(s, data) \
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
62 { (s), (data), sizeof (data) }
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
63 #define MLK_REGISTRY_MUSIC(m, data) \
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
64 { (m), (data), sizeof (data) }
230
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
65
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
66 static const struct {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
67 enum mlk_registry_image index;
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
68 const unsigned char *data;
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
69 size_t datasz;
230
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
70 } images[] = {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
71 MLK_REGISTRY_IMAGE(MLK_REGISTRY_IMAGE_BATTLE_BACKGROUND, assets_images_battle_background)
230
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
72 };
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
73
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 static const struct {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
75 enum mlk_registry_texture index;
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
76 const unsigned char *data;
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
77 size_t datasz;
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 unsigned int cellw;
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 unsigned int cellh;
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 } textures[] = {
580
459ff09c09b3 core: animation can be looped
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
81 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_BLACK_CAT, assets_images_black_cat, 0, 0),
459ff09c09b3 core: animation can be looped
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
82 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_CAT_RUNNING, assets_sprites_cat_running, 512, 256),
459ff09c09b3 core: animation can be looped
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
83 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_CHEST, assets_sprites_chest, 32, 32),
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
84 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_CURSOR, assets_sprites_ui_cursor, 24, 24),
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
85 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_EXPLOSION, assets_sprites_explosion, 256, 256),
580
459ff09c09b3 core: animation can be looped
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
86 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_HAUNTED_WOOD, assets_images_haunted_wood, 0, 0),
554
cdbc13ceff85 rpg: do the same for map
David Demelier <markand@malikania.fr>
parents: 552
diff changeset
87 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_JOHN, assets_sprites_john, 48, 48),
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
88 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_JOHN_SWORD, assets_sprites_john_sword, 256, 256),
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
89 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_JOHN_WALK, assets_sprites_john_walk, 256, 256),
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
90 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_NUMBERS, assets_sprites_numbers, 48, 48),
580
459ff09c09b3 core: animation can be looped
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
91 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_PEOPLE, assets_sprites_people, 48, 48),
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
92 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_SWORD, assets_images_sword, 0, 0),
580
459ff09c09b3 core: animation can be looped
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
93 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_WATER, assets_sprites_water, 48, 48),
552
ffd972a3d084 rpg: major rewrite of tilesets
David Demelier <markand@malikania.fr>
parents: 547
diff changeset
94 MLK_REGISTRY_TEXTURE(MLK_REGISTRY_TEXTURE_WORLD, assets_sprites_world, 48, 48)
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 };
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
96
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 static const struct {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
98 enum mlk_registry_sound index;
382
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
99 const unsigned char *data;
43d155668a55 rpg: expose battle state functions
David Demelier <markand@malikania.fr>
parents: 378
diff changeset
100 size_t datasz;
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 } sounds[] = {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
102 MLK_REGISTRY_SOUND(MLK_REGISTRY_SOUND_FIRE, assets_sounds_fire),
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
103 MLK_REGISTRY_SOUND(MLK_REGISTRY_SOUND_OPEN_CHEST, assets_sounds_open_chest)
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 };
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
105
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
106 static const struct {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
107 enum mlk_registry_music index;
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
108 const unsigned char *data;
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
109 size_t datasz;
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
110 } musics[] = {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
111 MLK_REGISTRY_MUSIC(MLK_REGISTRY_MUSIC_ROMANCE, assets_music_vabsounds_romance)
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
112 };
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
113
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 static void
230
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
115 load_images(void)
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
116 {
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
117 struct mlk_texture *texture;
230
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
118
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
119 for (size_t i = 0; i < MLK_UTIL_SIZE(images); ++i) {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
120 texture = &mlk_registry_images[images[i].index];
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
121
547
c7664b679a95 misc: remove error codes for now
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
122 if (mlk_image_openmem(texture, images[i].data, images[i].datasz) < 0)
571
cba66f7d8a53 misc: various windows fixes
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
123 mlk_panicf("unable to open image: %s", mlk_err());
230
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
124 }
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
125 }
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
126
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
127 static void
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 load_textures_and_sprites(void)
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 {
479
8e41ed5474cf examples: resurrect example-action
David Demelier <markand@malikania.fr>
parents: 474
diff changeset
130 struct mlk_texture *texture;
8e41ed5474cf examples: resurrect example-action
David Demelier <markand@malikania.fr>
parents: 474
diff changeset
131 struct mlk_sprite *sprite;
8e41ed5474cf examples: resurrect example-action
David Demelier <markand@malikania.fr>
parents: 474
diff changeset
132
474
ca30ff96bbe0 core: util -> mlk_util
David Demelier <markand@malikania.fr>
parents: 472
diff changeset
133 for (size_t i = 0; i < MLK_UTIL_SIZE(textures); ++i) {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
134 texture = &mlk_registry_textures[textures[i].index];
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
135 sprite = &mlk_registry_sprites[textures[i].index];
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
136
547
c7664b679a95 misc: remove error codes for now
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
137 if (mlk_image_openmem(texture, textures[i].data, textures[i].datasz) < 0)
571
cba66f7d8a53 misc: various windows fixes
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
138 mlk_panicf("unable to open image: %s", mlk_err());
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
139
516
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
140 if (textures[i].cellw == 0 || textures[i].cellh == 0) {
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
141 sprite->cellw = texture->w;
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
142 sprite->cellh = texture->h;
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
143 } else {
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
144 sprite->cellw = textures[i].cellw;
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
145 sprite->cellh = textures[i].cellh;
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
146 }
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
147
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
148 sprite->texture = texture;
6af0524913b3 misc: fix
David Demelier <markand@malikania.fr>
parents: 500
diff changeset
149 mlk_sprite_init(sprite);
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 }
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 }
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
152
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 static void
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 load_sounds(void)
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 {
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
156 struct mlk_sound *sound;
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
157
474
ca30ff96bbe0 core: util -> mlk_util
David Demelier <markand@malikania.fr>
parents: 472
diff changeset
158 for (size_t i = 0; i < MLK_UTIL_SIZE(sounds); ++i) {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
159 sound = &mlk_registry_sounds[sounds[i].index];
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
160
547
c7664b679a95 misc: remove error codes for now
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
161 if (mlk_sound_openmem(sound, sounds[i].data, sounds[i].datasz) < 0)
571
cba66f7d8a53 misc: various windows fixes
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
162 mlk_panicf("unable to open sound: %s", mlk_err());
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
163 }
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
164 }
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
165
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
166 static void
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
167 load_music(void)
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
168 {
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
169 struct mlk_music *music;
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
170
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
171 for (size_t i = 0; i < MLK_UTIL_SIZE(musics); ++i) {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
172 music = &mlk_registry_music[musics[i].index];
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
173
547
c7664b679a95 misc: remove error codes for now
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
174 if (mlk_music_openmem(music, musics[i].data, musics[i].datasz) < 0)
571
cba66f7d8a53 misc: various windows fixes
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
175 mlk_panicf("unable to open music: %s", mlk_err());
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 }
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 }
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
178
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 void
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
180 mlk_registry_init(void)
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 {
230
86b71e1f9dd5 rpg: add movements in battle
David Demelier <markand@malikania.fr>
parents: 209
diff changeset
182 load_images();
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 load_textures_and_sprites();
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 load_sounds();
486
d6757c30658e core: rework errors
David Demelier <markand@malikania.fr>
parents: 482
diff changeset
185 load_music();
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 }
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
187
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 void
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
189 mlk_registry_finish(void)
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 {
500
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
191 for (size_t i = 0; i < MLK_UTIL_SIZE(mlk_registry_images); ++i)
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
192 mlk_texture_finish(&mlk_registry_images[i]);
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
193 for (size_t i = 0; i < MLK_UTIL_SIZE(mlk_registry_textures); ++i)
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
194 mlk_texture_finish(&mlk_registry_textures[i]);
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
195 for (size_t i = 0; i < MLK_UTIL_SIZE(mlk_registry_sounds); ++i)
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
196 mlk_sound_finish(&mlk_registry_sounds[i]);
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
197 for (size_t i = 0; i < MLK_UTIL_SIZE(mlk_registry_music); ++i)
d7855791a2b8 examples: prefix mlk
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
198 mlk_music_finish(&mlk_registry_music[i]);
192
4ad7420ab678 rpg: add minimalist battle system, continue #2477 @60h
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 }