smrpgpatchbuilder 5.0.9__tar.gz → 5.0.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. {smrpgpatchbuilder-5.0.9/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-5.0.10}/PKG-INFO +1 -1
  2. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/pyproject.toml +1 -1
  3. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +2 -0
  4. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +140 -6
  5. smrpgpatchbuilder-5.0.10/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +2 -0
  6. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +88 -1
  7. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
  8. smrpgpatchbuilder-5.0.9/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -2
  9. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/LICENSE +0 -0
  10. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/MANIFEST.in +0 -0
  11. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/README.md +0 -0
  12. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/setup.cfg +0 -0
  13. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/__init__.py +0 -0
  14. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
  15. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
  16. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
  17. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
  18. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
  19. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
  20. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
  21. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
  22. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
  23. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
  24. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
  25. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
  26. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
  27. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
  28. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
  29. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
  30. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
  31. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
  32. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
  33. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
  34. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
  35. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
  36. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
  37. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
  38. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
  39. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
  40. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
  41. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
  42. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
  43. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
  44. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
  45. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
  46. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
  47. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
  48. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
  49. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
  50. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
  51. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
  52. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
  53. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
  54. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
  55. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +0 -0
  56. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
  57. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
  58. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
  59. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
  60. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
  61. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
  62. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
  63. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
  64. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
  65. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
  66. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
  67. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
  68. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
  69. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
  70. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
  71. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
  72. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
  73. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
  74. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
  75. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
  76. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
  77. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +0 -0
  78. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
  79. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
  80. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
  81. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
  82. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
  83. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
  84. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
  85. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
  86. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
  87. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
  88. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
  89. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
  90. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
  91. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
  92. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
  93. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
  94. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
  95. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
  96. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
  97. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
  98. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
  99. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
  100. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
  101. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
  102. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
  103. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
  104. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
  105. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
  106. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
  107. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
  108. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
  109. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
  110. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
  111. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
  112. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
  113. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
  114. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
  115. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
  116. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
  117. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
  118. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
  119. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
  120. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
  121. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
  122. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
  123. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
  124. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
  125. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
  126. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
  127. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
  128. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
  129. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
  130. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
  131. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
  132. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
  133. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
  134. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
  135. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
  136. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
  137. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
  138. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
  139. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
  140. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
  141. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
  142. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
  143. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
  144. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
  145. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
  146. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
  147. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
  148. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
  149. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
  150. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
  151. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
  152. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
  153. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
  154. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
  155. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
  156. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
  157. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
  158. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
  159. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
  160. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
  161. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
  162. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
  163. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
  164. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
  165. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
  166. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
  167. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
  168. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
  169. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
  170. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/manage.py +0 -0
  171. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
  172. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
  173. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
  174. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
  175. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
  176. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
  177. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
  178. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
  179. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
  180. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
  181. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
  182. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
  183. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
  184. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
  185. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
  186. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
  187. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
  188. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
  189. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
  190. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
  191. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
  192. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
  193. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
  194. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
  195. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
  196. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
  197. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
  198. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
  199. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
  200. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
  201. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
  202. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
  203. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
  204. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
  205. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
  206. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
  207. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
  208. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
  209. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
  210. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
  211. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
  212. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
  213. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
  214. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
  215. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
  216. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
  217. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
  218. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
  219. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
  220. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
  221. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
  222. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
  223. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
  224. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
  225. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
  226. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
  227. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
  228. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
  229. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
  230. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
  231. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
  232. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
  233. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
  234. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
  235. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/number.py +0 -0
  236. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder/utils/strings.py +0 -0
  237. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +0 -0
  238. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
  239. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
  240. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
  241. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/tests/animations/test_animationscripts.py +0 -0
  242. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/tests/dialogs/__init__.py +0 -0
  243. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/tests/dialogs/test_formatter.py +0 -0
  244. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/tests/monsters/test_ai.py +0 -0
  245. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/src/tests/overworld/test_actionscripts.py +0 -0
  246. {smrpgpatchbuilder-5.0.9 → smrpgpatchbuilder-5.0.10}/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.9
3
+ Version: 5.0.10
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.9"
7
+ version = "5.0.10"
8
8
  authors = [
9
9
  { name="pidgezero_one", email="s.kischak@gmail.com" },
10
10
  ]
