Commit Graph

168 Commits

Author SHA1 Message Date
Kurt
203a7c1627 Add more removal options
- remove flowers
- remove shells
- remove branches

Closes #163

rename plazaX/Y to match internal field name
2020-05-05 17:17:59 -07:00
Kurt
a3357c27c5 Clamp acre jump to valid bounds 2020-05-03 20:50:45 -07:00
Kurt
0ec40f3b55 Categorize stalk market properties
update other usages so we can turn off the help box at the bottom of the propertygrid
2020-05-03 19:43:10 -07:00
Kurt
b884973919 Refactoring
abstraction++
2020-05-03 19:24:16 -07:00
Kurt
21c30fc733 Update import skip occupied
Closes #158
2020-05-03 18:41:34 -07:00
Kurt
4a49caf6da Add layer2->layer1 check (isSupported), add logic for isActive
isActive: indicates if the tile is animated (eg: bonfire has fire or is extinguished)
isSupported: layer2 tile checks beneath it (layer1) to see if there's something to hold it up on that layer (sanity check)

Dunno how to handle the isActive set-on-save. I saw there was an isActive flag in my plaza, assumedly left there from a radio or something. NHSE does not change flag state at this time.
2020-05-03 16:29:28 -07:00
Kurt
8edf0a6ec4 Add trycatch for sysbot read/write, turn off auto-r/w on fail
Closes #156

turning off auto-r/w won't happen if the auto-r/w itself fails. still pops open a message saying error until you turn it off in the other window.
2020-05-03 13:51:26 -07:00
Kurt
8de7f7b506 Add internal flag/value name translation
if you really want to translate these, go ahead
#157
2020-05-03 13:37:04 -07:00
Kurt
3ec69afe6b Show terrain tile type, add slider for transparency adjust 2020-05-02 23:57:43 -07:00
Kurt
adf9b43bc0 Add transparency slider for buildings 2020-05-02 23:25:14 -07:00
Kurt
928e699168 misc performance improvements
Preallocate the terrain-building objects and reuse

changed:
- grid alternates with a slightly-darker to help indicate the larger 2x2 tile grid.
- put plaza & buildings behind the gridlines
2020-05-02 23:02:37 -07:00
Kurt
5b5d1b2bce Save terrain and buildings on close too 2020-05-02 20:10:11 -07:00
Kurt
4690cfe167 Refactoring: Field Item Editor + buildings/terrain
Extracts logic from the building & terrain & field item editors for reuse / separation of concerns

Have FieldItemEditor select between Items & Terrain so that you can change the popup menu mode (view set delete)

Not sure how I want to show the terrain names...
2020-05-02 20:05:09 -07:00
Kurt
1dbf1e9338 Put all "remove {X}" into dropdown button list
Clamp hover coordinates to sane values
2020-05-02 15:52:44 -07:00
Kurt
ef065f889b Add checkbox to toggle auto-extension behavior, clamp map bounds 2020-05-02 14:41:32 -07:00
Kurt
c25cd262d4 Add automatic delete/set of extension tiles from root
Setting a root tile: will fill in the extension tiles
Deleting a root tile: will delete all extension tiles (it assumes extension tiles are valid)

Add checkbox to prevent overwriting tiles that aren't none (eg if you set a 4x4 and it'd overlap with a 2x2, the program would play a sound indicating that the requested operation was disallowed).

Closes #136 -- multi-select with the current drawing setup isn't really feasible. Bulk set/delete addresses the underlying request.
2020-05-02 00:20:44 -07:00
Kurt
ddde5040a2 Add room wall/floor editor for villager
Closes #138
2020-05-01 22:07:34 -07:00
Kurt
d930b02489 Show buildings/plaza on field item editor
Building sizes not to scale, but should assist in representing layout for now

Extract terrain color to separate class
2020-05-01 16:46:38 -07:00
Kurt
581b482538 Add hotkey to import and skip over filled slots
Closes #143
2020-04-30 14:18:29 -07:00
Kurt
33b9e7f170 Show terrain map behind field item view
Adds a transparency slider to have the field items fade so you can see the underlying terrain tile.

Not really optimized (allocates every time), but it should be fine for now.

