UW Enemizer work
Refinements for data table support
This commit is contained in:
@@ -542,21 +542,21 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x0004, EnemySprite.Blob, 0x00, 0, 0x1a, 0x1a, 'TR Tongue Pull')
|
||||
create_sprite(0x0004, EnemySprite.Blob, 0x00, 0, 0x15, 0x1b, 'TR Tongue Pull')
|
||||
create_sprite(0x0004, EnemySprite.Pokey, 0x00, 0, 0x07, 0x18, 'TR Dash Room')
|
||||
create_sprite(0x0006, EnemySprite.Arrghus, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x17)
|
||||
create_sprite(0x0007, EnemySprite.Moldorm, 0x00, 0, 0x12, 0x0e)
|
||||
create_sprite(0x0006, EnemySprite.Arrghus, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0006, EnemySprite.Arrghi, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x0007, EnemySprite.Moldorm, 0x00, 0, 0x9, 0x09)
|
||||
create_sprite(0x0008, EnemySprite.BigFairy, 0x00, 0, 0x07, 0x16)
|
||||
create_sprite(0x0009, EnemySprite.Medusa, 0x00, 0, 0x07, 0x08)
|
||||
create_sprite(0x0009, EnemySprite.Medusa, 0x00, 0, 0x08, 0x08)
|
||||
@@ -660,13 +660,13 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x001b, EnemySprite.RedEyegoreMimic, 0x00, 0, 0x07, 0x14, 'PoD Mimics 2')
|
||||
create_sprite(0x001b, EnemySprite.GreenEyegoreMimic, 0x00, 0, 0x03, 0x1c, 'PoD Mimics 2')
|
||||
create_sprite(0x001b, EnemySprite.GreenEyegoreMimic, 0x00, 0, 0x0c, 0x1c, 'PoD Mimics 2')
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x14, 0x15)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x17, 0x15)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x1a, 0x15)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x1a, 0x18)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x17, 0x18)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x14, 0x18)
|
||||
create_sprite(0x001c, 0x19, SpriteType.Overlord, 0, 0x17, 0x18)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x04, 0x05)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x0a, 0x05)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x0a, 0x08)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x07, 0x08)
|
||||
create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x04, 0x08)
|
||||
create_sprite(0x001c, 0x19, SpriteType.Overlord, 0, 0x07, 0x08)
|
||||
create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x07, 0x07)
|
||||
create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x08, 0x07)
|
||||
create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x07, 0x08)
|
||||
@@ -741,7 +741,7 @@ def init_vanilla_sprites():
|
||||
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, EnemySprite.Mothula, 0x00, 0, 0x08, 0x06)
|
||||
create_sprite(0x0029, 0x07, SpriteType.Overlord, 0, 0x07, 0x16)
|
||||
create_sprite(0x002a, EnemySprite.CrystalSwitch, 0x00, 0, 0x10, 0x17, 'PoD Arena Main')
|
||||
create_sprite(0x002a, EnemySprite.Bumper, 0x00, 0, 0x0f, 0x0f, 'PoD Arena Main')
|
||||
@@ -787,9 +787,9 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x0032, EnemySprite.Keese, 0x00, 0, 0x13, 0x0d, 'Sewers Dark Cross')
|
||||
create_sprite(0x0032, EnemySprite.Snake, 0x00, 0, 0x10, 0x0e, 'Sewers Dark Cross')
|
||||
create_sprite(0x0032, EnemySprite.Snake, 0x00, 0, 0x12, 0x0f, 'Sewers Dark Cross')
|
||||
create_sprite(0x0033, EnemySprite.Lanmolas, 0x00, 0, 0x06, 0x17)
|
||||
create_sprite(0x0033, EnemySprite.Lanmolas, 0x00, 0, 0x09, 0x17)
|
||||
create_sprite(0x0033, EnemySprite.Lanmolas, 0x00, 0, 0x07, 0x19)
|
||||
create_sprite(0x0033, EnemySprite.Lanmolas, 0x00, 0, 0x06, 0x07)
|
||||
create_sprite(0x0033, EnemySprite.Lanmolas, 0x00, 0, 0x09, 0x07)
|
||||
create_sprite(0x0033, EnemySprite.Lanmolas, 0x00, 0, 0x07, 0x09)
|
||||
create_sprite(0x0034, EnemySprite.Hover, 0x00, 0, 0x0f, 0x0b, 'Swamp West Shallows')
|
||||
create_sprite(0x0034, EnemySprite.Hover, 0x00, 0, 0x10, 0x12, 'Swamp West Shallows')
|
||||
create_sprite(0x0034, EnemySprite.Kyameron, 0x00, 0, 0x0f, 0x15, 'Swamp West Shallows')
|
||||
@@ -965,7 +965,7 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x004c, EnemySprite.MiniHelmasaur, 0x00, 0, 0x18, 0x0a, 'GT Frozen Over')
|
||||
create_sprite(0x004c, EnemySprite.MiniHelmasaur, 0x00, 0, 0x14, 0x15, 'GT Frozen Over')
|
||||
create_sprite(0x004c, EnemySprite.SpikeBlock, 0x00, 0, 0x13, 0x18, 'GT Frozen Over')
|
||||
create_sprite(0x004d, EnemySprite.Moldorm, 0x00, 0, 0x0e, 0x0e)
|
||||
create_sprite(0x004d, EnemySprite.Moldorm, 0x00, 0, 0x09, 0x09)
|
||||
create_sprite(0x004e, EnemySprite.Blob, 0x00, 0, 0x14, 0x08, 'Ice Narrow Corridor')
|
||||
create_sprite(0x004e, EnemySprite.Blob, 0x00, 0, 0x16, 0x08, 'Ice Narrow Corridor')
|
||||
create_sprite(0x004e, EnemySprite.Blob, 0x00, 0, 0x18, 0x08, 'Ice Narrow Corridor')
|
||||
@@ -1056,7 +1056,7 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x0059, EnemySprite.Gibdo, 0x00, 0, 0x17, 0x14, 'Skull East Bridge')
|
||||
create_sprite(0x0059, EnemySprite.Gibdo, 0x00, 1, 0x15, 0x15, 'Skull East Bridge')
|
||||
create_sprite(0x0059, EnemySprite.Gibdo, 0x00, 1, 0x1a, 0x15, 'Skull East Bridge')
|
||||
create_sprite(0x005a, EnemySprite.HelmasaurKing, 0x00, 0, 0x17, 0x16)
|
||||
create_sprite(0x005a, EnemySprite.HelmasaurKing, 0x00, 0, 0x07, 0x06)
|
||||
create_sprite(0x005b, EnemySprite.CrystalSwitch, 0x00, 1, 0x17, 0x0c)
|
||||
create_sprite(0x005b, EnemySprite.CrystalSwitch, 0x00, 1, 0x18, 0x13)
|
||||
create_sprite(0x005b, EnemySprite.SpikeBlock, 0x00, 1, 0x17, 0x15, 'GT Hidden Spikes')
|
||||
@@ -1169,9 +1169,9 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x006b, EnemySprite.Beamos, 0x00, 0, 0x1b, 0x15, 'GT Mimics 2')
|
||||
create_sprite(0x006b, EnemySprite.Beamos, 0x00, 0, 0x14, 0x1b, 'GT Mimics 2')
|
||||
create_sprite(0x006b, EnemySprite.RedEyegoreMimic, 0x00, 0, 0x18, 0x1b, 'GT Mimics 2')
|
||||
create_sprite(0x006c, EnemySprite.Lanmolas, 0x00, 0, 0x06, 0x17, 'GT Lanmolas 2')
|
||||
create_sprite(0x006c, EnemySprite.Lanmolas, 0x00, 0, 0x09, 0x17, 'GT Lanmolas 2')
|
||||
create_sprite(0x006c, EnemySprite.Lanmolas, 0x00, 0, 0x07, 0x19, 'GT Lanmolas 2')
|
||||
create_sprite(0x006c, EnemySprite.Lanmolas, 0x00, 0, 0x06, 0x07, 'GT Lanmolas 2')
|
||||
create_sprite(0x006c, EnemySprite.Lanmolas, 0x00, 0, 0x09, 0x07, 'GT Lanmolas 2')
|
||||
create_sprite(0x006c, EnemySprite.Lanmolas, 0x00, 0, 0x07, 0x09, 'GT Lanmolas 2')
|
||||
create_sprite(0x006c, EnemySprite.BunnyBeam, 0x00, 0, 0x17, 0x18, 'GT Beam Dash')
|
||||
create_sprite(0x006c, EnemySprite.Medusa, 0x00, 0, 0x03, 0x1c, 'GT Lanmolas 2')
|
||||
create_sprite(0x006d, EnemySprite.RedZazak, 0x00, 0, 0x05, 0x06, 'GT Gauntlet 4')
|
||||
@@ -1369,7 +1369,7 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x008e, EnemySprite.Blob, 0x00, 0, 0x16, 0x0a, 'Ice Lonely Freezor')
|
||||
create_sprite(0x008e, EnemySprite.Blob, 0x00, 0, 0x14, 0x0b, 'Ice Lonely Freezor')
|
||||
create_sprite(0x008e, EnemySprite.Blob, 0x00, 0, 0x18, 0x0b, 'Ice Lonely Freezor')
|
||||
create_sprite(0x0090, EnemySprite.Vitreous, 0x00, 0, 0x07, 0x15)
|
||||
create_sprite(0x0090, EnemySprite.Vitreous, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x0091, EnemySprite.CrystalSwitch, 0x00, 0, 0x18, 0x04, 'Mire Falling Foes')
|
||||
create_sprite(0x0091, EnemySprite.SpikeBlock, 0x00, 0, 0x1b, 0x0e, 'Mire Falling Foes')
|
||||
create_sprite(0x0091, 0x08, SpriteType.Overlord, 0, 0x17, 0x0f)
|
||||
@@ -1475,9 +1475,9 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x00a1, EnemySprite.Stalfos, 0x00, 0, 0x15, 0x19, 'Mire South Fish')
|
||||
create_sprite(0x00a1, EnemySprite.BunnyBeam, 0x00, 0, 0x17, 0x19, 'Mire South Fish')
|
||||
create_sprite(0x00a1, EnemySprite.Stalfos, 0x00, 0, 0x1b, 0x19, 'Mire South Fish')
|
||||
create_sprite(0x00a4, EnemySprite.TrinexxRockHead, 0x00, 0, 0x07, 0x15)
|
||||
create_sprite(0x00a4, EnemySprite.TrinexxFireHead, 0x00, 0, 0x07, 0x15)
|
||||
create_sprite(0x00a4, EnemySprite.TrinexxIceHead, 0x00, 0, 0x07, 0x15)
|
||||
create_sprite(0x00a4, EnemySprite.TrinexxRockHead, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x00a4, EnemySprite.TrinexxFireHead, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x00a4, EnemySprite.TrinexxIceHead, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x00a5, EnemySprite.Wizzrobe, 0x00, 0, 0x16, 0x05, 'GT Wizzrobes 2')
|
||||
create_sprite(0x00a5, EnemySprite.Wizzrobe, 0x00, 0, 0x19, 0x05, 'GT Wizzrobes 2')
|
||||
create_sprite(0x00a5, EnemySprite.Wizzrobe, 0x00, 0, 0x04, 0x07, 'GT Wizzrobes 1')
|
||||
@@ -1521,7 +1521,7 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x00ab, EnemySprite.SpikeBlock, 0x00, 0, 0x03, 0x19, 'Thieves Spike Switch')
|
||||
create_sprite(0x00ab, EnemySprite.SpikeBlock, 0x00, 0, 0x0c, 0x1a, 'Thieves Spike Switch')
|
||||
create_sprite(0x00ab, EnemySprite.SpikeBlock, 0x00, 0, 0x03, 0x1b, 'Thieves Spike Switch')
|
||||
create_sprite(0x00ac, EnemySprite.Blind, 0x00, 0, 0x19, 0x15)
|
||||
create_sprite(0x00ac, EnemySprite.Blind, 0x00, 0, 0x09, 0x05)
|
||||
create_sprite(0x00ae, EnemySprite.BlueBari, 0x00, 0, 0x13, 0x07, 'Iced T')
|
||||
create_sprite(0x00ae, EnemySprite.BlueBari, 0x00, 0, 0x15, 0x07, 'Iced T')
|
||||
create_sprite(0x00af, EnemySprite.FirebarCW, 0x00, 0, 0x0a, 0x08, 'Ice Catwalk')
|
||||
@@ -1688,13 +1688,13 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x00c6, EnemySprite.FloatingSkull, 0x00, 0, 0x10, 0x0e, 'TR Hub Ledges')
|
||||
create_sprite(0x00c6, EnemySprite.BlueBari, 0x00, 0, 0x18, 0x14, 'TR Hub Ledges')
|
||||
create_sprite(0x00c6, EnemySprite.BlueBari, 0x00, 0, 0x08, 0x17, 'TR Hub Ledges')
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x14, 0x15)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x17, 0x15)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x1a, 0x15)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x1a, 0x18)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x17, 0x18)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x14, 0x18)
|
||||
create_sprite(0x00c8, 0x19, SpriteType.Overlord, 0, 0x17, 0x18)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x04, 0x05)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x0a, 0x05)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x0a, 0x08)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x07, 0x08)
|
||||
create_sprite(0x00c8, EnemySprite.ArmosKnight, 0x00, 0, 0x04, 0x08)
|
||||
create_sprite(0x00c8, 0x19, SpriteType.Overlord, 0, 0x07, 0x08)
|
||||
create_sprite(0x00c9, EnemySprite.Popo2, 0x00, 0, 0x10, 0x05, 'Eastern Lobby Bridge')
|
||||
create_sprite(0x00c9, EnemySprite.Popo2, 0x00, 0, 0x0f, 0x06, 'Eastern Lobby Bridge')
|
||||
create_sprite(0x00c9, EnemySprite.Popo2, 0x00, 0, 0x10, 0x07, 'Eastern Lobby Bridge')
|
||||
@@ -1804,9 +1804,9 @@ def init_vanilla_sprites():
|
||||
create_sprite(0x00dc, EnemySprite.Firesnake, 0x00, 1, 0x16, 0x17, 'Thieves Compass Room')
|
||||
create_sprite(0x00dc, EnemySprite.Firesnake, 0x00, 0, 0x05, 0x1c, 'Thieves Compass Room')
|
||||
create_sprite(0x00dc, EnemySprite.Blob, 0x00, 0, 0x0f, 0x1c, 'Thieves Compass Room')
|
||||
create_sprite(0x00de, EnemySprite.KholdstareShell, 0x00, 0, 0x17, 0x05)
|
||||
create_sprite(0x00de, EnemySprite.FallingIce, 0x00, 0, 0x17, 0x05)
|
||||
create_sprite(0x00de, EnemySprite.Kholdstare, 0x00, 0, 0x17, 0x05)
|
||||
create_sprite(0x00de, EnemySprite.KholdstareShell, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x00de, EnemySprite.FallingIce, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x00de, EnemySprite.Kholdstare, 0x00, 0, 0x07, 0x05)
|
||||
create_sprite(0x00df, EnemySprite.MiniMoldorm, 0x00, 1, 0x0c, 0x15, 'Paradox Cave')
|
||||
create_sprite(0x00df, EnemySprite.MiniMoldorm, 0x00, 1, 0x0c, 0x16, 'Paradox Cave')
|
||||
create_sprite(0x00e0, EnemySprite.BallNChain, 0x00, 0, 0x04, 0x06, 'Tower Gold Knights')
|
||||
@@ -2075,8 +2075,8 @@ class EnemyTable:
|
||||
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)
|
||||
list_offset += len(data)
|
||||
rom.write_byte(data_pointer + list_offset, 0xff)
|
||||
data_pointer += list_offset + 1
|
||||
else:
|
||||
rom.write_bytes(pointer_address + room * 2, int16_as_bytes(empty_pointer))
|
||||
@@ -2090,23 +2090,16 @@ class EnemyTable:
|
||||
|
||||
|
||||
def setup_enemy_locations(world, player):
|
||||
world.enemy_list[player] = EnemyTable()
|
||||
for super_tile, enemy_list in vanilla_sprites.items():
|
||||
for super_tile, enemy_list in world.data_tables[player].uw_enemy_table.room_map.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)
|
||||
if valid_drop_location(sprite, world, player):
|
||||
create_drop_location(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?
|
||||
# already has a location
|
||||
return False
|
||||
else:
|
||||
stat = enemy_stats[sprite.kind]
|
||||
|
||||
@@ -315,7 +315,8 @@ class RoomHeader:
|
||||
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)
|
||||
room_offest = self.room_id*14
|
||||
rom.write_byte(base_address + room_offest + 3, self.sprite_sheet)
|
||||
|
||||
|
||||
def init_room_headers():
|
||||
|
||||
@@ -17,23 +17,25 @@ class Room:
|
||||
self.doors = doors
|
||||
|
||||
def write_to_rom(self, address, rom):
|
||||
offset = 0
|
||||
rom.write_bytes(address, self.layout)
|
||||
address += 2
|
||||
offset += 2
|
||||
for obj in self.layer1:
|
||||
rom.write_bytes(address, obj.data)
|
||||
address += 3
|
||||
rom.write_bytes(address, [0xFF, 0xFF])
|
||||
address += 2
|
||||
rom.write_bytes(address + offset, obj.data)
|
||||
offset += 3
|
||||
rom.write_bytes(address + offset, [0xFF, 0xFF])
|
||||
offset += 2
|
||||
for obj in self.layer2:
|
||||
rom.write_bytes(address, obj.data)
|
||||
address += 3
|
||||
rom.write_bytes(address, [0xFF, 0xFF, 0xF0, 0xFF])
|
||||
address += 4
|
||||
rom.write_bytes(address + offset, obj.data)
|
||||
offset += 3
|
||||
rom.write_bytes(address + offset, [0xFF, 0xFF, 0xF0, 0xFF])
|
||||
offset += 4
|
||||
door_start = offset
|
||||
for door in self.doors:
|
||||
rom.write_bytes(address, door.get_bytes())
|
||||
address += 2
|
||||
rom.write_bytes(address, [0xFF, 0xFF])
|
||||
return address + 2 # where the data ended
|
||||
rom.write_bytes(address + offset, door.get_bytes())
|
||||
offset += 2
|
||||
rom.write_bytes(address + offset, [0xFF, 0xFF])
|
||||
return door_start, offset + 2 # how many bytes were written
|
||||
|
||||
|
||||
Room0127 = Room([0xE1, 0x00],
|
||||
|
||||
Reference in New Issue
Block a user