UW Enemizer Work
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from collections import defaultdict
|
||||
import math
|
||||
import typing
|
||||
|
||||
@@ -6,11 +7,17 @@ try:
|
||||
except ImportError:
|
||||
from enum import IntFlag as FastEnum
|
||||
|
||||
import RaceRandom as random
|
||||
from BaseClasses import Location, LocationType
|
||||
from Items import ItemFactory
|
||||
from Utils import snes_to_pc, pc_to_snes, int16_as_bytes
|
||||
from source.logic.Rule import RuleFactory
|
||||
|
||||
# todo: bosses shifted coordinates
|
||||
|
||||
|
||||
class EnemyStats:
|
||||
def __init__(self, sprite, static, drop_flag=False, prize_pack=0, sub_type=0):
|
||||
def __init__(self, sprite, static, drop_flag=False, prize_pack: typing.Union[tuple, int] = 0, sub_type=0):
|
||||
self.sprite = sprite
|
||||
self.sub_type = sub_type
|
||||
self.static = static
|
||||
@@ -21,11 +28,16 @@ class EnemyStats:
|
||||
|
||||
|
||||
class EnemySprite(FastEnum):
|
||||
CorrectPullSwitch = 0x04,
|
||||
Raven = 0x00
|
||||
Vulture = 0x01
|
||||
CorrectPullSwitch = 0x04
|
||||
WrongPullSwitch = 0x06
|
||||
Octorok = 0x08
|
||||
Moldorm = 0x09
|
||||
Octorok4Way = 0x0a
|
||||
Cucco = 0x0b
|
||||
Buzzblob = 0x0d
|
||||
Snapdragon = 0x0e
|
||||
|
||||
Octoballoon = 0x0f
|
||||
OctoballoonBaby = 0x10
|
||||
@@ -90,16 +102,20 @@ class EnemySprite(FastEnum):
|
||||
BombGuard = 0x4a
|
||||
GreenKnifeGuard = 0x4b
|
||||
Geldman = 0x4c
|
||||
Toppo = 0x4d
|
||||
Popo = 0x4e
|
||||
Popo2 = 0x4f
|
||||
|
||||
|
||||
ArmosStatue = 0x51
|
||||
KingZora = 0x52
|
||||
ArmosKnight = 0x53
|
||||
Lanmolas = 0x54
|
||||
FireballZora = 0x55
|
||||
Zora = 0x56
|
||||
DesertStatue = 0x57
|
||||
Crab = 0x58
|
||||
LostWoodsBird = 0x59
|
||||
LostWoodsSquirrel =0x5a
|
||||
LostWoodsSquirrel = 0x5a
|
||||
SparkCW = 0x5b
|
||||
SparkCCW = 0x5c
|
||||
RollerVerticalUp = 0x5d
|
||||
@@ -159,8 +175,8 @@ class EnemySprite(FastEnum):
|
||||
Pengator = 0x99
|
||||
Kyameron = 0x9a
|
||||
Wizzrobe = 0x9b
|
||||
Zoro = 0x9c
|
||||
Babasu = 0x9d
|
||||
Zoro = 0x9c # babasu horizontal?
|
||||
Babasu = 0x9d # babasu vertical?
|
||||
GroveOstritch = 0x9e
|
||||
GroveRabbit = 0x9f
|
||||
GroveBird = 0xa0
|
||||
@@ -171,6 +187,10 @@ class EnemySprite(FastEnum):
|
||||
BlueZazak = 0xa5
|
||||
RedZazak = 0xa6
|
||||
Stalfos = 0xa7
|
||||
GreenZirro = 0xa8
|
||||
BlueZirro = 0xa9
|
||||
Pikit = 0xaa
|
||||
CrystalMaiden = 0xab
|
||||
# ... OW
|
||||
OldMan = 0xad
|
||||
PipeDown = 0xae
|
||||
@@ -179,9 +199,12 @@ class EnemySprite(FastEnum):
|
||||
PipeLeft = 0xb1
|
||||
GoodBee = 0xb2
|
||||
PedestalPlaque = 0xb3
|
||||
PurpleChest = 0xb4
|
||||
BombShopGuy = 0xb5
|
||||
Kiki = 0xb6
|
||||
BlindMaiden = 0xb7
|
||||
|
||||
BullyPinkBall = 0xb9
|
||||
|
||||
Whirlpool = 0xba
|
||||
Shopkeeper = 0xbb
|
||||
Drunkard = 0xbc
|
||||
@@ -206,14 +229,18 @@ class EnemySprite(FastEnum):
|
||||
Lynel = 0xd0
|
||||
BunnyBeam = 0xd1
|
||||
FloppingFish = 0xd2
|
||||
Stal = 0xd3
|
||||
Stal = 0xd3 # alive skull rock?
|
||||
DiggingGameNPC = 0xd5
|
||||
Ganon = 0xd6
|
||||
|
||||
Faerie = 0xe3
|
||||
SmallKey = 0xe4
|
||||
FakeMasterSword = 0xe8
|
||||
MagicShopAssistant = 0xe9
|
||||
HeartPiece = 0xeb
|
||||
SomariaPlatform = 0xed
|
||||
CastleMantle = 0xee
|
||||
MedallionTablet = 0xf2
|
||||
|
||||
|
||||
class SpriteType(FastEnum):
|
||||
@@ -222,7 +249,7 @@ class SpriteType(FastEnum):
|
||||
|
||||
|
||||
def init_enemy_stats():
|
||||
enemy_stats = {
|
||||
stats = {
|
||||
EnemySprite.CorrectPullSwitch: EnemyStats(EnemySprite.CorrectPullSwitch, True),
|
||||
EnemySprite.WrongPullSwitch: EnemyStats(EnemySprite.WrongPullSwitch, True),
|
||||
EnemySprite.Octorok: EnemyStats(EnemySprite.Octorok, False, True, 2),
|
||||
@@ -417,6 +444,22 @@ def init_enemy_stats():
|
||||
EnemySprite.CastleMantle: EnemyStats(EnemySprite.CastleMantle, True),
|
||||
|
||||
}
|
||||
return stats
|
||||
|
||||
|
||||
def handle_native_dungeon(location, itemid):
|
||||
# Keys in their native dungeon should use the original item code for keys
|
||||
if location.parent_region.dungeon:
|
||||
if location.parent_region.dungeon.name == location.item.dungeon:
|
||||
if location.item.bigkey:
|
||||
return 0x32
|
||||
if location.item.smallkey:
|
||||
return 0x24
|
||||
if location.item.map:
|
||||
return 0x33
|
||||
if location.item.compass:
|
||||
return 0x25
|
||||
return itemid
|
||||
|
||||
|
||||
class Sprite(object):
|
||||
@@ -432,15 +475,36 @@ class Sprite(object):
|
||||
self.drops_item = drops_item
|
||||
self.drop_item_kind = drop_item_kind
|
||||
|
||||
self.location = None
|
||||
|
||||
def copy(self):
|
||||
return Sprite(self.super_tile, self.kind, self.sub_type, self.layer, self.tile_x, self.tile_y, self.region,
|
||||
self.drops_item, self.drop_item_kind)
|
||||
|
||||
def sprite_data(self):
|
||||
data = [(self.layer << 7) | ((self.sub_type & 0x18) << 2) | self.tile_y,
|
||||
((self.sub_type & 7) << 5) | self.tile_x, self.kind]
|
||||
if self.location is not None:
|
||||
item_id = self.location.item.code if self.location.item is not None else 0x5A
|
||||
code = 0xF9 if self.location.item.player != self.location.player else 0xF8
|
||||
if code == 0xF8:
|
||||
item_id = handle_native_dungeon(self.location, item_id)
|
||||
data.append(item_id)
|
||||
data.append(0 if code == 0xF8 else self.location.item.player)
|
||||
data.append(code)
|
||||
return data
|
||||
|
||||
|
||||
# map of super_tile to list of Sprite objects:
|
||||
vanilla_sprites = {}
|
||||
enemy_stats = {}
|
||||
|
||||
|
||||
def create_sprite(super_tile, kind, sub_type, layer, tile_x, tile_y, region=None, drops_item=False, drop_item_kind=None):
|
||||
def create_sprite(super_tile, kind, sub_type, layer, tile_x, tile_y, region=None,
|
||||
drops_item=False, drop_item_kind=None):
|
||||
if super_tile not in vanilla_sprites:
|
||||
vanilla_sprites[super_tile] = []
|
||||
vanilla_sprites[super_tile].append(Sprite(kind, sub_type, layer, tile_x, tile_y,
|
||||
vanilla_sprites[super_tile].append(Sprite(super_tile, kind, sub_type, layer, tile_x, tile_y,
|
||||
region, drops_item, drop_item_kind))
|
||||
|
||||
|
||||
@@ -672,22 +736,22 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x0027, EnemySprite.SparkCW, 0x00, 0, 0x0f, 0x06, 'Hera Big Chest Landing')
|
||||
create_sprite(0x0027, EnemySprite.Kondongo, 0x00, 0, 0x05, 0x0e, 'Hera 4F')
|
||||
create_sprite(0x0027, EnemySprite.Kondongo, 0x00, 0, 0x04, 0x16, 'Hera 4F')
|
||||
create_sprite(0x0028, EnemySprite.Kyameron, 0x00, 0, 0x0a, 0x06, 'Hera 4F')
|
||||
create_sprite(0x0028, EnemySprite.Kyameron, 0x00, 0, 0x0a, 0x06, 'Swamp Entrance')
|
||||
create_sprite(0x0028, EnemySprite.Hover, 0x00, 0, 0x08, 0x08, 'Swamp Entrance')
|
||||
create_sprite(0x0028, EnemySprite.Hover, 0x00, 0, 0x0b, 0x0a, 'Swamp Entrance')
|
||||
create_sprite(0x0028, EnemySprite.Hover, 0x00, 0, 0x07, 0x0d, 'Swamp Entrance')
|
||||
create_sprite(0x0028, EnemySprite.SpikeBlock, 0x00, 0, 0x08, 0x10, 'Swamp Entrance')
|
||||
create_sprite(0x0029, EnemySprite.Mothula, 0x00, 0, 0x18, 0x16)
|
||||
create_sprite(0x0029, 0x07, SpriteType.Overlord, 0, 0x07, 0x16)
|
||||
create_sprite(0x002a, EnemySprite.CrystalSwitch, 0x00, 0, 0x10, 0x17)
|
||||
create_sprite(0x002a, EnemySprite.Bumper, 0x00, 0, 0x0f, 0x0f)
|
||||
create_sprite(0x002a, EnemySprite.CrystalSwitch, 0x00, 0, 0x10, 0x17, 'PoD Arena Main')
|
||||
create_sprite(0x002a, EnemySprite.Bumper, 0x00, 0, 0x0f, 0x0f, 'PoD Arena Main')
|
||||
create_sprite(0x002a, EnemySprite.HardhatBeetle, 0x00, 0, 0x0d, 0x08, 'PoD Arena North')
|
||||
create_sprite(0x002a, EnemySprite.HardhatBeetle, 0x00, 0, 0x07, 0x0c, 'PoD Arena Main')
|
||||
create_sprite(0x002a, EnemySprite.HardhatBeetle, 0x00, 0, 0x10, 0x0c, 'PoD Arena Main')
|
||||
create_sprite(0x002a, EnemySprite.HardhatBeetle, 0x00, 0, 0x0d, 0x0f, 'PoD Arena Main')
|
||||
create_sprite(0x002a, EnemySprite.HardhatBeetle, 0x00, 0, 0x13, 0x11, 'PoD Arena Main')
|
||||
create_sprite(0x002a, EnemySprite.HardhatBeetle, 0x00, 0, 0x0f, 0x13, 'PoD Arena Main')
|
||||
create_sprite(0x002b, EnemySprite.CrystalSwitch, 0x00, 0, 0x0a, 0x11, 'PoD Arena Main')
|
||||
create_sprite(0x002b, EnemySprite.CrystalSwitch, 0x00, 0, 0x0a, 0x11)
|
||||
create_sprite(0x002b, EnemySprite.Statue, 0x00, 0, 0x0a, 0x0a)
|
||||
create_sprite(0x002b, EnemySprite.RedBari, 0x00, 0, 0x07, 0x17, 'PoD Map Balcony')
|
||||
create_sprite(0x002b, EnemySprite.Faerie, 0x00, 0, 0x16, 0x17)
|
||||
@@ -776,9 +840,9 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x0039, 0x09, SpriteType.Overlord, 0, 0x0f, 0x0f)
|
||||
create_sprite(0x0039, EnemySprite.Gibdo, 0x00, 0, 0x05, 0x15, 'Skull Spike Corner', True, 0xe4)
|
||||
create_sprite(0x0039, EnemySprite.MiniHelmasaur, 0x00, 0, 0x09, 0x15, 'Skull Spike Corner')
|
||||
create_sprite(0x0039, EnemySprite.SpikeBlock, 0x00, 0, 0x17, 0x16, 'Skull Spike Corner')
|
||||
create_sprite(0x0039, EnemySprite.SpikeBlock, 0x00, 0, 0x17, 0x16, 'Skull Final Drop')
|
||||
create_sprite(0x0039, EnemySprite.HardhatBeetle, 0x00, 0, 0x0b, 0x18, 'Skull Spike Corner')
|
||||
create_sprite(0x0039, EnemySprite.SpikeBlock, 0x00, 0, 0x17, 0x1a, 'Skull Spike Corner')
|
||||
create_sprite(0x0039, EnemySprite.SpikeBlock, 0x00, 0, 0x17, 0x1a, 'Skull Final Drop')
|
||||
create_sprite(0x003a, EnemySprite.Terrorpin, 0x00, 0, 0x0e, 0x11, 'PoD Pit Room',)
|
||||
create_sprite(0x003a, EnemySprite.Terrorpin, 0x00, 0, 0x11, 0x11, 'PoD Pit Room',)
|
||||
create_sprite(0x003a, EnemySprite.Medusa, 0x00, 0, 0x04, 0x14, 'PoD Pit Room',)
|
||||
@@ -1920,6 +1984,8 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x0126, EnemySprite.Faerie, 0x00, 0, 0x08, 0x16)
|
||||
create_sprite(0x0126, EnemySprite.HeartPiece, 0x00, 0, 0x1c, 0x14)
|
||||
create_sprite(0x0127, EnemySprite.HeartPiece, 0x00, 0, 0x07, 0x16)
|
||||
global enemy_stats
|
||||
enemy_stats = init_enemy_stats()
|
||||
|
||||
|
||||
def kill_rules(world, player, stats):
|
||||
@@ -1984,6 +2050,132 @@ def kill_rules(world, player, stats):
|
||||
return defeat_rules
|
||||
|
||||
|
||||
layered_oam_rooms = {
|
||||
0x14, 0x15, 0x51, 0x59, 0x5b, 0x60, 0x62, 0x81, 0x86, 0xa8, 0xaa, 0xb2, 0xb9, 0xc2, 0xcb, 0xcc, 0xdb, 0xdc
|
||||
}
|
||||
|
||||
|
||||
class EnemyTable:
|
||||
def __init__(self):
|
||||
self.room_map = defaultdict(list)
|
||||
self.multiworld_count = 0
|
||||
|
||||
def write_sprite_data_to_rom(self, rom):
|
||||
pointer_address = snes_to_pc(0x09D62E)
|
||||
data_pointer = snes_to_pc(0x288000)
|
||||
empty_pointer = pc_to_snes(data_pointer) & 0xFFFF
|
||||
rom.write_bytes(data_pointer, [0x00, 0xff])
|
||||
data_pointer += 2
|
||||
for room in range(0, 0x128):
|
||||
if room in self.room_map:
|
||||
data_address = pc_to_snes(data_pointer) & 0xFFFF
|
||||
rom.write_bytes(pointer_address + room * 2, int16_as_bytes(data_address))
|
||||
rom.write_byte(data_pointer, 0x01 if room in layered_oam_rooms else 0x00)
|
||||
list_offset = 1
|
||||
for sprite in self.room_map[room]:
|
||||
data = sprite.sprite_data()
|
||||
rom.write_bytes(data_pointer + list_offset, data)
|
||||
list_offset + len(data)
|
||||
rom.write_byte(data_pointer, 0xff)
|
||||
data_pointer += list_offset + 1
|
||||
else:
|
||||
rom.write_bytes(pointer_address + room * 2, int16_as_bytes(empty_pointer))
|
||||
|
||||
def size(self):
|
||||
size = 2
|
||||
for room in range(0, 0x128):
|
||||
if room in self.room_map:
|
||||
size += sum(len(sprite.sprite_data()) for sprite in self.room_map[room]) + 2
|
||||
return size
|
||||
|
||||
|
||||
def setup_enemy_locations(world, player):
|
||||
world.enemy_list[player] = EnemyTable()
|
||||
for super_tile, enemy_list in vanilla_sprites.items():
|
||||
for index, sprite in enumerate(enemy_list):
|
||||
# if sprite.drops_item and sprite.drop_item_kind == 0xe4:
|
||||
# # normal key drops
|
||||
# pass
|
||||
my_sprite = sprite.copy()
|
||||
world.enemy_list[player].room_map[super_tile].append()
|
||||
|
||||
if valid_drop_location(my_sprite, world, player):
|
||||
create_drop_location(my_sprite, index, super_tile, world, player)
|
||||
|
||||
|
||||
def valid_drop_location(sprite, world, player):
|
||||
if world.dropshuffle[player] == 'underworld':
|
||||
if sprite.drops_item and sprite.drop_item_kind == 0xe4:
|
||||
# already has a location -- hook it up?
|
||||
return False
|
||||
else:
|
||||
stat = enemy_stats[sprite.kind]
|
||||
return not stat.static and stat.drop_flag
|
||||
|
||||
|
||||
def create_drop_location(sprite, index, super_tile, world, player):
|
||||
|
||||
address = drop_address(index, super_tile)
|
||||
region_name = sprite.region
|
||||
parent = world.get_region(region_name, player)
|
||||
descriptor = f'Enemy #{index+1}'
|
||||
modifier = parent.hint_text not in {'a storyteller', 'fairies deep in a cave', 'a spiky hint',
|
||||
'a bounty of five items', 'the sick kid', 'Sahasrahla'}
|
||||
hint_text = f'{"held by an enemy"} {"in" if modifier else "near"} {parent.hint_text}'
|
||||
drop_location = Location(player, f'{region_name} {descriptor}', address, hint_text=hint_text, parent=parent)
|
||||
world.dynamic_locations.append(drop_location)
|
||||
drop_location.drop = sprite
|
||||
sprite.location = drop_location
|
||||
drop_location.type = LocationType.Drop
|
||||
|
||||
|
||||
# todo: placeholder address
|
||||
def drop_address(index, super_tile):
|
||||
return 0x7f9000 + super_tile * 2 + (index << 24)
|
||||
|
||||
|
||||
prize_pack_selector = {
|
||||
0: ['Nothing'],
|
||||
1: ['Small Heart', 'Small Heart', 'Small Heart', 'Small Heart',
|
||||
'Rupee (1)', 'Small Heart', 'Small Heart', 'Rupee (1)'],
|
||||
2: ['Rupees (5)', 'Rupee (1)', 'Rupees (5)', 'Rupees (20)',
|
||||
'Rupees (5)', 'Rupee (1)', 'Rupees (5)', 'Rupees (5)'],
|
||||
3: ['Big Magic', 'Small Magic', 'Small Magic', 'Rupees (5)',
|
||||
'Big Magic', 'Small Magic', 'Small Heart', 'Small Magic'],
|
||||
4: ['Single Bomb', 'Single Bomb', 'Single Bomb', 'Single Bomb',
|
||||
'Single Bomb', 'Single Bomb', 'Bombs (10)', 'Single Bomb'],
|
||||
5: ['Arrows (5)', 'Small Heart', 'Arrows (5)', 'Arrows (10)',
|
||||
'Arrows (5)', 'Small Heart', 'Arrows (5)', 'Arrows (10)'],
|
||||
6: ['Small Magic', 'Rupee (1)', 'Small Heart', 'Arrows (5)',
|
||||
'Small Magic', 'Single Bomb', 'Rupee (1)', 'Small Heart'],
|
||||
7: ['Small Heart', 'Fairy', 'Big Magic', 'Rupees (20)',
|
||||
'Bombs (10)', 'Small Heart', 'Rupees (20)', 'Arrows (10)'],
|
||||
}
|
||||
|
||||
|
||||
def add_drop_contents(world, player):
|
||||
retro_bow = world.bow_mode[player].startswith('retro')
|
||||
index_selector = [0]*8
|
||||
for super_tile, enemy_list in world.enemy_list[player].room_map.items():
|
||||
for sprite in enemy_list:
|
||||
if sprite.drops_item and sprite.drop_item_kind == 0xe4:
|
||||
continue
|
||||
else:
|
||||
stat = enemy_stats[sprite.kind]
|
||||
if not stat.static and stat.drop_flag:
|
||||
pack = 0
|
||||
if isinstance(stat.prize_pack, int):
|
||||
pack = stat.prize_pack
|
||||
elif isinstance(stat.prize_pack, tuple):
|
||||
pack = random.choice(stat.prize_pack)
|
||||
pack_contents = prize_pack_selector[pack]
|
||||
idx = index_selector[pack]
|
||||
index_selector[pack] = (idx + 1) % len(pack_contents)
|
||||
item_name = pack_contents[idx]
|
||||
item_name = 'Rupees (5)' if retro_bow and 'Arrows' in item_name else item_name
|
||||
world.itempool.append(ItemFactory(item_name, player))
|
||||
|
||||
|
||||
def or_rule(*rules):
|
||||
return RuleFactory.disj(rules)
|
||||
|
||||
@@ -2126,3 +2318,218 @@ def can_shoot_arrows(world, player):
|
||||
def can_use_bombs(world, player):
|
||||
return or_rule(RuleFactory.static_rule(not world.bombag[player]), has('Bomb Upgrade (+10)', player))
|
||||
|
||||
enemy_names = {
|
||||
0x00: 'Raven',
|
||||
0x01: 'Vulture',
|
||||
0x04: 'CorrectPullSwitch',
|
||||
0x06: 'WrongPullSwitch',
|
||||
0x08: 'Octorok',
|
||||
0x09: 'Moldorm',
|
||||
0x0a: 'Octorok4Way',
|
||||
0x0b: 'Cucco',
|
||||
0x0d: 'Buzzblob',
|
||||
0x0e: 'Snapdragon',
|
||||
|
||||
0x0f: 'Octoballoon',
|
||||
0x10: 'OctoballoonBaby',
|
||||
0x11: 'Hinox',
|
||||
0x12: 'Moblin',
|
||||
0x13: 'MiniHelmasaur',
|
||||
0x14: 'ThievesTownGrate',
|
||||
0x15: 'AntiFairy',
|
||||
0x16: 'Wiseman',
|
||||
0x17: 'Hoarder',
|
||||
0x18: 'MiniMoldorm',
|
||||
0x19: 'Poe',
|
||||
0x1a: 'Smithy',
|
||||
0x1b: 'Arrow',
|
||||
0x1c: 'Statue',
|
||||
0x1d: 'FluteQuest',
|
||||
0x1e: 'CrystalSwitch',
|
||||
0x1f: 'SickKid',
|
||||
0x20: 'Sluggula',
|
||||
0x21: 'WaterSwitch',
|
||||
0x22: 'Ropa',
|
||||
0x23: 'RedBari',
|
||||
0x24: 'BlueBari',
|
||||
0x25: 'TalkingTree',
|
||||
0x26: 'HardhatBeetle',
|
||||
0x27: 'Deadrock',
|
||||
0x28: 'DarkWorldHintNpc',
|
||||
0x29: 'AdultNpc',
|
||||
0x2a: 'SweepingLady',
|
||||
0x2b: 'Hobo',
|
||||
0x2c: 'Lumberjacks',
|
||||
0x2d: 'TelepathicTile',
|
||||
0x2e: 'FluteKid',
|
||||
0x2f: 'RaceGameLady',
|
||||
|
||||
0x31: 'FortuneTeller',
|
||||
0x32: 'ArgueBros',
|
||||
0x33: 'RupeePull',
|
||||
0x34: 'YoungSnitch',
|
||||
0x35: 'Innkeeper',
|
||||
0x36: 'Witch',
|
||||
0x37: 'Waterfall',
|
||||
0x38: 'EyeStatue',
|
||||
0x39: 'Locksmith',
|
||||
0x3a: 'MagicBat',
|
||||
0x3b: 'BonkItem',
|
||||
0x3c: 'KidInKak',
|
||||
0x3d: 'OldSnitch',
|
||||
0x3e: 'Hoarder2',
|
||||
0x3f: 'TutorialGuard',
|
||||
|
||||
0x40: 'LightningGate',
|
||||
0x41: 'BlueGuard',
|
||||
0x42: 'GreenGuard',
|
||||
0x43: 'RedSpearGuard',
|
||||
0x44: 'BluesainBolt',
|
||||
0x45: 'UsainBolt',
|
||||
0x46: 'BlueArcher',
|
||||
0x47: 'GreenBushGuard',
|
||||
0x48: 'RedJavelinGuard',
|
||||
0x49: 'RedBushGuard',
|
||||
0x4a: 'BombGuard',
|
||||
0x4b: 'GreenKnifeGuard',
|
||||
0x4c: 'Geldman',
|
||||
0x4d: 'Toppo',
|
||||
0x4e: 'Popo',
|
||||
0x4f: 'Popo2',
|
||||
|
||||
0x51: 'ArmosStatue',
|
||||
0x52: 'KingZora',
|
||||
0x53: 'ArmosKnight',
|
||||
0x54: 'Lanmolas',
|
||||
0x55: 'FireballZora',
|
||||
0x56: 'Zora',
|
||||
0x57: 'DesertStatue',
|
||||
0x58: 'Crab',
|
||||
0x59: 'LostWoodsBird',
|
||||
0x5a: 'LostWoodsSquirrel',
|
||||
0x5b: 'SparkCW',
|
||||
0x5c: 'SparkCCW',
|
||||
0x5d: 'RollerVerticalUp',
|
||||
0x5e: 'RollerVerticalDown',
|
||||
0x5f: 'RollerHorizontalLeft',
|
||||
0x60: 'RollerHorizontalRight',
|
||||
0x61: 'Beamos',
|
||||
0x62: 'MasterSword',
|
||||
0x63: 'DebirandoPit',
|
||||
0x64: 'Debirando',
|
||||
0x65: 'ArcheryNpc',
|
||||
0x66: 'WallCannonVertLeft',
|
||||
0x67: 'WallCannonVertRight',
|
||||
0x68: 'WallCannonHorzTop',
|
||||
0x69: 'WallCannonHorzBottom',
|
||||
0x6a: 'BallNChain',
|
||||
0x6b: 'CannonTrooper',
|
||||
0x6d: 'CricketRat',
|
||||
0x6e: 'Snake',
|
||||
0x6f: 'Keese',
|
||||
|
||||
0x71: 'Leever',
|
||||
0x72: 'FairyPondTrigger',
|
||||
0x73: 'UnclePriest',
|
||||
0x74: 'RunningNpc',
|
||||
0x75: 'BottleMerchant',
|
||||
0x76: 'Zelda',
|
||||
0x78: 'Grandma',
|
||||
0x7a: 'Agahnim',
|
||||
0x7c: 'FloatingSkull',
|
||||
0x7d: 'BigSpike',
|
||||
0x7e: 'FirebarCW',
|
||||
0x7f: 'FirebarCCW',
|
||||
0x80: 'Firesnake',
|
||||
0x81: 'Hover',
|
||||
0x82: 'AntiFairyCircle',
|
||||
0x83: 'GreenEyegoreMimic',
|
||||
0x84: 'RedEyegoreMimic',
|
||||
0x85: 'YellowStalfos', # falling stalfos that shoots head
|
||||
0x86: 'Kondongo',
|
||||
0x88: 'Mothula',
|
||||
0x8a: 'SpikeBlock',
|
||||
0x8b: 'Gibdo',
|
||||
0x8c: 'Arrghus',
|
||||
0x8d: 'Arrghi',
|
||||
0x8e: 'Terrorpin',
|
||||
0x8f: 'Blob',
|
||||
0x90: 'Wallmaster',
|
||||
0x91: 'StalfosKnight',
|
||||
0x92: 'HelmasaurKing',
|
||||
0x93: 'Bumper',
|
||||
0x94: 'Pirogusu',
|
||||
0x95: 'LaserEyeLeft',
|
||||
0x96: 'LaserEyeRight',
|
||||
0x97: 'LaserEyeTop',
|
||||
0x98: 'LaserEyeBottom',
|
||||
0x99: 'Pengator',
|
||||
0x9a: 'Kyameron',
|
||||
0x9b: 'Wizzrobe',
|
||||
0x9c: 'Zoro', # babasu horizontal?
|
||||
0x9d: 'Babasu', # babasu vertical?
|
||||
0x9e: 'GroveOstritch',
|
||||
0x9f: 'GroveRabbit',
|
||||
0xa0: 'GroveBird',
|
||||
0xa1: 'Freezor',
|
||||
0xa2: 'Kholdstare',
|
||||
0xa3: 'KholdstareShell',
|
||||
0xa4: 'FallingIce',
|
||||
0xa5: 'BlueZazak',
|
||||
0xa6: 'RedZazak',
|
||||
0xa7: 'Stalfos',
|
||||
0xa8: 'GreenZirro',
|
||||
0xa9: 'BlueZirro',
|
||||
0xaa: 'Pikit',
|
||||
0xab: 'CrystalMaiden',
|
||||
# ... OW
|
||||
0xad: 'OldMan',
|
||||
0xae: 'PipeDown',
|
||||
0xaf: 'PipeUp',
|
||||
0xb0: 'PipeRight',
|
||||
0xb1: 'PipeLeft',
|
||||
0xb2: 'GoodBee',
|
||||
0xb3: 'PedestalPlaque',
|
||||
0xb4: 'PurpleChest',
|
||||
0xb5: 'BombShopGuy',
|
||||
0xb6: 'Kiki',
|
||||
0xb7: 'BlindMaiden',
|
||||
0xb9: 'BullyPinkBall',
|
||||
|
||||
0xba: 'Whirlpool',
|
||||
0xbb: 'Shopkeeper',
|
||||
0xbc: 'Drunkard',
|
||||
0xbd: 'Vitreous',
|
||||
# ... (spawnables)
|
||||
0xc0: 'Catfish',
|
||||
0xc1: 'CutsceneAgahnim',
|
||||
0xc2: 'Boulder',
|
||||
0xc3: 'Gibo', # patrick!
|
||||
0xc4: 'Thief',
|
||||
0xc5: 'Medusa',
|
||||
0xc6: 'FourWayShooter',
|
||||
0xc7: 'Pokey',
|
||||
0xc8: 'BigFairy',
|
||||
0xc9: 'Tektite', # firebat?
|
||||
0xca: 'Chainchomp',
|
||||
0xcb: 'TrinexxRockHead',
|
||||
0xcc: 'TrinexxFireHead',
|
||||
0xcd: 'TrinexxIceHead',
|
||||
0xce: 'Blind',
|
||||
0xcf: 'Swamola',
|
||||
0xd0: 'Lynel',
|
||||
0xd1: 'BunnyBeam',
|
||||
0xd2: 'FloppingFish',
|
||||
0xd3: 'Stal', # alive skull rock?
|
||||
0xd5: 'DiggingGameNPC',
|
||||
0xd6: 'Ganon',
|
||||
|
||||
0xe3: 'Faerie',
|
||||
0xe4: 'SmallKey',
|
||||
0xe8: 'FakeMasterSword',
|
||||
0xe9: 'MagicShopAssistant',
|
||||
0xeb: 'HeartPiece',
|
||||
0xed: 'SomariaPlatform',
|
||||
0xee: 'CastleMantle',
|
||||
0xf2: 'MedallionTablet',
|
||||
}
|
||||
266
source/dungeon/RoomConstants.py
Normal file
266
source/dungeon/RoomConstants.py
Normal file
@@ -0,0 +1,266 @@
|
||||
Ganon = 0x0
|
||||
HC_NorthCorridor = 0x1
|
||||
HC_SwitchRoom = 0x2
|
||||
HoulihanRoom = 0x3
|
||||
TR_CrystalRollerRoom = 0x4
|
||||
Swamp_Arrghus = 0x6
|
||||
Hera_Moldorm = 0x7
|
||||
Cave_HealingFairy = 0x8
|
||||
PalaceofDarkness0x09 = 0x9
|
||||
PoD_StalfosTrapRoom = 0xa
|
||||
PoD_TurtleRoom = 0xb
|
||||
GT_EntranceRoom = 0xc
|
||||
GT_Agahnim2 = 0xd
|
||||
Ice_EntranceRoom = 0xe
|
||||
GanonEvacuationRoute = 0x10
|
||||
HC_BombableStockRoom = 0x11
|
||||
Sanctuary = 0x12
|
||||
TR_Hokku_BokkuKeyRoom2 = 0x13
|
||||
TR_BigKeyRoom = 0x14
|
||||
TurtleRock0x15 = 0x15
|
||||
Swamp_SwimmingTreadmill = 0x16
|
||||
Hera_MoldormFallRoom = 0x17
|
||||
Cave0x18_BigFairyDropEntrance = 0x18
|
||||
PoD_DarkMaze = 0x19
|
||||
PoD_BigChestRoom = 0x1a
|
||||
PoD_Mimics_MovingWallRoom = 0x1b
|
||||
GT_IceArmos = 0x1c
|
||||
GT_FinalHallway = 0x1d
|
||||
Ice_BombFloor_BariRoom = 0x1e
|
||||
Ice_Pengator_BigKeyRoom = 0x1f
|
||||
Tower_Agahnim = 0x20
|
||||
HC_KeyRatRoom = 0x21
|
||||
HC_SewerTextTriggerRoom = 0x22
|
||||
TR_WestExittoBalcony = 0x23
|
||||
TR_DoubleHokku_Bokku_BigchestRoom = 0x24
|
||||
Swamp_StatueRoom = 0x26
|
||||
Hera_BigChest = 0x27
|
||||
Swamp_EntranceRoom = 0x28
|
||||
Skull_Mothula = 0x29
|
||||
PoD_BigHubRoom = 0x2a
|
||||
PoD_MapChest_FairyRoom = 0x2b
|
||||
Cave0x2C_HookshotCaveBackdoor = 0x2c
|
||||
Ice_CompassRoom = 0x2e
|
||||
Cave_KakarikoWellHP = 0x2f
|
||||
Tower_MaidenSacrificeChamber = 0x30
|
||||
Hera_HardhatBeetlesRoom = 0x31
|
||||
HC_SewerKeyChestRoom = 0x32
|
||||
Desert_Lanmolas = 0x33
|
||||
Swamp_PushBlockPuzzle_Pre_BigKeyRoom = 0x34
|
||||
Swamp_BigKey_BSRoom = 0x35
|
||||
Swamp_BigChestRoom = 0x36
|
||||
Swamp_MapChest_WaterFillRoom = 0x37
|
||||
Swamp_KeyPotRoom = 0x38
|
||||
Skull_GibdoKey_MothulaHoleRoom = 0x39
|
||||
PoD_BombableFloorRoom = 0x3a
|
||||
PoD_SpikeBlock_ConveyorRoom = 0x3b
|
||||
Cave0x3C_HookshotCave = 0x3c
|
||||
GT_TorchRoom2 = 0x3d
|
||||
Ice_StalfosKnights_ConveyorHellway = 0x3e
|
||||
Ice_MapChestRoom = 0x3f
|
||||
Tower_FinalBridgeRoom = 0x40
|
||||
HC_FirstDarkRoom = 0x41
|
||||
HC_6RopesRoom = 0x42
|
||||
Desert_TorchPuzzle_MovingWallRoom = 0x43
|
||||
TT_BigChestRoom = 0x44
|
||||
TT_JailCellsRoom = 0x45
|
||||
Swamp_CompassChestRoom = 0x46
|
||||
Skull_GibdoTorchPuzzleRoom = 0x49
|
||||
PoD_EntranceRoom = 0x4a
|
||||
PoD_Warps_SouthMimicsRoom = 0x4b
|
||||
GT_Mini_HelmasaurConveyorRoom = 0x4c
|
||||
GT_MoldormRoom = 0x4d
|
||||
Ice_Bomb_JumpRoom = 0x4e
|
||||
IcePalaceCloneRoom_FairyRoom = 0x4f
|
||||
HC_WestCorridor = 0x50
|
||||
HC_ThroneRoom = 0x51
|
||||
HC_EastCorridor = 0x52
|
||||
Desert_Popos2_BeamosHellwayRoom = 0x53
|
||||
Swamp_UpstairsPitsRoom = 0x54
|
||||
CastleSecretEntrance_UncleDeathRoom = 0x55
|
||||
Skull_KeyPot_TrapRoom = 0x56
|
||||
Skull_BigKeyRoom = 0x57
|
||||
Skull_BigChestRoom = 0x58
|
||||
Skull_FinalSectionEntranceRoom = 0x59
|
||||
PoD_HelmasaurKing = 0x5a
|
||||
GT_SpikePitRoom = 0x5b
|
||||
GT_Ganon_BallZ = 0x5c
|
||||
GT_Gauntlet1_2_3 = 0x5d
|
||||
Ice_LonelyFirebar = 0x5e
|
||||
Ice_HiddenChest_SpikeFloorRoom = 0x5f
|
||||
HC_WestEntranceRoom = 0x60
|
||||
HC_MainEntranceRoom = 0x61
|
||||
HC_EastEntranceRoom = 0x62
|
||||
Desert_FinalSectionEntranceRoom = 0x63
|
||||
TT_WestAtticRoom = 0x64
|
||||
TT_EastAtticRoom = 0x65
|
||||
Swamp_HiddenChest_HiddenDoorRoom = 0x66
|
||||
Skull_CompassChestRoom = 0x67
|
||||
Skull_KeyChest_TrapRoom = 0x68
|
||||
PoD_RupeeRoom = 0x6a
|
||||
GT_MimicsRooms = 0x6b
|
||||
GT_LanmolasRoom = 0x6c
|
||||
GT_Gauntlet4_5 = 0x6d
|
||||
Ice_PengatorsRoom = 0x6e
|
||||
HC_SmallCorridortoJailCells = 0x70
|
||||
HC_BoomerangChestRoom = 0x71
|
||||
HC_MapChestRoom = 0x72
|
||||
Desert_BigChestRoom = 0x73
|
||||
Desert_MapChestRoom = 0x74
|
||||
Desert_BigKeyChestRoom = 0x75
|
||||
Swamp_WaterDrainRoom = 0x76
|
||||
Hera_EntranceRoom = 0x77
|
||||
GanonsTower = 0x7b
|
||||
GT_EastSideCollapsingBridge_ExplodingWallRoom = 0x7c
|
||||
GT_Winder_WarpMazeRoom = 0x7d
|
||||
Ice_HiddenChest_BombableFloorRoom = 0x7e
|
||||
Ice_BigSpikeTrapsRoom = 0x7f
|
||||
HC_JailCellRoom = 0x80
|
||||
HC_NextToChasmRoom = 0x81
|
||||
HC_BasementChasmRoom = 0x82
|
||||
Desert_WestEntranceRoom = 0x83
|
||||
Desert_MainEntranceRoom = 0x84
|
||||
Desert_EastEntranceRoom = 0x85
|
||||
Hera_TileRoom = 0x87
|
||||
Eastern_FairyRoom = 0x89
|
||||
GT_BlockPuzzle_SpikeSkip_MapChestRoom = 0x8b
|
||||
GT_EastandWestDownstairs_BigChestRoom = 0x8c
|
||||
GT_Tile_TorchPuzzleRoom = 0x8d
|
||||
IcePalace0x8E = 0x8e
|
||||
Mire_Vitreous = 0x90
|
||||
Mire_FinalSwitchRoom = 0x91
|
||||
Mire_DarkBombWall_SwitchesRoom = 0x92
|
||||
Mire_DarkCaneFloorSwitchPuzzleRoom = 0x93
|
||||
GT_FinalCollapsingBridgeRoom = 0x95
|
||||
GT_Torches1Room = 0x96
|
||||
Mire_TorchPuzzle_MovingWallRoom = 0x97
|
||||
Mire_EntranceRoom = 0x98
|
||||
Eastern_EyegoreKeyRoom = 0x99
|
||||
GT_ManySpikes_WarpMazeRoom = 0x9b
|
||||
GT_InvisibleFloorMazeRoom = 0x9c
|
||||
GT_CompassChest_InvisibleFloorRoom = 0x9d
|
||||
Ice_BigChestRoom = 0x9e
|
||||
IcePalace0x9F = 0x9f
|
||||
Mire_Pre_VitreousRoom = 0xa0
|
||||
Mire_FishRoom = 0xa1
|
||||
Mire_BridgeKeyChestRoom = 0xa2
|
||||
MiseryMire0xA3 = 0xa3
|
||||
TR_Trinexx = 0xa4
|
||||
GT_WizzrobesRooms = 0xa5
|
||||
GT_MoldormFallRoom = 0xa6
|
||||
Hera_FairyRoom = 0xa7
|
||||
Eastern_StalfosSpawnRoom = 0xa8
|
||||
Eastern_BigChestRoom = 0xa9
|
||||
Eastern_MapChestRoom = 0xaa
|
||||
TT_MovingSpikes_KeyPotRoom = 0xab
|
||||
TT_BlindTheThief = 0xac
|
||||
IcePalace0xAE = 0xae
|
||||
Ice_IceBridgeRoom = 0xaf
|
||||
Tower_CircleofPots = 0xb0
|
||||
Mire_HourglassRoom = 0xb1
|
||||
Mire_SlugRoom = 0xb2
|
||||
Mire_SpikeKeyChestRoom = 0xb3
|
||||
TR_Pre_TrinexxRoom = 0xb4
|
||||
TR_DarkMaze = 0xb5
|
||||
TR_ChainChompsRoom = 0xb6
|
||||
TR_MapChest_KeyChest_RollerRoom = 0xb7
|
||||
Eastern_BigKeyRoom = 0xb8
|
||||
Eastern_LobbyCannonballsRoom = 0xb9
|
||||
Eastern_DarkAntifairy_KeyPotRoom = 0xba
|
||||
TT_Hellway = 0xbb
|
||||
TT_ConveyorToilet = 0xbc
|
||||
Ice_BlockPuzzleRoom = 0xbe
|
||||
IcePalaceCloneRoom_SwitchRoom = 0xbf
|
||||
Tower_DarkBridgeRoom = 0xc0
|
||||
Mire_CompassChest_TileRoom = 0xc1
|
||||
Mire_BigHubRoom = 0xc2
|
||||
Mire_BigChestRoom = 0xc3
|
||||
TR_FinalCrystalSwitchPuzzleRoom = 0xc4
|
||||
TR_LaserBridge = 0xc5
|
||||
TurtleRock0xC6 = 0xc6
|
||||
TR_TorchPuzzle = 0xc7
|
||||
Eastern_ArmosKnights = 0xc8
|
||||
Eastern_EntranceRoom = 0xc9
|
||||
UnknownRoom = 0xca
|
||||
TT_NorthWestEntranceRoom = 0xcb
|
||||
TT_NorthEastEntranceRoom = 0xcc
|
||||
Ice_HoletoKholdstareRoom = 0xce
|
||||
Tower_DarkMaze = 0xd0
|
||||
Mire_ConveyorSlug_BigKeyRoom = 0xd1
|
||||
Mire_Mire02_WizzrobesRoom = 0xd2
|
||||
TR_LaserKeyRoom = 0xd5
|
||||
TR_EntranceRoom = 0xd6
|
||||
Eastern_PreArmosKnightsRoom = 0xd8
|
||||
Eastern_CanonballRoom = 0xd9
|
||||
EasternPalace = 0xda
|
||||
TT_Main_SouthWestEntranceRoom = 0xdb
|
||||
TT_SouthEastEntranceRoom = 0xdc
|
||||
Ice_Kholdstare = 0xde
|
||||
Cave_BackwardsDeathMountainTopFloor = 0xdf
|
||||
Tower_EntranceRoom = 0xe0
|
||||
Cave_LostWoodsHP = 0xe1
|
||||
Cave_LumberjacksTreeHP = 0xe2
|
||||
Cave_HalfMagic = 0xe3
|
||||
Cave_LostOldManFinalCave = 0xe4
|
||||
Cave_LostOldManFinalCave2 = 0xe5
|
||||
Cave0xE6 = 0xe6
|
||||
Cave0xE7 = 0xe7
|
||||
Cave0xE8 = 0xe8
|
||||
Cave_SpectacleRockHP = 0xea
|
||||
Cave0xEB = 0xeb
|
||||
Cave0xED = 0xed
|
||||
Cave_SpiralCave = 0xee
|
||||
Cave_CrystalSwitch_5ChestsRoom = 0xef
|
||||
Cave_LostOldManStartingCave = 0xf0
|
||||
Cave_LostOldManStartingCave2 = 0xf1
|
||||
House = 0xf2
|
||||
House_OldWoman = 0xf3
|
||||
House_AngryBrothers = 0xf4
|
||||
House_AngryBrothers2 = 0xf5
|
||||
Cave0xF8 = 0xf8
|
||||
Cave0xF9 = 0xf9
|
||||
Cave0xFA = 0xfa
|
||||
Cave0xFB = 0xfb
|
||||
Cave0xFD = 0xfd
|
||||
Cave0xFE = 0xfe
|
||||
Cave0xFF = 0xff
|
||||
ShopInLostWoods0x100 = 0x100
|
||||
ScaredLadyHouses = 0x101
|
||||
SickKid = 0x102
|
||||
Inn_BushHouse = 0x103
|
||||
LinksHouse = 0x104
|
||||
ShabadooHouse = 0x105
|
||||
ChestGame_BombHouse = 0x106
|
||||
Library_BombFarmRoom = 0x107
|
||||
ChickenHouse = 0x108
|
||||
WitchHut = 0x109
|
||||
Aginah = 0x10a
|
||||
SwampFloodwayRoom = 0x10b
|
||||
MimicCave = 0x10c
|
||||
CaveOutsideMiseryMire = 0x10d
|
||||
Cave0x10E = 0x10e
|
||||
Shop0x10F = 0x10f
|
||||
Shop0x110 = 0x110
|
||||
ArcherGame = 0x111
|
||||
CaveShop0x112 = 0x112
|
||||
KingsTomb = 0x113
|
||||
WishingWell_Cave0x114 = 0x114
|
||||
WishingWell_BigFairy = 0x115
|
||||
FatFairy = 0x116
|
||||
SpikeCave = 0x117
|
||||
Shop0x118 = 0x118
|
||||
BlindsHouse = 0x119
|
||||
Mutant = 0x11a
|
||||
MirrorCaveGroveAndTomb = 0x11b
|
||||
BombShop = 0x11c
|
||||
BlindsBasement = 0x11d
|
||||
HypeCave = 0x11e
|
||||
Shop0x11F = 0x11f
|
||||
IceRodCave = 0x120
|
||||
SmithHouse = 0x121
|
||||
FortuneTellers = 0x122
|
||||
MiniMoldormCave = 0x123
|
||||
UnknownCave_BonkCave = 0x124
|
||||
Cave0x125 = 0x125
|
||||
CheckerBoardCave = 0x126
|
||||
HammerPegCave = 0x127
|
||||
326
source/dungeon/RoomHeader.py
Normal file
326
source/dungeon/RoomHeader.py
Normal file
@@ -0,0 +1,326 @@
|
||||
|
||||
|
||||
vanilla_headers = {
|
||||
0x0000: [0x41, 0x21, 0x13, 0x22, 0x07, 0x3D, 0x00, 0x00, 0x00, 0x10, 0xC0, 0x00, 0x00, 0x04],
|
||||
0x0001: [0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x00, 0x50, 0x52],
|
||||
0x0002: [0xC0, 0x1D, 0x04, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x18, 0x0D],
|
||||
0x0003: [0xC0, 0x07, 0x06, 0x19, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x02, 0x12, 0x00, 0x00, 0x00],
|
||||
0x0004: [0x00, 0x18, 0x0D, 0x26, 0x00, 0x26, 0x14, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x08, 0x08],
|
||||
0x0005: [0x00, 0x08, 0x08, 0x14, 0x00, 0x25, 0x00, 0x20, 0x06, 0x05, 0x0C, 0x00, 0x25, 0x00],
|
||||
0x0006: [0x00, 0x08, 0x08, 0x14, 0x00, 0x25, 0x00, 0x20, 0x06, 0x05, 0x0C, 0x00, 0x25, 0x00],
|
||||
0x0007: [0x20, 0x06, 0x05, 0x0C, 0x00, 0x25, 0x00, 0x00, 0x00, 0x17, 0x17, 0xC0, 0x07, 0x06],
|
||||
0x0008: [0xC0, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x07, 0x19, 0x00, 0x27, 0x00],
|
||||
0x0009: [0x00, 0x0F, 0x07, 0x19, 0x00, 0x27, 0x00, 0x00, 0x00, 0x4B, 0x4A, 0x4A, 0x00, 0x0F],
|
||||
0x000A: [0x00, 0x0F, 0x07, 0x19, 0x00, 0x27, 0x00, 0x00, 0x00, 0x09, 0x3A, 0x01, 0x0F, 0x07],
|
||||
0x000B: [0x01, 0x0F, 0x07, 0x19, 0x00, 0x03, 0x00, 0x00, 0x00, 0x6A, 0x1B, 0xC0, 0x28, 0x0E],
|
||||
0x000C: [0xC0, 0x28, 0x0E, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x8C, 0x8C, 0x40],
|
||||
0x000D: [0x40, 0x1B, 0x0E, 0x18, 0x05, 0x38, 0x00, 0x00, 0x13, 0x0B, 0x1C, 0x00, 0x08, 0x00],
|
||||
0x000E: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x21, 0x13],
|
||||
0x000F: [0x00, 0x21, 0x13, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00],
|
||||
0x0010: [0x00, 0x21, 0x13, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00],
|
||||
0x0011: [0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x02, 0xC0, 0x1D, 0x04],
|
||||
0x0012: [0xC0, 0x1D, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00],
|
||||
0x0013: [0x00, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x1E, 0x00, 0x00, 0x00],
|
||||
0x0014: [0x20, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00, 0xC0, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00],
|
||||
0x0015: [0xC0, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB6, 0x90, 0x08, 0x08],
|
||||
0x0016: [0x90, 0x08, 0x08, 0x11, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x20, 0x06, 0x05],
|
||||
0x0017: [0x20, 0x06, 0x05, 0x19, 0x00, 0x35, 0x00, 0x00, 0x00, 0x27, 0x07, 0x27, 0x01, 0x0F],
|
||||
0x0018: [0x00, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x22, 0x12, 0x07, 0x00, 0x00, 0x00],
|
||||
0x0019: [0x01, 0x0F, 0x07, 0x19, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x07, 0x19, 0x00, 0x16, 0x00],
|
||||
0x001A: [0x00, 0x0F, 0x07, 0x19, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x6A, 0x6A, 0x68, 0x0F],
|
||||
0x001B: [0x68, 0x0F, 0x07, 0x08, 0x00, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x1A, 0x0E],
|
||||
0x001C: [0x00, 0x1A, 0x0E, 0x09, 0x00, 0x04, 0x3F, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x1B, 0x0E],
|
||||
0x001D: [0x00, 0x1B, 0x0E, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x20, 0x13, 0x0B],
|
||||
0x001E: [0x20, 0x13, 0x0B, 0x1C, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3E, 0x0E, 0x00, 0x13, 0x0B],
|
||||
0x001F: [0x00, 0x13, 0x0B, 0x29, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x0C, 0x02],
|
||||
0x0020: [0x20, 0x0C, 0x02, 0x12, 0x00, 0x15, 0x25, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00],
|
||||
0x0021: [0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x26, 0x00, 0x01, 0x00],
|
||||
0x0022: [0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x26, 0x00, 0x01, 0x00],
|
||||
0x0023: [0x00, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x1E, 0x00, 0x00, 0x00],
|
||||
0x0024: [0x00, 0x18, 0x0D, 0x26, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x08, 0x11, 0x00, 0x16, 0x00],
|
||||
0x0025: [0x00, 0x0A, 0x08, 0x11, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x76, 0x76, 0x76, 0x20],
|
||||
0x0026: [0x00, 0x0A, 0x08, 0x11, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x76, 0x76, 0x76, 0x20],
|
||||
0x0027: [0x20, 0x06, 0x05, 0x19, 0x00, 0x36, 0x00, 0x00, 0x00, 0x31, 0x17, 0x31, 0x80, 0x0A],
|
||||
0x0028: [0x80, 0x0A, 0x08, 0x11, 0x00, 0x32, 0x1B, 0x00, 0x00, 0x00, 0x38, 0xCC, 0x0E, 0x09],
|
||||
0x0029: [0xCC, 0x0E, 0x09, 0x1A, 0x02, 0x25, 0x00, 0x00, 0x0F, 0x07, 0x19, 0x00, 0x00, 0x00],
|
||||
0x002A: [0x00, 0x0F, 0x07, 0x19, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x07, 0x2B, 0x00, 0x16, 0x00],
|
||||
0x002B: [0xC0, 0x0F, 0x07, 0x2B, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x13, 0x0B],
|
||||
0x002C: [0x00, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x22, 0x12, 0x07, 0x00, 0x00, 0x00],
|
||||
0x002D: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x2A, 0x00, 0xC0, 0x07, 0x06, 0x19, 0x00, 0x00, 0x00],
|
||||
0x002E: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x2A, 0x00, 0xC0, 0x07, 0x06, 0x19, 0x00, 0x00, 0x00],
|
||||
0x002F: [0xC0, 0x07, 0x06, 0x19, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x02, 0x12, 0x00, 0x00, 0x00],
|
||||
0x0030: [0x00, 0x0C, 0x02, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x06, 0x05],
|
||||
0x0031: [0x20, 0x06, 0x05, 0x19, 0x00, 0x37, 0x04, 0x22, 0x00, 0x77, 0x27, 0x77, 0x01, 0x01],
|
||||
0x0032: [0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x04, 0x05],
|
||||
0x0033: [0x00, 0x04, 0x05, 0x0B, 0x00, 0x15, 0x25, 0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00],
|
||||
0x0034: [0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x80, 0x0A, 0x08],
|
||||
0x0035: [0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x19, 0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00],
|
||||
0x0036: [0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00, 0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00],
|
||||
0x0037: [0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x19, 0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00],
|
||||
0x0038: [0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x20, 0x0D, 0x09],
|
||||
0x0039: [0x20, 0x0D, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x20, 0x0F, 0x07, 0x19],
|
||||
0x003A: [0x20, 0x0F, 0x07, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x0F, 0x07],
|
||||
0x003B: [0x00, 0x0F, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x07, 0x06],
|
||||
0x003C: [0x00, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00, 0x20, 0x1A, 0x0E, 0x0C, 0x00, 0x33, 0x00],
|
||||
0x003D: [0x20, 0x1A, 0x0E, 0x0C, 0x00, 0x33, 0x00, 0x00, 0x00, 0x96, 0x96, 0xCC, 0x13, 0x0B],
|
||||
0x003E: [0xCC, 0x13, 0x0B, 0x29, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x13, 0x0B],
|
||||
0x003F: [0x00, 0x13, 0x0B, 0x29, 0x00, 0x27, 0x14, 0x00, 0x00, 0x00, 0x1F, 0x5F, 0xC0, 0x00],
|
||||
0x0040: [0xC0, 0x00, 0x02, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xB0, 0x01, 0x00],
|
||||
0x0041: [0x01, 0x00, 0x00, 0x02, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x42, 0x01, 0x01, 0x01],
|
||||
0x0042: [0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x32, 0x68, 0x04],
|
||||
0x0043: [0x68, 0x04, 0x05, 0x0A, 0x00, 0x00, 0x1D, 0x00, 0x17, 0x0A, 0x1B, 0x00, 0x01, 0x00],
|
||||
0x0044: [0x00, 0x17, 0x0A, 0x1B, 0x00, 0x01, 0x00, 0x60, 0x17, 0x0A, 0x1B, 0x00, 0x01, 0x00],
|
||||
0x0045: [0x60, 0x17, 0x0A, 0x1B, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x0A, 0x08],
|
||||
0x0046: [0x00, 0x0A, 0x08, 0x11, 0x00, 0x3C, 0x00, 0x00, 0x0D, 0x09, 0x13, 0x00, 0x33, 0x34],
|
||||
0x0047: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x33, 0x34, 0x00, 0x0F, 0x07, 0x19, 0x00, 0x17, 0x00],
|
||||
0x0048: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x33, 0x34, 0x00, 0x0F, 0x07, 0x19, 0x00, 0x17, 0x00],
|
||||
0x0049: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x33, 0x34, 0x00, 0x0F, 0x07, 0x19, 0x00, 0x17, 0x00],
|
||||
0x004A: [0x00, 0x0F, 0x07, 0x19, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x0F],
|
||||
0x004B: [0x00, 0x0F, 0x07, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x1A, 0x0E, 0x0C],
|
||||
0x004C: [0x00, 0x1A, 0x0E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x20, 0x1A, 0x0E],
|
||||
0x004D: [0x20, 0x1A, 0x0E, 0x0C, 0x00, 0x32, 0x3F, 0x00, 0x00, 0xA6, 0xA6, 0x00, 0x13, 0x0B],
|
||||
0x004E: [0x00, 0x13, 0x0B, 0x29, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x13, 0x0B],
|
||||
0x004F: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xC0, 0x00, 0x00, 0x04],
|
||||
0x0050: [0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01],
|
||||
0x0051: [0xC0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00],
|
||||
0x0052: [0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01],
|
||||
0x0053: [0xC0, 0x04, 0x05, 0x0A, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x63, 0x20, 0x0A, 0x08],
|
||||
0x0054: [0x20, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x34, 0x01, 0x01, 0x10],
|
||||
0x0055: [0x01, 0x01, 0x10, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x09, 0x13, 0x00, 0x23, 0x00],
|
||||
0x0056: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x23, 0x00, 0x00, 0x0D, 0x09, 0x13, 0x00, 0x16, 0x00],
|
||||
0x0057: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x16, 0x00, 0x00, 0x0D, 0x09, 0x13, 0x00, 0x21, 0x28],
|
||||
0x0058: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x21, 0x28, 0xC0, 0x0D, 0x09, 0x13, 0x00, 0x00, 0x00],
|
||||
0x0059: [0xC0, 0x0D, 0x09, 0x13, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0x15, 0x00, 0x25, 0x00],
|
||||
0x005A: [0x00, 0x10, 0x07, 0x15, 0x00, 0x25, 0x00, 0xC0, 0x1B, 0x0E, 0x0A, 0x00, 0x17, 0x00],
|
||||
0x005B: [0xC0, 0x1B, 0x0E, 0x0A, 0x00, 0x17, 0x00, 0x00, 0x1B, 0x0E, 0x0A, 0x00, 0x00, 0x00],
|
||||
0x005C: [0x00, 0x1B, 0x0E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x24, 0x0E],
|
||||
0x005D: [0x00, 0x24, 0x0E, 0x23, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x20, 0x13, 0x0B],
|
||||
0x005E: [0x20, 0x13, 0x0B, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x13, 0x0B],
|
||||
0x005F: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0xC0, 0x00],
|
||||
0x0060: [0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00],
|
||||
0x0061: [0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x51, 0x00, 0x09, 0x05],
|
||||
0x0062: [0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00],
|
||||
0x0063: [0x00, 0x09, 0x05, 0x0A, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x53, 0xE0, 0x23, 0x0A],
|
||||
0x0064: [0xE0, 0x23, 0x0A, 0x21, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xE0, 0x23, 0x0A],
|
||||
0x0065: [0xE0, 0x23, 0x0A, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xC0, 0x0A, 0x08, 0x11],
|
||||
0x0066: [0xC0, 0x0A, 0x08, 0x11, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x0D, 0x09],
|
||||
0x0067: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x22, 0x00, 0x00, 0x0D, 0x09, 0x13, 0x00, 0x00, 0x00],
|
||||
0x0068: [0x00, 0x0D, 0x09, 0x13, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x07, 0x19, 0x00, 0x00, 0x00],
|
||||
0x0069: [0x01, 0x0F, 0x07, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x00, 0x1B],
|
||||
0x006A: [0x01, 0x0F, 0x07, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x00, 0x1B],
|
||||
0x006B: [0x00, 0x1B, 0x0E, 0x0A, 0x00, 0x08, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x24, 0x0E],
|
||||
0x006C: [0x00, 0x24, 0x0E, 0x23, 0x00, 0x03, 0x3F, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x24, 0x0E],
|
||||
0x006D: [0x00, 0x24, 0x0E, 0x23, 0x00, 0x05, 0x00, 0x00, 0x13, 0x0B, 0x1C, 0x00, 0x02, 0x00],
|
||||
0x006E: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x01, 0x01],
|
||||
0x006F: [0x00, 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x71, 0x80, 0xC0, 0x01],
|
||||
0x0070: [0x00, 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x71, 0x80, 0xC0, 0x01],
|
||||
0x0071: [0xC0, 0x01, 0x01, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x70, 0xC0, 0x01, 0x01],
|
||||
0x0072: [0xC0, 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x09, 0x05],
|
||||
0x0073: [0x00, 0x09, 0x05, 0x0A, 0x00, 0x17, 0x00, 0x00, 0x09, 0x05, 0x0A, 0x00, 0x27, 0x00],
|
||||
0x0074: [0x00, 0x09, 0x05, 0x0A, 0x00, 0x27, 0x00, 0x00, 0x09, 0x05, 0x0A, 0x00, 0x01, 0x00],
|
||||
0x0075: [0x00, 0x09, 0x05, 0x0A, 0x00, 0x01, 0x00, 0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x18],
|
||||
0x0076: [0x80, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x26, 0x26, 0x26, 0xC0],
|
||||
0x0077: [0xC0, 0x06, 0x05, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x31, 0x87, 0x87, 0x00],
|
||||
0x0078: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x03, 0x39, 0x00, 0x00, 0x9D, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x0079: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x03, 0x39, 0x00, 0x00, 0x9D, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x007A: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x03, 0x39, 0x00, 0x00, 0x9D, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x007B: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x03, 0x39, 0x00, 0x00, 0x9D, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x007C: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x20, 0x00, 0x00, 0x28, 0x0E, 0x13, 0x00, 0x04, 0x3C],
|
||||
0x007D: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x04, 0x3C, 0x00, 0x00, 0x9B, 0x20, 0x13, 0x0B, 0x1C],
|
||||
0x007E: [0x20, 0x13, 0x0B, 0x1C, 0x00, 0x2B, 0x17, 0x00, 0x00, 0x9E, 0x5E, 0x00, 0x13, 0x0B],
|
||||
0x007F: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x60, 0x01, 0x01],
|
||||
0x0080: [0x60, 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xC0, 0x01, 0x01],
|
||||
0x0081: [0xC0, 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x05, 0x0A, 0x00, 0x0D, 0x00],
|
||||
0x0082: [0xC0, 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x05, 0x0A, 0x00, 0x0D, 0x00],
|
||||
0x0083: [0x00, 0x09, 0x05, 0x0A, 0x00, 0x0D, 0x00, 0x00, 0x09, 0x05, 0x0A, 0x00, 0x00, 0x00],
|
||||
0x0084: [0x00, 0x09, 0x05, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x09, 0x05, 0x0A, 0x00, 0x02, 0x00],
|
||||
0x0085: [0x00, 0x09, 0x05, 0x0A, 0x00, 0x02, 0x00, 0x00, 0x06, 0x05, 0x19, 0x00, 0x3E, 0x01],
|
||||
0x0086: [0x00, 0x06, 0x05, 0x19, 0x00, 0x3E, 0x01, 0x28, 0x00, 0x00, 0x77, 0x77, 0x00, 0x0B],
|
||||
0x0087: [0x00, 0x06, 0x05, 0x19, 0x00, 0x3E, 0x01, 0x28, 0x00, 0x00, 0x77, 0x77, 0x00, 0x0B],
|
||||
0x0088: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0xA9, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x0089: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0xA9, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x008A: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x3A, 0x0C, 0x20, 0x28, 0x0E, 0x13, 0x00, 0x16, 0x00],
|
||||
0x008B: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x3A, 0x0C, 0x20, 0x28, 0x0E, 0x13, 0x00, 0x16, 0x00],
|
||||
0x008C: [0x20, 0x28, 0x0E, 0x13, 0x00, 0x16, 0x00, 0x28, 0x00, 0x1C, 0x0C, 0x0C, 0x1C, 0x00],
|
||||
0x008D: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x33, 0x29, 0x00, 0x13, 0x0B, 0x1C, 0x00, 0x00, 0x00],
|
||||
0x008E: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAE, 0x80, 0x12, 0x0C],
|
||||
0x008F: [0x80, 0x12, 0x0C, 0x16, 0x00, 0x25, 0x00, 0x00, 0x11, 0x0C, 0x1C, 0x00, 0x00, 0x00],
|
||||
0x0090: [0x80, 0x12, 0x0C, 0x16, 0x00, 0x25, 0x00, 0x00, 0x11, 0x0C, 0x1C, 0x00, 0x00, 0x00],
|
||||
0x0091: [0x00, 0x11, 0x0C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x11, 0x0C],
|
||||
0x0092: [0x01, 0x11, 0x0C, 0x1C, 0x00, 0x00, 0x00, 0x01, 0x11, 0x0C, 0x1C, 0x00, 0x16, 0x00],
|
||||
0x0093: [0x01, 0x11, 0x0C, 0x1C, 0x00, 0x16, 0x00, 0x08, 0x00, 0x00, 0xA2, 0x00, 0x25, 0x0E],
|
||||
0x0094: [0x00, 0x25, 0x0E, 0x24, 0x00, 0x00, 0x00, 0x00, 0x25, 0x0E, 0x24, 0x00, 0x33, 0x00],
|
||||
0x0095: [0x00, 0x25, 0x0E, 0x24, 0x00, 0x00, 0x00, 0x00, 0x25, 0x0E, 0x24, 0x00, 0x33, 0x00],
|
||||
0x0096: [0x00, 0x25, 0x0E, 0x24, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x68, 0x11, 0x0C],
|
||||
0x0097: [0x68, 0x11, 0x0C, 0x1D, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xD1, 0xD1, 0x00, 0x11, 0x0C],
|
||||
0x0098: [0x00, 0x11, 0x0C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x01, 0x0B, 0x05],
|
||||
0x0099: [0x01, 0x0B, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x28, 0x0E],
|
||||
0x009A: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x009B: [0x00, 0x28, 0x0E, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x28, 0x0E, 0x13],
|
||||
0x009C: [0x00, 0x28, 0x0E, 0x13, 0x06, 0x00, 0x00, 0x00, 0x28, 0x0E, 0x13, 0x06, 0x00, 0x3B],
|
||||
0x009D: [0x00, 0x28, 0x0E, 0x13, 0x06, 0x00, 0x3B, 0x00, 0x00, 0x7B, 0x20, 0x13, 0x0B, 0x1C],
|
||||
0x009E: [0x20, 0x13, 0x0B, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xBE, 0x00, 0x13, 0x0B],
|
||||
0x009F: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x17, 0x00, 0x00, 0x12, 0x0C, 0x1D, 0x00, 0x00, 0x00],
|
||||
0x00A0: [0x00, 0x12, 0x0C, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x11, 0x0C],
|
||||
0x00A1: [0x00, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00, 0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00],
|
||||
0x00A2: [0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x60, 0x19, 0x0D],
|
||||
0x00A3: [0x00, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00, 0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00],
|
||||
0x00A4: [0x60, 0x19, 0x0D, 0x17, 0x04, 0x25, 0x00, 0x00, 0x25, 0x0E, 0x24, 0x00, 0x07, 0x00],
|
||||
0x00A5: [0x00, 0x25, 0x0E, 0x24, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x25, 0x0E],
|
||||
0x00A6: [0x00, 0x25, 0x0E, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x06, 0x05],
|
||||
0x00A7: [0x00, 0x06, 0x05, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xC0, 0x0B, 0x05, 0x08],
|
||||
0x00A8: [0xC0, 0x0B, 0x05, 0x08, 0x00, 0x03, 0x00, 0xC0, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00A9: [0xC0, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00, 0x00, 0x00, 0x89, 0xC0, 0x0B, 0x05, 0x08],
|
||||
0x00AA: [0xC0, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00, 0x00, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00],
|
||||
0x00AB: [0x00, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xE0, 0x17, 0x0A],
|
||||
0x00AC: [0xE0, 0x17, 0x0A, 0x20, 0x00, 0x25, 0x00, 0x00, 0x13, 0x0B, 0x1C, 0x00, 0x27, 0x00],
|
||||
0x00AD: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x13, 0x0B],
|
||||
0x00AE: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x13, 0x0B],
|
||||
0x00AF: [0x00, 0x13, 0x0B, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x26, 0x02, 0x21, 0x00, 0x05, 0x02],
|
||||
0x00B0: [0x00, 0x26, 0x02, 0x21, 0x00, 0x05, 0x02, 0x08, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x11],
|
||||
0x00B1: [0x00, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB2, 0xC0, 0x11, 0x0C, 0x1D],
|
||||
0x00B2: [0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x03, 0x0E, 0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x27, 0x00],
|
||||
0x00B3: [0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x27, 0x00, 0x00, 0x19, 0x0D, 0x17, 0x00, 0x00, 0x00],
|
||||
0x00B4: [0x00, 0x19, 0x0D, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x01, 0x18, 0x0D],
|
||||
0x00B5: [0x01, 0x18, 0x0D, 0x25, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x18, 0x0D],
|
||||
0x00B6: [0x00, 0x18, 0x0D, 0x1E, 0x00, 0x04, 0x3C, 0x00, 0x00, 0x00, 0x15, 0x00, 0x0B, 0x05],
|
||||
0x00B7: [0x00, 0x18, 0x0D, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00],
|
||||
0x00B8: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x27, 0x00, 0xC0, 0x0B, 0x05, 0x08, 0x00, 0x00, 0x00],
|
||||
0x00B9: [0xC0, 0x0B, 0x05, 0x08, 0x00, 0x00, 0x00, 0x01, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00BA: [0x01, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00, 0x40, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00],
|
||||
0x00BB: [0x40, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x17, 0x0A, 0x1B, 0x00, 0x17, 0x00],
|
||||
0x00BC: [0x00, 0x17, 0x0A, 0x1B, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x13, 0x0B],
|
||||
0x00BD: [0x00, 0x13, 0x0B, 0x29, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4F, 0x9E, 0x00, 0x13, 0x0B],
|
||||
0x00BE: [0x00, 0x13, 0x0B, 0x29, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4F, 0x9E, 0x00, 0x13, 0x0B],
|
||||
0x00BF: [0x00, 0x13, 0x0B, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x27, 0x00, 0x02, 0x0F],
|
||||
0x00C0: [0x01, 0x00, 0x02, 0x27, 0x00, 0x02, 0x0F, 0x00, 0x00, 0x00, 0xB0, 0xD0, 0x00, 0x11],
|
||||
0x00C1: [0x00, 0x11, 0x0C, 0x1D, 0x00, 0x33, 0x00, 0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x27, 0x00],
|
||||
0x00C2: [0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x27, 0x00, 0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00],
|
||||
0x00C3: [0xC0, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x25, 0x00, 0x00, 0x00],
|
||||
0x00C4: [0x00, 0x18, 0x0D, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x18, 0x0D],
|
||||
0x00C5: [0x00, 0x18, 0x0D, 0x25, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x1E, 0x00, 0x33, 0x00],
|
||||
0x00C6: [0x00, 0x18, 0x0D, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00],
|
||||
0x00C7: [0x00, 0x18, 0x0D, 0x1E, 0x00, 0x33, 0x00, 0x00, 0x0B, 0x05, 0x09, 0x00, 0x15, 0x25],
|
||||
0x00C8: [0x00, 0x0B, 0x05, 0x09, 0x00, 0x15, 0x25, 0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00C9: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00, 0xC0, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00],
|
||||
0x00CA: [0xC0, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00, 0x20, 0x13, 0x0B, 0x29, 0x00, 0x14, 0x00],
|
||||
0x00CB: [0xC0, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00, 0x20, 0x13, 0x0B, 0x29, 0x00, 0x14, 0x00],
|
||||
0x00CC: [0xC0, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00, 0x20, 0x13, 0x0B, 0x29, 0x00, 0x14, 0x00],
|
||||
0x00CD: [0x20, 0x13, 0x0B, 0x29, 0x00, 0x14, 0x00, 0x00, 0x00, 0xDE, 0x01, 0x00, 0x02, 0x21],
|
||||
0x00CE: [0x20, 0x13, 0x0B, 0x29, 0x00, 0x14, 0x00, 0x00, 0x00, 0xDE, 0x01, 0x00, 0x02, 0x21],
|
||||
0x00CF: [0x01, 0x00, 0x02, 0x21, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x00, 0x11],
|
||||
0x00D0: [0x01, 0x00, 0x02, 0x21, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x00, 0x11],
|
||||
0x00D1: [0x00, 0x11, 0x0C, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x97, 0x00, 0x11, 0x0C],
|
||||
0x00D2: [0x00, 0x11, 0x0C, 0x1D, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x0B, 0x05],
|
||||
0x00D3: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x06, 0x00, 0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00D4: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x06, 0x00, 0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00D5: [0x00, 0x18, 0x0D, 0x25, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0D, 0x1E, 0x00, 0x33, 0x00],
|
||||
0x00D6: [0x00, 0x18, 0x0D, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x18, 0x0D, 0x26, 0x00, 0x00, 0x00],
|
||||
0x00D7: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x06, 0x00, 0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00D8: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x06, 0x00, 0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00D9: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00, 0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00],
|
||||
0x00DA: [0x00, 0x0B, 0x05, 0x08, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE0, 0x14, 0x0B],
|
||||
0x00DB: [0xC0, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00, 0x20, 0x13, 0x0B, 0x29, 0x00, 0x14, 0x00],
|
||||
0x00DC: [0xC0, 0x17, 0x0A, 0x1B, 0x00, 0x00, 0x00, 0x20, 0x13, 0x0B, 0x29, 0x00, 0x14, 0x00],
|
||||
0x00DD: [0xE0, 0x14, 0x0B, 0x16, 0x00, 0x25, 0x00, 0xC0, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00DE: [0xE0, 0x14, 0x0B, 0x16, 0x00, 0x25, 0x00, 0xC0, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00DF: [0xC0, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x26, 0x02],
|
||||
0x00E0: [0x00, 0x26, 0x02, 0x21, 0x00, 0x01, 0x2A, 0x00, 0x00, 0x00, 0xD0, 0xC0, 0x07, 0x06],
|
||||
0x00E1: [0xC0, 0x07, 0x06, 0x28, 0x00, 0x00, 0x00, 0x00, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00E2: [0x00, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x06, 0x09, 0x00, 0x00, 0x00],
|
||||
0x00E3: [0xC0, 0x20, 0x06, 0x09, 0x00, 0x00, 0x00, 0x01, 0x07, 0x14, 0x01, 0x00, 0x00, 0x00],
|
||||
0x00E4: [0x01, 0x07, 0x14, 0x01, 0x00, 0x00, 0x00, 0x01, 0x07, 0x06, 0x01, 0x00, 0x00, 0x00],
|
||||
0x00E5: [0x01, 0x07, 0x14, 0x01, 0x00, 0x00, 0x00, 0x01, 0x07, 0x06, 0x01, 0x00, 0x00, 0x00],
|
||||
0x00E6: [0x01, 0x07, 0x06, 0x01, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00E7: [0x01, 0x07, 0x06, 0x01, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00E8: [0x20, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8],
|
||||
0x00E9: [0x20, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFA, 0x20, 0x07, 0x06],
|
||||
0x00EA: [0x20, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFA, 0x20, 0x07, 0x06],
|
||||
0x00EB: [0x20, 0x07, 0x06, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFB, 0x20, 0x20, 0x06],
|
||||
0x00EC: [0x20, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0x20, 0x20],
|
||||
0x00ED: [0x20, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0x20, 0x20],
|
||||
0x00EE: [0x20, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x20, 0x20, 0x06, 0x13],
|
||||
0x00EF: [0x20, 0x20, 0x06, 0x13, 0x00, 0x02, 0x00, 0x08, 0x00, 0xFF, 0xDF, 0xFF, 0x00, 0x02],
|
||||
0x00F0: [0x01, 0x07, 0x06, 0x01, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00F1: [0x01, 0x07, 0x06, 0x01, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00F2: [0x00, 0x02, 0x03, 0x05, 0x00, 0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x07],
|
||||
0x00F3: [0x00, 0x02, 0x03, 0x05, 0x00, 0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x07],
|
||||
0x00F4: [0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00F5: [0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00F6: [0x00, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xE8, 0xE8, 0xE8],
|
||||
0x00F7: [0x00, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xE8, 0xE8, 0xE8],
|
||||
0x00F8: [0x00, 0x07, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xE8, 0xE8, 0xE8],
|
||||
0x00F9: [0x00, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00FA: [0xC0, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x07, 0x06],
|
||||
0x00FB: [0x00, 0x07, 0x06, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x00, 0x20, 0x06],
|
||||
0x00FC: [0x00, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0xED, 0x00, 0x07],
|
||||
0x00FD: [0x00, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0xED, 0x00, 0x07],
|
||||
0x00FE: [0x00, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x00FF: [0x00, 0x07, 0x06, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x05, 0x03],
|
||||
0x0100: [0x00, 0x05, 0x03, 0x28, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x03, 0x05, 0x00, 0x00, 0x00],
|
||||
0x0101: [0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x15, 0x03, 0x0D, 0x00, 0x00, 0x00],
|
||||
0x0102: [0x00, 0x15, 0x03, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x05, 0x03, 0x0F, 0x00, 0x00, 0x00],
|
||||
0x0103: [0x00, 0x05, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x15, 0x03, 0x0D, 0x00, 0x00, 0x00],
|
||||
0x0104: [0x01, 0x15, 0x03, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0F, 0x10, 0x00, 0x00, 0x00],
|
||||
0x0105: [0x00, 0x1C, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x03, 0x0F, 0x00, 0x00, 0x00],
|
||||
0x0106: [0x00, 0x1F, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00],
|
||||
0x0107: [0x00, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x0E, 0x00, 0x00, 0x00],
|
||||
0x0108: [0x00, 0x02, 0x03, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x05, 0x03, 0x05, 0x00, 0x00, 0x00],
|
||||
0x0109: [0x01, 0x05, 0x03, 0x05, 0x00, 0x00, 0x00, 0x01, 0x07, 0x06, 0x10, 0x00, 0x00, 0x00],
|
||||
0x010A: [0x01, 0x07, 0x06, 0x10, 0x00, 0x00, 0x00, 0x80, 0x0A, 0x08, 0x08, 0x00, 0x00, 0x1A],
|
||||
0x010B: [0x80, 0x0A, 0x08, 0x08, 0x00, 0x00, 0x1A, 0x00, 0x27, 0x06, 0x08, 0x00, 0x03, 0x00],
|
||||
0x010C: [0x00, 0x27, 0x06, 0x08, 0x00, 0x03, 0x00, 0x00, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00],
|
||||
0x010D: [0x00, 0x0A, 0x08, 0x11, 0x00, 0x00, 0x00, 0x00, 0x07, 0x14, 0x05, 0x00, 0x00, 0x00],
|
||||
0x010E: [0x00, 0x07, 0x14, 0x05, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x11, 0x05, 0x00, 0x00, 0x00],
|
||||
0x010F: [0x00, 0x1F, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00],
|
||||
0x0110: [0x00, 0x1F, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00],
|
||||
0x0111: [0x00, 0x1E, 0x11, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x14, 0x05, 0x00, 0x00, 0x00],
|
||||
0x0112: [0x00, 0x07, 0x14, 0x05, 0x00, 0x00, 0x00, 0x00, 0x03, 0x10, 0x08, 0x00, 0x00, 0x00],
|
||||
0x0113: [0x00, 0x03, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00],
|
||||
0x0114: [0x00, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x22, 0x12, 0x07, 0x00, 0x00, 0x00],
|
||||
0x0115: [0x00, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x22, 0x12, 0x07, 0x00, 0x00, 0x00],
|
||||
0x0116: [0x00, 0x22, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x14, 0x05, 0x00, 0x00, 0x00],
|
||||
0x0117: [0x00, 0x20, 0x14, 0x05, 0x00, 0x00, 0x00, 0xE0, 0x23, 0x0A, 0x0F, 0x00, 0x00, 0x00],
|
||||
0x0118: [0x00, 0x05, 0x03, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x15, 0x03, 0x0D, 0x00, 0x00, 0x00],
|
||||
0x0119: [0xE0, 0x23, 0x0A, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x1C, 0x0F],
|
||||
0x011A: [0x00, 0x1C, 0x0F, 0x05, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x06, 0x08, 0x00, 0x00, 0x00],
|
||||
0x011B: [0xC0, 0x07, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0x23, 0x0A, 0x0F, 0x00, 0x00, 0x00],
|
||||
0x011C: [0x00, 0x1F, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x0F, 0x00, 0x00, 0x00],
|
||||
0x011D: [0x00, 0x23, 0x0A, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x20, 0x06],
|
||||
0x011E: [0x00, 0x20, 0x06, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x05, 0x03, 0x05, 0x00, 0x00, 0x00],
|
||||
0x011F: [0x00, 0x05, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x13, 0x06, 0x13, 0x00, 0x00, 0x00],
|
||||
0x0120: [0x00, 0x13, 0x06, 0x13, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x28, 0x00, 0x03, 0x00],
|
||||
0x0121: [0x00, 0x1E, 0x11, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x14, 0x05, 0x00, 0x00, 0x00],
|
||||
0x0122: [0x00, 0x1E, 0x11, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x14, 0x05, 0x00, 0x00, 0x00],
|
||||
0x0123: [0x00, 0x07, 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x07, 0x06, 0x28, 0x00, 0x00, 0x00],
|
||||
0x0124: [0x00, 0x07, 0x06, 0x28, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x0125: [0x00, 0x07, 0x06, 0x28, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x0126: [0x00, 0x07, 0x06, 0x28, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x0127: [0x00, 0x20, 0x06, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x05, 0x03, 0x05, 0x00, 0x00, 0x00],
|
||||
0x0128: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x0129: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x012A: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x012B: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x012C: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x012D: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
|
||||
0x012E: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
|
||||
}
|
||||
|
||||
|
||||
class RoomHeader:
|
||||
def __init__(self, room_id, byte_array):
|
||||
self.room_id = room_id
|
||||
|
||||
# todo: the rest of the header
|
||||
self.sprite_sheet = byte_array[3]
|
||||
|
||||
def write_to_rom(self, rom, base_address):
|
||||
rom.write_byte(base_address + self.room_id*14 + 3, self.sprite_sheet)
|
||||
|
||||
|
||||
def init_room_headers():
|
||||
header_table = {}
|
||||
for room_id, header_bytes in vanilla_headers.items():
|
||||
header_table[room_id] = RoomHeader(room_id, header_bytes)
|
||||
return header_table
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
try:
|
||||
from fast_enum import FastEnum
|
||||
except ImportError:
|
||||
from enum import IntFlag as FastEnum
|
||||
|
||||
|
||||
from RoomData import DoorKind, Position
|
||||
from source.dungeon.RoomObject import RoomObject, DoorObject
|
||||
|
||||
|
||||
1
source/dungeon/__init__.py
Normal file
1
source/dungeon/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
# do nothing, just exist to make "source" package
|
||||
Reference in New Issue
Block a user