smrpgpatchbuilder 2.0.1__tar.gz → 3.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 (243) hide show
  1. {smrpgpatchbuilder-2.0.1/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-3.0.0}/PKG-INFO +1 -1
  2. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/pyproject.toml +1 -1
  3. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +1 -0
  4. smrpgpatchbuilder-3.0.0/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +20 -0
  5. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +1 -0
  6. smrpgpatchbuilder-3.0.0/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +7 -0
  7. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +52 -45
  8. smrpgpatchbuilder-3.0.0/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +272 -0
  9. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +3 -3
  10. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/eventconverter.py +25 -5
  11. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +5 -4
  12. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
  13. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +2 -0
  14. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/tests/overworld/test_eventscripts.py +4 -4
  15. smrpgpatchbuilder-2.0.1/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -9573
  16. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/LICENSE +0 -0
  17. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/MANIFEST.in +0 -0
  18. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/README.md +0 -0
  19. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/setup.cfg +0 -0
  20. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/__init__.py +0 -0
  21. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
  22. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
  23. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
  24. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
  25. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
  26. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
  27. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
  28. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
  29. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
  30. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
  31. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
  32. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
  33. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
  34. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
  35. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
  36. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
  37. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
  38. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
  39. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
  40. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
  41. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
  42. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
  43. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
  44. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
  45. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
  46. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
  47. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
  48. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
  49. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
  50. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
  51. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
  52. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
  53. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
  54. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
  55. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
  56. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
  57. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
  58. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
  59. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
  60. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
  61. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
  62. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
  63. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
  64. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
  65. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
  66. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
  67. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
  68. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
  69. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
  70. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
  71. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
  72. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
  73. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
  74. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
  75. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
  76. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
  77. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
  78. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
  79. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
  80. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
  81. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
  82. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
  83. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +0 -0
  84. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
  85. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
  86. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
  87. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
  88. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
  89. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
  90. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
  91. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
  92. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
  93. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
  94. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
  95. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
  96. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
  97. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
  98. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
  99. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
  100. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
  101. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
  102. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
  103. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
  104. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
  105. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
  106. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
  107. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +0 -0
  108. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +0 -0
  109. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
  110. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
  111. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
  112. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
  113. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
  114. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
  115. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
  116. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
  117. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
  118. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
  119. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
  120. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
  121. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
  122. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
  123. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
  124. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
  125. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
  126. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
  127. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
  128. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
  129. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
  130. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
  131. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
  132. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
  133. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
  134. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
  135. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
  136. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
  137. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
  138. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
  139. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
  140. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
  141. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -0
  142. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
  143. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
  144. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
  145. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
  146. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
  147. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
  148. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
  149. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
  150. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
  151. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
  152. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
  153. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
  154. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
  155. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
  156. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
  157. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
  158. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
  159. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
  160. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
  161. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
  162. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
  163. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
  164. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
  165. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
  166. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
  167. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
  168. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
  169. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
  170. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
  171. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
  172. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
  173. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/manage.py +0 -0
  174. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
  175. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
  176. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
  177. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
  178. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
  179. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
  180. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
  181. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
  182. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
  183. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
  184. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
  185. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
  186. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
  187. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
  188. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
  189. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
  190. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
  191. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
  192. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
  193. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
  194. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
  195. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
  196. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
  197. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
  198. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
  199. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
  200. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
  201. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
  202. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
  203. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
  204. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
  205. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
  206. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
  207. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
  208. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
  209. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
  210. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
  211. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
  212. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
  213. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
  214. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
  215. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
  216. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
  217. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
  218. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
  219. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
  220. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
  221. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
  222. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
  223. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
  224. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
  225. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
  226. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
  227. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
  228. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
  229. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
  230. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
  231. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
  232. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
  233. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
  234. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
  235. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
  236. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/utils/number.py +0 -0
  237. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder/utils/strings.py +0 -0
  238. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
  239. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
  240. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
  241. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/tests/animations/test_animationscripts.py +0 -0
  242. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/tests/monsters/test_ai.py +0 -0
  243. {smrpgpatchbuilder-2.0.1 → smrpgpatchbuilder-3.0.0}/src/tests/overworld/test_actionscripts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smrpgpatchbuilder
3
- Version: 2.0.1
3
+ Version: 3.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 = "2.0.1"
7
+ version = "3.0.0"
8
8
  authors = [
9
9
  { name="pidgezero_one", email="s.kischak@gmail.com" },
10
10
  ]