@@ -78,7 +78,9 @@ from .commands import (
78
78
  A_SetSequenceSpeed,
79
79
  A_SetWalkingSpeed,
80
80
  A_SetAllSpeeds,
81
+ A_ToggleSubroutineSlots,
81
82
  A_EmbeddedAnimationRoutine,
83
+ A_SetSubroutineXTargets,
82
84
  A_MaximizeSequenceSpeed,
83
85
  A_MaximizeSequenceSpeed86,
84
86
  A_FixedFCoordOn,
@@ -379,11 +379,11 @@ _valid_unknowncmd_queue_opcodes = [
379
379
  1,
380
380
  1,
381
381
  1,
382
- 2, # 20
382
+ 0, # 20 (handled by A_ToggleSubroutineSlots)
383
383
  0,
384
384
  0,
385
385
  2,
386
- 5,
386
+ 0, # 24 (handled by A_SetSubroutineXTargets)
387
387
  5,
388
388
  0,
389
389
  0,
@@ -4047,8 +4047,78 @@ class A_SetAllSpeeds(_SetAnimationSpeed, UsableActionScriptCommand):
4047
4047
  super().__init__(speed, sequence=True, walking=True, identifier=identifier)
4048
4048
 
4049
4049
 
4050
+ class A_ToggleSubroutineSlots(UsableActionScriptCommand, ActionScriptCommand):
4051
+ """Toggle the active state of the NPC's three sub-routine slots ($26,X / $27,X /
4052
+ $28,X) according to a 3-bit mask. Bit 0 controls slot $26, bit 1 controls slot $27,
4053
+ bit 2 controls slot $28. For each slot: if the corresponding bit is set and the slot
4054
+ is currently inactive, the engine allocates a new sub-routine record (via $C0:E87E);
4055
+ if the bit is clear and the slot is currently active, the engine deallocates the
4056
+ existing record (via $C0:E8FE). Slots whose state already matches the mask are left
4057
+ alone.
4058
+
4059
+ Sub-routines spawned this way drive per-NPC motion or animation independently of the
4060
+ main action script. Pair with `A_SetSubroutineXTargets` (opcode 0x24) to give them
4061
+ targets, or `A_EmbeddedAnimationRoutine` (opcode 0x26/0x27/0x28) to spawn a fully
4062
+ parameterised routine.
4063
+
4064
+ ## Lazy Shell command
4065
+ (not documented in Lazy Shell)
4066
+
4067
+ ## Opcode
4068
+ `0x20`
4069
+
4070
+ ## Size
4071
+ 2 bytes
4072
+
4073
+ Args:
4074
+ mask (int): 3-bit mask (bits 0-2). 1 = slot should be active; 0 = slot should be
4075
+ inactive. Bit 0 = slot $26, bit 1 = slot $27, bit 2 = slot $28.
4076
+ identifier (str | None): Give this command a label if you want another command to jump to it.
4077
+ """
4078
+
4079
+ _opcode = 0x20
4080
+ _size: int = 2
4081
+ _mask: UInt8
4082
+
4083
+ @property
4084
+ def mask(self) -> UInt8:
4085
+ """3-bit slot-active mask. Bit 0 = $26, bit 1 = $27, bit 2 = $28."""
4086
+ return self._mask
4087
+
4088
+ def set_mask(self, mask: int) -> None:
4089
+ """Set the 3-bit slot-active mask."""
4090
+ if mask & ~0x07:
4091
+ raise InvalidCommandArgumentException(
4092
+ f"A_ToggleSubroutineSlots mask 0x{mask:02X} has bits set outside the low 3 bits"
4093
+ )
4094
+ self._mask = UInt8(mask)
4095
+
4096
+ def __init__(self, mask: int, identifier: str | None = None) -> None:
4097
+ super().__init__(identifier)
4098
+ self.set_mask(mask)
4099
+
4100
+ def render(self, *args) -> bytearray:
4101
+ return super().render(self.mask)
4102
+
4103
+
4050
4104
  class A_EmbeddedAnimationRoutine(UsableActionScriptCommand, ActionScriptCommand):
4051
- """(unknown)
4105
+ """Spawn a fully-parameterised sub-routine into one of the NPC's three sub-routine
4106
+ slots ($26,X / $27,X / $28,X). The opcode byte selects the slot: 0x26 → slot $26,
4107
+ 0x27 → slot $27, 0x28 → slot $28. Any sub-routine already in that slot is cleared
4108
+ first (via $C0:E9DC).
4109
+
4110
+ The 14 payload bytes are copied into the NPC's per-slot scratch region:
4111
+ [1..2] X coord (16-bit)
4112
+ [3..4] Y coord (16-bit)
4113
+ [5] sprite sequence index
4114
+ [6] sprite control bits
4115
+ [7..8] Z coord (16-bit)
4116
+ [9..10] motion bits
4117
+ [11..12] face direction
4118
+ [13..14] (unidentified pair, written to $0C,X)
4119
+ [15] high 2 bits → upper bits of $1E,X; low 3 bits → $1F,X
4120
+
4121
+ See $C0:D211 for the handler.
4052
4122
 
4053
4123
  ## Lazy Shell command
4054
4124
  `Embedded animation routine ($26)...`
@@ -4073,11 +4143,11 @@ class A_EmbeddedAnimationRoutine(UsableActionScriptCommand, ActionScriptCommand)
4073
4143
 
4074
4144
  @property
4075
4145
  def args(self) -> bytearray:
4076
- """(unknown)"""
4146
+ """The full 16-byte payload (opcode + 14 data bytes + flag-byte)."""
4077
4147
  return self._args
4078
4148
 
4079
4149
  def set_args(self, args: bytearray) -> None:
4080
- """(unknown)"""
4150
+ """Set the full 16-byte payload (opcode + 14 data bytes + flag-byte)."""
4081
4151
  assert len(args) == 16
4082
4152
  assert args[0] in [0x26, 0x27, 0x28]
4083
4153
  self._args = args
@@ -4090,6 +4160,65 @@ class A_EmbeddedAnimationRoutine(UsableActionScriptCommand, ActionScriptCommand)
4090
4160
  return super().render(self.args)
4091
4161
 
4092
4162
 
4163
+ class A_SetSubroutineXTargets(UsableActionScriptCommand, ActionScriptCommand):
4164
+ """Set destination X-coordinates for whichever of the NPC's first two sub-routine
4165
+ slots ($26,X and $27,X) are currently active. For each active slot, the existing
4166
+ sub-routine state is reset (via $C0:E9DC) and the corresponding 16-bit X target is
4167
+ written into the NPC's $00,X (X coord); $02,X (Y coord low) and $1E,X (state flags)
4168
+ are zeroed. Slot $28,X is **not** touched by this opcode.
4169
+
4170
+ Pair with `A_ToggleSubroutineSlots` (opcode 0x20) to first activate the slots whose
4171
+ targets you intend to set.
4172
+
4173
+ ## Lazy Shell command
4174
+ (not documented in Lazy Shell)
4175
+
4176
+ ## Opcode
4177
+ `0x24`
4178
+
4179
+ ## Size
4180
+ 5 bytes
4181
+
4182
+ Args:
4183
+ slot_26_x (int): 16-bit destination X coord written into slot $26,X if active.
4184
+ slot_27_x (int): 16-bit destination X coord written into slot $27,X if active.
4185
+ identifier (str | None): Give this command a label if you want another command to jump to it.
4186
+ """
4187
+
4188
+ _opcode = 0x24
4189
+ _size: int = 5
4190
+ _slot_26_x: UInt16
4191
+ _slot_27_x: UInt16
4192
+
4193
+ @property
4194
+ def slot_26_x(self) -> UInt16:
4195
+ """16-bit X target for slot $26,X (consumed only if slot is active)."""
4196
+ return self._slot_26_x
4197
+
4198
+ def set_slot_26_x(self, slot_26_x: int) -> None:
4199
+ """Set the 16-bit X target for slot $26,X."""
4200
+ self._slot_26_x = UInt16(slot_26_x)
4201
+
4202
+ @property
4203
+ def slot_27_x(self) -> UInt16:
4204
+ """16-bit X target for slot $27,X (consumed only if slot is active)."""
4205
+ return self._slot_27_x
4206
+
4207
+ def set_slot_27_x(self, slot_27_x: int) -> None:
4208
+ """Set the 16-bit X target for slot $27,X."""
4209
+ self._slot_27_x = UInt16(slot_27_x)
4210
+
4211
+ def __init__(
4212
+ self, slot_26_x: int, slot_27_x: int, identifier: str | None = None
4213
+ ) -> None:
4214
+ super().__init__(identifier)
4215
+ self.set_slot_26_x(slot_26_x)
4216
+ self.set_slot_27_x(slot_27_x)
4217
+
4218
+ def render(self, *args) -> bytearray:
4219
+ return super().render(self.slot_26_x, self.slot_27_x)
4220
+
4221
+
4093
4222
  class A_MaximizeSequenceSpeed(UsableActionScriptCommand, ActionScriptCommandNoArgs):
4094
4223
  """Set the NPC's sequence speed to its highest value. Not known if this actually works.
4095
4224
 
@@ -7024,7 +7153,12 @@ class A_IncPaletteRow(UsableActionScriptCommand, ActionScriptCommandNoArgs):
7024
7153
 
7025
7154
 
7026
7155
  class A_BPL262728(UsableActionScriptCommand, ActionScriptCommandNoArgs):
7027
- """(ASM instruction, effect unknown)
7156
+ """Kill all three of the NPC's currently-active sub-routines (slots $26,X / $27,X /
7157
+ $28,X) and zero the slot bytes. Implemented at $C0:D18F as `JSR $C0:E8E2`; the
7158
+ `BPL` references in the LazyShell-derived class name come from the helper at
7159
+ $C0:E8E2 which iterates the three slots and uses BPL to skip slots whose bit 7 is
7160
+ already clear. Inverse pairing for `A_ToggleSubroutineSlots` (opcode 0x20) when you
7161
+ want to clear all slots in one command.
7028
7162
 
7029
7163
  ## Lazy Shell command
7030
7164
  (not documented in Lazy Shell)
@@ -0,0 +1,2 @@
1
+ from .types import *
2
+ from .commands import ActionQueueAsync, ActionQueueSync, Add7000ToCurrentFP, Add7000ToMaxFP, AddCoins, AddConstToVar, AddFrogCoins, AddToInventory, AddVarTo7000, AppendDialogAt7000ToCurrentDialog, ApplySolidityModToLevel, ApplyTileModToLevel, CharacterJoinsParty, CharacterLeavesParty, CircleMaskExpandFromScreenCenter, CircleMaskShrinkToObject, CircleMaskShrinkToScreenCenter, Clear0158Bit7Offset, Clear7016To7018AndIsolate701AHighByteIf7018Bit0Set, ClearBit, ClearMem704XAt7000Bit, CloseDialog, Compare7000ToVar, CompareVarToConst, CopyVarToVar, CreatePacketAt7010, CreatePacketAt7010WithEvent, CreatePacketAtObjectCoords, DarkenLayersExceptPaletteRows, DeactivateSoundChannels, Dec, Dec7000FromCoins, Dec7000FromCurrentFP, Dec7000FromCurrentHP, Dec7000FromFrogCoins, DecVarFrom7000, DisableObjectTrigger, DisableObjectTriggerInSpecificLevel, DisableTriggerOfObjectAt70A8InCurrentLevel, DisplayIntroTitleText, EnableControls, EnableControlsUntilReturn, EnableObjectTrigger, EnableObjectTriggerInSpecificLevel, EnableTriggerOfObjectAt70A8InCurrentLevel, EndLoop, EnterArea, EquipItemToCharacter, ExitToWorldMap, ExorCrashesIntoKeep, FadeInFromBlack, FadeInFromColour, FadeInMusic, FadeOutMusic, FadeOutMusicFDA3, FadeOutMusicToVolume, FadeOutSoundToVolume, FadeOutToBlack, FadeOutToColour, FreezeAllNPCsUntilReturn, FreezeCamera, GenerateRandomNumFromRangeVar, If0210Bits012ClearDoNotJump, Inc, IncEXPByPacket, IncreaseMusicPitchBy, InitiateBattleMask, Jmp, JmpIf316DIs3, JmpIf7000AllBitsClear, JmpIf7000AnyBitsSet, JmpIfAudioMemoryEquals, JmpIfAudioMemoryIsAtLeast, JmpIfBitClear, JmpIfBitSet, JmpIfComparisonResultIsGreaterOrEqual, JmpIfComparisonResultIsLesser, JmpIfDialogOptionBOrCSelected, JmpIfDialogOptionBSelected, JmpIfLoadedMemoryIs0, JmpIfLoadedMemoryIsAboveOrEqual0, JmpIfLoadedMemoryIsBelow0, JmpIfLoadedMemoryIsNot0, JmpIfMarioInAir, JmpIfMarioOnAnObjectOrNot, JmpIfMarioOnObject, JmpIfMem704XAt7000BitClear, JmpIfMem704XAt7000BitSet, JmpIfObjectActionScriptIsRunning, JmpIfObjectInAir, JmpIfObjectInCurrentLevel, JmpIfObjectInSpecificLevel, JmpIfObjectIsUnderwater, JmpIfObjectNotInSpecificLevel, JmpIfObjectTriggerDisabledInSpecificLevel, JmpIfObjectTriggerEnabledInSpecificLevel, JmpIfObjectsAreLessThanXYStepsApart, JmpIfObjectsAreLessThanXYStepsApartSameZCoord, JmpIfRandom1of2, JmpIfRandom2of3, JmpIfVarEqualsConst, JmpIfVarNotEqualsConst, JmpToEvent, JmpToStartOfThisScript, JmpToStartOfThisScriptFA, JmpToSubroutine, LearnSpell, MarioGlows, MarioStopsGlowing, Mem7000AndConst, Mem7000AndVar, Mem7000OrConst, Mem7000OrVar, Mem7000XorConst, Mem7000XorVar, Move70107015To7016701B, Move7016701BTo70107015, MoveScriptToBackgroundThread1, MoveScriptToBackgroundThread2, MoveScriptToMainThread, MultiplyAndAddMem3148StoreToOffset7fB000PlusOutputX2, NonEmbeddedActionQueue, OpenSaveMenu, OpenShop, PaletteSet, PaletteSetMorphs, Pause, PauseActionScript, PauseScriptIfMenuOpen, PauseScriptResumeOnNextDialogPageA, PauseScriptResumeOnNextDialogPageB, PauseScriptUntilEffectDone, PixelateLayers, PlayMusic, PlayMusicAtCurrentVolume, PlayMusicAtDefaultVolume, PlaySound, PlaySoundBalance, PlaySoundBalanceFD9D, PrioritySet, ReactivateObject70A8TriggerIfMarioOnTopOfIt, ReadFromAddress, ReduceMusicPitchBy, RememberLastObject, RemoveObjectAt70A8FromCurrentLevel, RemoveObjectFromCurrentLevel, RemoveObjectFromSpecificLevel, RemoveOneOfItemFromInventory, ResetAndChooseGame, ResetCoords, ResetGame, ResetPrioritySet, RestoreAllFP, RestoreAllHP, ResumeActionScript, ResumeBackgroundEvent, Return, ReturnAll, ReturnFD, RunBackgroundEvent, RunBackgroundEventWithPause, RunBackgroundEventWithPauseReturnOnExit, RunDialog, RunDialogForDuration, RunEndingCredits, RunEventAsSubroutine, RunEventAtReturn, RunEventSequence, RunLevelupBonusSequence, RunMenuOrEventSequence, RunMenuTutorial, RunMolevilleMountainIntroSequence, RunMolevilleMountainSequence, RunStarPieceSequence, ScreenFlashesWithColour, Set0158Bit3Offset, Set0158Bit7Offset, Set7000To7FMemVar, Set7000ToCurrentLevel, Set7000ToIDOfMemberInSlot, Set7000ToMinecartTimer, Set7000ToObjectCoord, Set7000ToPartySize, Set7000ToPressedButton, Set7000ToTappedButton, Set70107015ToObjectXYZ, Set7016701BToObjectXYZ, SetAsyncActionScript, SetBit, SetEXPPacketTo7000, SetMem704XAt7000Bit, SetObjectMemoryToVar, SetSyncActionScript, SetTempAsyncActionScript, SetTempSyncActionScript, SetVarToConst, SetVarToRandom, SlowDownMusic, SlowDownMusicTempoBy, SpeedUpMusicTempoBy, SpeedUpMusicToDefault, StarMaskExpandFromScreenCenter, StarMaskShrinkToScreenCenter, StartAsyncEmbeddedActionScript, StartBattleAtBattlefield, StartBattleWithPackAt700E, StartLoopNFrames, StartLoopNTimes, StartSyncEmbeddedActionScript, StopAllBackgroundEvents, StopBackgroundEvent, StopEmbeddedActionScript, StopMusic, StopMusicFD9F, StopMusicFDA0, StopMusicFDA1, StopMusicFDA2, StopMusicFDA6, StopSound, Store00To0248, Store00To0334, Store01To0248, Store01To0335, Store02To0248, Store70A7ToEquipsInventory, StoreBytesTo0335And0556, StoreCharacterEquipmentTo7000, StoreCoinCountTo7000, StoreCurrentFPTo7000, StoreEmptyItemInventorySlotCountTo7000, StoreFFTo0335, StoreFrogCoinCountTo7000, StoreItemAmountTo7000, StoreItemAt70A7QuantityTo7000, StoreSetBits, SummonObjectAt70A8ToCurrentLevel, SummonObjectToCurrentLevel, SummonObjectToCurrentLevelAtMariosCoords, SummonObjectToSpecificLevel, SwapVars, TintLayers, UnfreezeAllNPCs, UnfreezeCamera, UnknownCommand, UnsyncActionScript, UnsyncDialog, VarShiftLeft, Xor3105With01
@@ -1364,7 +1364,7 @@ _valid_unknowncmd_opcodes_fd: list[int] = [
1364
1364
  0,
1365
1365
  5,
1366
1366
  2,
1367
- 5,
1367
+ 0, # 8E (handled by DarkenLayersExceptPaletteRows)
1368
1368
  3,
1369
1369
  0, # 90
1370
1370
  0,
@@ -2569,6 +2569,93 @@ class CopyVarToVar(UsableEventScriptCommand, EventScriptCommand):
2569
2569
  )
2570
2570
 
2571
2571
 
2572
+ class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand):
2573
+ """Darken the level background and all NPCs except the 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
2578
+ darkened.
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.
2584
+
2585
+ Bit `n` of `preserve_rows_mask` corresponds to palette row `n`. Bit set = preserve
2586
+ (skip darkening); bit clear = darken normally.
2587
+
2588
+ The middle arg byte is filler, ignored by the handler.
2589
+
2590
+ ## Lazy Shell command
2591
+ (not available in Lazy Shell)
2592
+
2593
+ ## Opcode
2594
+ `0xFD 0x8E`
2595
+
2596
+ ## Size
2597
+ 5 bytes
2598
+
2599
+ Args:
2600
+ fade_arg (int): 8-bit fade-depth control. Low 6 bits → $318B (fade depth);
2601
+ high 2 bits → $318C / $318E (fade-mode bits).
2602
+ filler (int): Ignored by the handler. Set to 0 unless preserving original
2603
+ 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
+ identifier (str | None): Give this command a label if you want another
2607
+ command to jump to it.
2608
+ """
2609
+
2610
+ _opcode = bytearray([0xFD, 0x8E])
2611
+ _size: int = 5
2612
+ _fade_arg: UInt8
2613
+ _filler: UInt8
2614
+ _preserve_rows_mask: UInt8
2615
+
2616
+ @property
2617
+ def fade_arg(self) -> UInt8:
2618
+ """8-bit fade-depth control: low 6 bits → fade depth, high 2 bits → fade mode."""
2619
+ return self._fade_arg
2620
+
2621
+ def set_fade_arg(self, fade_arg: int) -> None:
2622
+ """Set the 8-bit fade-depth control byte."""
2623
+ self._fade_arg = UInt8(fade_arg)
2624
+
2625
+ @property
2626
+ def filler(self) -> UInt8:
2627
+ """Filler byte ignored by the handler at $C0:4FD9."""
2628
+ return self._filler
2629
+
2630
+ def set_filler(self, filler: int) -> None:
2631
+ """Set the filler byte (no effect in-game)."""
2632
+ self._filler = UInt8(filler)
2633
+
2634
+ @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
2638
+
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)
2642
+
2643
+ def __init__(
2644
+ self,
2645
+ fade_arg: int,
2646
+ preserve_rows_mask: int,
2647
+ filler: int = 0,
2648
+ identifier: str | None = None,
2649
+ ) -> None:
2650
+ super().__init__(identifier)
2651
+ self.set_fade_arg(fade_arg)
2652
+ self.set_filler(filler)
2653
+ self.set_preserve_rows_mask(preserve_rows_mask)
2654
+
2655
+ def render(self, *args) -> bytearray:
2656
+ return super().render(self.fade_arg, self.filler, self.preserve_rows_mask)
2657
+
2658
+
2572
2659
  class StoreBytesTo0335And0556(UsableEventScriptCommand, EventScriptCommand):
2573
2660
  """(unknown)
2574
2661
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smrpgpatchbuilder
3
- Version: 5.0.9
3
+ Version: 5.0.10
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
@@ -1,2 +0,0 @@
1
- from .types import *
2
- from .commands import ActionQueueAsync, ActionQueueSync, Add7000ToCurrentFP, Add7000ToMaxFP, AddCoins, AddConstToVar, AddFrogCoins, AddToInventory, AddVarTo7000, AppendDialogAt7000ToCurrentDialog, ApplySolidityModToLevel, ApplyTileModToLevel, CharacterJoinsParty, CharacterLeavesParty, CircleMaskExpandFromScreenCenter, CircleMaskShrinkToObject, CircleMaskShrinkToScreenCenter, Clear0158Bit7Offset, Clear7016To7018AndIsolate701AHighByteIf7018Bit0Set, ClearBit, ClearMem704XAt7000Bit, CloseDialog, Compare7000ToVar, CompareVarToConst, CopyVarToVar, CreatePacketAt7010, CreatePacketAt7010WithEvent, CreatePacketAtObjectCoords, DeactivateSoundChannels, Dec, Dec7000FromCoins, Dec7000FromCurrentFP, Dec7000FromCurrentHP, Dec7000FromFrogCoins, DecVarFrom7000, DisableObjectTrigger, DisableObjectTriggerInSpecificLevel, DisableTriggerOfObjectAt70A8InCurrentLevel, DisplayIntroTitleText, EnableControls, EnableControlsUntilReturn, EnableObjectTrigger, EnableObjectTriggerInSpecificLevel, EnableTriggerOfObjectAt70A8InCurrentLevel, EndLoop, EnterArea, EquipItemToCharacter, ExitToWorldMap, ExorCrashesIntoKeep, FadeInFromBlack, FadeInFromColour, FadeInMusic, FadeOutMusic, FadeOutMusicFDA3, FadeOutMusicToVolume, FadeOutSoundToVolume, FadeOutToBlack, FadeOutToColour, FreezeAllNPCsUntilReturn, FreezeCamera, GenerateRandomNumFromRangeVar, If0210Bits012ClearDoNotJump, Inc, IncEXPByPacket, IncreaseMusicPitchBy, InitiateBattleMask, Jmp, JmpIf316DIs3, JmpIf7000AllBitsClear, JmpIf7000AnyBitsSet, JmpIfAudioMemoryEquals, JmpIfAudioMemoryIsAtLeast, JmpIfBitClear, JmpIfBitSet, JmpIfComparisonResultIsGreaterOrEqual, JmpIfComparisonResultIsLesser, JmpIfDialogOptionBOrCSelected, JmpIfDialogOptionBSelected, JmpIfLoadedMemoryIs0, JmpIfLoadedMemoryIsAboveOrEqual0, JmpIfLoadedMemoryIsBelow0, JmpIfLoadedMemoryIsNot0, JmpIfMarioInAir, JmpIfMarioOnAnObjectOrNot, JmpIfMarioOnObject, JmpIfMem704XAt7000BitClear, JmpIfMem704XAt7000BitSet, JmpIfObjectActionScriptIsRunning, JmpIfObjectInAir, JmpIfObjectInCurrentLevel, JmpIfObjectInSpecificLevel, JmpIfObjectIsUnderwater, JmpIfObjectNotInSpecificLevel, JmpIfObjectTriggerDisabledInSpecificLevel, JmpIfObjectTriggerEnabledInSpecificLevel, JmpIfObjectsAreLessThanXYStepsApart, JmpIfObjectsAreLessThanXYStepsApartSameZCoord, JmpIfRandom1of2, JmpIfRandom2of3, JmpIfVarEqualsConst, JmpIfVarNotEqualsConst, JmpToEvent, JmpToStartOfThisScript, JmpToStartOfThisScriptFA, JmpToSubroutine, LearnSpell, MarioGlows, MarioStopsGlowing, Mem7000AndConst, Mem7000AndVar, Mem7000OrConst, Mem7000OrVar, Mem7000XorConst, Mem7000XorVar, Move70107015To7016701B, Move7016701BTo70107015, MoveScriptToBackgroundThread1, MoveScriptToBackgroundThread2, MoveScriptToMainThread, MultiplyAndAddMem3148StoreToOffset7fB000PlusOutputX2, NonEmbeddedActionQueue, OpenSaveMenu, OpenShop, PaletteSet, PaletteSetMorphs, Pause, PauseActionScript, PauseScriptIfMenuOpen, PauseScriptResumeOnNextDialogPageA, PauseScriptResumeOnNextDialogPageB, PauseScriptUntilEffectDone, PixelateLayers, PlayMusic, PlayMusicAtCurrentVolume, PlayMusicAtDefaultVolume, PlaySound, PlaySoundBalance, PlaySoundBalanceFD9D, PrioritySet, ReactivateObject70A8TriggerIfMarioOnTopOfIt, ReadFromAddress, ReduceMusicPitchBy, RememberLastObject, RemoveObjectAt70A8FromCurrentLevel, RemoveObjectFromCurrentLevel, RemoveObjectFromSpecificLevel, RemoveOneOfItemFromInventory, ResetAndChooseGame, ResetCoords, ResetGame, ResetPrioritySet, RestoreAllFP, RestoreAllHP, ResumeActionScript, ResumeBackgroundEvent, Return, ReturnAll, ReturnFD, RunBackgroundEvent, RunBackgroundEventWithPause, RunBackgroundEventWithPauseReturnOnExit, RunDialog, RunDialogForDuration, RunEndingCredits, RunEventAsSubroutine, RunEventAtReturn, RunEventSequence, RunLevelupBonusSequence, RunMenuOrEventSequence, RunMenuTutorial, RunMolevilleMountainIntroSequence, RunMolevilleMountainSequence, RunStarPieceSequence, ScreenFlashesWithColour, Set0158Bit3Offset, Set0158Bit7Offset, Set7000To7FMemVar, Set7000ToCurrentLevel, Set7000ToIDOfMemberInSlot, Set7000ToMinecartTimer, Set7000ToObjectCoord, Set7000ToPartySize, Set7000ToPressedButton, Set7000ToTappedButton, Set70107015ToObjectXYZ, Set7016701BToObjectXYZ, SetAsyncActionScript, SetBit, SetEXPPacketTo7000, SetMem704XAt7000Bit, SetObjectMemoryToVar, SetSyncActionScript, SetTempAsyncActionScript, SetTempSyncActionScript, SetVarToConst, SetVarToRandom, SlowDownMusic, SlowDownMusicTempoBy, SpeedUpMusicTempoBy, SpeedUpMusicToDefault, StarMaskExpandFromScreenCenter, StarMaskShrinkToScreenCenter, StartAsyncEmbeddedActionScript, StartBattleAtBattlefield, StartBattleWithPackAt700E, StartLoopNFrames, StartLoopNTimes, StartSyncEmbeddedActionScript, StopAllBackgroundEvents, StopBackgroundEvent, StopEmbeddedActionScript, StopMusic, StopMusicFD9F, StopMusicFDA0, StopMusicFDA1, StopMusicFDA2, StopMusicFDA6, StopSound, Store00To0248, Store00To0334, Store01To0248, Store01To0335, Store02To0248, Store70A7ToEquipsInventory, StoreBytesTo0335And0556, StoreCharacterEquipmentTo7000, StoreCoinCountTo7000, StoreCurrentFPTo7000, StoreEmptyItemInventorySlotCountTo7000, StoreFFTo0335, StoreFrogCoinCountTo7000, StoreItemAmountTo7000, StoreItemAt70A7QuantityTo7000, StoreSetBits, SummonObjectAt70A8ToCurrentLevel, SummonObjectToCurrentLevel, SummonObjectToCurrentLevelAtMariosCoords, SummonObjectToSpecificLevel, SwapVars, TintLayers, UnfreezeAllNPCs, UnfreezeCamera, UnknownCommand, UnsyncActionScript, UnsyncDialog, VarShiftLeft, Xor3105With01