poryscript

High-level scripting language for gen 3 pokemon decompilation projects

MIT License

Stars
176

Bot releases are visible (Hide)

poryscript - 2.6.0

Published by github-actions[bot] almost 5 years ago

Added

  • Add support for scope modifiers global and local for script, text, movement, and mapscripts statements. This will force labels for be generated with :: (global) or : (local) in the compiled output script.
poryscript - 2.5.0

Published by github-actions[bot] about 5 years ago

Added

  • Comments can now be used with //, in addition to the existing '#' style. This is to support users who want to process Poryscript with the C preprocessor.
  • Add movement statement, which is used to define movement data. Use * as a shortcut for repeating a movement command many times. step_end terminator is automatically added to the end of the data.
  • Add mapscripts statement, which is used to define map scripts. Scripts can be inlined, or simply specified with a label.

Fixed

  • Fix harmless bug where format() could result in empty .string "" lines in the compiled out.
  • Fix bug where end command was incorrectly being replaced with a return.
  • Fix bug where negative numbers were not parsed correctly.
poryscript - 2.4.0

Published by github-actions[bot] about 5 years ago

Added

  • Add support for text auto-formatting with the format() operator. Font widths are loaded from a config JSON file. Specify config file with -fw <config filepath>. If -fw is omitted, Poryscript will try to load font_widths.json by default.

Changed

  • Text is now automatically terminated with a $ character, so the user doesn't have to manually type it for all pieces of text. Of course, this does not apply to text within raw statements.
poryscript - 2.3.0

Published by github-actions[bot] about 5 years ago

Added

  • Add defeated() operator, which is used to check if a trainer has been defeated. Without this new defeated() operator, it was impossible to write scripts that checked trainer flags without using raw.
  • Add text statements.
poryscript - 2.2.0

Published by github-actions[bot] about 5 years ago

Changed

  • Identical implicit texts are now combined into a single text output.

Fixed

  • Fix some potential infinite loops when parsing certain invalid scripts.
poryscript - 2.1.1

Published by github-actions[bot] about 5 years ago

Fixed

  • Fix bug where hexadecimal numbers were not tokenized correctly, resulting in a space after the 0x prefix.
poryscript - 2.1.0

Published by github-actions[bot] about 5 years ago

Added

  • Add implicit truthiness checks for var() and flag() operators.
  • Add NOT (!) prefix operator for var() and flag() operators.

Changed

  • Errors are now prefixed with PORYSCRIPT, and they are written to stderr, instead of stdout.
  • The program will no longer panic when handled errors occur.

Fixed

  • Fix parser errors that were not showing the line number of the error.
poryscript - 2.0.0

Published by huderlem about 5 years ago

2.0.0 Release

Added

  • Add single-line comments with the # character.
  • Add go.mod file so the project can be built outside of the Go workspace.
  • Add while loops.
  • Add do...while loops.
  • Add break and continue statements.
  • Add compound boolean expressions.
  • Add output optimization which significantly simplifies and shrinks the resulting compiled scripts. Turn off optimization by specifying -optimize=false.
  • Add switch statements.

Changed

  • raw no longer takes a label name.
  • Removed raw_global, since there is no longer a concept of being global or local for raw.

Fixed

  • Inline texts are now generated with labels that are prefixed to their parent script's name. Otherwise, they would easily clash with external scripts because they were all simply named Text_<num>.
poryscript - 1.0.0

Published by huderlem about 5 years ago

Initial release.