@@ -5,6 +5,7 @@ from .coords import COORD_F, COORD_X, COORD_Y, COORD_Z
5
5
  from .directions import EAST, NORTH, NORTHEAST, NORTHWEST, SOUTH, SOUTHEAST, SOUTHWEST, WEST
6
6
  from .intro_title_text import GENO_TITLE, IN_TITLE, KING_BOWSER_TITLE, MALLOW_TITLE, PRINCESS_TOADSTOOL_TITLE, SUPER_MARIO_TITLE
7
7
  from .layers import BACKGROUND, HALF_INTENSITY, LAYER_L1, LAYER_L2, LAYER_L3, LAYER_L4, MINUS_SUB, NPC_SPRITES
8
+ from .palette_rows import LEVEL_PALETTE_1, LEVEL_PALETTE_2, LEVEL_PALETTE_3, LEVEL_PALETTE_4, LEVEL_PALETTE_5, LEVEL_PALETTE_6, LEVEL_PALETTE_7, MARIO_PALETTE, NPC_PALETTE_ROW_1, NPC_PALETTE_ROW_2, NPC_PALETTE_ROW_3, NPC_PALETTE_ROW_4, NPC_PALETTE_ROW_5, NPC_PALETTE_ROW_6, NPC_PALETTE_ROW_7, ROW_1
8
9
  from .palette_types import FADE_TO, GLOW, NOTHING, SET_TO
9
10
  from .scenes import SC00_OPEN_GAME_SELECT_MENU, SC01_OPEN_OVERWORLD_MENU, SC02_OPEN_LOCATION, SC03_OPEN_SHOP_MENU, SC04_OPEN_SAVE_GAME_MENU, SC05_OPEN_ITEMS_MAXED_OUT_MENU, SC06_UNKNOWN, SC07_RUN_MENU_TUTORIAL, SC08_ADD_STAR_PIECE, SC09_RUN_MOLEVILLE_MOUNTAIN, SC10_UNKNOWN, SC11_RUN_MOLEVILLE_MOUNTAIN_INTRO, SC12_UNKNOWN, SC13_RUN_STAR_PIECE_END_SEQUENCE, SC14_RUN_GARDEN_INTRO_SEQUENCE, SC15_ENTER_GATE_TO_SMITHY_FACTORY, SC16_RUN_WORLD_MAP_EVENT_SEQUENCE
10
11
  from .tutorials import TU00_HOW_TO_EQUIP, TU01_HOW_TO_USE_ITEMS, TU02_HOW_TO_PLAY_BEETLEMANIA, TU02_HOW_TO_SWITCH
@@ -0,0 +1,20 @@
1
+ """Int subclass instances representing palette row indices (0-15)."""
2
+
3
+ from .types.palette_row import PaletteRow
4
+
5
+ ROW_1 = PaletteRow(0)
6
+ LEVEL_PALETTE_1 = PaletteRow(1)
7
+ LEVEL_PALETTE_2 = PaletteRow(2)
8
+ LEVEL_PALETTE_3 = PaletteRow(3)
9
+ LEVEL_PALETTE_4 = PaletteRow(4)
10
+ LEVEL_PALETTE_5 = PaletteRow(5)
11
+ LEVEL_PALETTE_6 = PaletteRow(6)
12
+ LEVEL_PALETTE_7 = PaletteRow(7)
13
+ MARIO_PALETTE = PaletteRow(8)
14
+ NPC_PALETTE_ROW_1 = PaletteRow(9)
15
+ NPC_PALETTE_ROW_2 = PaletteRow(10)
16
+ NPC_PALETTE_ROW_3 = PaletteRow(11)
17
+ NPC_PALETTE_ROW_4 = PaletteRow(12)
18
+ NPC_PALETTE_ROW_5 = PaletteRow(13)
19
+ NPC_PALETTE_ROW_6 = PaletteRow(14)
20
+ NPC_PALETTE_ROW_7 = PaletteRow(15)
@@ -9,6 +9,7 @@ from .flag import Flag
9
9
  from .intro_title_text import IntroTitleText
10
10
  from .layer import Layer
11
11
  from .packet import Packet, PacketCollection
12
+ from .palette_row import PaletteRow
12
13
  from .palette_type import PaletteType
13
14
  from .party_character import PartyCharacter
14
15
  from .scene import Scene
