true 16-bit color... glorious

This commit is contained in:
asrael 2025-11-28 14:41:35 -06:00
parent 3dccce8a81
commit b1e8525c3e
30 changed files with 678 additions and 652 deletions

View file

@ -21,8 +21,8 @@ struct pxl8_cart {
char* name;
};
static pxl8_cart* __pxl8_current_cart = NULL;
static char* __pxl8_original_cwd = NULL;
static pxl8_cart* pxl8_current_cart = NULL;
static char* pxl8_original_cwd = NULL;
static void pxl8_add_file_recursive(mz_zip_archive* zip, const char* dir_path, const char* prefix) {
DIR* dir = opendir(dir_path);
@ -89,7 +89,7 @@ pxl8_cart* pxl8_cart_create(void) {
}
pxl8_cart* pxl8_cart_current(void) {
return __pxl8_current_cart;
return pxl8_current_cart;
}
void pxl8_cart_destroy(pxl8_cart* cart) {
@ -254,20 +254,20 @@ pxl8_result pxl8_cart_mount(pxl8_cart* cart) {
if (!cart || !cart->base_path) return PXL8_ERROR_NULL_POINTER;
if (cart->is_mounted) return PXL8_OK;
if (__pxl8_current_cart) {
pxl8_cart_unmount(__pxl8_current_cart);
if (pxl8_current_cart) {
pxl8_cart_unmount(pxl8_current_cart);
}
__pxl8_original_cwd = getcwd(NULL, 0);
pxl8_original_cwd = getcwd(NULL, 0);
if (chdir(cart->base_path) != 0) {
pxl8_error("Failed to change to cart directory: %s", cart->base_path);
free(__pxl8_original_cwd);
__pxl8_original_cwd = NULL;
free(pxl8_original_cwd);
pxl8_original_cwd = NULL;
return PXL8_ERROR_FILE_NOT_FOUND;
}
cart->is_mounted = true;
__pxl8_current_cart = cart;
pxl8_current_cart = cart;
pxl8_info("Mounted cart: %s", cart->name);
return PXL8_OK;
@ -276,15 +276,15 @@ pxl8_result pxl8_cart_mount(pxl8_cart* cart) {
void pxl8_cart_unmount(pxl8_cart* cart) {
if (!cart || !cart->is_mounted) return;
if (__pxl8_original_cwd) {
chdir(__pxl8_original_cwd);
free(__pxl8_original_cwd);
__pxl8_original_cwd = NULL;
if (pxl8_original_cwd) {
chdir(pxl8_original_cwd);
free(pxl8_original_cwd);
pxl8_original_cwd = NULL;
}
cart->is_mounted = false;
if (__pxl8_current_cart == cart) {
__pxl8_current_cart = NULL;
if (pxl8_current_cart == cart) {
pxl8_current_cart = NULL;
}
pxl8_info("Unmounted cart: %s", cart->name);