Make the None item transparent, so that the entire map bleeds through (clear clarity).
2020-04-28 21:08:57 -07:00
Kurt
38c4764967 Add more documentation for tile editing
035af51911/savefile/save_schema_131080_131078_pseudoC.h (L1400)

Closes #129
2020-04-27 10:40:35 -07:00
Kurt
beb4e8111a Add pocket/bag count
Rename Pocket1/Pocket2 to Bag/Pocket respectively (bag is slots21-40)
2020-04-26 21:11:11 -07:00
Kurt
2b9d8b0c7a De-clutter: Group some buttons into dropdown buttons
Move player house dump to subform

Not sure how to associate player -> playerhouse; for now, we'll just assume they're ordered the same way.
2020-04-26 20:45:41 -07:00
Kurt
01ae4793c9 Add player house editor 2020-04-26 20:29:39 -07:00
Kurt
214638ce2c Add skip exterior for terrain set all
https://github.com/kwsch/NHSE/issues/122#issuecomment-619472394
2020-04-25 21:40:34 -07:00
Kurt
9b7ff912b8 Add give all art for received items 2020-04-24 10:30:04 -07:00
Kurt
4efbb00b4e Add pro design r/w 2020-04-23 17:09:52 -07:00
Kurt
776bc030fe Move design pattern to subform 2020-04-23 16:30:39 -07:00
Kurt
4610b55ed7 Update translatable list
Remove unused form
2020-04-23 13:42:33 -07:00
Kurt
94c141393f Reload displayed object on import 2020-04-22 23:43:12 -07:00
Kurt
f49d223e7b Indirectly get villager name
Villager[Index] != Villager that inhabits House[Index]

Closes #99
2020-04-22 23:22:06 -07:00
Archit Date
c36fe4cd22 update pouch offset in default settings 2020-04-23 13:32:29 +08:00
Archit Date
1460725cf0 Merge branch 'master' of https://github.com/kwsch/NHSE 2020-04-23 13:28:54 +08:00
Archit Date
e626c93916 update default pocket offset
for live injection
2020-04-23 13:28:39 +08:00
Kurt
6f4d9e163c Update translations
Now includes the villager usercontrol in the editor form
2020-04-22 22:12:18 -07:00
Kurt
de48c037f9 Add house editor
only some surface appearance properties; interior item layout nope
use enum values for house info interface

Closes #95
Closes #96

Changes the displayed villager indexes from 1-indexed to 0-indexed to match the game's references.
2020-04-22 21:55:24 -07:00
Kurt
e9f9e51f15 Add load from cheat code import option
Hold control when clicking Load to instead read from clipboard. If no text is found, the program will ask for a file to load instead.

Closes #90
2020-04-22 08:32:13 -07:00
Kurt
c9a86cbff9 Add program translation
jp/en/zh -- only english has been translated (duh)
keep in mind this translates the text in the program, not the internal flag names.

not sure if other languages need to be supported; from PKHeX's experience, only spanish is updated (besides jp/zh), as most users speak english or are fine using the program in english.

pls localize villager names and item names for non-english :P -- preferrably automated from raw game dumps
2020-04-21 14:26:18 -07:00
Kurt
b4f1bda2c7 Extract translatable strings to static class 2020-04-21 12:43:16 -07:00
Kurt
eaa805a374 Add automatic backup, add program settings editor 2020-04-21 12:11:31 -07:00
Kurt
aa970f1eab Add main (land) event flag editing
Can turn easter on/off, ha
maybe when they patch in new events ahead of time, we can turn them on early?
2020-04-20 11:31:00 -07:00
Kurt
f0492f1dc1 Allow importing old (x40) building list (not x46) 2020-04-20 09:08:45 -07:00
Kurt
5d51cf65df rename some classes to match internal naming 2020-04-19 15:26:20 -07:00
Kurt
aff52ce842 Make building structure explicit layout, add unk->usage
9c0648c0b7/savefile/save_schema_120_109_pseudoC.h (L967)
2020-04-19 11:27:26 -07:00
Kurt
2e64f0b109 Add villager flag editor + moving out state toggle 2020-04-18 11:11:25 -07:00
Kurt
59c0c27737 Move sub-editors to separate folders by type
Don't cherrypick this commit; won't compile (next commit will work)
2020-04-18 11:09:32 -07:00
Kurt
456575e64e Add missing ) to error messages 2020-04-17 13:45:02 -07:00
Kurt
1af352dae5 Add dropdown to jump to specific recipe 2020-04-15 09:56:14 -07:00
Kurt
7e3003687b MInor clean 2020-04-15 09:47:20 -07:00
Kurt
d89a7245e0 Add more field item mass-editing buttons
Closes #75
2020-04-14 15:20:08 -07:00
Kurt
2210f6e6fc Add Building List Dump/Import
Doesn't include plaza; if you're sharing details, just share the coordinates via text.
2020-04-13 16:53:38 -07:00
Kurt
3060e790bc Fix expected import size 2020-04-12 21:28:51 -07:00
Kurt
da955be606 Show X on buried items root 2020-04-11 11:57:28 -07:00
Kurt
3ab70d593f Add remove plants / remove all 2020-04-10 12:50:08 -07:00
Kurt
6ce0d1595d Remove allocation for field item editor
Allocate once on init, and reuse objects