@@ -0,0 +1,7 @@
1
+ class PaletteRow(int):
2
+ """Base class representing a palette row index (0-15)."""
3
+
4
+ def __new__(cls, *args):
5
+ num = args[0]
6
+ assert 0 <= num <= 15
7
+ return super(PaletteRow, cls).__new__(cls, num)
@@ -59,6 +59,9 @@ from smrpgpatchbuilder.datatypes.overworld_scripts.arguments.types.direction imp
59
59
  from smrpgpatchbuilder.datatypes.overworld_scripts.arguments.types.intro_title_text import (
60
60
  IntroTitleText,
61
61
  )
62
+ from smrpgpatchbuilder.datatypes.overworld_scripts.arguments.types.palette_row import (
63
+ PaletteRow,
64
+ )
62
65
  from smrpgpatchbuilder.datatypes.overworld_scripts.arguments.types.palette_type import (
63
66
  PaletteType,
64
67
  )
@@ -86,7 +89,7 @@ from smrpgpatchbuilder.datatypes.items.classes import (
86
89
  Accessory,
87
90
  )
88
91
 
89
- from smrpgpatchbuilder.datatypes.numbers.classes import UInt4, UInt16, UInt8
92
+ from smrpgpatchbuilder.datatypes.numbers.classes import UInt16, UInt8
90
93
  from smrpgpatchbuilder.datatypes.overworld_scripts.arguments.types.byte_var import (
91
94
  ByteVar,
92
95
  )
@@ -7136,7 +7139,13 @@ class MarioStopsGlowing(UsableEventScriptCommand, EventScriptCommandNoArgs):
7136
7139
 
7137
7140
 
7138
7141
  class PaletteSet(UsableEventScriptCommand, EventScriptCommand):
7139
- """(The inner workings of this command are unknown.)
7142
+ """Write one or more consecutive event palettes into palette rows.
7143
+
7144
+ `palette_set_starts_at` is the index of the first event palette to read from.
7145
+ `from_row` is the first palette row to write to. `to_row` is the last palette
7146
+ row to write to (inclusive, defaults to `from_row`). The game copies
7147
+ `(to_row - from_row + 1)` consecutive palettes starting at
7148
+ `palette_set_starts_at` into rows `from_row` through `to_row`.
7140
7149
 
7141
7150
  ## Lazy Shell command
7142
7151
  `Palette set = ...`
@@ -7148,62 +7157,61 @@ class PaletteSet(UsableEventScriptCommand, EventScriptCommand):
7148
7157
  3 bytes
7149
7158
 
7150
7159
  Args:
7151
- palette_set (int): The palette set to apply to the NPCs in the current level (8 bit)
7152
- row (int): The palette row (lower 4 bits of arg byte, 1-16)
7153
- upper (int): Unknown upper 4 bits of arg byte (0-15)
7160
+ palette_set_starts_at (int): The starting event palette index (0-255)
7161
+ from_row (PaletteRow): The first palette row to write to (0-15)
7162
+ to_row (PaletteRow | None): The last palette row to write to (inclusive, 0-15). Defaults to from_row.
7154
7163
  identifier (str | None): Give this command a label if you want another command to jump to it.
