Commit Graph

857 Commits

Author SHA1 Message Date
haven1433
446f9b4502 only allow msgbox.instant.* macros for Emerald (relies on preparemsg3) 2023-08-13 22:12:14 -05:00
haven1433
d32c0c2e1d count empty lines when adding error squiggles 2023-08-13 11:43:42 -05:00
haven1433
1a8f2732e2 Update NoNamespaceHasMoreThanNineElements test / names
* Check all namespaces, not just final namespaces.
* Allow 16 elements in the top-level namespaces, and 9 in lower levels.
* Include some exemptions for categories that are already too large, but would be brittle to fix.
* Rename tables/images to get things back under the limit.
* Upgrade tests to provide better failure information
2023-08-11 20:26:50 -05:00
haven1433
83dbe06e12 allow elevation to be 0 through 10 instead of 0 through 9 2023-08-10 22:43:07 -05:00
haven1433
8dad38be4a fix nested table format code
* look for matching braces
* expect whitespace
* add sanity checks to `tpt` format
* add formatting for pokemon teams
2023-08-10 21:11:40 -05:00
ShinyTillDawn
42147c9802
Added the THUMB configuration for scrolling MCs. (#187)
Special Thanks to Axcellerator for providing the information.

This is for Emerald only as only Emerald has scrolling multichoices without 3rd-party implementations.
2023-08-09 21:17:37 -05:00
ShinyTillDawn
bb97eea2b3
Added some Battle Tent data. (#186)
* Added the table at Emerald's address 5DE02C.

Added the list of Pokémon available from the Slateport Battle Tent.

The formatting is the way it is presumably due to a bug that thinks that putting a space after a nested table field invalidates the entire table format. It may change.

* Added the corresponding trainers table.

Same formatting deal as the preceding commit.

The `pokemon<>` field should be `pokemon<[pokemon:data.pokemon.names]!FFFF>`, but HMA does not allow that.

* Added the corresponding data for Verdanturf's tent

* Added the corresponding data for Fallarbor's tent.
2023-08-09 21:17:10 -05:00
agsmgmaster64
01fc86e263
added macros and lists to battle scripts to make battle scripting much easier (#180)
* tweaked some battle script commands

tweaked some battle script commands to allow reading pointers for those that support it

* Implemented macros and lists for battle scripts

Implemented many macros from the decomps along with many new lists relevant to battle scripting

* Implemented a list for stat animation

Implemented a list for playstatchangeanimation which shows which stats are displayed exactly

* Implemented HMA-consistent macros

Implemented HMA-consistent macros alongside the decomp macros per haven's request
2023-08-09 21:16:41 -05:00
ShinyTillDawn
605b4bd1c9
Multiple things (#184)
- Added the animation bg. table anchor reference for Emerald.
- Added the addresses that contain pointers to specific animation bgs. for Emerald, as well.
- Added the table formats & their meanings of \`uct\` and \`ucm` into the file, as well.
2023-08-02 23:40:31 -05:00
ShinyTillDawn
610be56f0b
Commands subdirectory (#181)
* scripts.battle.thumb→scripts.commands.battlescript

* Made "scripts.commands.battle" encompass a lot.

I'm trying to make sure that while restructuring the `scripts` subdirectory so that commands are in one place, I don't radically change the preexisting naming schemes.

* scripts.callstd → scripts.commands.events.callstd

* Multiple renames

scripts.specials.thumb → +scripts.commands.events.specials

Put "buffercommands" underneath "commands". Same with events onstep & both "weather" subdirectories.

* scripts.events.thumb→scripts.commands.events.thumb

* Moved the animation script commands table.
2023-08-02 23:35:40 -05:00
ShinyTillDawn
5f1123a230
Added the "scripts.battle.badge.obey" category. (#178)
* Added the "scripts.battle.badge.obey" category.

Credit to Axcellerator for finding these offsets.

For the life of me, I could not link the flags table to the other 4 new anchors.

Since all of these are part of a THUMB routine, nothing points to these individual anchors, so I had to put them here.

The 0badges to 6badges anchors link to each other, so that's why 3 of them do not have a 1 after their [level.] formatting.

* Fixed a typo from a merge-fix commit.

* Added obedience anchors for FireRed/LeafGreen 1.0.

I tested these, and they seem to work and load correctly.

* Added obedience anchors for FireRed/LeafGreen 1.1.

* Added obedience anchors for Ruby & Sapphire.

I tested it, and these 5 additions work universally for AXVE0, AXVE1, AXPE0, and AXPE1.
2023-08-02 23:23:49 -05:00
ShinyTillDawn
217b9e9a24
Intro Music Enumeration (#185)
* Added the encounter songs [[List]].

Different trainers in FRLG use different numbers for their intro music field, so I decided to put their numbers after the words "boy," "girl," and "rocket" to keep track.

* Mentioned the [[List]] in the trainer table.
2023-08-02 23:21:45 -05:00
haven1433
db232c9675 Improve hover help logic 2023-08-02 23:11:00 -05:00
haven1433
2db6f890e9 update fadescreen 2023-08-02 23:10:35 -05:00
haven1433
b6cfcb3577 hide filler arguments 2023-07-31 23:03:57 -05:00
haven1433
0914efdb62 improve matching algorithm
instead of just preferring to match the lowest possible ID that counts as a partial match, add some extra criteria to make it act closer to how people expect.
* prefer entries where no letters are skipped
* prefer entries where the start of the partial matches the start of the full
2023-07-31 22:35:22 -05:00
haven1433
23a891a5eb improve documentation for msgbox.npc 2023-07-31 20:52:32 -05:00
haven1433
788d343357 text warnings get orange underline, not red underline (warning, not error) 2023-07-31 20:48:08 -05:00
haven1433
a958748824 script improvements: double-click highlight and tips
double-click on a command should highlight the entire command, even if it's a macro with `.`s.
When selecting a command, show the help tip for it.
2023-07-31 20:40:52 -05:00
haven1433
6bdc9e801c fixes from merge 2023-07-20 07:04:47 -05:00
haven1433
9930f21f9e Merge branch 'master' of https://github.com/haven1433/HexManiacAdvance 2023-07-20 07:00:07 -05:00
ShinyTillDawn
47e54ec278
Professor Birch's Introduction Speech Dialogues (Attempt 2) (#173)
* Brought in the changes from PR #170.

I'll need to get the anchor refs for RS & FRLG.

I also bundled the \`tse` feature request for this file.

* Fixed Emerald's addresses.

Previously, they were addresses of the strings themselves instead of anchor references.

* Nested "speeches" under "professor."

* Making progress on finding FRLG anchor refs.

There are a few more I still need to add.

* Finished the Anchor refs for FRLG.

The Ruby/Sapphire Anchor refs are being started.

* Finished the Anchor refs for Ruby & Sapphire.

I tested them, and all of the anchors show up in the Generation III games.
2023-07-20 06:49:20 -05:00
ShinyTillDawn
34ea580f12
Made "buffer1" through "buffer3" valid arguments. (#176)
"buffer1" is associated with 0 for a parameter in a command like "buffernumber." That misalignment by 1 can cause some confusion, so this change will allow the word "buffer1" to be used instead of 0 for such commands to line up with the \\ 02 text macro ([buffer1]) that would be used afterwards.
2023-07-20 06:45:56 -05:00
agsmgmaster64
56fc56265f
tweaked some battle script commands (#175)
tweaked some battle script commands to allow reading pointers for those that support it
2023-07-20 06:43:52 -05:00
haven1433
65b51641c5 Add specials to documentation. 2023-07-19 22:33:26 -05:00
haven1433
c76acd2536 improve comments 2023-07-19 21:06:04 -05:00
haven1433
435a36a535 Add human-readable documentation for scripts 2023-07-14 06:44:03 -05:00
haven1433
c7485c5275 bugfixes from testing
* pressing escape should close the script tip
* fix automatic inclusion of <auto> behavior
* Fix possible crash when looking for closing } when there isn't one
* Only update TextEditor layers if they've changed (performance)
* creating a new event script should include lock/faceplayer/release
* adjust focus when switching tabs (close open tips)
* only try to access list coments if the list isn't null
2023-07-12 21:32:44 -05:00
haven1433
1fc1566d4c add comment 2023-07-09 20:23:47 -05:00
haven1433
cce2153c2b fix broken macro-arg-order conversion 2023-07-08 22:22:01 -05:00
haven1433
46f57a0a97 add error underlines for scripts 2023-07-08 00:05:34 -05:00
haven1433
daea25bd4e make it possible to add comments to list elements
right now the comments are only shown by the script editor. But they could be added to other things too, like maybe wild pokemon rates?
2023-07-07 08:58:16 -05:00
haven1433
f14b44eb5e decompiled scripts now have sections appearing in address order
instead of labeling sections based on what address calls them, label section based on what order they appear in memory.
2023-07-01 21:40:59 -05:00
haven1433
419f83a6fb allow 2-argument sub in thumb
both `sub rd, #` and `sub rd, rn` are now supported
2023-06-30 08:05:33 -05:00
haven1433
e095bace1e beef up insert missing closers
make the caret adjust correctly
insert a blank line between {}
move {} to newlines
2023-06-30 08:04:14 -05:00
haven1433
6fc0f568dc Basic implementation for flag/vars show&tell
Currently hidden
2023-06-29 19:31:08 -05:00
haven1433
348e1e5b96 don't combine scripts if an anchor has multiple pointers 2023-06-26 23:08:27 -05:00
haven1433
59fc5fc648 add multichoicegrid alias for multichoice3 2023-06-26 22:23:14 -05:00
haven1433
cc383f59a3 allow decompiled scripts to use anchor names 2023-06-26 22:22:21 -05:00
haven1433
fe740b525f add reflection palette tables 2023-06-26 22:11:39 -05:00
haven1433
2634ff50e8 Add python button capability for tables
Adding a field `name|python=function` to a table will add a button to the table. Clicking the button will run a python function from `hma.py`. The function is expected to have one element, which will be the current selected element of the table as a `ModelArrayElement`. This python code still has access to the entire rom and the print() function.
The button's text is based on the name of the field, and therefore cannot have a spaces or special characters, just letters / numbers.
The button will get tooltip that is based on the comment of the chosen function.
2023-06-26 21:24:13 -05:00
haven1433
c6555d2cd2 Update hex in table tool
* show hex values with leading 0x
* allow parsing hex values in non-hex fields and non-hex values in hex fields
* flags are shown in hex everywhere else, show them in hex in the table tool too
2023-06-25 17:00:09 -05:00
haven1433
33a26f4681 improve firstpersonview table
* allow expanding it
* better formatting for the first 2 columns
2023-06-25 14:41:25 -05:00
haven1433
04fd403ad1 add pokemon level for R/S/E starter 2023-06-23 21:12:33 -05:00
haven1433
5021083f3e add seagallop destination/count 2023-06-23 21:12:23 -05:00
haven1433
67506e5828 add if macros for gender/male/female goto/call 2023-06-23 20:35:39 -05:00
haven1433
f9f2f72698 add graphics.battle.hud.hpbox images for emerald 2023-06-23 20:11:49 -05:00
haven1433
d9020df3e2 fix possible crashes 2023-06-21 20:26:39 -05:00
haven1433
d072b42e57 Track multi-pointer commands correctly when using multiple <auto> 2023-06-21 20:26:21 -05:00
haven1433
2ac3f88541 add the concept of 'comment segments' for tables
This can allow the table to insert comments when writing the content as a string.

Also, update the formatting for wild pokemon summary
2023-06-20 23:39:46 -05:00
haven1433
97f5bb7589 self-referential scripts should add script formatting 2023-06-19 21:53:24 -05:00
haven1433
9e4b27f538 goto combo source -> use current source instead of initial source 2023-06-19 20:29:43 -05:00
haven1433
f724f70cdb Improve memory allocation
* Avoid using foreach/enumorables in `MacroScriptLine.Matches` since it's called so often.
* Use Span<char> to reduce string allocations in `ArrayRun.ctor` and `ArrayRunEnumSegment.GetOptions`
2023-06-14 22:31:55 -05:00
haven1433
bd35c3deb3 decrease memory footprint
* don't store the delta object used for initial setup
* avoid making lambdas in `ScriptLine.Matches`, which is called very often.
* use use List<int> instead of SortedSpan<int> for building the initial DestinationToSource cache, since we're already guaranteed that they'll be added in order and without duplicates. This greatly reduces the number of int[] arrays created during startup.
* allow `ArrayRunPointerSegment` to cache the table content results from parsing its InnerFormat, so it doesn't have to re-parse each time. This greatly reduces the number of string allocations.
* Use `ThreadSafeDictionary` for `TryGetValueCaseInsensitive` so we don't need to create a new collection of keys each time we call the method. Also add key caching to `ThreadSafeDictionary` so we don't need to make a new collection each time it's requested.
* Make `GetOptions` return a readonly list. We already know it's unique, this means we don't have to make a new collection every time we parse segments.
* limit the number of undo tokens we store (default 100) to save memory
* Use `byte[]` and `Array.Copy` instead of `List<byte>` and `AddRange` to reduce byte array allocations when loading a file.
* Freeze geometries in the `Icons` collection.
* add option for running garbage collection from the developer menu
* use a custom `AutomationPeer` to prevent WPF from holding memory after controls have been closed.
2023-06-14 20:54:36 -05:00
haven1433
8f131f1bfa fix label resolution for data pointers
Only allow adding unresolved labels for script pointers
2023-06-14 00:18:35 -05:00
haven1433
e10dfb00ab fix scriptRef bugs
* fix documentation for checktrainerflag
* fix typo in if yes/no goto/call
2023-06-12 23:33:06 -05:00
haven1433
32c5c558e5 code cleanup
* Remove the `compact` macro, since it's just a combination of 3 macros that each make sense by themselves. The goal for macros is to put them in situations where you wouldn't ever want the command by itself.
* Move the `if` macros down to live with the other `if` macros.
2023-06-05 22:36:14 -05:00
ShinyTillDawn
08cf3a1015
Revamping the Yes/No Message Box (#165)
* The `(` symbol has been moved.

This was supposed to go in the previous pull request, but I was too late...

* Added another `msgbox.yesno` macro.

No testing has been done yet.

* Added if.yes & if.no macroes.

Caution: These macroes will show up unintentionally if you're using commands other than msgbox.yesno that involve comparing the last result variable (800D) with the literal number 1.

* Fixed the `ptr` pointer format.

my bad
2023-06-05 22:28:05 -05:00
ShinyTillDawn
6eb79dac33
New trainerbattle macros (#162)
* Configured the macroes.

* Added comments to the macros.

They seem all jumbled up.

* Added corresponding cmds. for trainerbattle 0−8.

Testing needs to be done to make sure they work atm.

* Updated trainerbattle 09 & 0C.

though trainerbattle 09 will need another change.

* Added trainerbattle 09 types based on a bit field.

Right-most bit: Whether or not the player can lose

Second-right-most bit: Tutorial battle w/ Professor Oak

Based on the combinations of bits, I added more variants to FRLG's `trainerbattle 09` command.

* LocalIDs are correctly filled in as 1/2-words now.

My bad

---------

Co-authored-by: haven1433 <haven1433@gmail.com>
2023-06-05 22:22:34 -05:00
haven1433
e39ace9b7d script parser improvements
make it possible for a script edit to expand the rom, rather than running out of space.

make a leading `0x` work for commands that expect pointers
2023-06-04 21:39:11 -05:00
haven1433
ed4a6f755c allow script macros to be game-specific 2023-06-04 20:59:47 -05:00
ShinyTillDawn
f442c1ebb8
Added the data.items.berry.master.berries table. (#163)
I thought the Berry Master & his wife would pull items from this table to give to the player if the player inputted the correct phrases; however, this specific table is only referenced in the `SetOpponentsBerryData` function in Pokémon Emerald.
2023-06-03 15:59:02 -05:00
ShinyTillDawn
d1e50a10b1
Added a macro for multichoice's allowCancel field. (#157)
* Added a macro for multichoice's allowCancel field.

0 = the game does not ignore B presses (OK to cancel out)
1 = the game ignores B presses (forbid canceling out)

* Clarified by adding "Cancel" to each option.
2023-06-03 10:30:45 -05:00
ShinyTillDawn
b2ecec72e5
Added a "movenpc" command macro. (#159)
* Added "movenpc" command.

The exact things will be subj to change.

* Fixed "move.npc" and added "move.player."

I'll need to test these soon.

* Switched the order of 2 command macroes.

Switched the order of move.player and move.npc.

* Fixed the move.player command macro.

I can't specify base-10 numbers to hard code, apparently.

* Added the "move.camera" macro.

* Each new movement macro has 2 lines of flavor text
2023-06-02 22:14:10 -05:00
ShinyTillDawn
5524ba1348
Removed the constant references for the XY coords in RSE. (#160)
* Removed the constant references for the XY coords.

We may need to do the same for the default BPEF and BPEI `.toml` files.

These addresses are actually part of thumb instructions and don't have anything to do with the spawn coordinates.

Actually, Emerald's code makes the player spawn at (−1, −1), which is a pair of invalid coordinates; therefore, the player actually spawns in the centre of the map. Another tricky thing is that there's no indication in the thumb code about those −1 coordinates — at least one we haven't found yet..

* Removed XY starting constants for Ruby & Sapphire.

(same reason as Emerald's case from a while ago)
2023-05-31 09:47:22 -05:00
haven1433
2833a28fe9 fix mart data generation bug
when generating data for a new stream and the pointer is to freespace, be aware that we're creating a stream starting from length zero, rather than whatever the model data parses as the length. The parsed length doesn't matter, because we're pointing at freespace.
2023-05-24 22:56:16 -05:00
haven1433
ade3bdedc7 Don't combine code sections if the skip bytes are referenced
* In sky attack, after the two-turn-animation command, the `end` command is pointed to by other pieces of script. Since its address actually matters, don't combine things together into a single script.
* Both CollectScripts and FindLength have script aggregation logic that needs to be limited.
2023-05-24 21:57:22 -05:00
PhoenixBound
9415a252b4
Add derived fields for imperial height/weight in the Pokédex (#155) 2023-05-21 20:40:49 -05:00
haven1433
292935e152 improve performance
For script performance:
* call data.GetGameCode() less often, using a cached value for the ScriptParser
* use a 4-byte game code instead of string parsing for the game code

For map previews in the table tool performance
* Don't use dispatcher foreground/background thread swapping, it's safe to add the previews to the collection from the background thread.
* Check the exit condition more often

For drawing performance:
* Use Array.Copy when we don't need to worry about Transparency, since it's much faster.
* Make `Darken` faster, we call it a lot
* Reuse DarkenRect utility in HighlightCollision

Other performance changes
* Protototype for ObserableList<T> for a more configurable version of ObservableCollection
2023-05-21 20:34:12 -05:00
haven1433
675b124457 fix script length calculation bug
Situation:
* Script A refers to B and C. B and C occur right after eachother.
* Scirpt B does not refer to script C, so C doesn't get included in the same body.
-> when editing B, B needs to know that its length does not include C. So the script-length-cache that B uses shouldn't know about C, since B doesn't refer to C.
-> Therefore, B can't use the same cache as A.
* track length caches based on the code body start, not based on the entire model. This lets each code body have its own cache.
2023-05-12 08:05:38 -05:00
haven1433
d0f64db1fa update script keywords when address changes
otherwise it's possible to jump directly from a battle script to an event script and have the keywords not update
2023-05-10 07:36:28 -05:00
ShinyTillDawn
aa9563afaa
Updated reference info in "scriptReference.txt". (#154) 2023-05-07 10:17:26 -05:00
haven1433
3c6930b527 small fixes
* fadescreen should use screenfades list
* map object graphics should use overworld sprites enum (allows finding events from the overworld sprites table)
* change field name from 'unused' to 'padding' for final part of object event data
2023-05-06 16:33:37 -05:00
haven1433
88cff1cc98 improve script usage help text
* filter out matching games [] blocks correctly (including whitespace after the [])
* only show options for this game
2023-05-06 09:44:43 -05:00
haven1433
2f4099189d improve goto shortcuts for maps
make them work even if the user changes the starting town name
2023-05-06 09:22:48 -05:00
haven1433
d12c0da1ce move map option lists to toml file 2023-05-02 22:44:26 -05:00
ShinyTillDawn
a483490829
More feature requests (#152)
* Updated the "jumpiftype" commands' type field.

* Added the other keypadIcons anchor.

The name was very similar in the decomps, but this anchor refers to a table instead of a sprite sheet.

* Added the HM logo image in tableReference.txt.

Thank you VersekrDarkYT for notifying us about this image in #feature-requests!

* Added Emerald's message box graphics anchor refs.

Thank you Lunos for the feature request! The word "noframe" for Emerald's message box identifies the message box graphics used for stuff like the "Would you like to save the game?" prompt. These type of message boxes are independent of the text frame configured by the player.

* Miscellaneous typo fixed.
2023-04-28 22:35:38 -05:00
haven1433
e421374d44 Merge branch 'master' of https://github.com/haven1433/HexManiacAdvance 2023-04-27 23:51:56 -05:00
haven1433
6892d4f0bc improve handling of script-length calculation
We previously had code that tried to find lengths of sub-scripts from scripts, but only followed pointers forward, not backward, to prevent infinite loops. But it didn't properly handle scripts that _do_ have backwards pointers: it was returning a length of 1 for those, which is wrong.
2023-04-27 23:40:06 -05:00
ShinyTillDawn
6e183d6b16
Filled in the remaining anchor refs. for 2 tables. (#151)
I also changed the formatting of the critical table because it actually has a terminator token.
2023-04-27 21:52:10 -05:00
haven1433
478ac1e329 fix broken tests
need `graphics.menu.downarrow.palette` for emerald
2023-04-26 22:09:37 -05:00
haven1433
7f935b8dfe tileset should be a tileset
import for import/export
2023-04-26 20:34:55 -05:00
haven1433
67cacfe70b Merge branch 'master' of https://github.com/haven1433/HexManiacAdvance 2023-04-25 20:21:50 -05:00
ShinyTillDawn
79e0ad6c60
A bunch of feature requests. (I thought I uploaded this already.) (#150)
* Updated the "graphics.text.importer" formatting.

The "a" field was actually supposed to be 4 one-byte fields.

* Added the table for Japanese bold glyphs in EM.

* Added support for the keypad characters image.

I don't know what palette is associated with this image, though.

* Moved new table to a more appropriate location.

* Added "data.fonts" support for Emerald.

The table in EM is formatted differently than in RS. I'm going to make an "allFonts" [[List]] soon for Ruby, Sapphire, and Emerald.

There is 1 tab character before the first offset in some of the rows of tableReference.txt (like on lines 784 to 788), which may require revamping the file altogether.

* Started the [[List]] of all fonts for Emerald.

A few notes:
− "short2" comes before "short" because of the naming conventions HMA already has in place for the two short fonts that are similar but have different lower-case Ls. (short2 has the lower-case L that's used in battles, etc.). The regular "short" is "short_narrow" in the decomps.
− I suspect that the "?" entries are Japanese fonts, but I'm not sure about which ones.

I still need to make Ruby's list and do some testing.

* Added a table for the multipliers on stats.

These are the values that are multiplied (then divided) when your Pokémon's at −6, −5, ..., +5, or +6 in battle.

* Filled in the rest of the allFonts List for EM.

07 = japan2
08 = japan1
02-05 = japan3

The game uses some font slots for multiple fonts. If you used \CC0608 before text, you would get glyphs from "graphics.text.font.short.characters" OR "graphics.text.font.japan1.characters", depending on what language you specified in your text string.

* Added the allFonts [[List]] for Ruby & Sapphire.

Many of the fonts in "data.fonts" are duplicates, albeit with minor numerical changes here and there.
I'd be fine with removing the '-01,' '-02,' etc. and just leaving duplicates of font names ('japan1,' 'japan1∼2,' etc.) if that's less confusing.

* Moved and standardized the stat changes table.

Changed the name and location, as well as adding another field to the table formatting.
2023-04-25 20:21:19 -05:00
haven1433
224c9462ec improve <auto> and <section> logic
* don't allow streams to have <section> labels
* update the <auto> algorithm to allow stream pointers to be picked up in the middle of a script. This will get changed if the script is recompiled to put the streams at the end, but it allows longer scripts to be read no matter where the streams were placed.
2023-04-25 08:08:01 -05:00
haven1433
fdc891bf0a script editor: don't add pointer formats to sources that have moved 2023-04-24 07:05:39 -05:00
ShinyTillDawn
5a74254522
More BPEF support than just the shiny odds. (#146)
* Implemented Skyzio's BPEF .toml into the defaults.

I think we still have to whitelist BPEF so that more bytes get formatted instead of just the header, game code, etc.

* Updated the default.bpef.toml file.

* Updated .csproj file to incorporate the BPEF .toml
2023-04-21 21:52:20 -05:00
ShinyTillDawn
3c6a5faace
Move particle fixes (#144)
* Move particle names start at index 0 now.

Having them start at 10k didn't work the way I wanted them to work.

Also, I removed the low lines from each item in the list because it unintentionally triggered the letter abbreviations when shown in the hex content viewer.

* Implemented the move_particle list.

I will need to test these changes very soon.

The animation script commands would show the names of the move particles instead of numerals, and the move particles tables' length would be controlled by the newly-added list.

* Undid the animationScript change.

This change caused crashes, though I think those crashes could be resolved.
2023-04-19 21:37:38 -05:00
ShinyTillDawn
5945effa06
Font changes in Emerald (#142)
* Broke apart the "japan2" font.

In Emerald, HMA renders its "japan2" font incorrectly. It's only supposed to contain 16,384 bytes worth of characters while the preceding bytes are actually unused font sheets and widths. Those are now formatted as separate runs. The issue is that I can't put any of these changes in "tableReference.txt" because none of those tables/images have anchors to reference since they're unused.

* Fixed the japan2 characters format.
2023-04-16 10:21:40 -05:00
ShinyTillDawn
62b1442f1f
Filled in missing font character sheets for Ruby/Sapphire. (#141)
* Filled in missing font addresses.

Two fonts in Japanese that are rendered backwards in HMA (and possibly unused) and the short font used when showing Pokémon nicknames in battle.

* Removed an overlooked comment.
2023-04-16 10:20:26 -05:00
haven1433
99d5bc52d8 Merge branch 'master' of https://github.com/haven1433/HexManiacAdvance 2023-03-31 21:11:05 -05:00
haven1433
380af0d051 tileset -> lzt4 rather than sprite
this means you can't import it, but you don't want to, it's just a bunch of tiles.
2023-03-30 20:05:10 -05:00
TheDiamondMiner
564b298fc2
Updated Scriptreference.txt for the new macros (#137)
* Updated scriptreference

* Amended changes
2023-03-30 09:55:56 -05:00
haven1433
5ebf0c7925 update layouts when loading map editor
also include formats in layout table
2023-03-28 21:05:18 -05:00
haven1433
d396300c02 update current/available blockset addresses when repointing blocksets
also fix possible race condition when refreshing border render while drawing the map
also fix condition where writing script data content formats shouldn't write empty runs if the token doesn't allow changes.
2023-03-22 22:10:45 -05:00
haven1433
e666861f1a improve freespace address interactions for scripts
if you use a freespace address, the script should introduce a new blank stream for you to use. This didn't work correctly for marts, now it does.
2023-03-21 20:44:40 -05:00
haven1433
11db60e5d2 use number section headers rather than addresses as section headers
* better for experts because they can more easily parse a handful of section headers compared to random hex addresses
* Better for new users because it helps them learn that they can use whatever names they want for the headers of scripts and for pointers.
2023-03-21 19:59:01 -05:00
haven1433
1f640cfdea Merge branch 'master' of https://github.com/haven1433/HexManiacAdvance 2023-03-20 22:10:01 -05:00
haven1433
fc05cd58e6 add comments explaining base commands for macros 2023-03-20 22:10:00 -05:00
haven1433
7c357f00fd don't support <auto> when reading/writing script addresses, only data addresses 2023-03-20 22:09:25 -05:00