From 9440a4922e579c2e1428a897b9b209690146289f Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Thu, 11 Jul 2019 08:10:52 +0000
Subject: [PATCH] Add the mode palette to screen save/restore.

---
 src/conio/ciolib.c | 2 ++
 src/conio/ciolib.h | 1 +
 2 files changed, 3 insertions(+)

diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index 609518aed8..6b362f7f48 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -1854,6 +1854,7 @@ CIOLIBEXPORT struct ciolib_screen * CIOLIBCALL ciolib_savescreen(void)
 	for (i=0; i<5; i++)
 		ret->fonts[i] = ciolib_getfont(i);
 	ret->flags = ciolib_getvideoflags();
+	ciolib_get_modepalette(ret->palette);
 
 	return ret;
 }
@@ -1881,6 +1882,7 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_restorescreen(struct ciolib_screen *scrn)
 
 	if (ti.currmode != scrn->text_info.currmode)
 		ciolib_textmode(scrn->text_info.currmode);
+	ciolib_set_modepalette(ret->palette);
 	ciolib_vmem_puttext(1, 1, scrn->text_info.screenwidth, scrn->text_info.screenheight, scrn->vmem);
 	ciolib_textcolor(scrn->text_info.attribute);
 	ciolib_window(scrn->text_info.winleft, scrn->text_info.wintop, scrn->text_info.winright, scrn->text_info.winbottom);
diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h
index 4c4c5d2879..b6719941d2 100644
--- a/src/conio/ciolib.h
+++ b/src/conio/ciolib.h
@@ -274,6 +274,7 @@ struct ciolib_screen {
 	struct ciolib_pixels	*pixels;
 	struct vmem_cell	*vmem;
 	struct text_info	text_info;
+	uint32_t		palette[16];
 };
 
 #define CONIO_FIRST_FREE_FONT	43
-- 
GitLab