smrpgpatchbuilder 6.2.11__tar.gz → 7.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {smrpgpatchbuilder-6.2.11/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-7.0.0}/PKG-INFO +1 -1
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/pyproject.toml +1 -1
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/levels/classes.py +81 -164
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +14 -38
- smrpgpatchbuilder-7.0.0/src/smrpgpatchbuilder/datatypes/minecart/__init__.py +28 -0
- smrpgpatchbuilder-7.0.0/src/smrpgpatchbuilder/datatypes/minecart/_vanilla_block.py +480 -0
- smrpgpatchbuilder-7.0.0/src/smrpgpatchbuilder/datatypes/minecart/classes.py +166 -0
- smrpgpatchbuilder-7.0.0/src/smrpgpatchbuilder/datatypes/minecart/constants.py +74 -0
- smrpgpatchbuilder-7.0.0/src/smrpgpatchbuilder/datatypes/minecart/lz3.py +192 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +29 -8
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +10 -4
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +4 -10
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/roomconverter.py +6 -18
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +6 -15
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +6 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
- smrpgpatchbuilder-7.0.0/src/tests/minecart/test_minecart.py +88 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/LICENSE +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/MANIFEST.in +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/README.md +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/setup.cfg +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/manage.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/utils/number.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/smrpgpatchbuilder/utils/strings.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/animations/test_animationscripts.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/dialogs/test_formatter.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/levels/__init__.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/levels/test_room_collection.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/monsters/test_ai.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/overworld/test_actionscripts.py +0 -0
- {smrpgpatchbuilder-6.2.11 → smrpgpatchbuilder-7.0.0}/src/tests/overworld/test_eventscripts.py +0 -0
|
@@ -826,11 +826,8 @@ class NPC:
|
|
|
826
826
|
_min_vram_size: int = 0
|
|
827
827
|
_cannot_clone: bool = False
|
|
828
828
|
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
_byte2_bit2: bool = False
|
|
832
|
-
_byte2_bit3: bool = False
|
|
833
|
-
_byte2_bit4: bool = False
|
|
829
|
+
_extra_palette_source_offset: int = 0
|
|
830
|
+
_extra_palette_row_count: int = 0
|
|
834
831
|
_byte5_bit6: bool = False
|
|
835
832
|
_byte5_bit7: bool = False
|
|
836
833
|
_byte6_bit2: bool = False
|
|
@@ -889,43 +886,41 @@ class NPC:
|
|
|
889
886
|
return self._show_shadow
|
|
890
887
|
|
|
891
888
|
@property
|
|
892
|
-
def
|
|
893
|
-
"""(
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
return self.
|
|
889
|
+
def extra_palette_source_offset(self) -> int:
|
|
890
|
+
"""Palette-load source offset M (0-7). When extra palette rows are loaded (see
|
|
891
|
+
extra_palette_row_count), the first extra CGRAM row is sourced from this sprite's
|
|
892
|
+
base palette ID + M. Pair a nonzero offset with a nonzero row count so
|
|
893
|
+
A_IncPaletteRowBy / A_SetPaletteRow recolors to the NEXT palette, not a duplicate
|
|
894
|
+
of the base. Packed into NPC mold byte 2 bits 0-2; read by the overworld
|
|
895
|
+
sprite-palette loader at $C0:9DB6. (Formerly byte2_bit0/1/2.)"""
|
|
896
|
+
return self._extra_palette_source_offset
|
|
900
897
|
|
|
901
898
|
@property
|
|
902
|
-
def
|
|
903
|
-
"""(
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
"""(unknown)"""
|
|
909
|
-
return self._byte2_bit3
|
|
910
|
-
|
|
911
|
-
@property
|
|
912
|
-
def byte2_bit4(self) -> bool:
|
|
913
|
-
"""(unknown)"""
|
|
914
|
-
return self._byte2_bit4
|
|
899
|
+
def extra_palette_row_count(self) -> int:
|
|
900
|
+
"""Number of extra palette rows N (0-3) loaded into CGRAM after the sprite's base
|
|
901
|
+
palette. N=0 loads only the base palette (no recolor -- an A_IncPaletteRowBy would
|
|
902
|
+
spill into the next sprite's palette row). Packed into NPC mold byte 2 bits 3-4;
|
|
903
|
+
read by the sprite-palette loader at $C0:9DA8. (Formerly byte2_bit3/4.)"""
|
|
904
|
+
return self._extra_palette_row_count
|
|
915
905
|
|
|
916
906
|
@property
|
|
917
907
|
def byte5_bit6(self) -> bool:
|
|
918
|
-
"""
|
|
908
|
+
"""Physical-field default. Loaded into object RAM $0E bit 4 by the NPC loader at
|
|
909
|
+
$C0:8D45. Part of the sprite's background-layer overlap / collision ("physical
|
|
910
|
+
field") data; precise runtime effect is undocumented."""
|
|
919
911
|
return self._byte5_bit6
|
|
920
912
|
|
|
921
913
|
@property
|
|
922
914
|
def byte5_bit7(self) -> bool:
|
|
923
|
-
"""
|
|
915
|
+
"""Physical-field default. Loaded into object RAM $0E bit 5 by the NPC loader at
|
|
916
|
+
$C0:8D45. See byte5_bit6."""
|
|
924
917
|
return self._byte5_bit7
|
|
925
918
|
|
|
926
919
|
@property
|
|
927
920
|
def byte6_bit2(self) -> bool:
|
|
928
|
-
"""
|
|
921
|
+
"""Physical-field default. Loaded into object RAM $0D bit 2 by the NPC loader at
|
|
922
|
+
$C0:8D70 (that low nibble is also writable at runtime by action opcode 0x11). Part
|
|
923
|
+
of the sprite's "physical field" data; precise runtime effect is undocumented."""
|
|
929
924
|
return self._byte6_bit2
|
|
930
925
|
|
|
931
926
|
@property
|
|
@@ -995,25 +990,15 @@ class NPC:
|
|
|
995
990
|
"""Set whether a shadow for the NPC when airborne will be loaded to VRAM."""
|
|
996
991
|
self._show_shadow = show_shadow
|
|
997
992
|
|
|
998
|
-
def
|
|
999
|
-
"""(
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
def set_byte2_bit1(self, byte2_bit1: bool) -> None:
|
|
1003
|
-
"""(unknown)"""
|
|
1004
|
-
self._byte2_bit1 = byte2_bit1
|
|
993
|
+
def set_extra_palette_source_offset(self, extra_palette_source_offset: int) -> None:
|
|
994
|
+
"""Set the palette-load source offset M (0-7)."""
|
|
995
|
+
assert 0 <= extra_palette_source_offset <= 7
|
|
996
|
+
self._extra_palette_source_offset = extra_palette_source_offset
|
|
1005
997
|
|
|
1006
|
-
def
|
|
1007
|
-
"""(
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
def set_byte2_bit3(self, byte2_bit3: bool) -> None:
|
|
1011
|
-
"""(unknown)"""
|
|
1012
|
-
self._byte2_bit3 = byte2_bit3
|
|
1013
|
-
|
|
1014
|
-
def set_byte2_bit4(self, byte2_bit4: bool) -> None:
|
|
1015
|
-
"""(unknown)"""
|
|
1016
|
-
self._byte2_bit4 = byte2_bit4
|
|
998
|
+
def set_extra_palette_row_count(self, extra_palette_row_count: int) -> None:
|
|
999
|
+
"""Set the number of extra palette rows N (0-3)."""
|
|
1000
|
+
assert 0 <= extra_palette_row_count <= 3
|
|
1001
|
+
self._extra_palette_row_count = extra_palette_row_count
|
|
1017
1002
|
|
|
1018
1003
|
def set_byte5_bit6(self, byte5_bit6: bool) -> None:
|
|
1019
1004
|
"""(unknown)"""
|
|
@@ -1066,11 +1051,8 @@ class NPC:
|
|
|
1066
1051
|
priority_1: bool = False,
|
|
1067
1052
|
priority_2: bool = True,
|
|
1068
1053
|
cannot_clone: bool = False,
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
byte2_bit2: bool = False,
|
|
1072
|
-
byte2_bit3: bool = False,
|
|
1073
|
-
byte2_bit4: bool = False,
|
|
1054
|
+
extra_palette_source_offset: int = 0,
|
|
1055
|
+
extra_palette_row_count: int = 0,
|
|
1074
1056
|
byte5_bit6: bool = False,
|
|
1075
1057
|
byte5_bit7: bool = False,
|
|
1076
1058
|
byte6_bit2: bool = False,
|
|
@@ -1088,11 +1070,8 @@ class NPC:
|
|
|
1088
1070
|
self._priority_1 = priority_1
|
|
1089
1071
|
self._priority_2 = priority_2
|
|
1090
1072
|
self._cannot_clone = cannot_clone
|
|
1091
|
-
self.
|
|
1092
|
-
self.
|
|
1093
|
-
self._byte2_bit2 = byte2_bit2
|
|
1094
|
-
self._byte2_bit3 = byte2_bit3
|
|
1095
|
-
self._byte2_bit4 = byte2_bit4
|
|
1073
|
+
self.set_extra_palette_source_offset(extra_palette_source_offset)
|
|
1074
|
+
self.set_extra_palette_row_count(extra_palette_row_count)
|
|
1096
1075
|
self._byte5_bit6 = byte5_bit6
|
|
1097
1076
|
self._byte5_bit7 = byte5_bit7
|
|
1098
1077
|
self._byte6_bit2 = byte6_bit2
|
|
@@ -1129,11 +1108,8 @@ class BaseRoomObject:
|
|
|
1129
1108
|
_cannot_clone: bool | None = None
|
|
1130
1109
|
|
|
1131
1110
|
# Unknown bit flags
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
_byte2_bit2: bool | None = None
|
|
1135
|
-
_byte2_bit3: bool | None = None
|
|
1136
|
-
_byte2_bit4: bool | None = None
|
|
1111
|
+
_extra_palette_source_offset: int | None = None
|
|
1112
|
+
_extra_palette_row_count: int | None = None
|
|
1137
1113
|
_byte5_bit6: bool | None = None
|
|
1138
1114
|
_byte5_bit7: bool | None = None
|
|
1139
1115
|
_byte6_bit2: bool | None = None
|
|
@@ -1178,43 +1154,28 @@ class BaseRoomObject:
|
|
|
1178
1154
|
return self._show_shadow
|
|
1179
1155
|
|
|
1180
1156
|
@property
|
|
1181
|
-
def
|
|
1182
|
-
"""(
|
|
1183
|
-
return self.
|
|
1184
|
-
|
|
1185
|
-
@property
|
|
1186
|
-
def byte2_bit1(self) -> bool | None:
|
|
1187
|
-
"""(unknown)"""
|
|
1188
|
-
return self._byte2_bit1
|
|
1157
|
+
def extra_palette_source_offset(self) -> int | None:
|
|
1158
|
+
"""Optional per-room override of the palette-load source offset M (0-7). See NPC.extra_palette_source_offset."""
|
|
1159
|
+
return self._extra_palette_source_offset
|
|
1189
1160
|
|
|
1190
1161
|
@property
|
|
1191
|
-
def
|
|
1192
|
-
"""(
|
|
1193
|
-
return self.
|
|
1194
|
-
|
|
1195
|
-
@property
|
|
1196
|
-
def byte2_bit3(self) -> bool | None:
|
|
1197
|
-
"""(unknown)"""
|
|
1198
|
-
return self._byte2_bit3
|
|
1199
|
-
|
|
1200
|
-
@property
|
|
1201
|
-
def byte2_bit4(self) -> bool | None:
|
|
1202
|
-
"""(unknown)"""
|
|
1203
|
-
return self._byte2_bit4
|
|
1162
|
+
def extra_palette_row_count(self) -> int | None:
|
|
1163
|
+
"""Optional per-room override of the extra palette row count N (0-3). See NPC.extra_palette_row_count."""
|
|
1164
|
+
return self._extra_palette_row_count
|
|
1204
1165
|
|
|
1205
1166
|
@property
|
|
1206
1167
|
def byte5_bit6(self) -> bool | None:
|
|
1207
|
-
"""
|
|
1168
|
+
"""Optional per-room override of the physical-field bit at object RAM $0E bit 4. See NPC.byte5_bit6."""
|
|
1208
1169
|
return self._byte5_bit6
|
|
1209
1170
|
|
|
1210
1171
|
@property
|
|
1211
1172
|
def byte5_bit7(self) -> bool | None:
|
|
1212
|
-
"""
|
|
1173
|
+
"""Optional per-room override of the physical-field bit at object RAM $0E bit 5. See NPC.byte5_bit7."""
|
|
1213
1174
|
return self._byte5_bit7
|
|
1214
1175
|
|
|
1215
1176
|
@property
|
|
1216
1177
|
def byte6_bit2(self) -> bool | None:
|
|
1217
|
-
"""
|
|
1178
|
+
"""Optional per-room override of the physical-field bit at object RAM $0D bit 2. See NPC.byte6_bit2."""
|
|
1218
1179
|
return self._byte6_bit2
|
|
1219
1180
|
|
|
1220
1181
|
@property
|
|
@@ -1292,25 +1253,17 @@ class BaseRoomObject:
|
|
|
1292
1253
|
"""Set whether a shadow for the NPC when airborne will be loaded to VRAM."""
|
|
1293
1254
|
self._show_shadow = show_shadow
|
|
1294
1255
|
|
|
1295
|
-
def
|
|
1296
|
-
"""(
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
"""(unknown)"""
|
|
1301
|
-
self._byte2_bit1 = byte2_bit1
|
|
1256
|
+
def set_extra_palette_source_offset(self, extra_palette_source_offset: int | None) -> None:
|
|
1257
|
+
"""Set the palette-load source offset M (0-7), or None to inherit the mold default."""
|
|
1258
|
+
if extra_palette_source_offset is not None:
|
|
1259
|
+
assert 0 <= extra_palette_source_offset <= 7
|
|
1260
|
+
self._extra_palette_source_offset = extra_palette_source_offset
|
|
1302
1261
|
|
|
1303
|
-
def
|
|
1304
|
-
"""(
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
"""(unknown)"""
|
|
1309
|
-
self._byte2_bit3 = byte2_bit3
|
|
1310
|
-
|
|
1311
|
-
def set_byte2_bit4(self, byte2_bit4: bool | None) -> None:
|
|
1312
|
-
"""(unknown)"""
|
|
1313
|
-
self._byte2_bit4 = byte2_bit4
|
|
1262
|
+
def set_extra_palette_row_count(self, extra_palette_row_count: int | None) -> None:
|
|
1263
|
+
"""Set the number of extra palette rows N (0-3), or None to inherit the mold default."""
|
|
1264
|
+
if extra_palette_row_count is not None:
|
|
1265
|
+
assert 0 <= extra_palette_row_count <= 3
|
|
1266
|
+
self._extra_palette_row_count = extra_palette_row_count
|
|
1314
1267
|
|
|
1315
1268
|
def set_byte5_bit6(self, byte5_bit6: bool | None) -> None:
|
|
1316
1269
|
"""(unknown)"""
|
|
@@ -1704,11 +1657,8 @@ class BattlePackNPC(RoomObject):
|
|
|
1704
1657
|
directions: VramStore | None = None,
|
|
1705
1658
|
vram_size: int | None = None,
|
|
1706
1659
|
cannot_clone: bool | None = None,
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
byte2_bit2: bool | None = None,
|
|
1710
|
-
byte2_bit3: bool | None = None,
|
|
1711
|
-
byte2_bit4: bool | None = None,
|
|
1660
|
+
extra_palette_source_offset: int | None = None,
|
|
1661
|
+
extra_palette_row_count: int | None = None,
|
|
1712
1662
|
byte5_bit6: bool | None = None,
|
|
1713
1663
|
byte5_bit7: bool | None = None,
|
|
1714
1664
|
byte6_bit2: bool | None = None,
|
|
@@ -1755,11 +1705,8 @@ class BattlePackNPC(RoomObject):
|
|
|
1755
1705
|
super().set_directions(directions)
|
|
1756
1706
|
super().set_min_vram_size(vram_size)
|
|
1757
1707
|
super().set_cannot_clone(cannot_clone)
|
|
1758
|
-
super().
|
|
1759
|
-
super().
|
|
1760
|
-
super().set_byte2_bit2(byte2_bit2)
|
|
1761
|
-
super().set_byte2_bit3(byte2_bit3)
|
|
1762
|
-
super().set_byte2_bit4(byte2_bit4)
|
|
1708
|
+
super().set_extra_palette_source_offset(extra_palette_source_offset)
|
|
1709
|
+
super().set_extra_palette_row_count(extra_palette_row_count)
|
|
1763
1710
|
super().set_byte5_bit6(byte5_bit6)
|
|
1764
1711
|
super().set_byte5_bit7(byte5_bit7)
|
|
1765
1712
|
super().set_byte6_bit2(byte6_bit2)
|
|
@@ -1823,11 +1770,8 @@ class RegularNPC(RoomObject):
|
|
|
1823
1770
|
directions: VramStore | None = None,
|
|
1824
1771
|
vram_size: int | None = None,
|
|
1825
1772
|
cannot_clone: bool | None = None,
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
byte2_bit2: bool | None = None,
|
|
1829
|
-
byte2_bit3: bool | None = None,
|
|
1830
|
-
byte2_bit4: bool | None = None,
|
|
1773
|
+
extra_palette_source_offset: int | None = None,
|
|
1774
|
+
extra_palette_row_count: int | None = None,
|
|
1831
1775
|
byte5_bit6: bool | None = None,
|
|
1832
1776
|
byte5_bit7: bool | None = None,
|
|
1833
1777
|
byte6_bit2: bool | None = None,
|
|
@@ -1873,11 +1817,8 @@ class RegularNPC(RoomObject):
|
|
|
1873
1817
|
super().set_directions(directions)
|
|
1874
1818
|
super().set_min_vram_size(vram_size)
|
|
1875
1819
|
super().set_cannot_clone(cannot_clone)
|
|
1876
|
-
super().
|
|
1877
|
-
super().
|
|
1878
|
-
super().set_byte2_bit2(byte2_bit2)
|
|
1879
|
-
super().set_byte2_bit3(byte2_bit3)
|
|
1880
|
-
super().set_byte2_bit4(byte2_bit4)
|
|
1820
|
+
super().set_extra_palette_source_offset(extra_palette_source_offset)
|
|
1821
|
+
super().set_extra_palette_row_count(extra_palette_row_count)
|
|
1881
1822
|
super().set_byte5_bit6(byte5_bit6)
|
|
1882
1823
|
super().set_byte5_bit7(byte5_bit7)
|
|
1883
1824
|
super().set_byte6_bit2(byte6_bit2)
|
|
@@ -1966,11 +1907,8 @@ class ChestNPC(RoomObject):
|
|
|
1966
1907
|
directions: VramStore | None = None,
|
|
1967
1908
|
vram_size: int | None = None,
|
|
1968
1909
|
cannot_clone: bool | None = None,
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
byte2_bit2: bool | None = None,
|
|
1972
|
-
byte2_bit3: bool | None = None,
|
|
1973
|
-
byte2_bit4: bool | None = None,
|
|
1910
|
+
extra_palette_source_offset: int | None = None,
|
|
1911
|
+
extra_palette_row_count: int | None = None,
|
|
1974
1912
|
byte5_bit6: bool | None = None,
|
|
1975
1913
|
byte5_bit7: bool | None = None,
|
|
1976
1914
|
byte6_bit2: bool | None = None,
|
|
@@ -2018,11 +1956,8 @@ class ChestNPC(RoomObject):
|
|
|
2018
1956
|
super().set_directions(directions)
|
|
2019
1957
|
super().set_min_vram_size(vram_size)
|
|
2020
1958
|
super().set_cannot_clone(cannot_clone)
|
|
2021
|
-
super().
|
|
2022
|
-
super().
|
|
2023
|
-
super().set_byte2_bit2(byte2_bit2)
|
|
2024
|
-
super().set_byte2_bit3(byte2_bit3)
|
|
2025
|
-
super().set_byte2_bit4(byte2_bit4)
|
|
1959
|
+
super().set_extra_palette_source_offset(extra_palette_source_offset)
|
|
1960
|
+
super().set_extra_palette_row_count(extra_palette_row_count)
|
|
2026
1961
|
super().set_byte5_bit6(byte5_bit6)
|
|
2027
1962
|
super().set_byte5_bit7(byte5_bit7)
|
|
2028
1963
|
super().set_byte6_bit2(byte6_bit2)
|
|
@@ -2067,11 +2002,8 @@ class BattlePackClone(Clone):
|
|
|
2067
2002
|
directions: VramStore | None = None,
|
|
2068
2003
|
vram_size: int | None = None,
|
|
2069
2004
|
cannot_clone: bool | None = None,
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
byte2_bit2: bool | None = None,
|
|
2073
|
-
byte2_bit3: bool | None = None,
|
|
2074
|
-
byte2_bit4: bool | None = None,
|
|
2005
|
+
extra_palette_source_offset: int | None = None,
|
|
2006
|
+
extra_palette_row_count: int | None = None,
|
|
2075
2007
|
byte5_bit6: bool | None = None,
|
|
2076
2008
|
byte5_bit7: bool | None = None,
|
|
2077
2009
|
byte6_bit2: bool | None = None,
|
|
@@ -2099,11 +2031,8 @@ class BattlePackClone(Clone):
|
|
|
2099
2031
|
super().set_directions(directions)
|
|
2100
2032
|
super().set_min_vram_size(vram_size)
|
|
2101
2033
|
super().set_cannot_clone(cannot_clone)
|
|
2102
|
-
super().
|
|
2103
|
-
super().
|
|
2104
|
-
super().set_byte2_bit2(byte2_bit2)
|
|
2105
|
-
super().set_byte2_bit3(byte2_bit3)
|
|
2106
|
-
super().set_byte2_bit4(byte2_bit4)
|
|
2034
|
+
super().set_extra_palette_source_offset(extra_palette_source_offset)
|
|
2035
|
+
super().set_extra_palette_row_count(extra_palette_row_count)
|
|
2107
2036
|
super().set_byte5_bit6(byte5_bit6)
|
|
2108
2037
|
super().set_byte5_bit7(byte5_bit7)
|
|
2109
2038
|
super().set_byte6_bit2(byte6_bit2)
|
|
@@ -2148,11 +2077,8 @@ class RegularClone(Clone):
|
|
|
2148
2077
|
directions: VramStore | None = None,
|
|
2149
2078
|
vram_size: int | None = None,
|
|
2150
2079
|
cannot_clone: bool | None = None,
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
byte2_bit2: bool | None = None,
|
|
2154
|
-
byte2_bit3: bool | None = None,
|
|
2155
|
-
byte2_bit4: bool | None = None,
|
|
2080
|
+
extra_palette_source_offset: int | None = None,
|
|
2081
|
+
extra_palette_row_count: int | None = None,
|
|
2156
2082
|
byte5_bit6: bool | None = None,
|
|
2157
2083
|
byte5_bit7: bool | None = None,
|
|
2158
2084
|
byte6_bit2: bool | None = None,
|
|
@@ -2180,11 +2106,8 @@ class RegularClone(Clone):
|
|
|
2180
2106
|
super().set_directions(directions)
|
|
2181
2107
|
super().set_min_vram_size(vram_size)
|
|
2182
2108
|
super().set_cannot_clone(cannot_clone)
|
|
2183
|
-
super().
|
|
2184
|
-
super().
|
|
2185
|
-
super().set_byte2_bit2(byte2_bit2)
|
|
2186
|
-
super().set_byte2_bit3(byte2_bit3)
|
|
2187
|
-
super().set_byte2_bit4(byte2_bit4)
|
|
2109
|
+
super().set_extra_palette_source_offset(extra_palette_source_offset)
|
|
2110
|
+
super().set_extra_palette_row_count(extra_palette_row_count)
|
|
2188
2111
|
super().set_byte5_bit6(byte5_bit6)
|
|
2189
2112
|
super().set_byte5_bit7(byte5_bit7)
|
|
2190
2113
|
super().set_byte6_bit2(byte6_bit2)
|
|
@@ -2240,11 +2163,8 @@ class ChestClone(Clone):
|
|
|
2240
2163
|
directions: VramStore | None = None,
|
|
2241
2164
|
vram_size: int | None = None,
|
|
2242
2165
|
cannot_clone: bool | None = None,
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
byte2_bit2: bool | None = None,
|
|
2246
|
-
byte2_bit3: bool | None = None,
|
|
2247
|
-
byte2_bit4: bool | None = None,
|
|
2166
|
+
extra_palette_source_offset: int | None = None,
|
|
2167
|
+
extra_palette_row_count: int | None = None,
|
|
2248
2168
|
byte5_bit6: bool | None = None,
|
|
2249
2169
|
byte5_bit7: bool | None = None,
|
|
2250
2170
|
byte6_bit2: bool | None = None,
|
|
@@ -2272,11 +2192,8 @@ class ChestClone(Clone):
|
|
|
2272
2192
|
super().set_directions(directions)
|
|
2273
2193
|
super().set_min_vram_size(vram_size)
|
|
2274
2194
|
super().set_cannot_clone(cannot_clone)
|
|
2275
|
-
super().
|
|
2276
|
-
super().
|
|
2277
|
-
super().set_byte2_bit2(byte2_bit2)
|
|
2278
|
-
super().set_byte2_bit3(byte2_bit3)
|
|
2279
|
-
super().set_byte2_bit4(byte2_bit4)
|
|
2195
|
+
super().set_extra_palette_source_offset(extra_palette_source_offset)
|
|
2196
|
+
super().set_extra_palette_row_count(extra_palette_row_count)
|
|
2280
2197
|
super().set_byte5_bit6(byte5_bit6)
|
|
2281
2198
|
super().set_byte5_bit7(byte5_bit7)
|
|
2282
2199
|
super().set_byte6_bit2(byte6_bit2)
|
|
@@ -71,11 +71,8 @@ class RoomCollection:
|
|
|
71
71
|
npc.priority_1,
|
|
72
72
|
npc.priority_2,
|
|
73
73
|
npc.cannot_clone,
|
|
74
|
-
npc.
|
|
75
|
-
npc.
|
|
76
|
-
npc.byte2_bit2,
|
|
77
|
-
npc.byte2_bit3,
|
|
78
|
-
npc.byte2_bit4,
|
|
74
|
+
npc.extra_palette_source_offset,
|
|
75
|
+
npc.extra_palette_row_count,
|
|
79
76
|
npc.byte5_bit6,
|
|
80
77
|
npc.byte5_bit7,
|
|
81
78
|
npc.byte6_bit2,
|
|
@@ -105,11 +102,8 @@ class RoomCollection:
|
|
|
105
102
|
if room_obj.cannot_clone is not None
|
|
106
103
|
else None
|
|
107
104
|
),
|
|
108
|
-
room_obj.
|
|
109
|
-
room_obj.
|
|
110
|
-
room_obj.byte2_bit2 if room_obj.byte2_bit2 is not None else None,
|
|
111
|
-
room_obj.byte2_bit3 if room_obj.byte2_bit3 is not None else None,
|
|
112
|
-
room_obj.byte2_bit4 if room_obj.byte2_bit4 is not None else None,
|
|
105
|
+
room_obj.extra_palette_source_offset if room_obj.extra_palette_source_offset is not None else None,
|
|
106
|
+
room_obj.extra_palette_row_count if room_obj.extra_palette_row_count is not None else None,
|
|
113
107
|
room_obj.byte5_bit6 if room_obj.byte5_bit6 is not None else None,
|
|
114
108
|
room_obj.byte5_bit7 if room_obj.byte5_bit7 is not None else None,
|
|
115
109
|
room_obj.byte6_bit2 if room_obj.byte6_bit2 is not None else None,
|
|
@@ -455,30 +449,15 @@ class RoomCollection:
|
|
|
455
449
|
if room_obj.cannot_clone is not None
|
|
456
450
|
else base_npc.cannot_clone
|
|
457
451
|
),
|
|
458
|
-
|
|
459
|
-
room_obj.
|
|
460
|
-
if room_obj.
|
|
461
|
-
else base_npc.
|
|
452
|
+
extra_palette_source_offset=(
|
|
453
|
+
room_obj.extra_palette_source_offset
|
|
454
|
+
if room_obj.extra_palette_source_offset is not None
|
|
455
|
+
else base_npc.extra_palette_source_offset
|
|
462
456
|
),
|
|
463
|
-
|
|
464
|
-
room_obj.
|
|
465
|
-
if room_obj.
|
|
466
|
-
else base_npc.
|
|
467
|
-
),
|
|
468
|
-
byte2_bit2=(
|
|
469
|
-
room_obj.byte2_bit2
|
|
470
|
-
if room_obj.byte2_bit2 is not None
|
|
471
|
-
else base_npc.byte2_bit2
|
|
472
|
-
),
|
|
473
|
-
byte2_bit3=(
|
|
474
|
-
room_obj.byte2_bit3
|
|
475
|
-
if room_obj.byte2_bit3 is not None
|
|
476
|
-
else base_npc.byte2_bit3
|
|
477
|
-
),
|
|
478
|
-
byte2_bit4=(
|
|
479
|
-
room_obj.byte2_bit4
|
|
480
|
-
if room_obj.byte2_bit4 is not None
|
|
481
|
-
else base_npc.byte2_bit4
|
|
457
|
+
extra_palette_row_count=(
|
|
458
|
+
room_obj.extra_palette_row_count
|
|
459
|
+
if room_obj.extra_palette_row_count is not None
|
|
460
|
+
else base_npc.extra_palette_row_count
|
|
482
461
|
),
|
|
483
462
|
byte5_bit6=(
|
|
484
463
|
room_obj.byte5_bit6
|
|
@@ -673,11 +652,8 @@ class RoomCollection:
|
|
|
673
652
|
|
|
674
653
|
# Byte 2: priority and misc bits
|
|
675
654
|
data[2] = (
|
|
676
|
-
(
|
|
677
|
-
| ((
|
|
678
|
-
| ((1 if npc.byte2_bit2 else 0) << 2)
|
|
679
|
-
| ((1 if npc.byte2_bit3 else 0) << 3)
|
|
680
|
-
| ((1 if npc.byte2_bit4 else 0) << 4)
|
|
655
|
+
((npc.extra_palette_source_offset or 0) & 0x07)
|
|
656
|
+
| (((npc.extra_palette_row_count or 0) & 0x03) << 3)
|
|
681
657
|
| ((1 if npc.priority_0 else 0) << 5)
|
|
682
658
|
| ((1 if npc.priority_1 else 0) << 6)
|
|
683
659
|
| ((1 if npc.priority_2 else 0) << 7)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"""Moleville Mountain Mode7 minecart track patch-building primitives.
|
|
2
|
+
|
|
3
|
+
The randomizer generates a track procedurally and feeds it through these types
|
|
4
|
+
to produce a ROM patch. See :mod:`.classes` for the entry points.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from .constants import (
|
|
8
|
+
MAP_H, MAP_W, M7_OBJECTS_PER_MAP, TrackColor, TrackType, background_tile,
|
|
9
|
+
tile_index,
|
|
10
|
+
)
|
|
11
|
+
from .classes import (
|
|
12
|
+
EAST, NORTH, SOUTH, WEST, MinecartTrack, build_minecart_patch, track_type_for,
|
|
13
|
+
)
|
|
14
|
+
from .lz3 import compress, decompress
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"MinecartTrack",
|
|
18
|
+
"build_minecart_patch",
|
|
19
|
+
"track_type_for",
|
|
20
|
+
"TrackType",
|
|
21
|
+
"TrackColor",
|
|
22
|
+
"tile_index",
|
|
23
|
+
"background_tile",
|
|
24
|
+
"compress",
|
|
25
|
+
"decompress",
|
|
26
|
+
"NORTH", "SOUTH", "EAST", "WEST",
|
|
27
|
+
"MAP_W", "MAP_H", "M7_OBJECTS_PER_MAP",
|
|
28
|
+
]
|