summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-04-18 09:25:49 +0200
committerkdx <kikoodx@paranoici.org>2023-04-18 11:14:39 +0200
commit8f8d2eeee27b1544a5f5a0a9842a04f8d1d60153 (patch)
tree1244d25e3bf7b23cfe7ab021c3c1c84dd2de7e68
parentecdf718d2dc6fd56425078804ec302ce806567a3 (diff)
downloadpx-8f8d2eeee27b1544a5f5a0a9842a04f8d1d60153.tar.gz
upstream tweaks
-rw-r--r--src/px.c55
1 files changed, 24 insertions, 31 deletions
diff --git a/src/px.c b/src/px.c
index 94fa235..7aedac9 100644
--- a/src/px.c
+++ b/src/px.c
@@ -5,22 +5,22 @@
PxCol pxbuf[PX_WIDTH * PX_HEIGHT] = {0};
PxPal pxpal[256] = {
/* PICO-8 palette */
- {0x00, 0x00, 0x00, false, -1, -1},
- {0x1d, 0x2b, 0x53, false, -1, -1},
- {0x7e, 0x25, 0x53, false, -1, -1},
- {0x00, 0x87, 0x51, false, -1, -1},
- {0xab, 0x52, 0x36, false, -1, -1},
- {0x5f, 0x57, 0x4f, false, -1, -1},
- {0xc2, 0xc3, 0xc7, false, -1, -1},
- {0xff, 0xf1, 0xe8, false, -1, -1},
- {0xff, 0x00, 0x4d, false, -1, -1},
- {0xff, 0xa3, 0x00, false, -1, -1},
- {0xff, 0xec, 0x27, false, -1, -1},
- {0x00, 0xe4, 0x36, false, -1, -1},
- {0x29, 0xad, 0xff, false, -1, -1},
- {0x83, 0x76, 0x9c, false, -1, -1},
- {0xff, 0x77, 0xa8, false, -1, -1},
- {0xff, 0xcc, 0xaa, false, -1, -1},
+ {0x00, 0x00, 0x00, false, 0, 0},
+ {0x1d, 0x2b, 0x53, false, 0, 0},
+ {0x7e, 0x25, 0x53, false, 0, 0},
+ {0x00, 0x87, 0x51, false, 0, 0},
+ {0xab, 0x52, 0x36, false, 0, 0},
+ {0x5f, 0x57, 0x4f, false, 0, 0},
+ {0xc2, 0xc3, 0xc7, false, 0, 0},
+ {0xff, 0xf1, 0xe8, false, 0, 0},
+ {0xff, 0x00, 0x4d, false, 0, 0},
+ {0xff, 0xa3, 0x00, false, 0, 0},
+ {0xff, 0xec, 0x27, false, 0, 0},
+ {0x00, 0xe4, 0x36, false, 0, 0},
+ {0x29, 0xad, 0xff, false, 0, 0},
+ {0x83, 0x76, 0x9c, false, 0, 0},
+ {0xff, 0x77, 0xa8, false, 0, 0},
+ {0xff, 0xcc, 0xaa, false, 0, 0},
};
static struct {
int x;
@@ -35,8 +35,8 @@ pxFlip(void)
for (int y = 0; y < PX_HEIGHT; y++) {
for (int x = 0; x < PX_WIDTH; x++) {
PxCol col = pxbuf[x + y * PX_WIDTH];
- if (pxpal[col].spal > -1)
- col = pxpal[col].spal;
+ if (pxpal[col].spal)
+ col = pxpal[col].spal - 1;
TZR_DrawSetColor8(pxpal[col].r, pxpal[col].g,
pxpal[col].b, 255);
TZR_DrawPoint(x, y);
@@ -73,8 +73,8 @@ pxPset(int x, int y, PxCol c)
if (x < pxclip.x || x >= pxclip.x + pxclip.w ||
y < pxclip.y || y >= pxclip.y + pxclip.h)
return;
- if (pxpal[c].pal > -1)
- c = pxpal[c].pal;
+ if (pxpal[c].pal)
+ c = pxpal[c].pal - 1;
pxbuf[x + y * PX_WIDTH] = c;
}
@@ -155,9 +155,9 @@ _pxPal(const PxPalArgs *args)
assert((args->c0 == -1) ^ (args->c1 != -1));
if (args->c0 == -1)
for (int i = 0; i < 256; i++)
- pxpal[i].pal = -1;
+ pxpal[i].pal = 0;
else
- pxpal[args->c0].pal = args->c1;
+ pxpal[args->c0].pal = args->c1 + 1;
}
void
@@ -166,16 +166,9 @@ _pxSpal(const PxSpalArgs *args)
assert((args->c0 == -1) ^ (args->c1 != -1));
if (args->c0 == -1)
for (int i = 0; i < 256; i++)
- pxpal[i].spal = -1;
+ pxpal[i].spal = 0;
else
- pxpal[args->c0].spal = args->c1;
-}
-
-void
-pxSpalReset(void)
-{
- for (int i = 0; i < 256; i++)
- pxpal[i].spal = -1;
+ pxpal[args->c0].spal = args->c1 + 1;
}
void