let python's MRO handle sprite palette defaults
This commit is contained in:
parent
f0eebdd84f
commit
a0f7653f50
27
Rom.py
27
Rom.py
|
@ -12,6 +12,7 @@ import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
import threading
|
import threading
|
||||||
import concurrent.futures
|
import concurrent.futures
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from BaseClasses import CollectionState, ShopType, Region, Location
|
from BaseClasses import CollectionState, ShopType, Region, Location
|
||||||
from Dungeons import dungeon_music_addresses
|
from Dungeons import dungeon_music_addresses
|
||||||
|
@ -380,28 +381,26 @@ def get_sprite_from_name(name, local_random=random):
|
||||||
return _sprite_table.get(name, None)
|
return _sprite_table.get(name, None)
|
||||||
|
|
||||||
class Sprite(object):
|
class Sprite(object):
|
||||||
default_palette = [255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157,
|
palette = (255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157,
|
||||||
89, 71, 54, 104, 59, 74, 10, 239, 18, 92, 42, 113, 21, 24, 122,
|
89, 71, 54, 104, 59, 74, 10, 239, 18, 92, 42, 113, 21, 24, 122,
|
||||||
255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157,
|
255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157,
|
||||||
89, 128, 105, 145, 118, 184, 38, 127, 67, 92, 42, 153, 17, 24, 122,
|
89, 128, 105, 145, 118, 184, 38, 127, 67, 92, 42, 153, 17, 24, 122,
|
||||||
255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157,
|
255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157,
|
||||||
89, 87, 16, 126, 69, 243, 109, 185, 126, 92, 42, 39, 34, 24, 122,
|
89, 87, 16, 126, 69, 243, 109, 185, 126, 92, 42, 39, 34, 24, 122,
|
||||||
255, 127, 126, 35, 218, 17, 158, 54, 165, 20, 255, 1, 120, 16, 151,
|
255, 127, 126, 35, 218, 17, 158, 54, 165, 20, 255, 1, 120, 16, 151,
|
||||||
61, 71, 54, 104, 59, 74, 10, 239, 18, 126, 86, 114, 24, 24, 122]
|
61, 71, 54, 104, 59, 74, 10, 239, 18, 126, 86, 114, 24, 24, 122)
|
||||||
|
|
||||||
default_glove_palette = [246, 82, 118, 3]
|
glove_palette = (246, 82, 118, 3)
|
||||||
|
author_name:Optional[str] = None
|
||||||
|
|
||||||
def __init__(self, filename):
|
def __init__(self, filename):
|
||||||
with open(filename, 'rb') as file:
|
with open(filename, 'rb') as file:
|
||||||
filedata = bytearray(file.read())
|
filedata = bytearray(file.read())
|
||||||
self.name = os.path.basename(filename)
|
self.name = os.path.basename(filename)
|
||||||
self.author_name = None
|
|
||||||
self.valid = True
|
self.valid = True
|
||||||
if len(filedata) == 0x7000:
|
if len(filedata) == 0x7000:
|
||||||
# sprite file with graphics and without palette data
|
# sprite file with graphics and without palette data
|
||||||
self.sprite = filedata[:0x7000]
|
self.sprite = filedata[:0x7000]
|
||||||
self.palette = list(self.default_palette)
|
|
||||||
self.glove_palette = list(self.default_glove_palette)
|
|
||||||
elif len(filedata) == 0x7078:
|
elif len(filedata) == 0x7078:
|
||||||
# sprite file with graphics and palette data
|
# sprite file with graphics and palette data
|
||||||
self.sprite = filedata[:0x7000]
|
self.sprite = filedata[:0x7000]
|
||||||
|
@ -428,11 +427,9 @@ class Sprite(object):
|
||||||
return
|
return
|
||||||
self.sprite = sprite
|
self.sprite = sprite
|
||||||
if len(palette) == 0:
|
if len(palette) == 0:
|
||||||
self.palette = list(self.default_palette)
|
pass
|
||||||
self.glove_palette = list(self.default_glove_palette)
|
|
||||||
elif len(palette) == 0x78:
|
elif len(palette) == 0x78:
|
||||||
self.palette = palette
|
self.palette = palette
|
||||||
self.glove_palette = list(self.default_glove_palette)
|
|
||||||
elif len(palette) == 0x7C:
|
elif len(palette) == 0x7C:
|
||||||
self.palette = palette[:0x78]
|
self.palette = palette[:0x78]
|
||||||
self.glove_palette = palette[0x78:]
|
self.glove_palette = palette[0x78:]
|
||||||
|
|
Loading…
Reference in New Issue