#pragma once #include "pxl8_types.h" typedef struct pxl8_cart { char* base_path; char* name; void* archive_data; size_t archive_size; bool is_folder; bool is_mounted; } pxl8_cart; #ifdef __cplusplus extern "C" { #endif pxl8_result pxl8_cart_load(pxl8_cart* cart, const char* path); void pxl8_cart_unload(pxl8_cart* cart); pxl8_result pxl8_cart_mount(pxl8_cart* cart); void pxl8_cart_unmount(pxl8_cart* cart); char* pxl8_cart_resolve_path(const pxl8_cart* cart, const char* relative_path); bool pxl8_cart_file_exists(const pxl8_cart* cart, const char* path); pxl8_cart* pxl8_cart_new(void); void pxl8_cart_destroy(pxl8_cart* cart); pxl8_result pxl8_cart_pack(const char* folder_path, const char* output_path); pxl8_cart* pxl8_cart_current(void); #ifdef __cplusplus } #endif