comparison libmlk-example/mlk/example/registry.c @ 479:8e41ed5474cf

examples: resurrect example-action
author David Demelier <markand@malikania.fr>
date Mon, 27 Feb 2023 16:33:33 +0100
parents ca30ff96bbe0
children f78455f45bf6
comparison
equal deleted inserted replaced
478:8c1a965b3019 479:8e41ed5474cf
27 #include <assets/images/black-cat.h> 27 #include <assets/images/black-cat.h>
28 #include <assets/images/haunted-wood.h> 28 #include <assets/images/haunted-wood.h>
29 29
30 #include <assets/sounds/fire.h> 30 #include <assets/sounds/fire.h>
31 31
32 #include <assets/sprites/chest.h>
32 #include <assets/sprites/explosion.h> 33 #include <assets/sprites/explosion.h>
33 #include <assets/sprites/john-sword.h> 34 #include <assets/sprites/john-sword.h>
34 #include <assets/sprites/john-walk.h> 35 #include <assets/sprites/john-walk.h>
35 #include <assets/sprites/ui-cursor.h> 36 #include <assets/sprites/ui-cursor.h>
36 37
37 #include "registry.h" 38 #include "registry.h"
38 39
39 struct mlk_texture registry_images[REGISTRY_IMAGE_NUM]; 40 struct mlk_texture registry_images[REGISTRY_IMAGE_LAST] = {0};
40 struct mlk_texture registry_textures[REGISTRY_TEXTURE_NUM]; 41 struct mlk_texture registry_textures[REGISTRY_TEXTURE_LAST] = {0};
41 struct mlk_sprite registry_sprites[REGISTRY_TEXTURE_NUM]; 42 struct mlk_sprite registry_sprites[REGISTRY_TEXTURE_LAST] = {0};
42 struct mlk_sound registry_sounds[REGISTRY_SOUND_NUM]; 43 struct mlk_sound registry_sounds[REGISTRY_SOUND_LAST] = {0};
43 44
44 #define REGISTRY_IMAGE(i, data) \ 45 #define REGISTRY_IMAGE(i, data) \
45 { (i), (data), sizeof (data) } 46 { (i), (data), sizeof (data) }
46 47
47 static const struct { 48 static const struct {
65 REGISTRY_TEXTURE(REGISTRY_TEXTURE_CURSOR, assets_sprites_ui_cursor, 24, 24), 66 REGISTRY_TEXTURE(REGISTRY_TEXTURE_CURSOR, assets_sprites_ui_cursor, 24, 24),
66 REGISTRY_TEXTURE(REGISTRY_TEXTURE_EXPLOSION, assets_sprites_explosion, 256, 256), 67 REGISTRY_TEXTURE(REGISTRY_TEXTURE_EXPLOSION, assets_sprites_explosion, 256, 256),
67 REGISTRY_TEXTURE(REGISTRY_TEXTURE_JOHN_SWORD, assets_sprites_john_sword, 256, 256), 68 REGISTRY_TEXTURE(REGISTRY_TEXTURE_JOHN_SWORD, assets_sprites_john_sword, 256, 256),
68 REGISTRY_TEXTURE(REGISTRY_TEXTURE_JOHN_WALK, assets_sprites_john_walk, 256, 256), 69 REGISTRY_TEXTURE(REGISTRY_TEXTURE_JOHN_WALK, assets_sprites_john_walk, 256, 256),
69 REGISTRY_TEXTURE(REGISTRY_TEXTURE_HAUNTED_WOOD, assets_images_haunted_wood, 0, 0), 70 REGISTRY_TEXTURE(REGISTRY_TEXTURE_HAUNTED_WOOD, assets_images_haunted_wood, 0, 0),
70 REGISTRY_TEXTURE(REGISTRY_TEXTURE_BLACK_CAT, assets_images_black_cat, 0, 0) 71 REGISTRY_TEXTURE(REGISTRY_TEXTURE_BLACK_CAT, assets_images_black_cat, 0, 0),
72 REGISTRY_TEXTURE(REGISTRY_TEXTURE_CHEST, assets_sprites_chest, 32, 32)
71 }; 73 };
72 74
73 #define REGISTRY_SOUND(s, data) \ 75 #define REGISTRY_SOUND(s, data) \
74 { (s), (data), sizeof (data) } 76 { (s), (data), sizeof (data) }
75 77
93 } 95 }
94 96
95 static void 97 static void
96 load_textures_and_sprites(void) 98 load_textures_and_sprites(void)
97 { 99 {
100 struct mlk_texture *texture;
101 struct mlk_sprite *sprite;
102
98 for (size_t i = 0; i < MLK_UTIL_SIZE(textures); ++i) { 103 for (size_t i = 0; i < MLK_UTIL_SIZE(textures); ++i) {
99 struct mlk_texture *texture = &registry_textures[textures[i].index]; 104 texture = &registry_textures[textures[i].index];
100 struct mlk_sprite *sprite = &registry_sprites[textures[i].index]; 105 sprite = &registry_sprites[textures[i].index];
101 106
102 if (mlk_image_openmem(texture, textures[i].data, textures[i].datasz) < 0) 107 if (mlk_image_openmem(texture, textures[i].data, textures[i].datasz) < 0)
103 mlk_panic(); 108 mlk_panic();
104 109
105 if (textures[i].cellw == 0 || textures[i].cellh == 0) 110 if (textures[i].cellw == 0 || textures[i].cellh == 0)