#pragma once #include "pxl8_types.h" typedef struct pxl8_cart pxl8_cart; #ifdef __cplusplus extern "C" { #endif pxl8_cart* pxl8_cart_create(void); pxl8_cart* pxl8_cart_current(void); void pxl8_cart_destroy(pxl8_cart* cart); pxl8_result pxl8_cart_bundle(const char* input_path, const char* output_path, const char* exe_path); pxl8_result pxl8_cart_pack(const char* folder_path, const char* output_path); pxl8_result pxl8_cart_load(pxl8_cart* cart, const char* path); pxl8_result pxl8_cart_load_embedded(pxl8_cart* cart, const char* exe_path); void pxl8_cart_unload(pxl8_cart* cart); pxl8_result pxl8_cart_mount(pxl8_cart* cart); void pxl8_cart_unmount(pxl8_cart* cart); const char* pxl8_cart_get_base_path(const pxl8_cart* cart); const char* pxl8_cart_get_name(const pxl8_cart* cart); bool pxl8_cart_is_packed(const pxl8_cart* cart); bool pxl8_cart_has_embedded(const char* exe_path); bool pxl8_cart_file_exists(const pxl8_cart* cart, const char* path); bool pxl8_cart_resolve_path(const pxl8_cart* cart, const char* relative_path, char* out_path, size_t out_size); pxl8_result pxl8_cart_read_file(const pxl8_cart* cart, const char* path, u8** data_out, u32* size_out); void pxl8_cart_free_file(u8* data); #ifdef __cplusplus } #endif