smrpgpatchbuilder 5.0.10__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.
Files changed (245) hide show
  1. {smrpgpatchbuilder-5.0.10/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-6.0.0}/PKG-INFO +1 -1
  2. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/pyproject.toml +1 -1
  3. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +57 -22
  4. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
  5. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/LICENSE +0 -0
  6. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/MANIFEST.in +0 -0
  7. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/README.md +0 -0
  8. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/setup.cfg +0 -0
  9. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/__init__.py +0 -0
  10. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
  11. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
  12. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
  13. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
  14. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
  15. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
  16. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
  17. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
  18. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
  19. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
  20. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
  21. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
  22. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
  23. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
  24. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
  25. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
  26. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
  27. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
  28. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
  29. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
  30. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
  31. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
  32. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
  33. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
  34. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
  35. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
  36. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
  37. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
  38. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
  39. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
  40. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
  41. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
  42. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
  43. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
  44. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
  45. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
  46. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
  47. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
  48. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
  49. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
  50. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
  51. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +0 -0
  52. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
  53. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
  54. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
  55. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
  56. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
  57. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
  58. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
  59. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
  60. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
  61. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
  62. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
  63. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
  64. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
  65. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
  66. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
  67. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
  68. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
  69. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
  70. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
  71. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
  72. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
  73. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +0 -0
  74. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
  75. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
  76. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
  77. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
  78. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
  79. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
  80. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
  81. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
  82. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
  83. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
  84. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
  85. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
  86. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
  87. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
  88. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
  89. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
  90. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
  91. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
  92. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
  93. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
  94. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
  95. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
  96. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
  97. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +0 -0
  98. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +0 -0
  99. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
  100. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
  101. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
  102. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
  103. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
  104. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
  105. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
  106. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
  107. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
  108. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
  109. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
  110. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
  111. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
  112. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
  113. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
  114. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
  115. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
  116. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
  117. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
  118. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
  119. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
  120. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
  121. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
  122. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
  123. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
  124. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
  125. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
  126. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
  127. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
  128. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
  129. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
  130. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
  131. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
  132. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
  133. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
  134. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
  135. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -0
  136. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
  137. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
  138. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
  139. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
  140. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
  141. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
  142. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
  143. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
  144. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
  145. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
  146. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
  147. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
  148. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
  149. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
  150. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
  151. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
  152. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
  153. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
  154. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
  155. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
  156. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
  157. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
  158. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
  159. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
  160. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
  161. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
  162. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
  163. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
  164. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
  165. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
  166. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
  167. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
  168. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
  169. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/manage.py +0 -0
  170. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
  171. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
  172. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
  173. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
  174. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
  175. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
  176. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
  177. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
  178. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
  179. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
  180. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
  181. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
  182. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
  183. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
  184. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
  185. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
  186. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
  187. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
  188. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
  189. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
  190. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
  191. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
  192. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
  193. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
  194. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
  195. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
  196. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
  197. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
  198. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
  199. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
  200. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
  201. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
  202. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
  203. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
  204. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
  205. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
  206. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
  207. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
  208. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
  209. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
  210. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
  211. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
  212. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
  213. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
  214. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
  215. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
  216. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
  217. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
  218. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
  219. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
  220. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
  221. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
  222. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
  223. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
  224. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
  225. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
  226. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
  227. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
  228. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
  229. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
  230. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
  231. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
  232. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
  233. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
  234. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/number.py +0 -0
  235. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder/utils/strings.py +0 -0
  236. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +0 -0
  237. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
  238. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
  239. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
  240. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/tests/animations/test_animationscripts.py +0 -0
  241. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/tests/dialogs/__init__.py +0 -0
  242. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/tests/dialogs/test_formatter.py +0 -0
  243. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/tests/monsters/test_ai.py +0 -0
  244. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/tests/overworld/test_actionscripts.py +0 -0
  245. {smrpgpatchbuilder-5.0.10 → smrpgpatchbuilder-6.0.0}/src/tests/overworld/test_eventscripts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smrpgpatchbuilder
3
- Version: 5.0.10
3
+ Version: 6.0.0
4
4
  Summary: Patchable base class support for some SMRPG concepts similar to their definitions in Lazy Shell
5
5
  Author-email: pidgezero_one <s.kischak@gmail.com>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "smrpgpatchbuilder"
7
- version = "5.0.10"
7
+ version = "6.0.0"
8
8
  authors = [
9
9
  { name="pidgezero_one", email="s.kischak@gmail.com" },
10
10
  ]
