smrpgpatchbuilder 4.1.6__tar.gz → 4.1.8__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-4.1.6/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-4.1.8}/PKG-INFO +1 -1
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/pyproject.toml +1 -1
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +1 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +17 -1
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +80 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/LICENSE +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/MANIFEST.in +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/README.md +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/setup.cfg +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/manage.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/utils/number.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/utils/strings.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/tests/animations/test_animationscripts.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/tests/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/tests/dialogs/test_formatter.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/tests/monsters/test_ai.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/tests/overworld/test_actionscripts.py +0 -0
- {smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/tests/overworld/test_eventscripts.py +0 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"""Base classes related to dialogs and dialog collections"""
|
|
2
2
|
|
|
3
|
+
import re
|
|
4
|
+
|
|
3
5
|
from smrpgpatchbuilder.datatypes.dialogs.ids.misc import (
|
|
4
6
|
DIALOG_BANK_22_BEGINS,
|
|
5
7
|
DIALOG_BANK_22_ENDS,
|
|
@@ -15,7 +17,7 @@ from smrpgpatchbuilder.datatypes.scripts_common.classes import (
|
|
|
15
17
|
from .ids.dialog_bank_ids import (
|
|
16
18
|
DIALOG_BANK_22,
|
|
17
19
|
)
|
|
18
|
-
from .formatter import center_lines, format_dialog
|
|
20
|
+
from .formatter import center_lines, center_marked_lines, format_dialog
|
|
19
21
|
from .utils import compress, COMPRESSION_TABLE
|
|
20
22
|
|
|
21
23
|
class Dialog:
|
|
@@ -160,6 +162,16 @@ class DialogCollection:
|
|
|
160
162
|
self._unused_ranges = [] # Reset unused ranges tracking
|
|
161
163
|
new_pointer_table: list[int] = [-1] * 4096
|
|
162
164
|
|
|
165
|
+
# Convert mid-dialog standalone [await] (0x00 = null terminator) to
|
|
166
|
+
# [await][page]\n (0x03) so the game continues to the next page instead
|
|
167
|
+
# of treating it as end-of-dialog.
|
|
168
|
+
_mid_await = re.compile(r'\[await\](?!\[page\]|\[pause\]|\n|$)')
|
|
169
|
+
for bank_idx, bank_strings in enumerate(self._raw_data):
|
|
170
|
+
for str_idx, s in enumerate(bank_strings):
|
|
171
|
+
self._raw_data[bank_idx][str_idx] = _mid_await.sub(
|
|
172
|
+
'[await][page]\n', s
|
|
173
|
+
)
|
|
174
|
+
|
|
163
175
|
# Process [center] tags: auto-format line breaks and add centering padding
|
|
164
176
|
for bank_idx, bank_strings in enumerate(self._raw_data):
|
|
165
177
|
for str_idx, s in enumerate(bank_strings):
|
|
@@ -168,6 +180,10 @@ class DialogCollection:
|
|
|
168
180
|
s = format_dialog(s)
|
|
169
181
|
s = center_lines(s)
|
|
170
182
|
self._raw_data[bank_idx][str_idx] = s
|
|
183
|
+
elif "\n[center]" in s:
|
|
184
|
+
s = format_dialog(s)
|
|
185
|
+
s = center_marked_lines(s)
|
|
186
|
+
self._raw_data[bank_idx][str_idx] = s
|
|
171
187
|
|
|
172
188
|
compressed_text = [
|
|
173
189
|
[compress(d, self.compression_table) for d in self._raw_data[0]],
|
|
@@ -113,6 +113,12 @@ def _tokenize(text: str, widths: tuple[int, ...] = VANILLA_DIALOG_FONT_WIDTHS) -
|
|
|
113
113
|
cursor += len(delay_match.group())
|
|
114
114
|
continue
|
|
115
115
|
|
|
116
|
+
# 1b. Match [center] as a zero-width marker token
|
|
117
|
+
if text[cursor:cursor + 8] == "[center]":
|
|
118
|
+
tokens.append(Token(text="[center]", width_px=0))
|
|
119
|
+
cursor += 8
|
|
120
|
+
continue
|
|
121
|
+
|
|
116
122
|
# 2. Match control tokens (longest first)
|
|
117
123
|
matched = False
|
|
118
124
|
for ctrl in _CONTROL_TOKENS:
|
|
@@ -326,6 +332,9 @@ def format_dialog(
|
|
|
326
332
|
result = "".join(output_parts)
|
|
327
333
|
|
|
328
334
|
if has_center:
|
|
335
|
+
# Trim trailing spaces before newlines, control tokens, and end of string.
|
|
336
|
+
# Centered text pads from the left; trailing spaces waste dialog space.
|
|
337
|
+
result = re.sub(r' +(?=\n|\[(?:await|page|end|select)|$)', '', result)
|
|
329
338
|
result = "[center]" + result
|
|
330
339
|
|
|
331
340
|
return result
|
|
@@ -488,6 +497,77 @@ def format_wish(
|
|
|
488
497
|
return text
|
|
489
498
|
|
|
490
499
|
|
|
500
|
+
def center_marked_lines(
|
|
501
|
+
text: str,
|
|
502
|
+
char_widths: tuple[int, ...] | None = None,
|
|
503
|
+
left_margin: int | None = None,
|
|
504
|
+
) -> str:
|
|
505
|
+
"""Center only lines that begin with [center], leaving other lines untouched.
|
|
506
|
+
|
|
507
|
+
For each line (split by bare \\n) that starts with ``[center]``:
|
|
508
|
+
1. Strip the ``[center]`` marker
|
|
509
|
+
2. Trim trailing spaces from the line content
|
|
510
|
+
3. Calculate content width and add leading-space padding to center it
|
|
511
|
+
|
|
512
|
+
Lines without ``[center]`` are passed through unchanged.
|
|
513
|
+
|
|
514
|
+
Args:
|
|
515
|
+
text: The dialog string with \\n line breaks already inserted.
|
|
516
|
+
char_widths: Font width table. Defaults to VANILLA_DIALOG_FONT_WIDTHS.
|
|
517
|
+
left_margin: Left margin in pixels. Defaults to DEFAULT_LEFT_MARGIN.
|
|
518
|
+
|
|
519
|
+
Returns:
|
|
520
|
+
The text with per-line centering applied where marked.
|
|
521
|
+
"""
|
|
522
|
+
if char_widths is None:
|
|
523
|
+
char_widths = VANILLA_DIALOG_FONT_WIDTHS
|
|
524
|
+
if left_margin is None:
|
|
525
|
+
left_margin = DEFAULT_LEFT_MARGIN
|
|
526
|
+
|
|
527
|
+
space_width = _calculate_char_width(" ", char_widths)
|
|
528
|
+
available_width = (CANVAS_WIDTH - left_margin) - (left_margin + 1)
|
|
529
|
+
|
|
530
|
+
# Tokenize so we can split on bare \n while preserving control tokens
|
|
531
|
+
tokens = _tokenize(text, char_widths)
|
|
532
|
+
|
|
533
|
+
# Split tokens into lines at bare \n boundaries
|
|
534
|
+
lines: list[list[Token]] = [[]]
|
|
535
|
+
for tok in tokens:
|
|
536
|
+
if tok.is_line_break and not tok.is_await:
|
|
537
|
+
lines.append([])
|
|
538
|
+
elif tok.is_page_break or (tok.is_line_break and tok.is_await):
|
|
539
|
+
lines[-1].append(tok)
|
|
540
|
+
lines.append([])
|
|
541
|
+
else:
|
|
542
|
+
lines[-1].append(tok)
|
|
543
|
+
|
|
544
|
+
result_parts: list[str] = []
|
|
545
|
+
for line_tokens in lines:
|
|
546
|
+
# Check if line starts with [center] (skipping leading spaces)
|
|
547
|
+
line_str = "".join(t.text for t in line_tokens)
|
|
548
|
+
if line_str.lstrip(" ").startswith("[center]"):
|
|
549
|
+
# Strip [center] marker
|
|
550
|
+
center_pos = line_str.index("[center]")
|
|
551
|
+
line_content = line_str[center_pos + len("[center]"):]
|
|
552
|
+
# Trim trailing spaces before any control token or end
|
|
553
|
+
line_content = re.sub(
|
|
554
|
+
r' +(?=\n|\[(?:await|page|end|select)|$)', '', line_content
|
|
555
|
+
)
|
|
556
|
+
# Calculate centering padding from the stripped content
|
|
557
|
+
content_tokens = _tokenize(line_content, char_widths)
|
|
558
|
+
content_width = sum(t.width_px for t in content_tokens)
|
|
559
|
+
remaining = available_width - content_width
|
|
560
|
+
if remaining > 0 and space_width > 0:
|
|
561
|
+
pad_spaces = math.floor((remaining / 2) / space_width)
|
|
562
|
+
else:
|
|
563
|
+
pad_spaces = 0
|
|
564
|
+
result_parts.append(" " * pad_spaces + line_content)
|
|
565
|
+
else:
|
|
566
|
+
result_parts.append(line_str)
|
|
567
|
+
|
|
568
|
+
return "\n".join(result_parts)
|
|
569
|
+
|
|
570
|
+
|
|
491
571
|
def calculate_text_width(
|
|
492
572
|
text: str,
|
|
493
573
|
char_widths: tuple[int, ...] | None = None,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/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-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/battles/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/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
|
{smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/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-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/items/classes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/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
|
|
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
|
|
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-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/shops/classes.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
|
{smrpgpatchbuilder-4.1.6 → smrpgpatchbuilder-4.1.8}/src/smrpgpatchbuilder/datatypes/spells/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
|