2013-02-18 06:26:28 +00:00
|
|
|
# vim:ts=4:et
|
|
|
|
# ##### BEGIN GPL LICENSE BLOCK #####
|
|
|
|
#
|
|
|
|
# This program is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the GNU General Public License
|
|
|
|
# as published by the Free Software Foundation; either version 2
|
|
|
|
# of the License, or (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
|
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
#
|
|
|
|
# ##### END GPL LICENSE BLOCK #####
|
|
|
|
|
|
|
|
# <pep8 compliant>
|
|
|
|
|
|
|
|
from struct import unpack
|
|
|
|
|
|
|
|
default_palette = (
|
2011-09-15 02:29:54 +00:00
|
|
|
(0x00, 0x00, 0x00),
|
|
|
|
(0x0f, 0x0f, 0x0f),
|
|
|
|
(0x1f, 0x1f, 0x1f),
|
|
|
|
(0x2f, 0x2f, 0x2f),
|
|
|
|
(0x3f, 0x3f, 0x3f),
|
|
|
|
(0x4b, 0x4b, 0x4b),
|
|
|
|
(0x5b, 0x5b, 0x5b),
|
|
|
|
(0x6b, 0x6b, 0x6b),
|
|
|
|
(0x7b, 0x7b, 0x7b),
|
|
|
|
(0x8b, 0x8b, 0x8b),
|
|
|
|
(0x9b, 0x9b, 0x9b),
|
|
|
|
(0xab, 0xab, 0xab),
|
|
|
|
(0xbb, 0xbb, 0xbb),
|
|
|
|
(0xcb, 0xcb, 0xcb),
|
|
|
|
(0xdb, 0xdb, 0xdb),
|
|
|
|
(0xeb, 0xeb, 0xeb),
|
|
|
|
(0x0f, 0x0b, 0x07),
|
|
|
|
(0x17, 0x0f, 0x0b),
|
|
|
|
(0x1f, 0x17, 0x0b),
|
|
|
|
(0x27, 0x1b, 0x0f),
|
|
|
|
(0x2f, 0x23, 0x13),
|
|
|
|
(0x37, 0x2b, 0x17),
|
|
|
|
(0x3f, 0x2f, 0x17),
|
|
|
|
(0x4b, 0x37, 0x1b),
|
|
|
|
(0x53, 0x3b, 0x1b),
|
|
|
|
(0x5b, 0x43, 0x1f),
|
|
|
|
(0x63, 0x4b, 0x1f),
|
|
|
|
(0x6b, 0x53, 0x1f),
|
|
|
|
(0x73, 0x57, 0x1f),
|
|
|
|
(0x7b, 0x5f, 0x23),
|
|
|
|
(0x83, 0x67, 0x23),
|
|
|
|
(0x8f, 0x6f, 0x23),
|
|
|
|
(0x0b, 0x0b, 0x0f),
|
|
|
|
(0x13, 0x13, 0x1b),
|
|
|
|
(0x1b, 0x1b, 0x27),
|
|
|
|
(0x27, 0x27, 0x33),
|
|
|
|
(0x2f, 0x2f, 0x3f),
|
|
|
|
(0x37, 0x37, 0x4b),
|
|
|
|
(0x3f, 0x3f, 0x57),
|
|
|
|
(0x47, 0x47, 0x67),
|
|
|
|
(0x4f, 0x4f, 0x73),
|
|
|
|
(0x5b, 0x5b, 0x7f),
|
|
|
|
(0x63, 0x63, 0x8b),
|
|
|
|
(0x6b, 0x6b, 0x97),
|
|
|
|
(0x73, 0x73, 0xa3),
|
|
|
|
(0x7b, 0x7b, 0xaf),
|
|
|
|
(0x83, 0x83, 0xbb),
|
|
|
|
(0x8b, 0x8b, 0xcb),
|
|
|
|
(0x00, 0x00, 0x00),
|
|
|
|
(0x07, 0x07, 0x00),
|
|
|
|
(0x0b, 0x0b, 0x00),
|
|
|
|
(0x13, 0x13, 0x00),
|
|
|
|
(0x1b, 0x1b, 0x00),
|
|
|
|
(0x23, 0x23, 0x00),
|
|
|
|
(0x2b, 0x2b, 0x07),
|
|
|
|
(0x2f, 0x2f, 0x07),
|
|
|
|
(0x37, 0x37, 0x07),
|
|
|
|
(0x3f, 0x3f, 0x07),
|
|
|
|
(0x47, 0x47, 0x07),
|
|
|
|
(0x4b, 0x4b, 0x0b),
|
|
|
|
(0x53, 0x53, 0x0b),
|
|
|
|
(0x5b, 0x5b, 0x0b),
|
|
|
|
(0x63, 0x63, 0x0b),
|
|
|
|
(0x6b, 0x6b, 0x0f),
|
|
|
|
(0x07, 0x00, 0x00),
|
|
|
|
(0x0f, 0x00, 0x00),
|
|
|
|
(0x17, 0x00, 0x00),
|
|
|
|
(0x1f, 0x00, 0x00),
|
|
|
|
(0x27, 0x00, 0x00),
|
|
|
|
(0x2f, 0x00, 0x00),
|
|
|
|
(0x37, 0x00, 0x00),
|
|
|
|
(0x3f, 0x00, 0x00),
|
|
|
|
(0x47, 0x00, 0x00),
|
|
|
|
(0x4f, 0x00, 0x00),
|
|
|
|
(0x57, 0x00, 0x00),
|
|
|
|
(0x5f, 0x00, 0x00),
|
|
|
|
(0x67, 0x00, 0x00),
|
|
|
|
(0x6f, 0x00, 0x00),
|
|
|
|
(0x77, 0x00, 0x00),
|
|
|
|
(0x7f, 0x00, 0x00),
|
|
|
|
(0x13, 0x13, 0x00),
|
|
|
|
(0x1b, 0x1b, 0x00),
|
|
|
|
(0x23, 0x23, 0x00),
|
|
|
|
(0x2f, 0x2b, 0x00),
|
|
|
|
(0x37, 0x2f, 0x00),
|
|
|
|
(0x43, 0x37, 0x00),
|
|
|
|
(0x4b, 0x3b, 0x07),
|
|
|
|
(0x57, 0x43, 0x07),
|
|
|
|
(0x5f, 0x47, 0x07),
|
|
|
|
(0x6b, 0x4b, 0x0b),
|
|
|
|
(0x77, 0x53, 0x0f),
|
|
|
|
(0x83, 0x57, 0x13),
|
|
|
|
(0x8b, 0x5b, 0x13),
|
|
|
|
(0x97, 0x5f, 0x1b),
|
|
|
|
(0xa3, 0x63, 0x1f),
|
|
|
|
(0xaf, 0x67, 0x23),
|
|
|
|
(0x23, 0x13, 0x07),
|
|
|
|
(0x2f, 0x17, 0x0b),
|
|
|
|
(0x3b, 0x1f, 0x0f),
|
|
|
|
(0x4b, 0x23, 0x13),
|
|
|
|
(0x57, 0x2b, 0x17),
|
|
|
|
(0x63, 0x2f, 0x1f),
|
|
|
|
(0x73, 0x37, 0x23),
|
|
|
|
(0x7f, 0x3b, 0x2b),
|
|
|
|
(0x8f, 0x43, 0x33),
|
|
|
|
(0x9f, 0x4f, 0x33),
|
|
|
|
(0xaf, 0x63, 0x2f),
|
|
|
|
(0xbf, 0x77, 0x2f),
|
|
|
|
(0xcf, 0x8f, 0x2b),
|
|
|
|
(0xdf, 0xab, 0x27),
|
|
|
|
(0xef, 0xcb, 0x1f),
|
|
|
|
(0xff, 0xf3, 0x1b),
|
|
|
|
(0x0b, 0x07, 0x00),
|
|
|
|
(0x1b, 0x13, 0x00),
|
|
|
|
(0x2b, 0x23, 0x0f),
|
|
|
|
(0x37, 0x2b, 0x13),
|
|
|
|
(0x47, 0x33, 0x1b),
|
|
|
|
(0x53, 0x37, 0x23),
|
|
|
|
(0x63, 0x3f, 0x2b),
|
|
|
|
(0x6f, 0x47, 0x33),
|
|
|
|
(0x7f, 0x53, 0x3f),
|
|
|
|
(0x8b, 0x5f, 0x47),
|
|
|
|
(0x9b, 0x6b, 0x53),
|
|
|
|
(0xa7, 0x7b, 0x5f),
|
|
|
|
(0xb7, 0x87, 0x6b),
|
|
|
|
(0xc3, 0x93, 0x7b),
|
|
|
|
(0xd3, 0xa3, 0x8b),
|
|
|
|
(0xe3, 0xb3, 0x97),
|
|
|
|
(0xab, 0x8b, 0xa3),
|
|
|
|
(0x9f, 0x7f, 0x97),
|
|
|
|
(0x93, 0x73, 0x87),
|
|
|
|
(0x8b, 0x67, 0x7b),
|
|
|
|
(0x7f, 0x5b, 0x6f),
|
|
|
|
(0x77, 0x53, 0x63),
|
|
|
|
(0x6b, 0x4b, 0x57),
|
|
|
|
(0x5f, 0x3f, 0x4b),
|
|
|
|
(0x57, 0x37, 0x43),
|
|
|
|
(0x4b, 0x2f, 0x37),
|
|
|
|
(0x43, 0x27, 0x2f),
|
|
|
|
(0x37, 0x1f, 0x23),
|
|
|
|
(0x2b, 0x17, 0x1b),
|
|
|
|
(0x23, 0x13, 0x13),
|
|
|
|
(0x17, 0x0b, 0x0b),
|
|
|
|
(0x0f, 0x07, 0x07),
|
|
|
|
(0xbb, 0x73, 0x9f),
|
|
|
|
(0xaf, 0x6b, 0x8f),
|
|
|
|
(0xa3, 0x5f, 0x83),
|
|
|
|
(0x97, 0x57, 0x77),
|
|
|
|
(0x8b, 0x4f, 0x6b),
|
|
|
|
(0x7f, 0x4b, 0x5f),
|
|
|
|
(0x73, 0x43, 0x53),
|
|
|
|
(0x6b, 0x3b, 0x4b),
|
|
|
|
(0x5f, 0x33, 0x3f),
|
|
|
|
(0x53, 0x2b, 0x37),
|
|
|
|
(0x47, 0x23, 0x2b),
|
|
|
|
(0x3b, 0x1f, 0x23),
|
|
|
|
(0x2f, 0x17, 0x1b),
|
|
|
|
(0x23, 0x13, 0x13),
|
|
|
|
(0x17, 0x0b, 0x0b),
|
|
|
|
(0x0f, 0x07, 0x07),
|
|
|
|
(0xdb, 0xc3, 0xbb),
|
|
|
|
(0xcb, 0xb3, 0xa7),
|
|
|
|
(0xbf, 0xa3, 0x9b),
|
|
|
|
(0xaf, 0x97, 0x8b),
|
|
|
|
(0xa3, 0x87, 0x7b),
|
|
|
|
(0x97, 0x7b, 0x6f),
|
|
|
|
(0x87, 0x6f, 0x5f),
|
|
|
|
(0x7b, 0x63, 0x53),
|
|
|
|
(0x6b, 0x57, 0x47),
|
|
|
|
(0x5f, 0x4b, 0x3b),
|
|
|
|
(0x53, 0x3f, 0x33),
|
|
|
|
(0x43, 0x33, 0x27),
|
|
|
|
(0x37, 0x2b, 0x1f),
|
|
|
|
(0x27, 0x1f, 0x17),
|
|
|
|
(0x1b, 0x13, 0x0f),
|
|
|
|
(0x0f, 0x0b, 0x07),
|
|
|
|
(0x6f, 0x83, 0x7b),
|
|
|
|
(0x67, 0x7b, 0x6f),
|
|
|
|
(0x5f, 0x73, 0x67),
|
|
|
|
(0x57, 0x6b, 0x5f),
|
|
|
|
(0x4f, 0x63, 0x57),
|
|
|
|
(0x47, 0x5b, 0x4f),
|
|
|
|
(0x3f, 0x53, 0x47),
|
|
|
|
(0x37, 0x4b, 0x3f),
|
|
|
|
(0x2f, 0x43, 0x37),
|
|
|
|
(0x2b, 0x3b, 0x2f),
|
|
|
|
(0x23, 0x33, 0x27),
|
|
|
|
(0x1f, 0x2b, 0x1f),
|
|
|
|
(0x17, 0x23, 0x17),
|
|
|
|
(0x0f, 0x1b, 0x13),
|
|
|
|
(0x0b, 0x13, 0x0b),
|
|
|
|
(0x07, 0x0b, 0x07),
|
|
|
|
(0xff, 0xf3, 0x1b),
|
|
|
|
(0xef, 0xdf, 0x17),
|
|
|
|
(0xdb, 0xcb, 0x13),
|
|
|
|
(0xcb, 0xb7, 0x0f),
|
|
|
|
(0xbb, 0xa7, 0x0f),
|
|
|
|
(0xab, 0x97, 0x0b),
|
|
|
|
(0x9b, 0x83, 0x07),
|
|
|
|
(0x8b, 0x73, 0x07),
|
|
|
|
(0x7b, 0x63, 0x07),
|
|
|
|
(0x6b, 0x53, 0x00),
|
|
|
|
(0x5b, 0x47, 0x00),
|
|
|
|
(0x4b, 0x37, 0x00),
|
|
|
|
(0x3b, 0x2b, 0x00),
|
|
|
|
(0x2b, 0x1f, 0x00),
|
|
|
|
(0x1b, 0x0f, 0x00),
|
|
|
|
(0x0b, 0x07, 0x00),
|
|
|
|
(0x00, 0x00, 0xff),
|
|
|
|
(0x0b, 0x0b, 0xef),
|
|
|
|
(0x13, 0x13, 0xdf),
|
|
|
|
(0x1b, 0x1b, 0xcf),
|
|
|
|
(0x23, 0x23, 0xbf),
|
|
|
|
(0x2b, 0x2b, 0xaf),
|
|
|
|
(0x2f, 0x2f, 0x9f),
|
|
|
|
(0x2f, 0x2f, 0x8f),
|
|
|
|
(0x2f, 0x2f, 0x7f),
|
|
|
|
(0x2f, 0x2f, 0x6f),
|
|
|
|
(0x2f, 0x2f, 0x5f),
|
|
|
|
(0x2b, 0x2b, 0x4f),
|
|
|
|
(0x23, 0x23, 0x3f),
|
|
|
|
(0x1b, 0x1b, 0x2f),
|
|
|
|
(0x13, 0x13, 0x1f),
|
|
|
|
(0x0b, 0x0b, 0x0f),
|
|
|
|
(0x2b, 0x00, 0x00),
|
|
|
|
(0x3b, 0x00, 0x00),
|
|
|
|
(0x4b, 0x07, 0x00),
|
|
|
|
(0x5f, 0x07, 0x00),
|
|
|
|
(0x6f, 0x0f, 0x00),
|
|
|
|
(0x7f, 0x17, 0x07),
|
|
|
|
(0x93, 0x1f, 0x07),
|
|
|
|
(0xa3, 0x27, 0x0b),
|
|
|
|
(0xb7, 0x33, 0x0f),
|
|
|
|
(0xc3, 0x4b, 0x1b),
|
|
|
|
(0xcf, 0x63, 0x2b),
|
|
|
|
(0xdb, 0x7f, 0x3b),
|
|
|
|
(0xe3, 0x97, 0x4f),
|
|
|
|
(0xe7, 0xab, 0x5f),
|
|
|
|
(0xef, 0xbf, 0x77),
|
|
|
|
(0xf7, 0xd3, 0x8b),
|
|
|
|
(0xa7, 0x7b, 0x3b),
|
|
|
|
(0xb7, 0x9b, 0x37),
|
|
|
|
(0xc7, 0xc3, 0x37),
|
|
|
|
(0xe7, 0xe3, 0x57),
|
|
|
|
(0x7f, 0xbf, 0xff),
|
|
|
|
(0xab, 0xe7, 0xff),
|
|
|
|
(0xd7, 0xff, 0xff),
|
|
|
|
(0x67, 0x00, 0x00),
|
|
|
|
(0x8b, 0x00, 0x00),
|
|
|
|
(0xb3, 0x00, 0x00),
|
|
|
|
(0xd7, 0x00, 0x00),
|
|
|
|
(0xff, 0x00, 0x00),
|
|
|
|
(0xff, 0xf3, 0x93),
|
|
|
|
(0xff, 0xf7, 0xc7),
|
|
|
|
(0xff, 0xff, 0xff),
|
|
|
|
(0x9f, 0x5b, 0x53),
|
|
|
|
)
|
2013-02-18 06:26:28 +00:00
|
|
|
|
|
|
|
palette = default_palette
|
|
|
|
|
|
|
|
def load_palette(filepath):
|
|
|
|
if not filepath:
|
|
|
|
palette = default_palette
|
|
|
|
else:
|
|
|
|
try:
|
|
|
|
f = open(filepath, "rb")
|
|
|
|
pal = f.read(768)
|
|
|
|
if len(pal) < 768:
|
|
|
|
pal = pal + b'\0' * (768 - len(pal))
|
|
|
|
palette = []
|
|
|
|
for i in range(256):
|
|
|
|
palette.append(unpack("<3B", pal[i * 3 : i * 3 + 3]))
|
|
|
|
palette = tuple(palette)
|
|
|
|
except IOError:
|
|
|
|
palette = default_palette
|
|
|
|
return None
|
|
|
|
return palette
|