|
Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
|
← All months (index) · 84 commit(s) this month.
af883fd - Twilight
Brings the "missables" data (one-time-only items/events that can be permanently missed) into the same modern shape as the other databases. The old flat missables.cpp/.h is split into a proper MissablesDB plus a per-row MissableDBEntry class, the new DB is registered in the central db aggregate, and the save-side world-missables code and the sprite entry are pointed at the renamed types.
49c63b4 - Twilight
Wraps up the long MapsDB rework. The wild-encounter entry (MapDBEntryWildMon) is fleshed out and the finished Maps database is registered in the central db aggregate, closing out the multi-step effort below.
616b2e8 - Twilight
Continues the Maps breakup by building out the map sub-entry classes for trainers and for warps – both the warp-in and warp-out variants – giving each its own entry type with proper parsing instead of the old monolithic map code.
c384083 - Twilight
More of the Maps breakup, this round filling in the on-map sprite entry types – the generic sprite plus its item, NPC and Pokemon specializations – so each map sprite is represented by a dedicated class.
7a32683 - Twilight
Further work on the map sprite entries, expanding the base sprite class and the item-sprite variant with more of their fields and behavior (with a small tweak to the item entry header they lean on).
4d14608 - Twilight
Builds out two more map sub-entry types: the map-connection entries (how adjacent maps stitch together at their edges) and the sign entries, each gaining substantially more parsing and structure.
424fd91 - Twilight
The big structural kickoff for Maps: the old monolithic maps.cpp/.h (~1,200 lines) is deleted and replaced by a MapsDB plus a whole family of focused entry classes – the map itself and its connections, signs, sprites (item/NPC/Pokemon/ trainer), warps (in/out) and wild encounters. Dozens of save-side and DB files are touched only to follow the rename. This is the scaffold the following Maps commits fill in.
ec27791 - Twilight
Gives the Items data the same treatment: the flat items.cpp/.h is replaced by an ItemsDB plus an ItemDBEntry row class, registered in the central db aggregate. The app-side item models (market, select, storage) and various save-side fragments are repointed at the new types.
911efec - Twilight
A small defensive fix in AbstractRandomString (the shared base for the random-name/example generators), accounting for some moving parts that would otherwise have bitten later. Two files, a few lines.
76f81ff - Twilight
Restructures the two "hidden" databases. The shared logic moves into an AbstractHiddenItemDB base with a HiddenItemDBEntry row class, and the hidden items and hidden coins databases are rebuilt on top of it and registered in the central db aggregate. The old hiddenItems/hiddenCoins flat files are retired in the process.
449d867 - Twilight
Converts the Game Corner (casino) data to the standard shape: gamecorner.cpp/.h becomes GameCornerDB plus a GameCornerDBEntry row class, registered centrally, with the item-market models that consume it repointed. A few stray helper methods are also dropped from the event/fly entry classes.
3a236ca - Twilight
Gives the in-game font/character table the same modern structure: fonts.cpp/.h becomes FontsDB with a FontDBEntry per-glyph class, registered in db. The several consumers of the font data – the boot path, the font preview provider, the font-search model, the bridge and the main window – are updated to the new names.
c45ce05 - Twilight
Restructures the "fly" data (the towns you can fly to) into FlyDB plus a FlyDBEntry row class under entries/, registered centrally, with the world-towns save code repointed at it.
0911e78 - Twilight
Reworks the random-name data. The old abstractexample base is renamed to AbstractRandomString, and the name tables are split into dedicated NamesPlayer and NamesPokemon entry classes under entries/, registered in db. Part of the broader move to a consistent DB-plus-entry layout.
c7bd33b - Twilight
Reworks the "examples" system that produces sample player/rival/Pokemon names for the name editor. A new AbstractExample base is introduced and the three example sources move under entries/, wired into a new examples aggregate. Twilight's own commit message notes how slow and laborious this whole refactoring slog had become.
fe3b9c6 - Twilight
Completes the Events database rework: the flat events.cpp/.h is replaced by EventsDB plus an EventDBEntry row class, registered centrally, with the world-events save code repointed. The commit message again laments how painfully slow the refactor has been.
5625aa8 - Twilight
Converts the event-Pokemon data (special distribution mons) into EventPokemonDB plus an EventPokemonDBEntry row class, replacing the old flat files. Along the way it cleans up the shared helpers used across the DB layer – random, utility, and the util/ search/gamedata classes – and the credits DB/entry, smoothing out signatures touched by the refactor.
4a8dd48 - Twilight
Continues the refactor with a focus on the util/ helpers – the font search and map search classes gain structure and a few capabilities – plus minor follow-on tweaks to random/utility and the credits DB.
2beb9e7 - Twilight
Foundational groundwork: the common library's random and utility helpers are substantially expanded to support the new DB design, and some now-unneeded declarations are pruned from the db aggregate. Sets up the building blocks the rest of the refactor depends on.
198effb - Twilight
The opening move of the database overhaul. Credits is the pilot: credits.cpp/.h becomes CreditsDB plus a CreditDBEntry row class, establishing the DB-plus-entry pattern every later database follows. The shared search helpers are moved into a new util/ subfolder, and the central db aggregate is reworked to match. Every other (still-flat) database file gets a one-line touch to stay compiling. Twilight notes the early results look promising.
9a0e3d8 - Twilight
A quick pass tidying the common library (random/types), described as the easiest piece to refactor – a warm-up before the much larger DB work.
01f51d1 - Twilight
Reverses course on splitting a separate core library out: the core project and its files are removed. The reasoning in the message is that a plugin-style core split isn't needed right now and would only add a lot of time on top of the refactor already underway.
e682f2e - Twilight
Scaffolds a separate core library (project file plus its export/autoport header) as a first step toward giving it its own DLL. (This direction is abandoned a few commits later in 01f51d1.)
06d7a54 - Twilight
A tiny build tweak across the common/db/savefile project files to trim the size of the produced libraries.
5cbd7ff - Twilight
Fixes a stubborn build failure: something was linking the static libraries out-of-order despite instructions not to, so the projects are switched to shared libraries instead, which makes everything compile again. To support that, each library gains an export/autoport header (common_autoport.h, db_autoport.h, savefile_autoport.h) and the many DB and savefile headers get the export annotations they need to expose symbols across the DLL boundary.
3a15b03 - Twilight
A big project-restructuring step taken in frustration: the save-file code is relocated into a dedicated pse-savefile library (the whole expanded/ tree moves over untouched), the old app/src/data/file/savefile and the stray common.cpp/.h are removed, and the app, bridge and models are repointed at the new locations. The commit message is a long, raw vent about how painful Qt makes splitting a project – broken wizards, conflicting online advice, hours lost – with the grudging admission that Qt is being used only because it's the one decent cross-platform GUI framework available. Functionally this is the boundary where savefile becomes its own module.
c44e068 - Twilight
A breakthrough in the library split: the first major library is successfully relocated into its own project and got building, and the umbrella project is reworked so the remaining project data compiles alongside it. The app's QML resource file is renamed (qml.qrc -> app.qrc) and the boot/bridge wiring is adjusted to match the new structure.
3e4edd8 - Twilight
Small preparatory changes ahead of the next push: aggregate stubs (db and savefile top-level objects) are added and the project files are tidied so the libraries are ready to take on their contents.
7d5199b - Twilight
The kickoff of the project's biggest structural change: the previously monolithic app is broken apart into separate libraries (common, db, savefile) beneath the application. This is a sprawling commit – it lays down the new project layout and begins relocating hundreds of files into their new homes. It's the root of the multi-day refactor that the surrounding commits carry forward.
9f5de37 - Twilight
Continues building the ability to switch the player's current map. Several area pieces gain the parsing they need to load a new map cleanly – player position, signs, on-map sprites, the tileset, and warps – along with the underlying sign and sprite data fragments.
f07eb1a - Twilight
Further groundwork for map switching, focused on the area-map object that holds which map is currently loaded.
8cb6548 - Twilight
A modeling cleanup: the Safari Zone state is relocated out of the area-player object and into the world's "local" state where it belongs, and WorldPuzzle is renamed to the clearer WorldLocal.
61153f4 - Twilight
A one-file UI bug fix: the name editor could show two feedback/warning messages at once; the visibility conditions are corrected so only one shows at a time.
17a6939 - Twilight
Another placement decision: the saved local-map state, which arguably fits in either, is moved from the area object to the world object (and the areapuzzle files become worldpuzzle), which Twilight judged the better home.
1c3b85b - Twilight
Completes parsing of the map's pre-loaded sprite set into the area's loaded-sprites object.
d57dfe6 - Twilight
Adds the ability for the area to switch to a different map while leaving its contents intact (no randomization). The area's audio, general, NPC and Pokemon sub-objects each gain the load behavior needed to repopulate from the new map.
d393601 - Twilight
The map-details screen starts showing extra category icons that depend on the specific map (alongside the standard set), backed by a few new FontAwesome SVGs.
a01267f - Twilight
A small visual tweak: the "Events" category on the map-details screen now uses a globe (world) icon instead of the previous event icon.
0c88190 - Twilight
Lays out the category icons on the map-details page (map, settings, missables, trades, and more), adding the corresponding SVG assets.
9bba1d9 - Twilight
Wires up the ability to open a dedicated Map Details screen from the Maps list, via the router.
a901de0 - Twilight
Several fixes in the maps database, map search, and sprite-data handling (plus a random-helper tweak) that together make randomizing maps work correctly.
1c1c558 - Twilight
Adds the Maps screen and its supporting machinery: a new MapSelectModel feeding a Maps.qml list, wired into the home menu and the router, with small additions to the maps database and area-map object.
740e40f - Twilight
Builds out the Rival screen and adds it to the home menu. As the message wryly notes, it's only two fields of data on a large empty canvas – the challenge was making that sparse screen still look good. Includes the rival artwork.
24c9425 - Twilight
Minor fixes in the daycare and item-storage objects.
08b7941 - Twilight
A one-line follow-up to the crash hunt below – a change that had been forgotten. With it in, the crash is gone and no memory leaks remain that Twilight could find.
a29cada - Twilight
A routine merge of the master branch from the GitHub remote.
42fff0d - Twilight
A wide-ranging fix for a crash that turned into a serious ordeal. The change sweeps across nearly the entire expanded save model – area, fragments, player, world, storage, Hall of Fame, file management – adjusting how objects are constructed/cleaned up to kill the crash. It admits to introducing other bugs in the process and leaving warnings for later, but the crash is finally gone.
dbe6481 - Twilight
A one-line README update recording the Pokemon Details screen.
e16c36a - Twilight
A one-line fix for a nasty bug: visiting the Trainer ID screen was reverting every Pokemon's nickname. The message marvels at how the smallest fix can hide behind so much trouble to track down.
e20c167 - Twilight
A one-character fix for a hard-to-find corruption bug: a save-location typo in an unrelated file was overwriting the hidden items/coins region with completely different data.
ff76662 - Twilight
Fixes a bug where missable flags loaded correctly but were written back wrong, in the sprite-data save path.
cb6fc99 - Twilight
Reworks the party fragment's save logic to fix a bug that was corrupting the party Pokemon when written back.
56ca1c0 - Twilight
Adds explanatory tooltips across the Pokemon-details editors (overview, stats, moves, the glance pane) to help explain the fields.
83e0e1d - Twilight
A one-line fix in the Pokemon box's move-correction logic that was spuriously adding a second move row.
3b4729b - Twilight
Fixes a bug where a Pokemon's move list could end up out of order, with a matching tweak to the move-selector UI.
248e600 - Twilight
A substantial work-in-progress on the move system, hunting two related bugs where editing the move list scrambled a move's ID and "correcting" moves sometimes added a phantom second move. The Pokemon box's move handling is heavily reworked and the per-move UI row (PokemonMoveSel) is built out.
9b00973 - Twilight
Adds a move picker tailored to each Pokemon: a new MoveSelectModel and a SelectMove combo, wired into the bridge and the moves tab so the dropdown shows the right moves for the selected mon.
5008140 - Twilight
Assorted fixes in the Pokemon box and the details screen.
4437943 - Twilight
Makes the stat menus smarter by disabling (greying out) options that don't apply in the current state, backed by small helpers on the Pokemon box.
6f70850 - Twilight
A one-word wording fix on the MissingNo-related menu option in the overview tab.
0e72f60 - Twilight
Adds overflow menus to the DV/EV stats tab offering several actions (max, re-roll, reset and the like), backed by new helpers on the Pokemon box.
c5b7051 - Twilight
Reorganizes the details editor: the "future shiny" control moves to the DV/EV tab, and a "future nature" control is added to the General tab, backed by a new NatureSelectModel and SelectNature combo.
f944e86 - Twilight
Improves the stats display and makes it smarter: introduces the StatsGroup and StatsGroupInvalid components so valid mons show computed stats while glitch/ invalid mons fall back to editable raw values.
e7e7abc - Twilight
A focused fix in the Pokemon box correcting how a stat was being computed.
75e0f62 - Twilight
Builds out the stats tab with the DV and EV slider groups (DvStatGroup, EvStatGroup).
2e7b25a - Twilight
Various fixes and refinements to the overview tab and the live glance pane.
5b9928c - Twilight
Fixes bugs where certain Pokemon data was being auto-corrected and reset just by loading it, with a matching glance-pane adjustment.
8fc8bd6 - Twilight
Adds a status-condition picker: a new StatusSelectModel and SelectStatus combo, surfaced on the glance pane and overview tab.
8ab9dc5 - Twilight
Adds a tweak so changing a Pokemon's level automatically corrects the dependent values that need to follow.
1ce0b22 - Twilight
Starts the live glance pane and adds a species picker (a new SpeciesSelectModel and SelectSpecies combo) to the details editor, with supporting Pokemon-box helpers.
451ce2b - Twilight
A large step forward for the details screen: the tabbed layout, header, glance pane, overview and moves tabs all take shape, and a type picker is added (a new TypesModel and SelectType combo). Roughly 900 lines of new UI.
1ae1c1e - Twilight
A broad set of changes that gets a (still blank) Pokemon Details screen to open, and refactors the PokemonBox and PokemonParty model objects to work more cleanly with QML. The router gains the navigation to push the details screen with a specific mon.
649cf66 - Twilight
Small fixes in the Pokemon storage model and box view.
f5f8c0f - Twilight
A round of fixes across the Pokemon box, storage box, player Pokemon and storage model.
e22d083 - Twilight
Continued cleanup, fixes and improvements to the Pokemon storage screen and its models.
1af1e38 - Twilight
Rounds out the Pokemon storage view into a full-featured screen, with the box selector, box-grid view and pane all gaining functionality.
b69ca83 - Twilight
A big batch of work that makes the Pokemon screen actually usable, though Twilight notes there are still plenty of issues and crashes left to smooth out. The box view and pane are substantially reworked and the Pokemon screen itself is added.
86bb1d2 - Twilight
Lays the groundwork for the Pokemon storage screen – a new PokemonBoxSelectModel, the box selector combo, the box view and pane – knowing it won't build yet. A work-in-progress checkpoint.
5b1b81a - Twilight
A one-line README update recording the Pokemart screen.
0eee25d - Twilight
Builds out the PokemonStorageModel (the model behind the storage boxes) with several hundred lines of logic.
5bd9304 - Twilight
Clears up compile errors from the in-progress Pokemon refactor; the first test run looks fine.
7a51242 - Twilight
Starts bringing the Pokemon-handling code up to the same standard as the rest of the codebase, with the expectation it won't compile mid-flight.
578cc06 - Twilight
A one-word label change on the home menu.
1f8a4cb - Twilight
Reworks the money number formatting on the Pokemart screen to display correctly, which Twilight describes as somewhat hacky.