7155
7164
  """
7156
7165
 
7157
7166
  _opcode = 0x8A
7158
7167
  _size: int = 3
7159
- _palette_set: UInt8
7160
- _row: UInt8
7161
- _upper: UInt4
7168
+ _palette_set_starts_at: UInt8
7169
+ _from_row: PaletteRow
7170
+ _to_row: PaletteRow
7162
7171
 
7163
7172
  @property
7164
- def palette_set(self) -> UInt8:
7165
- """The palette set to apply to the NPCs in the current level."""
7166
- return self._palette_set
7173
+ def palette_set_starts_at(self) -> UInt8:
7174
+ """The starting event palette index."""
7175
+ return self._palette_set_starts_at
7167
7176
 
7168
- def set_palette_set(self, palette_set: int) -> None:
7169
- """Designate the palette set to apply to the NPCs in the current level."""
7170
- self._palette_set = UInt8(palette_set)
7177
+ def set_palette_set_starts_at(self, palette_set_starts_at: int) -> None:
7178
+ """Designate the starting event palette index."""
7179
+ self._palette_set_starts_at = UInt8(palette_set_starts_at)
7171
7180
 
7172
7181
  @property
7173
- def row(self) -> UInt8:
7174
- """The palette row (lower 4 bits)."""
7175
- return self._row
7182
+ def from_row(self) -> PaletteRow:
7183
+ """The first palette row to write to."""
7184
+ return self._from_row
7176
7185
 
7177
- def set_row(self, row: int) -> None:
7178
- """Designate the palette row for this command."""
7179
- assert 1 <= row <= 16
7180
- self._row = UInt8(row)
7186
+ def set_from_row(self, from_row: PaletteRow | int) -> None:
7187
+ """Designate the first palette row to write to."""
7188
+ self._from_row = PaletteRow(from_row)
7181
7189
 
7182
7190
  @property
7183
- def upper(self) -> UInt4:
7184
- """Unknown upper 4 bits of the arg byte."""
7185
- return self._upper
7191
+ def to_row(self) -> PaletteRow:
7192
+ """The last palette row to write to (inclusive)."""
7193
+ return self._to_row
7186
7194
 
7187
- def set_upper(self, upper: int) -> None:
7188
- """Set the unknown upper 4 bits of the arg byte."""
7189
- assert 0 <= upper <= 15
7190
- self._upper = UInt4(upper)
7195
+ def set_to_row(self, to_row: PaletteRow | int) -> None:
7196
+ """Designate the last palette row to write to (inclusive)."""
7197
+ self._to_row = PaletteRow(to_row)
7198
+ assert self._to_row >= self._from_row
7191
7199
 
7192
7200
  def __init__(
7193
7201
  self,
7194
- palette_set: int,
7195
- row: int,
7196
- upper: int = 0,
7202
+ palette_set_starts_at: int,
7203
+ from_row: PaletteRow | int,
7204
+ to_row: PaletteRow | int | None = None,
7197
7205
  identifier: str | None = None,
7198
7206
  ) -> None:
7199
7207
  super().__init__(identifier)
7200
- self.set_palette_set(palette_set)
7201
- self.set_row(row)
7202
- self.set_upper(upper)
7208
+ self.set_palette_set_starts_at(palette_set_starts_at)
7209
+ self.set_from_row(from_row)
7210
+ self.set_to_row(to_row if to_row is not None else from_row)
7203
7211
 
7204
7212
  def render(self, *args) -> bytearray:
7205
- arg_1 = UInt8((self.row - 1) + (self.upper << 4))
7206
- return super().render(arg_1, self.palette_set)
7213
+ arg_1 = UInt8(self.from_row + ((self.to_row - self.from_row) << 4))
7214
+ return super().render(arg_1, self.palette_set_starts_at)
7207
7215
 
7208
7216
 
7209
7217
  class PaletteSetMorphs(UsableEventScriptCommand, EventScriptCommand):
@@ -7222,7 +7230,7 @@ class PaletteSetMorphs(UsableEventScriptCommand, EventScriptCommand):
7222
7230
  palette_type (PaletteType): The effect to use in applying this palette
7223
7231
  palette_set (int): The palette set to apply to the NPCs in the current level
7224
7232
  duration (int): The number of frames over which this palette morph should occur
7225
- row (int): The row offset relative to the palette
7233
+ row (PaletteRow): The palette row (0-15)
7226
7234
  identifier (str | None): Give this command a label if you want another command to jump to it.
7227
7235
  """
7228
7236
 
@@ -7231,7 +7239,7 @@ class PaletteSetMorphs(UsableEventScriptCommand, EventScriptCommand):
7231
7239
  _palette_type: PaletteType
7232
7240
  _palette_set: UInt8
7233
7241
  _duration: UInt8
7234
- _row: UInt8
7242
+ _row: PaletteRow
7235
7243
 
7236
7244
  @property
7237
7245
  def palette_type(self) -> PaletteType:
@@ -7262,21 +7270,20 @@ class PaletteSetMorphs(UsableEventScriptCommand, EventScriptCommand):
7262
7270
  self._duration = UInt8(duration)
7263
7271
 
7264
7272
  @property
7265
- def row(self) -> UInt8:
7266
- """The row offset relative to the palette."""
7273
+ def row(self) -> PaletteRow:
7274
+ """The palette row."""
7267
7275
  return self._row
7268
7276
 
7269
- def set_row(self, row: int) -> None:
7270
- """Designate the row offset relative to palette for this command."""
7271
- assert 1 <= row <= 16
7272
- self._row = UInt8(row)
7277
+ def set_row(self, row: PaletteRow | int) -> None:
7278
+ """Designate the palette row for this command."""
7279
+ self._row = PaletteRow(row)
7273
7280
 
7274
7281
  def __init__(
7275
7282
  self,
7276
7283
  palette_type: PaletteType,
7277
7284
  palette_set: int,
7278
7285
  duration: int,
7279
- row: int,
7286
+ row: PaletteRow | int,
7280
7287
  identifier: str | None = None,
7281
7288
  ) -> None:
