Add levelpack loading in asset loader
Changelog: - Update main code to use assets loader - Update level load test as wellscene_man
parent
9387189927
commit
f6f3214dc1
|
@ -264,15 +264,12 @@ int main(void)
|
|||
load_from_infofile("res/assets.info", &engine.assets);
|
||||
init_player_creation("res/player_spr.info", &engine.assets);
|
||||
|
||||
LevelPack_t* pack = add_level_pack(&engine.assets, "TestLevels", "res/defaultLevels.lvldata");
|
||||
assert(pack != NULL);
|
||||
|
||||
LevelScene_t scene;
|
||||
scene.scene.engine = &engine;
|
||||
init_scene(&scene.scene, &level_scene_render_func, &level_do_action);
|
||||
init_level_scene_data(&scene.data, MAX_N_TILES, all_tiles);
|
||||
|
||||
pack = get_level_pack(&engine.assets, "TestLevels");
|
||||
LevelPack_t* pack = get_level_pack(&engine.assets, "TestLevels");
|
||||
assert(pack != NULL);
|
||||
|
||||
scene.data.level_pack = pack;
|
||||
|
|
27
main.c
27
main.c
|
@ -1,5 +1,7 @@
|
|||
#include "raylib.h"
|
||||
#include "assets_loader.h"
|
||||
#include "scene_impl.h"
|
||||
#include "ent_impl.h"
|
||||
#include "mempool.h"
|
||||
#include <stdio.h>
|
||||
#define N_SCENES 3
|
||||
|
@ -15,20 +17,6 @@ static GameEngine_t engine = {
|
|||
const int screenWidth = 1280;
|
||||
const int screenHeight = 640;
|
||||
|
||||
static void load_assets(void)
|
||||
{
|
||||
Texture2D* tex = add_texture(&engine.assets, "plr_tex", "res/test_tex.png");
|
||||
Sprite_t* spr = add_sprite(&engine.assets, "plr_stand", tex);
|
||||
spr->origin = (Vector2){0, 0};
|
||||
spr->frame_size = (Vector2){32, 32};
|
||||
|
||||
spr = add_sprite(&engine.assets, "plr_run", tex);
|
||||
spr->frame_count = 4;
|
||||
spr->origin = (Vector2){0, 0};
|
||||
spr->frame_size = (Vector2){32, 32};
|
||||
spr->speed = 15;
|
||||
}
|
||||
|
||||
// Maintain own queue to handle key presses
|
||||
struct sc_queue_32 key_buffer;
|
||||
|
||||
|
@ -42,11 +30,20 @@ int main(void)
|
|||
init_memory_pools();
|
||||
|
||||
init_assets(&engine.assets);
|
||||
load_assets();
|
||||
load_from_infofile("res/assets.info", &engine.assets);
|
||||
init_player_creation("res/player_spr.info", &engine.assets);
|
||||
|
||||
LevelScene_t level_scene;
|
||||
level_scene.scene.engine = &engine;
|
||||
init_sandbox_scene(&level_scene);
|
||||
LevelPack_t* pack = get_level_pack(&engine.assets, "TestLevels");
|
||||
if (pack != NULL)
|
||||
{
|
||||
level_scene.data.level_pack = pack;
|
||||
level_scene.data.current_level = 0;
|
||||
load_level_tilemap(&level_scene, 0);
|
||||
}
|
||||
|
||||
MenuScene_t menu_scene;
|
||||
menu_scene.scene.engine = &engine;
|
||||
init_menu_scene(&menu_scene);
|
||||
|
|
|
@ -6,6 +6,7 @@ typedef enum AssetInfoType
|
|||
{
|
||||
TEXTURE_INFO,
|
||||
SPRITE_INFO,
|
||||
LEVELPACK_INFO,
|
||||
INVALID_INFO
|
||||
}AssetInfoType_t;
|
||||
|
||||
|
@ -64,6 +65,10 @@ bool load_from_infofile(const char* file, Assets_t* assets)
|
|||
{
|
||||
info_type = SPRITE_INFO;
|
||||
}
|
||||
else if (strcmp(tmp, "LevelPack") == 0)
|
||||
{
|
||||
info_type = LEVELPACK_INFO;
|
||||
}
|
||||
else
|
||||
{
|
||||
info_type = INVALID_INFO;
|
||||
|
@ -90,6 +95,16 @@ bool load_from_infofile(const char* file, Assets_t* assets)
|
|||
//strcpy(tmp2, name);
|
||||
}
|
||||
break;
|
||||
case LEVELPACK_INFO:
|
||||
{
|
||||
if (add_level_pack(assets, name, info_str) == NULL)
|
||||
{
|
||||
printf("Unable to add level pack at line %lu\n", line_num);
|
||||
break;
|
||||
}
|
||||
printf("Added level pack %s as %s\n", info_str, name);
|
||||
}
|
||||
break;
|
||||
case SPRITE_INFO:
|
||||
{
|
||||
SpriteInfo_t spr_info = {0};
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#define MAX_TEXTURES 16
|
||||
#define MAX_SPRITES 16
|
||||
#define MAX_SPRITES 64
|
||||
#define MAX_SOUNDS 16
|
||||
#define MAX_FONTS 4
|
||||
#define MAX_N_TILES 4096
|
||||
#define MAX_NAME_LEN 32
|
||||
#define MAX_LEVEL_PACK 1
|
||||
#define MAX_LEVEL_PACK 4
|
||||
uint8_t n_loaded[5] = {0};
|
||||
|
||||
// Hard limit number of
|
||||
|
|
Loading…
Reference in New Issue