smrpgpatchbuilder 5.0.8__tar.gz → 5.0.10__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-5.0.8 → smrpgpatchbuilder-5.0.10}/LICENSE +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/MANIFEST.in +3 -3
- {smrpgpatchbuilder-5.0.8/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-5.0.10}/PKG-INFO +1 -1
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/README.md +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/pyproject.toml +1 -1
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +4 -9
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +11 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +2 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +140 -6
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
- smrpgpatchbuilder-5.0.10/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +2 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +88 -1
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/number.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/strings.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/tests/animations/test_animationscripts.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/tests/monsters/test_ai.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/tests/overworld/test_actionscripts.py +0 -0
- smrpgpatchbuilder-5.0.8/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -2
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/setup.cfg +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/manage.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/tests/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/tests/dialogs/test_formatter.py +0 -0
- {smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/tests/overworld/test_eventscripts.py +0 -0
|
File without changes
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
global-exclude __pycache__
|
|
2
|
-
global-exclude *.py[cod]
|
|
3
|
-
prune src/disassembler_output
|
|
1
|
+
global-exclude __pycache__
|
|
2
|
+
global-exclude *.py[cod]
|
|
3
|
+
prune src/disassembler_output
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/allies/ally.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -739,7 +739,7 @@ class SpriteCollection:
|
|
|
739
739
|
|
|
740
740
|
return bytearray(sprite_data), bytearray(image_data), bytearray(animation_pointers), anim_tile_ranges, output_tile_ranges
|
|
741
741
|
|
|
742
|
-
def assemble_from_tables(self, sprites: list[CompleteSprite], insert_whitespace=False, shared_image_groups: list[list[int]] | None = None
|
|
742
|
+
def assemble_from_tables(self, sprites: list[CompleteSprite], insert_whitespace=False, shared_image_groups: list[list[int]] | None = None) -> tuple[bytearray, bytearray, bytearray, list[tuple[int, bytearray]], list[tuple[int, bytearray]]]:
|
|
743
743
|
# CRITICAL: Reset all banks before assembling to prevent data from previous runs
|
|
744
744
|
for bank in self.uncompressed_tile_banks:
|
|
745
745
|
bank.tiles = bytearray([])
|
|
@@ -1150,12 +1150,7 @@ class SpriteCollection:
|
|
|
1150
1150
|
this_mold = copy.deepcopy(m)
|
|
1151
1151
|
|
|
1152
1152
|
# create clones and use in mold
|
|
1153
|
-
|
|
1154
|
-
# animation layout (e.g., Smithy sprites used in battle events)
|
|
1155
|
-
skip_clones = no_clone_sprites is not None and sprite_index in no_clone_sprites
|
|
1156
|
-
if skip_clones and mold_index == 0:
|
|
1157
|
-
print(f"[GFX] Skipping clone optimization for sprite {sprite_index}")
|
|
1158
|
-
if not this_mold.gridplane and not skip_clones:
|
|
1153
|
+
if not this_mold.gridplane:
|
|
1159
1154
|
clones = find_clones(these_tiles, molds, sprite_index, mold_index)
|
|
1160
1155
|
these_tiles = clones
|
|
1161
1156
|
this_mold.tiles = these_tiles
|
|
@@ -1212,8 +1207,8 @@ class SpriteCollection:
|
|
|
1212
1207
|
|
|
1213
1208
|
return self.assemble_from_tables_(complete_sprites, complete_images, complete_animations, output_tile_ranges)
|
|
1214
1209
|
|
|
1215
|
-
def render(self, whitespace: bool = False, shared_image_groups: list[list[int]] | None = None
|
|
1216
|
-
sprite_data, image_data, animation_pointers, animation_data, tiles = self.assemble_from_tables(self.sprites, whitespace, shared_image_groups
|
|
1210
|
+
def render(self, whitespace: bool = False, shared_image_groups: list[list[int]] | None = None) -> list[tuple[int, bytearray]]:
|
|
1211
|
+
sprite_data, image_data, animation_pointers, animation_data, tiles = self.assemble_from_tables(self.sprites, whitespace, shared_image_groups)
|
|
1217
1212
|
|
|
1218
1213
|
# Zero out all sprite data ranges before writing to prevent leftover data
|
|
1219
1214
|
zero_ranges = []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.8 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/enums.py
RENAMED
|
File without changes
|
|
@@ -865,6 +865,17 @@ class RoomCollection:
|
|
|
865
865
|
action_offset = obj.action_script - base_action_script
|
|
866
866
|
event_offset = obj.event_script - base_event_script
|
|
867
867
|
|
|
868
|
+
if event_offset < 0 or event_offset > 7:
|
|
869
|
+
raise ValueError(
|
|
870
|
+
f"Room {room_idx} object {obj_idx} (RegularClone):\n"
|
|
871
|
+
f" event_script offset {event_offset} out of range [0, 7]\n"
|
|
872
|
+
f" Clone event_script: {obj.event_script}\n"
|
|
873
|
+
f" Parent event_script: {parent.event_script}\n"
|
|
874
|
+
f" Base event_script: {base_event_script}\n"
|
|
875
|
+
f" A clone's event_script must be within 7 of the base "
|
|
876
|
+
f"(min of parent + sibling clones); the encoding only has 3 bits."
|
|
877
|
+
)
|
|
878
|
+
|
|
868
879
|
data[0] = (
|
|
869
880
|
((event_offset & 0x07) << 5)
|
|
870
881
|
| ((action_offset & 0x03) << 3)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -379,11 +379,11 @@ _valid_unknowncmd_queue_opcodes = [
|
|
|
379
379
|
1,
|
|
380
380
|
1,
|
|
381
381
|
1,
|
|
382
|
-
|
|
382
|
+
0, # 20 (handled by A_ToggleSubroutineSlots)
|
|
383
383
|
0,
|
|
384
384
|
0,
|
|
385
385
|
2,
|
|
386
|
-
|
|
386
|
+
0, # 24 (handled by A_SetSubroutineXTargets)
|
|
387
387
|
5,
|
|
388
388
|
0,
|
|
389
389
|
0,
|
|
@@ -4047,8 +4047,78 @@ class A_SetAllSpeeds(_SetAnimationSpeed, UsableActionScriptCommand):
|
|
|
4047
4047
|
super().__init__(speed, sequence=True, walking=True, identifier=identifier)
|
|
4048
4048
|
|
|
4049
4049
|
|
|
4050
|
+
class A_ToggleSubroutineSlots(UsableActionScriptCommand, ActionScriptCommand):
|
|
4051
|
+
"""Toggle the active state of the NPC's three sub-routine slots ($26,X / $27,X /
|
|
4052
|
+
$28,X) according to a 3-bit mask. Bit 0 controls slot $26, bit 1 controls slot $27,
|
|
4053
|
+
bit 2 controls slot $28. For each slot: if the corresponding bit is set and the slot
|
|
4054
|
+
is currently inactive, the engine allocates a new sub-routine record (via $C0:E87E);
|
|
4055
|
+
if the bit is clear and the slot is currently active, the engine deallocates the
|
|
4056
|
+
existing record (via $C0:E8FE). Slots whose state already matches the mask are left
|
|
4057
|
+
alone.
|
|
4058
|
+
|
|
4059
|
+
Sub-routines spawned this way drive per-NPC motion or animation independently of the
|
|
4060
|
+
main action script. Pair with `A_SetSubroutineXTargets` (opcode 0x24) to give them
|
|
4061
|
+
targets, or `A_EmbeddedAnimationRoutine` (opcode 0x26/0x27/0x28) to spawn a fully
|
|
4062
|
+
parameterised routine.
|
|
4063
|
+
|
|
4064
|
+
## Lazy Shell command
|
|
4065
|
+
(not documented in Lazy Shell)
|
|
4066
|
+
|
|
4067
|
+
## Opcode
|
|
4068
|
+
`0x20`
|
|
4069
|
+
|
|
4070
|
+
## Size
|
|
4071
|
+
2 bytes
|
|
4072
|
+
|
|
4073
|
+
Args:
|
|
4074
|
+
mask (int): 3-bit mask (bits 0-2). 1 = slot should be active; 0 = slot should be
|
|
4075
|
+
inactive. Bit 0 = slot $26, bit 1 = slot $27, bit 2 = slot $28.
|
|
4076
|
+
identifier (str | None): Give this command a label if you want another command to jump to it.
|
|
4077
|
+
"""
|
|
4078
|
+
|
|
4079
|
+
_opcode = 0x20
|
|
4080
|
+
_size: int = 2
|
|
4081
|
+
_mask: UInt8
|
|
4082
|
+
|
|
4083
|
+
@property
|
|
4084
|
+
def mask(self) -> UInt8:
|
|
4085
|
+
"""3-bit slot-active mask. Bit 0 = $26, bit 1 = $27, bit 2 = $28."""
|
|
4086
|
+
return self._mask
|
|
4087
|
+
|
|
4088
|
+
def set_mask(self, mask: int) -> None:
|
|
4089
|
+
"""Set the 3-bit slot-active mask."""
|
|
4090
|
+
if mask & ~0x07:
|
|
4091
|
+
raise InvalidCommandArgumentException(
|
|
4092
|
+
f"A_ToggleSubroutineSlots mask 0x{mask:02X} has bits set outside the low 3 bits"
|
|
4093
|
+
)
|
|
4094
|
+
self._mask = UInt8(mask)
|
|
4095
|
+
|
|
4096
|
+
def __init__(self, mask: int, identifier: str | None = None) -> None:
|
|
4097
|
+
super().__init__(identifier)
|
|
4098
|
+
self.set_mask(mask)
|
|
4099
|
+
|
|
4100
|
+
def render(self, *args) -> bytearray:
|
|
4101
|
+
return super().render(self.mask)
|
|
4102
|
+
|
|
4103
|
+
|
|
4050
4104
|
class A_EmbeddedAnimationRoutine(UsableActionScriptCommand, ActionScriptCommand):
|
|
4051
|
-
"""
|
|
4105
|
+
"""Spawn a fully-parameterised sub-routine into one of the NPC's three sub-routine
|
|
4106
|
+
slots ($26,X / $27,X / $28,X). The opcode byte selects the slot: 0x26 → slot $26,
|
|
4107
|
+
0x27 → slot $27, 0x28 → slot $28. Any sub-routine already in that slot is cleared
|
|
4108
|
+
first (via $C0:E9DC).
|
|
4109
|
+
|
|
4110
|
+
The 14 payload bytes are copied into the NPC's per-slot scratch region:
|
|
4111
|
+
[1..2] X coord (16-bit)
|
|
4112
|
+
[3..4] Y coord (16-bit)
|
|
4113
|
+
[5] sprite sequence index
|
|
4114
|
+
[6] sprite control bits
|
|
4115
|
+
[7..8] Z coord (16-bit)
|
|
4116
|
+
[9..10] motion bits
|
|
4117
|
+
[11..12] face direction
|
|
4118
|
+
[13..14] (unidentified pair, written to $0C,X)
|
|
4119
|
+
[15] high 2 bits → upper bits of $1E,X; low 3 bits → $1F,X
|
|
4120
|
+
|
|
4121
|
+
See $C0:D211 for the handler.
|
|
4052
4122
|
|
|
4053
4123
|
## Lazy Shell command
|
|
4054
4124
|
`Embedded animation routine ($26)...`
|
|
@@ -4073,11 +4143,11 @@ class A_EmbeddedAnimationRoutine(UsableActionScriptCommand, ActionScriptCommand)
|
|
|
4073
4143
|
|
|
4074
4144
|
@property
|
|
4075
4145
|
def args(self) -> bytearray:
|
|
4076
|
-
"""(
|
|
4146
|
+
"""The full 16-byte payload (opcode + 14 data bytes + flag-byte)."""
|
|
4077
4147
|
return self._args
|
|
4078
4148
|
|
|
4079
4149
|
def set_args(self, args: bytearray) -> None:
|
|
4080
|
-
"""(
|
|
4150
|
+
"""Set the full 16-byte payload (opcode + 14 data bytes + flag-byte)."""
|
|
4081
4151
|
assert len(args) == 16
|
|
4082
4152
|
assert args[0] in [0x26, 0x27, 0x28]
|
|
4083
4153
|
self._args = args
|
|
@@ -4090,6 +4160,65 @@ class A_EmbeddedAnimationRoutine(UsableActionScriptCommand, ActionScriptCommand)
|
|
|
4090
4160
|
return super().render(self.args)
|
|
4091
4161
|
|
|
4092
4162
|
|
|
4163
|
+
class A_SetSubroutineXTargets(UsableActionScriptCommand, ActionScriptCommand):
|
|
4164
|
+
"""Set destination X-coordinates for whichever of the NPC's first two sub-routine
|
|
4165
|
+
slots ($26,X and $27,X) are currently active. For each active slot, the existing
|
|
4166
|
+
sub-routine state is reset (via $C0:E9DC) and the corresponding 16-bit X target is
|
|
4167
|
+
written into the NPC's $00,X (X coord); $02,X (Y coord low) and $1E,X (state flags)
|
|
4168
|
+
are zeroed. Slot $28,X is **not** touched by this opcode.
|
|
4169
|
+
|
|
4170
|
+
Pair with `A_ToggleSubroutineSlots` (opcode 0x20) to first activate the slots whose
|
|
4171
|
+
targets you intend to set.
|
|
4172
|
+
|
|
4173
|
+
## Lazy Shell command
|
|
4174
|
+
(not documented in Lazy Shell)
|
|
4175
|
+
|
|
4176
|
+
## Opcode
|
|
4177
|
+
`0x24`
|
|
4178
|
+
|
|
4179
|
+
## Size
|
|
4180
|
+
5 bytes
|
|
4181
|
+
|
|
4182
|
+
Args:
|
|
4183
|
+
slot_26_x (int): 16-bit destination X coord written into slot $26,X if active.
|
|
4184
|
+
slot_27_x (int): 16-bit destination X coord written into slot $27,X if active.
|
|
4185
|
+
identifier (str | None): Give this command a label if you want another command to jump to it.
|
|
4186
|
+
"""
|
|
4187
|
+
|
|
4188
|
+
_opcode = 0x24
|
|
4189
|
+
_size: int = 5
|
|
4190
|
+
_slot_26_x: UInt16
|
|
4191
|
+
_slot_27_x: UInt16
|
|
4192
|
+
|
|
4193
|
+
@property
|
|
4194
|
+
def slot_26_x(self) -> UInt16:
|
|
4195
|
+
"""16-bit X target for slot $26,X (consumed only if slot is active)."""
|
|
4196
|
+
return self._slot_26_x
|
|
4197
|
+
|
|
4198
|
+
def set_slot_26_x(self, slot_26_x: int) -> None:
|
|
4199
|
+
"""Set the 16-bit X target for slot $26,X."""
|
|
4200
|
+
self._slot_26_x = UInt16(slot_26_x)
|
|
4201
|
+
|
|
4202
|
+
@property
|
|
4203
|
+
def slot_27_x(self) -> UInt16:
|
|
4204
|
+
"""16-bit X target for slot $27,X (consumed only if slot is active)."""
|
|
4205
|
+
return self._slot_27_x
|
|
4206
|
+
|
|
4207
|
+
def set_slot_27_x(self, slot_27_x: int) -> None:
|
|
4208
|
+
"""Set the 16-bit X target for slot $27,X."""
|
|
4209
|
+
self._slot_27_x = UInt16(slot_27_x)
|
|
4210
|
+
|
|
4211
|
+
def __init__(
|
|
4212
|
+
self, slot_26_x: int, slot_27_x: int, identifier: str | None = None
|
|
4213
|
+
) -> None:
|
|
4214
|
+
super().__init__(identifier)
|
|
4215
|
+
self.set_slot_26_x(slot_26_x)
|
|
4216
|
+
self.set_slot_27_x(slot_27_x)
|
|
4217
|
+
|
|
4218
|
+
def render(self, *args) -> bytearray:
|
|
4219
|
+
return super().render(self.slot_26_x, self.slot_27_x)
|
|
4220
|
+
|
|
4221
|
+
|
|
4093
4222
|
class A_MaximizeSequenceSpeed(UsableActionScriptCommand, ActionScriptCommandNoArgs):
|
|
4094
4223
|
"""Set the NPC's sequence speed to its highest value. Not known if this actually works.
|
|
4095
4224
|
|
|
@@ -7024,7 +7153,12 @@ class A_IncPaletteRow(UsableActionScriptCommand, ActionScriptCommandNoArgs):
|
|
|
7024
7153
|
|
|
7025
7154
|
|
|
7026
7155
|
class A_BPL262728(UsableActionScriptCommand, ActionScriptCommandNoArgs):
|
|
7027
|
-
"""(
|
|
7156
|
+
"""Kill all three of the NPC's currently-active sub-routines (slots $26,X / $27,X /
|
|
7157
|
+
$28,X) and zero the slot bytes. Implemented at $C0:D18F as `JSR $C0:E8E2`; the
|
|
7158
|
+
`BPL` references in the LazyShell-derived class name come from the helper at
|
|
7159
|
+
$C0:E8E2 which iterates the three slots and uses BPL to skip slots whose bit 7 is
|
|
7160
|
+
already clear. Inverse pairing for `A_ToggleSubroutineSlots` (opcode 0x20) when you
|
|
7161
|
+
want to clear all slots in one command.
|
|
7028
7162
|
|
|
7029
7163
|
## Lazy Shell command
|
|
7030
7164
|
(not documented in Lazy Shell)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
from .types import *
|
|
2
|
+
from .commands import ActionQueueAsync, ActionQueueSync, Add7000ToCurrentFP, Add7000ToMaxFP, AddCoins, AddConstToVar, AddFrogCoins, AddToInventory, AddVarTo7000, AppendDialogAt7000ToCurrentDialog, ApplySolidityModToLevel, ApplyTileModToLevel, CharacterJoinsParty, CharacterLeavesParty, CircleMaskExpandFromScreenCenter, CircleMaskShrinkToObject, CircleMaskShrinkToScreenCenter, Clear0158Bit7Offset, Clear7016To7018AndIsolate701AHighByteIf7018Bit0Set, ClearBit, ClearMem704XAt7000Bit, CloseDialog, Compare7000ToVar, CompareVarToConst, CopyVarToVar, CreatePacketAt7010, CreatePacketAt7010WithEvent, CreatePacketAtObjectCoords, DarkenLayersExceptPaletteRows, DeactivateSoundChannels, Dec, Dec7000FromCoins, Dec7000FromCurrentFP, Dec7000FromCurrentHP, Dec7000FromFrogCoins, DecVarFrom7000, DisableObjectTrigger, DisableObjectTriggerInSpecificLevel, DisableTriggerOfObjectAt70A8InCurrentLevel, DisplayIntroTitleText, EnableControls, EnableControlsUntilReturn, EnableObjectTrigger, EnableObjectTriggerInSpecificLevel, EnableTriggerOfObjectAt70A8InCurrentLevel, EndLoop, EnterArea, EquipItemToCharacter, ExitToWorldMap, ExorCrashesIntoKeep, FadeInFromBlack, FadeInFromColour, FadeInMusic, FadeOutMusic, FadeOutMusicFDA3, FadeOutMusicToVolume, FadeOutSoundToVolume, FadeOutToBlack, FadeOutToColour, FreezeAllNPCsUntilReturn, FreezeCamera, GenerateRandomNumFromRangeVar, If0210Bits012ClearDoNotJump, Inc, IncEXPByPacket, IncreaseMusicPitchBy, InitiateBattleMask, Jmp, JmpIf316DIs3, JmpIf7000AllBitsClear, JmpIf7000AnyBitsSet, JmpIfAudioMemoryEquals, JmpIfAudioMemoryIsAtLeast, JmpIfBitClear, JmpIfBitSet, JmpIfComparisonResultIsGreaterOrEqual, JmpIfComparisonResultIsLesser, JmpIfDialogOptionBOrCSelected, JmpIfDialogOptionBSelected, JmpIfLoadedMemoryIs0, JmpIfLoadedMemoryIsAboveOrEqual0, JmpIfLoadedMemoryIsBelow0, JmpIfLoadedMemoryIsNot0, JmpIfMarioInAir, JmpIfMarioOnAnObjectOrNot, JmpIfMarioOnObject, JmpIfMem704XAt7000BitClear, JmpIfMem704XAt7000BitSet, JmpIfObjectActionScriptIsRunning, JmpIfObjectInAir, JmpIfObjectInCurrentLevel, JmpIfObjectInSpecificLevel, JmpIfObjectIsUnderwater, JmpIfObjectNotInSpecificLevel, JmpIfObjectTriggerDisabledInSpecificLevel, JmpIfObjectTriggerEnabledInSpecificLevel, JmpIfObjectsAreLessThanXYStepsApart, JmpIfObjectsAreLessThanXYStepsApartSameZCoord, JmpIfRandom1of2, JmpIfRandom2of3, JmpIfVarEqualsConst, JmpIfVarNotEqualsConst, JmpToEvent, JmpToStartOfThisScript, JmpToStartOfThisScriptFA, JmpToSubroutine, LearnSpell, MarioGlows, MarioStopsGlowing, Mem7000AndConst, Mem7000AndVar, Mem7000OrConst, Mem7000OrVar, Mem7000XorConst, Mem7000XorVar, Move70107015To7016701B, Move7016701BTo70107015, MoveScriptToBackgroundThread1, MoveScriptToBackgroundThread2, MoveScriptToMainThread, MultiplyAndAddMem3148StoreToOffset7fB000PlusOutputX2, NonEmbeddedActionQueue, OpenSaveMenu, OpenShop, PaletteSet, PaletteSetMorphs, Pause, PauseActionScript, PauseScriptIfMenuOpen, PauseScriptResumeOnNextDialogPageA, PauseScriptResumeOnNextDialogPageB, PauseScriptUntilEffectDone, PixelateLayers, PlayMusic, PlayMusicAtCurrentVolume, PlayMusicAtDefaultVolume, PlaySound, PlaySoundBalance, PlaySoundBalanceFD9D, PrioritySet, ReactivateObject70A8TriggerIfMarioOnTopOfIt, ReadFromAddress, ReduceMusicPitchBy, RememberLastObject, RemoveObjectAt70A8FromCurrentLevel, RemoveObjectFromCurrentLevel, RemoveObjectFromSpecificLevel, RemoveOneOfItemFromInventory, ResetAndChooseGame, ResetCoords, ResetGame, ResetPrioritySet, RestoreAllFP, RestoreAllHP, ResumeActionScript, ResumeBackgroundEvent, Return, ReturnAll, ReturnFD, RunBackgroundEvent, RunBackgroundEventWithPause, RunBackgroundEventWithPauseReturnOnExit, RunDialog, RunDialogForDuration, RunEndingCredits, RunEventAsSubroutine, RunEventAtReturn, RunEventSequence, RunLevelupBonusSequence, RunMenuOrEventSequence, RunMenuTutorial, RunMolevilleMountainIntroSequence, RunMolevilleMountainSequence, RunStarPieceSequence, ScreenFlashesWithColour, Set0158Bit3Offset, Set0158Bit7Offset, Set7000To7FMemVar, Set7000ToCurrentLevel, Set7000ToIDOfMemberInSlot, Set7000ToMinecartTimer, Set7000ToObjectCoord, Set7000ToPartySize, Set7000ToPressedButton, Set7000ToTappedButton, Set70107015ToObjectXYZ, Set7016701BToObjectXYZ, SetAsyncActionScript, SetBit, SetEXPPacketTo7000, SetMem704XAt7000Bit, SetObjectMemoryToVar, SetSyncActionScript, SetTempAsyncActionScript, SetTempSyncActionScript, SetVarToConst, SetVarToRandom, SlowDownMusic, SlowDownMusicTempoBy, SpeedUpMusicTempoBy, SpeedUpMusicToDefault, StarMaskExpandFromScreenCenter, StarMaskShrinkToScreenCenter, StartAsyncEmbeddedActionScript, StartBattleAtBattlefield, StartBattleWithPackAt700E, StartLoopNFrames, StartLoopNTimes, StartSyncEmbeddedActionScript, StopAllBackgroundEvents, StopBackgroundEvent, StopEmbeddedActionScript, StopMusic, StopMusicFD9F, StopMusicFDA0, StopMusicFDA1, StopMusicFDA2, StopMusicFDA6, StopSound, Store00To0248, Store00To0334, Store01To0248, Store01To0335, Store02To0248, Store70A7ToEquipsInventory, StoreBytesTo0335And0556, StoreCharacterEquipmentTo7000, StoreCoinCountTo7000, StoreCurrentFPTo7000, StoreEmptyItemInventorySlotCountTo7000, StoreFFTo0335, StoreFrogCoinCountTo7000, StoreItemAmountTo7000, StoreItemAt70A7QuantityTo7000, StoreSetBits, SummonObjectAt70A8ToCurrentLevel, SummonObjectToCurrentLevel, SummonObjectToCurrentLevelAtMariosCoords, SummonObjectToSpecificLevel, SwapVars, TintLayers, UnfreezeAllNPCs, UnfreezeCamera, UnknownCommand, UnsyncActionScript, UnsyncDialog, VarShiftLeft, Xor3105With01
|