7282
7289
  super().__init__(identifier)
@@ -0,0 +1,272 @@
1
+ """Event palette ID constants for SMRPG event palettes.
2
+
3
+ There are 256 event palettes starting at ROM address 0x37A000.
4
+ Each palette is 30 bytes (15 colors x 2 bytes per color).
5
+ """
6
+
7
+ from .misc import COLORS_PER_PALETTE, PALETTE_SIZE, TOTAL_EVENT_PALETTES
8
+
9
+ __all__ = [
10
+ "COLORS_PER_PALETTE",
11
+ "PALETTE_SIZE",
12
+ "TOTAL_EVENT_PALETTES",
13
+ ] + [f"EPAL{i:04d}" for i in range(TOTAL_EVENT_PALETTES)]
14
+
15
+ # fmt: off
16
+ EPAL0000 = 0
17
+ EPAL0001 = 1
18
+ EPAL0002 = 2
19
+ EPAL0003 = 3
20
+ EPAL0004 = 4
21
+ EPAL0005 = 5
22
+ EPAL0006 = 6
23
+ EPAL0007 = 7
24
+ EPAL0008 = 8
25
+ EPAL0009 = 9
26
+ EPAL0010 = 10
27
+ EPAL0011 = 11
28
+ EPAL0012 = 12
29
+ EPAL0013 = 13
30
+ EPAL0014 = 14
31
+ EPAL0015 = 15
32
+ EPAL0016 = 16
33
+ EPAL0017 = 17
34
+ EPAL0018 = 18
35
+ EPAL0019 = 19
36
+ EPAL0020 = 20
37
+ EPAL0021 = 21
38
+ EPAL0022 = 22
39
+ EPAL0023 = 23
40
+ EPAL0024 = 24
41
+ EPAL0025 = 25
42
+ EPAL0026 = 26
43
+ EPAL0027 = 27
44
+ EPAL0028 = 28
45
+ EPAL0029 = 29
46
+ EPAL0030 = 30
47
+ EPAL0031 = 31
48
+ EPAL0032 = 32
49
+ EPAL0033 = 33
50
+ EPAL0034 = 34
51
+ EPAL0035 = 35
52
+ EPAL0036 = 36
53
+ EPAL0037 = 37
54
+ EPAL0038 = 38
55
+ EPAL0039 = 39
56
+ EPAL0040 = 40
57
+ EPAL0041 = 41
58
+ EPAL0042 = 42
59
+ EPAL0043 = 43
60
+ EPAL0044 = 44
61
+ EPAL0045 = 45
62
+ EPAL0046 = 46
63
+ EPAL0047 = 47
64
+ EPAL0048 = 48
65
+ EPAL0049 = 49
66
+ EPAL0050 = 50
67
+ EPAL0051 = 51
68
+ EPAL0052 = 52
69
+ EPAL0053 = 53
70
+ EPAL0054 = 54
71
+ EPAL0055 = 55
72
+ EPAL0056 = 56
73
+ EPAL0057 = 57
74
+ EPAL0058 = 58
75
+ EPAL0059 = 59
76
+ EPAL0060 = 60
77
+ EPAL0061 = 61
78
+ EPAL0062 = 62
79
+ EPAL0063 = 63
80
+ EPAL0064 = 64
81
+ EPAL0065 = 65
82
+ EPAL0066 = 66
83
+ EPAL0067 = 67
84
+ EPAL0068 = 68
85
+ EPAL0069 = 69
86
+ EPAL0070 = 70
87
+ EPAL0071 = 71
88
+ EPAL0072 = 72
89
+ EPAL0073 = 73
90
+ EPAL0074 = 74
91
+ EPAL0075 = 75
92
+ EPAL0076 = 76
93
+ EPAL0077 = 77
94
+ EPAL0078 = 78
95
+ EPAL0079 = 79
96
+ EPAL0080 = 80
97
+ EPAL0081 = 81
98
+ EPAL0082 = 82
99
+ EPAL0083 = 83
100
+ EPAL0084 = 84
101
+ EPAL0085 = 85
102
+ EPAL0086 = 86
103
+ EPAL0087 = 87
104
+ EPAL0088 = 88
105
+ EPAL0089 = 89
106
+ EPAL0090 = 90
107
+ EPAL0091 = 91
108
+ EPAL0092 = 92
109
+ EPAL0093 = 93
110
+ EPAL0094 = 94
111
+ EPAL0095 = 95
112
+ EPAL0096 = 96
113
+ EPAL0097 = 97
114
+ EPAL0098 = 98
115
+ EPAL0099 = 99
116
+ EPAL0100 = 100
117
+ EPAL0101 = 101
118
+ EPAL0102 = 102
119
+ EPAL0103 = 103
120
+ EPAL0104 = 104
121
+ EPAL0105 = 105
122
+ EPAL0106 = 106
123
+ EPAL0107 = 107
124
+ EPAL0108 = 108
125
+ EPAL0109 = 109
126
+ EPAL0110 = 110
127
+ EPAL0111 = 111
128
+ EPAL0112 = 112
129
+ EPAL0113 = 113
130
+ EPAL0114 = 114
131
+ EPAL0115 = 115
132
+ EPAL0116 = 116
133
+ EPAL0117 = 117
134
+ EPAL0118 = 118
135
+ EPAL0119 = 119
136
+ EPAL0120 = 120
137
+ EPAL0121 = 121
138
+ EPAL0122 = 122
139
+ EPAL0123 = 123
140
+ EPAL0124 = 124
141
+ EPAL0125 = 125
142
+ EPAL0126 = 126
143
+ EPAL0127 = 127
144
+ EPAL0128 = 128
145
+ EPAL0129 = 129
146
+ EPAL0130 = 130
147
+ EPAL0131 = 131
148
+ EPAL0132 = 132
149
+ EPAL0133 = 133
150
+ EPAL0134 = 134
151
+ EPAL0135 = 135
152
+ EPAL0136 = 136
153
+ EPAL0137 = 137
154
+ EPAL0138 = 138
155
+ EPAL0139 = 139
156
+ EPAL0140 = 140
157
+ EPAL0141 = 141
158
+ EPAL0142 = 142
159
+ EPAL0143 = 143
160
+ EPAL0144 = 144
161
+ EPAL0145 = 145
162
+ EPAL0146 = 146
163
+ EPAL0147 = 147
164
+ EPAL0148 = 148
165
+ EPAL0149 = 149
166
+ EPAL0150 = 150
167
+ EPAL0151 = 151
168
+ EPAL0152 = 152
169
+ EPAL0153 = 153
170
+ EPAL0154 = 154
171
+ EPAL0155 = 155
172
+ EPAL0156 = 156
173
+ EPAL0157 = 157
174
+ EPAL0158 = 158
175
+ EPAL0159 = 159
176
+ EPAL0160 = 160
177
+ EPAL0161 = 161
178
+ EPAL0162 = 162
179
+ EPAL0163 = 163
180
+ EPAL0164 = 164
181
+ EPAL0165 = 165
182
+ EPAL0166 = 166
183
+ EPAL0167 = 167
184
+ EPAL0168 = 168
185
+ EPAL0169 = 169
186
+ EPAL0170 = 170
187
+ EPAL0171 = 171
188
+ EPAL0172 = 172
189
+ EPAL0173 = 173
190
+ EPAL0174 = 174
191
+ EPAL0175 = 175
192
+ EPAL0176 = 176
193
+ EPAL0177 = 177
194
+ EPAL0178 = 178
195
+ EPAL0179 = 179
196
+ EPAL0180 = 180
197
+ EPAL0181 = 181
198
+ EPAL0182 = 182
199
+ EPAL0183 = 183
200
+ EPAL0184 = 184
201
+ EPAL0185 = 185
202
+ EPAL0186 = 186
203
+ EPAL0187 = 187
204
+ EPAL0188 = 188
205
+ EPAL0189 = 189
206
+ EPAL0190 = 190
207
+ EPAL0191 = 191
208
+ EPAL0192 = 192
209
+ EPAL0193 = 193
210
+ EPAL0194 = 194
211
+ EPAL0195 = 195
212
+ EPAL0196 = 196
213
+ EPAL0197 = 197
214
+ EPAL0198 = 198
215
+ EPAL0199 = 199
216
+ EPAL0200 = 200
217
+ EPAL0201 = 201
218
+ EPAL0202 = 202
219
+ EPAL0203 = 203
220
+ EPAL0204 = 204
221
+ EPAL0205 = 205
222
+ EPAL0206 = 206
223
+ EPAL0207 = 207
224
+ EPAL0208 = 208
225
+ EPAL0209 = 209
226
+ EPAL0210 = 210
227
+ EPAL0211 = 211
228
+ EPAL0212 = 212
229
+ EPAL0213 = 213
230
+ EPAL0214 = 214
231
+ EPAL0215 = 215
232
+ EPAL0216 = 216
233
+ EPAL0217 = 217
234
+ EPAL0218 = 218
235
+ EPAL0219 = 219
236
+ EPAL0220 = 220
237
+ EPAL0221 = 221
238
+ EPAL0222 = 222
239
+ EPAL0223 = 223
240
+ EPAL0224 = 224
241
+ EPAL0225 = 225
242
+ EPAL0226 = 226
243
+ EPAL0227 = 227
244
+ EPAL0228 = 228
245
+ EPAL0229 = 229
246
+ EPAL0230 = 230
247
+ EPAL0231 = 231
248
+ EPAL0232 = 232
249
+ EPAL0233 = 233
250
+ EPAL0234 = 234
251
+ EPAL0235 = 235
252
+ EPAL0236 = 236
253
+ EPAL0237 = 237
254
+ EPAL0238 = 238
255
+ EPAL0239 = 239
256
+ EPAL0240 = 240
257
+ EPAL0241 = 241
258
+ EPAL0242 = 242
259
+ EPAL0243 = 243
260
+ EPAL0244 = 244
261
+ EPAL0245 = 245
262
+ EPAL0246 = 246
263
+ EPAL0247 = 247
264
+ EPAL0248 = 248
265
+ EPAL0249 = 249
266
+ EPAL0250 = 250
267
+ EPAL0251 = 251
268
+ EPAL0252 = 252
269
+ EPAL0253 = 253
270
+ EPAL0254 = 254
271
+ EPAL0255 = 255
272
+ # fmt: on
@@ -32,10 +32,10 @@ SPRITE_PALETTE_OFFSET = 0x253000
32
32
  SPRITE_PALETTE_END = 0x259000 # 0x253000 + (819 * 30) = 0x258FE6, rounded up