@@ -2570,20 +2570,28 @@ class CopyVarToVar(UsableEventScriptCommand, EventScriptCommand):
2570
2570
 
2571
2571
 
2572
2572
  class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand):
2573
- """Darken the level background and all NPCs except the palette rows whose bit is
2574
- set in `preserve_rows_mask`. The handler at $C0:4FD9 stores `fade_arg` into the
2575
- fade-depth control word ($318B / $318C / $318E) and `preserve_rows_mask` into the
2576
- palette-row exclusion bitmask ($003185). The palette processor at $C0:3AEE walks 8
2577
- rows and skips any row whose mask bit is set, leaving only the unmasked rows
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
2578
  darkened.
2579
2579
 
2580
- **Important:** the mask targets palette rows, not NPC indices. When a room's
2581
- `ally_sprite_buffer_size` is increased (e.g. when the protagonist needs more VRAM
2582
- for tilemap molds), every NPC palette row shifts by the same delta, so this mask
2583
- must shift left by the same delta to keep targeting the same NPCs.
2580
+ The 8 mask bits correspond to the OBJ palette rows in order:
2584
2581
 
2585
- Bit `n` of `preserve_rows_mask` corresponds to palette row `n`. Bit set = preserve
2586
- (skip darkening); bit clear = darken normally.
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.
2587
2595
 
2588
2596
  The middle arg byte is filler, ignored by the handler.
2589
2597
 
@@ -2599,19 +2607,21 @@ class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand
2599
2607
  Args:
2600
2608
  fade_arg (int): 8-bit fade-depth control. Low 6 bits → $318B (fade depth);
2601
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.
2602
2613
  filler (int): Ignored by the handler. Set to 0 unless preserving original
2603
2614
  byte sequences.
2604
- preserve_rows_mask (int): 8-bit palette-row exclusion bitmask. Bit n set =
2605
- palette row n is preserved (not darkened).
2606
2615
  identifier (str | None): Give this command a label if you want another
2607
2616
  command to jump to it.
2608
2617
  """
2609
2618
 
2610
2619
  _opcode = bytearray([0xFD, 0x8E])
2611
2620
  _size: int = 5
2621
+ _OBJ_PALETTE_BASE = 8 # PaletteRow(8) = MARIO_PALETTE = bit 0 of the mask.
2612
2622
  _fade_arg: UInt8
2613
2623
  _filler: UInt8
2614
- _preserve_rows_mask: UInt8
2624
+ _preserve_rows: list[PaletteRow]
2615
2625
 
2616
2626
  @property
2617
2627
  def fade_arg(self) -> UInt8:
@@ -2632,25 +2642,50 @@ class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand
2632
2642
  self._filler = UInt8(filler)
2633
2643
 
2634
2644
  @property
2635
- def preserve_rows_mask(self) -> UInt8:
2636
- """8-bit palette-row exclusion mask. Bit n set = preserve palette row n."""
2637
- return self._preserve_rows_mask
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
2638
2669
 
2639
- def set_preserve_rows_mask(self, preserve_rows_mask: int) -> None:
2640
- """Set the 8-bit palette-row exclusion mask."""
2641
- self._preserve_rows_mask = UInt8(preserve_rows_mask)
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)
2642
2677
 
2643
2678
  def __init__(
2644
2679
  self,
2645
2680
  fade_arg: int,
2646
- preserve_rows_mask: int,
2681
+ preserve_rows: list[PaletteRow | int],
2647
2682
  filler: int = 0,
2648
2683
  identifier: str | None = None,
2649
2684
  ) -> None:
2650
2685
  super().__init__(identifier)
2651
2686
  self.set_fade_arg(fade_arg)
2652
2687
  self.set_filler(filler)
2653
- self.set_preserve_rows_mask(preserve_rows_mask)
2688
+ self.set_preserve_rows(preserve_rows)
2654
2689
 
2655
2690
  def render(self, *args) -> bytearray:
2656
2691
  return super().render(self.fade_arg, self.filler, self.preserve_rows_mask)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smrpgpatchbuilder
3
- Version: 5.0.10
3
+ Version: 6.0.0
4
4
  Summary: Patchable base class support for some SMRPG concepts similar to their definitions in Lazy Shell
5
5
  Author-email: pidgezero_one <s.kischak@gmail.com>
6
6
  License-Expression: MIT