warn if an invalid sprite is attempted to be used, instead of silently ignoring it
This commit is contained in:
parent
f886cd58b1
commit
5e3fc5c90e
19
Rom.py
19
Rom.py
|
@ -542,6 +542,14 @@ class Sprite(object):
|
||||||
def __hash__(self):
|
def __hash__(self):
|
||||||
return hash(self.name)
|
return hash(self.name)
|
||||||
|
|
||||||
|
def write_to_rom(self, rom : LocalRom):
|
||||||
|
if not self.valid:
|
||||||
|
logging.warning("Tried writing invalid sprite to rom, skipping.")
|
||||||
|
return
|
||||||
|
rom.write_bytes(0x80000, self.sprite)
|
||||||
|
rom.write_bytes(0xDD308, self.palette)
|
||||||
|
rom.write_bytes(0xDEDF5, self.glove_palette)
|
||||||
|
|
||||||
def patch_rom(world, rom, player, team, enemized):
|
def patch_rom(world, rom, player, team, enemized):
|
||||||
local_random = world.rom_seeds[player]
|
local_random = world.rom_seeds[player]
|
||||||
|
|
||||||
|
@ -1498,8 +1506,8 @@ def apply_rom_settings(rom, beep, color, quickswap, fastmenu, disable_music, spr
|
||||||
rom.write_byte(0x65561, {'red': 0x05, 'blue': 0x0D, 'green': 0x19, 'yellow': 0x09}[color])
|
rom.write_byte(0x65561, {'red': 0x05, 'blue': 0x0D, 'green': 0x19, 'yellow': 0x09}[color])
|
||||||
|
|
||||||
# write link sprite if required
|
# write link sprite if required
|
||||||
if sprite is not None:
|
if sprite:
|
||||||
write_sprite(rom, sprite)
|
sprite.write_to_rom(rom)
|
||||||
|
|
||||||
# reset palette if it was adjusted already
|
# reset palette if it was adjusted already
|
||||||
default_ow_palettes(rom)
|
default_ow_palettes(rom)
|
||||||
|
@ -1538,13 +1546,6 @@ def apply_rom_settings(rom, beep, color, quickswap, fastmenu, disable_music, spr
|
||||||
rom.write_crc()
|
rom.write_crc()
|
||||||
|
|
||||||
|
|
||||||
def write_sprite(rom, sprite):
|
|
||||||
if not sprite.valid:
|
|
||||||
return
|
|
||||||
rom.write_bytes(0x80000, sprite.sprite)
|
|
||||||
rom.write_bytes(0xDD308, sprite.palette)
|
|
||||||
rom.write_bytes(0xDEDF5, sprite.glove_palette)
|
|
||||||
|
|
||||||
def set_color(rom, address, color, shade):
|
def set_color(rom, address, color, shade):
|
||||||
r = round(min(color[0], 0xFF) * pow(0.8, shade) * 0x1F / 0xFF)
|
r = round(min(color[0], 0xFF) * pow(0.8, shade) * 0x1F / 0xFF)
|
||||||
g = round(min(color[1], 0xFF) * pow(0.8, shade) * 0x1F / 0xFF)
|
g = round(min(color[1], 0xFF) * pow(0.8, shade) * 0x1F / 0xFF)
|
||||||
|
|
Loading…
Reference in New Issue