pretty much buttery smooth now :)
2020-04-09 16:01:20 -07:00
Kurt
91418e9c66 Enhance extension item visualization
Mark class as static

Draws directional lines trying to point back to the root item
2020-04-09 12:52:07 -07:00
Kurt
a87cb512a6 Show all properties of field items
TIL that you can prefix FieldOffset with "field" so that you can have it be a getter/setter (interfaces! properties!)
2020-04-09 10:49:10 -07:00
Kurt
6df2fc1b04 Add remove weeds/holes 2020-04-09 09:41:21 -07:00
Kurt
284b7e6fab Reduce size to a power of 2
show field item name if it's a "planted" item rather than ???
2020-04-09 09:29:36 -07:00
Kurt
8469e12c38 Change field item grid to drawn bitmap
No lag, clean grid, muh efficiency
2020-04-08 14:35:51 -07:00
Kurt
5491ab3ac5 Faster tile fetch on click
essentially negligible speed improvement, but improved readability
2020-04-08 10:16:20 -07:00
Kurt
a4ba8259a9 Update flow layout
Closes #61 , reduces size of label and switches the flow direction so that it won't be too big and overflow
2020-04-07 22:09:55 -07:00
Kurt
8ac4dc4d0e Add hover to show item name 2020-04-07 15:37:26 -07:00
Kurt
8673ead6aa Add layer switcher 2020-04-07 15:29:37 -07:00
Kurt
91f8881808 Add Field Item viewer
Layer 1 only, no tile mutation capability for now. Can still move things around / delete.
2020-04-07 15:25:34 -07:00
Kurt
80601bfd28 Fix filename for dumpall/import single 2020-04-07 14:54:54 -07:00
Kurt
25a162c187 Add more fielditem manipulation logic
32x32 because we have 2x2 metatiles -- items can be placed at half-coordinates relative to tile coordinates.
2020-04-07 11:25:27 -07:00
Kurt
6ecf659d5e Add special handling for diy recipe 2020-04-06 20:11:35 -07:00
Kurt
5293ec594a Refactoring
Rename some variables
2020-04-06 14:57:37 -07:00
Kurt
0f28da8b2f Extract some grid logic to its own class
Name it more clearly so that the intent is there
2020-04-06 14:37:40 -07:00
Kurt
ec89e0b627 Change ClearAll to SetAll
if you want to clear all, just load a base tile (delete and load a single tile) then Set All
2020-04-06 09:38:53 -07:00
Kurt
29ecc8946c Fix terrain tile hover coordinate display
was snapping same way as viewport reticle
split things up and add comments
2020-04-05 16:15:55 -07:00
Kurt
3482eebe5a Show plaza on generated map 2020-04-05 16:00:17 -07:00
Kurt
6f228a72f7 Show coordinates on mouse move 2020-04-05 12:04:44 -07:00
Kurt
fc3276ca99 Add plaza coordinates to building editor
How exactly to plot the coordinates???
2020-04-05 12:04:28 -07:00
Kurt
1ff26a3be7 Update validation & add bypass
Require first uint to match, can bypass others
2020-04-04 21:35:03 -07:00
Kurt
1db185151d
Add automatic read/write items for all pocket items (1-40) (#51)
Decentralizes pocket injection logic from SysBotUI so that other auto-injectors can be passed in (future? like terrain/overworld items).

Adds validation to not modify items if the pocket data doesn't have the expected layout.

Closes #47 by implementing things in a more abstract & extendable way. Thanks @jfmherokiller for the example implementation which served as an inspiration!
2020-04-04 20:57:25 -07:00
Kurt
8b324651e1 Enhance building editor (show map & value names) 2020-04-04 13:16:45 -07:00
Kurt
8f6e68feba Fix tile get
unlocked viewport => don't use AcreIndex
2020-04-03 20:50:46 -07:00
Kurt
8516df6116 Unlock terrain viewport from acre snapping
Add checkbox to flip between snap / no-snap
2020-04-03 20:34:32 -07:00
Kurt
12ee9e0bab Add EventFlagsPlayer editing 2020-04-03 18:36:26 -07:00
Kurt
f5e96480fd Add prompt for mass edits 2020-04-03 13:50:32 -07:00
Kurt
5dccddb3cc Allow B0->A0 up nav 2020-04-03 13:32:48 -07:00
Kurt
b6e19f079d Minor clean
Add click to map preview to load that acre
Move map+viewport-reticle bitmap creation to drawing project
export map without reticle as scale=1
2020-04-03 12:50:53 -07:00
Kurt
e098f85afc Show map viewport to indicate current acre 2020-04-03 12:29:56 -07:00
Kurt
8b3c650eff Add Terrain editor
most complex editor yet

could be better if I did PictureBox'es instead of buttons, so I could put an image instead of just color

ppl will have to document more on what each terrain looks like, maybe could show a pic of each terrain tile?
2020-04-03 12:12:21 -07:00
Kurt
faac53b52d Add color coding for map acre column/rows
a little more descriptive than just a bunch of controls

just 3 panel controls :D
2020-04-02 18:44:29 -07:00
Kurt
02e52ccf7d Minor gui tweaks
monospaced font for better acre name viewing
2020-04-02 11:19:37 -07:00
Kurt
99e4f59d2f Add Outside Acre editing
what a busy form (so many controls)

Has option to import/export bytes so people can share their exterior acre layouts
2020-04-02 10:42:40 -07:00
Kurt
c9c30d76ee Add turnip exchange edits
values assumedly get updated every sunday, and only take effect when you restart the game (or pass over a time threshold?)
stonks
2020-04-01 20:39:00 -07:00
Kurt
de5eb9f0f7 Fix hex edit
oops
add length sanity check
2020-04-01 20:07:35 -07:00
Kurt
ebfd2ca87f Add generic RAM read/write form
accessible once a save is loaded, same as item injecting

untested, but should be fine
2020-04-01 16:29:56 -07:00
Kurt
828b560e5e Extend recipe max for v1.1
the whole array is probably 0x100 bytes (max recipe ID 0x800), but we can clamp things by only reading a certain amount

(dump RecipeCraftParam.bcsv and add the bunny craftables to the recipe list...)
2020-04-01 10:44:30 -07:00
Kurt
e1cc460575 Update activity (achievement) entry names
EventFlagsLifeSupportAchievementParam.csv
2020-04-01 10:26:16 -07:00
Kurt
98a98f5cf4 Add activity count edit
See EventFlagsPlayerActivityParam.csv , unlabeled for now as I'm not sure how exactly these align
2020-03-31 23:49:12 -07:00
Kurt
8aa1f9ad5e Dynamically set r/w count 2020-03-31 19:57:45 -07:00
Kurt
789097c7a6 only read/write 20 at a time 2020-03-31 19:55:49 -07:00
Kurt
d82f49e513 Fix offset parse
oops hex dec
2020-03-31 19:44:32 -07:00
Kurt
f18b013a88 Add popup indicating how sysbot works.
Similar to LiveHex (PKHeX injecting pkm while game is running), this will allow you to r/w your inventory live so that you can quickly swap in items -- example usage: customizing your town with various items :D
2020-03-31 19:32:54 -07:00
Kurt
a4ae85ce67 Add sysbot injector for player pockets 2020-03-31 19:23:17 -07:00