33
33
  TOTAL_SPRITE_PALETTES = 819
34
34
 
35
- # Event palettes (0x37A000 - 0x37BFFF per ROM documentation)
35
+ # Event palettes (starting at 0x37A000)
36
36
  EVENT_PALETTE_OFFSET = 0x37A000
37
- EVENT_PALETTE_END = 0x37C000
38
- TOTAL_EVENT_PALETTES = (EVENT_PALETTE_END - EVENT_PALETTE_OFFSET) // PALETTE_SIZE # 273
37
+ TOTAL_EVENT_PALETTES = 256
38
+ EVENT_PALETTE_END = EVENT_PALETTE_OFFSET + TOTAL_EVENT_PALETTES * PALETTE_SIZE
39
39
 
40
40
  # Legacy aliases for backwards compatibility
41
41
  PALETTE_OFFSET = SPRITE_PALETTE_OFFSET
@@ -94,6 +94,25 @@ CONTROLLER_INPUTS = ["LEFT", "RIGHT", "DOWN", "UP", "X", "A", "Y", "B"]
94
94
 
95
95
  COLOURS = ["BLACK", "BLUE", "RED", "PINK", "GREEN", "AQUA", "YELLOW", "WHITE"]
96
96
 
97
+ PALETTE_ROWS = [
98
+ "ROW_1",
99
+ "LEVEL_PALETTE_1",
100
+ "LEVEL_PALETTE_2",
101
+ "LEVEL_PALETTE_3",
102
+ "LEVEL_PALETTE_4",
103
+ "LEVEL_PALETTE_5",
104
+ "LEVEL_PALETTE_6",
105
+ "LEVEL_PALETTE_7",
106
+ "MARIO_PALETTE",
107
+ "NPC_PALETTE_ROW_1",
108
+ "NPC_PALETTE_ROW_2",
109
+ "NPC_PALETTE_ROW_3",
110
+ "NPC_PALETTE_ROW_4",
111
+ "NPC_PALETTE_ROW_5",
112
+ "NPC_PALETTE_ROW_6",
113
+ "NPC_PALETTE_ROW_7",
114
+ ]
115
+
97
116
  PALETTE_TYPES = [
98
117
  "NOTHING",
99
118
  None,
@@ -817,16 +836,16 @@ class Command(BaseCommand):
817
836
  args["shop_id"] = varnames["shops"][cmdargs[0]]
818
837
  elif cmd["command"] == "palette_set":
819
838
  cls = "PaletteSet"
820
- args["palette_set"] = str(cmdargs[0])
821
- args["row"] = str(cmdargs[1])
822
- if cmdargs[2] != 0:
823
- args["upper"] = str(cmdargs[2])
839
+ args["palette_set_starts_at"] = str(cmdargs[0])
840
+ args["from_row"] = PALETTE_ROWS[cmdargs[1]]
841
+ if cmdargs[2] != cmdargs[1]:
842
+ args["to_row"] = PALETTE_ROWS[cmdargs[2]]
824
843
  elif cmd["command"] == "palette_set_morphs":
825
844
  cls = "PaletteSetMorphs"
826
845
  args["palette_type"] = PALETTE_TYPES[cmdargs[0]]
827
846
  args["duration"] = str(cmdargs[1])
828
847
  args["palette_set"] = str(cmdargs[2])
829
- args["row"] = str(cmdargs[3])
848
+ args["row"] = PALETTE_ROWS[cmdargs[3]]
830
849
  elif cmd["command"] == "pause":
831
850
  cls = "Pause"
832
851
  include_argnames = False
@@ -2051,6 +2070,7 @@ class Command(BaseCommand):
2051
2070
  output += "\nfrom smrpgpatchbuilder.datatypes.overworld_scripts.arguments.directions import *"
2052
2071
  output += "\nfrom smrpgpatchbuilder.datatypes.overworld_scripts.arguments.intro_title_text import *"
2053
2072
  output += "\nfrom smrpgpatchbuilder.datatypes.overworld_scripts.arguments.layers import *"
2073
+ output += "\nfrom smrpgpatchbuilder.datatypes.overworld_scripts.arguments.palette_rows import *"
2054
2074
  output += "\nfrom smrpgpatchbuilder.datatypes.overworld_scripts.arguments.palette_types import *"
2055
2075
  output += "\nfrom smrpgpatchbuilder.datatypes.overworld_scripts.arguments.scenes import *"
2056
2076
  output += "\nfrom smrpgpatchbuilder.datatypes.overworld_scripts.arguments.tutorials import *"
@@ -936,10 +936,11 @@ def modify_party(args):
936
936
 
937
937
 
938
938
  def palette_set(args):
939
- palette_set = args[1]
940
- row = (args[0] & 0x0F) + 1
941
- upper = (args[0] >> 4) & 0x0F
942
- return "palette_set", [palette_set, row, upper]
939
+ palette_set_starts_at = args[1]
940
+ from_row = args[0] & 0x0F
941
+ num_extra = (args[0] >> 4) & 0x0F
942
+ to_row = from_row + num_extra
943
+ return "palette_set", [palette_set_starts_at, from_row, to_row]
943
944
 
944
945
 
945
946
  def palette_set_morphs(args):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smrpgpatchbuilder
3
- Version: 2.0.1
3
+ Version: 3.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
@@ -109,6 +109,7 @@ src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py
109
109
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py
110
110
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py
111
111
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py
112
+ src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py
112
113
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py
113
114
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py
114
115
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py
@@ -124,6 +125,7 @@ src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py
124
125
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py
125
126
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py
126
127
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py
128
+ src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py
127
129
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py
128
130
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py
129
131
  src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py
@@ -913,8 +913,8 @@ test_cases = [
913
913
  Case(
914
914
  label="PaletteSet",
915
915
  commands_factory=lambda: [
916
- PaletteSet(palette_set=110, row=12),
917
- PaletteSet(palette_set=89, row=2, upper=6),
916
+ PaletteSet(palette_set_starts_at=110, from_row=11),
917
+ PaletteSet(palette_set_starts_at=89, from_row=1, to_row=7),
918
918
  ],
919
919
  expected_bytes=[0x8A, 0x0B, 0x6E, 0x8A, 0x61, 0x59],
920
920
  ),
@@ -1059,12 +1059,12 @@ test_cases = [
1059
1059
  commands_factory=lambda: [
1060
1060
  SpeedUpMusicTempoBy(duration=255, change=24),
1061
1061
  ],
1062
- expected_bytes=[0x97, 0xFF, 0xE8],
1062
+ expected_bytes=[0x97, 0xFF, 0xE7],
1063
1063
  ),
1064
1064
  Case(
1065
1065
  label="ReduceMusicPitchBy",
1066
1066
  commands_factory=lambda: [ReduceMusicPitchBy(duration=8, change=5)],
1067
- expected_bytes=[0x98, 0x08, 0xFB],
1067
+ expected_bytes=[0x98, 0x08, 0xFA],
1068
1068
  ),
1069
1069
  Case(
1070
1070
  label="IncreaseMusicPitchBy",