smrpgpatchbuilder 5.0.9__tar.gz → 6.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-5.0.9/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-6.0.0}/PKG-INFO +1 -1
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/pyproject.toml +1 -1
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +2 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +140 -6
- smrpgpatchbuilder-6.0.0/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +2 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +123 -1
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
- smrpgpatchbuilder-5.0.9/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -2
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/LICENSE +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/MANIFEST.in +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/README.md +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/setup.cfg +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/manage.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/number.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/strings.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/tests/animations/test_animationscripts.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/tests/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/tests/dialogs/test_formatter.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/tests/monsters/test_ai.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/tests/overworld/test_actionscripts.py +0 -0
- {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/tests/overworld/test_eventscripts.py +0 -0
|
@@ -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)
|
|
@@ -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
|
|
@@ -1364,7 +1364,7 @@ _valid_unknowncmd_opcodes_fd: list[int] = [
|
|
|
1364
1364
|
0,
|
|
1365
1365
|
5,
|
|
1366
1366
|
2,
|
|
1367
|
-
|
|
1367
|
+
0, # 8E (handled by DarkenLayersExceptPaletteRows)
|
|
1368
1368
|
3,
|
|
1369
1369
|
0, # 90
|
|
1370
1370
|
0,
|
|
@@ -2569,6 +2569,128 @@ class CopyVarToVar(UsableEventScriptCommand, EventScriptCommand):
|
|
|
2569
2569
|
)
|
|
2570
2570
|
|
|
2571
2571
|
|
|
2572
|
+
class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand):
|
|
2573
|
+
"""Darken the level background and all NPCs except the sprite palette rows listed
|
|
2574
|
+
in `preserve_rows`. The handler at $C0:4FD9 stores `fade_arg` into the fade-depth
|
|
2575
|
+
control word ($318B / $318C / $318E) and an 8-bit exclusion bitmask into $003185.
|
|
2576
|
+
The palette processor at $C0:3AEE walks 8 rows (the OBJ palette set, rows 8-15)
|
|
2577
|
+
and skips any row whose bit is set in the bitmask, leaving only the unmasked rows
|
|
2578
|
+
darkened.
|
|
2579
|
+
|
|
2580
|
+
The 8 mask bits correspond to the OBJ palette rows in order:
|
|
2581
|
+
|
|
2582
|
+
bit 0 → MARIO_PALETTE (PaletteRow 8 — the player)
|
|
2583
|
+
bit 1 → NPC_PALETTE_ROW_1 (PaletteRow 9)
|
|
2584
|
+
bit 2 → NPC_PALETTE_ROW_2 (PaletteRow 10)
|
|
2585
|
+
bit 3 → NPC_PALETTE_ROW_3 (PaletteRow 11)
|
|
2586
|
+
bit 4 → NPC_PALETTE_ROW_4 (PaletteRow 12)
|
|
2587
|
+
bit 5 → NPC_PALETTE_ROW_5 (PaletteRow 13)
|
|
2588
|
+
bit 6 → NPC_PALETTE_ROW_6 (PaletteRow 14)
|
|
2589
|
+
bit 7 → NPC_PALETTE_ROW_7 (PaletteRow 15)
|
|
2590
|
+
|
|
2591
|
+
**Note on ally-buffer growth:** when a room's `ally_sprite_buffer_size` increases
|
|
2592
|
+
(e.g. for non-Mario protagonists with tilemap molds), every NPC palette row shifts
|
|
2593
|
+
by the same delta, so the NPC entries in `preserve_rows` must shift forward by the
|
|
2594
|
+
same delta to keep targeting the same NPCs. `MARIO_PALETTE` does not shift.
|
|
2595
|
+
|
|
2596
|
+
The middle arg byte is filler, ignored by the handler.
|
|
2597
|
+
|
|
2598
|
+
## Lazy Shell command
|
|
2599
|
+
(not available in Lazy Shell)
|
|
2600
|
+
|
|
2601
|
+
## Opcode
|
|
2602
|
+
`0xFD 0x8E`
|
|
2603
|
+
|
|
2604
|
+
## Size
|
|
2605
|
+
5 bytes
|
|
2606
|
+
|
|
2607
|
+
Args:
|
|
2608
|
+
fade_arg (int): 8-bit fade-depth control. Low 6 bits → $318B (fade depth);
|
|
2609
|
+
high 2 bits → $318C / $318E (fade-mode bits).
|
|
2610
|
+
preserve_rows (list[PaletteRow]): Palette rows to preserve from the darken
|
|
2611
|
+
effect. Each entry must be `MARIO_PALETTE` or `NPC_PALETTE_ROW_1` through
|
|
2612
|
+
`NPC_PALETTE_ROW_7` (PaletteRow values 8-15). Empty list = darken all rows.
|
|
2613
|
+
filler (int): Ignored by the handler. Set to 0 unless preserving original
|
|
2614
|
+
byte sequences.
|
|
2615
|
+
identifier (str | None): Give this command a label if you want another
|
|
2616
|
+
command to jump to it.
|
|
2617
|
+
"""
|
|
2618
|
+
|
|
2619
|
+
_opcode = bytearray([0xFD, 0x8E])
|
|
2620
|
+
_size: int = 5
|
|
2621
|
+
_OBJ_PALETTE_BASE = 8 # PaletteRow(8) = MARIO_PALETTE = bit 0 of the mask.
|
|
2622
|
+
_fade_arg: UInt8
|
|
2623
|
+
_filler: UInt8
|
|
2624
|
+
_preserve_rows: list[PaletteRow]
|
|
2625
|
+
|
|
2626
|
+
@property
|
|
2627
|
+
def fade_arg(self) -> UInt8:
|
|
2628
|
+
"""8-bit fade-depth control: low 6 bits → fade depth, high 2 bits → fade mode."""
|
|
2629
|
+
return self._fade_arg
|
|
2630
|
+
|
|
2631
|
+
def set_fade_arg(self, fade_arg: int) -> None:
|
|
2632
|
+
"""Set the 8-bit fade-depth control byte."""
|
|
2633
|
+
self._fade_arg = UInt8(fade_arg)
|
|
2634
|
+
|
|
2635
|
+
@property
|
|
2636
|
+
def filler(self) -> UInt8:
|
|
2637
|
+
"""Filler byte ignored by the handler at $C0:4FD9."""
|
|
2638
|
+
return self._filler
|
|
2639
|
+
|
|
2640
|
+
def set_filler(self, filler: int) -> None:
|
|
2641
|
+
"""Set the filler byte (no effect in-game)."""
|
|
2642
|
+
self._filler = UInt8(filler)
|
|
2643
|
+
|
|
2644
|
+
@property
|
|
2645
|
+
def preserve_rows(self) -> list[PaletteRow]:
|
|
2646
|
+
"""Palette rows that the fade should preserve. Always sorted ascending."""
|
|
2647
|
+
return sorted(self._preserve_rows)
|
|
2648
|
+
|
|
2649
|
+
def set_preserve_rows(self, preserve_rows: list[PaletteRow | int]) -> None:
|
|
2650
|
+
"""Set the palette rows to preserve. Each entry must be a PaletteRow in
|
|
2651
|
+
the OBJ range (8-15)."""
|
|
2652
|
+
rows: list[PaletteRow] = []
|
|
2653
|
+
seen: set[int] = set()
|
|
2654
|
+
for r in preserve_rows:
|
|
2655
|
+
row = PaletteRow(r)
|
|
2656
|
+
if not (
|
|
2657
|
+
self._OBJ_PALETTE_BASE <= row <= self._OBJ_PALETTE_BASE + 7
|
|
2658
|
+
):
|
|
2659
|
+
raise InvalidCommandArgumentException(
|
|
2660
|
+
f"DarkenLayersExceptPaletteRows preserve_rows entries must be "
|
|
2661
|
+
f"MARIO_PALETTE or NPC_PALETTE_ROW_1 through NPC_PALETTE_ROW_7 "
|
|
2662
|
+
f"(PaletteRow {self._OBJ_PALETTE_BASE} through "
|
|
2663
|
+
f"{self._OBJ_PALETTE_BASE + 7}); got PaletteRow {int(row)}"
|
|
2664
|
+
)
|
|
2665
|
+
if int(row) not in seen:
|
|
2666
|
+
rows.append(row)
|
|
2667
|
+
seen.add(int(row))
|
|
2668
|
+
self._preserve_rows = rows
|
|
2669
|
+
|
|
2670
|
+
@property
|
|
2671
|
+
def preserve_rows_mask(self) -> UInt8:
|
|
2672
|
+
"""The 8-bit bitmask written to $003185 (derived from `preserve_rows`)."""
|
|
2673
|
+
mask = 0
|
|
2674
|
+
for row in self._preserve_rows:
|
|
2675
|
+
mask |= 1 << (int(row) - self._OBJ_PALETTE_BASE)
|
|
2676
|
+
return UInt8(mask)
|
|
2677
|
+
|
|
2678
|
+
def __init__(
|
|
2679
|
+
self,
|
|
2680
|
+
fade_arg: int,
|
|
2681
|
+
preserve_rows: list[PaletteRow | int],
|
|
2682
|
+
filler: int = 0,
|
|
2683
|
+
identifier: str | None = None,
|
|
2684
|
+
) -> None:
|
|
2685
|
+
super().__init__(identifier)
|
|
2686
|
+
self.set_fade_arg(fade_arg)
|
|
2687
|
+
self.set_filler(filler)
|
|
2688
|
+
self.set_preserve_rows(preserve_rows)
|
|
2689
|
+
|
|
2690
|
+
def render(self, *args) -> bytearray:
|
|
2691
|
+
return super().render(self.fade_arg, self.filler, self.preserve_rows_mask)
|
|
2692
|
+
|
|
2693
|
+
|
|
2572
2694
|
class StoreBytesTo0335And0556(UsableEventScriptCommand, EventScriptCommand):
|
|
2573
2695
|
"""(unknown)
|
|
2574
2696
|
|
|
@@ -1,2 +0,0 @@
|
|
|
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, 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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/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
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/music.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
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/classes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/enums.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
|