Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
Loading...
Searching...
No Matches
Version History — March 2020

← All months (index) · 84 commit(s) this month.


2020-03-18 – Refactor the Missables database

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.

2020-03-18 – Finish the Maps database refactor

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.

2020-03-18 – Maps refactor: warp entries

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.

2020-03-18 – Maps refactor: sprite entries

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.

2020-03-17 – Maps refactor: sprite + item sprite detail

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).

2020-03-17 – Maps refactor: connections + signs

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.

2020-03-17 – Begin the Maps database refactor

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.

2020-03-17 – Finish the Items database refactor

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.

2020-03-16 – Guard a future bug in a shared DB base class

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.

2020-03-16 – Refactor Hidden Items and Hidden Coins

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.

2020-03-16 – Refactor the Game Corner database

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.

2020-03-16 – Refactor the Fonts database

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.

2020-03-16 – Refactor the Fly (town/warp) database

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.

2020-03-15 – Refactor the Names database

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.

2020-03-15 – Refactor the Examples generators

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.

2020-03-15 – Finish the Events database refactor

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.

2020-03-15 – Refactor the Event Pokemon database (and tidy shared helpers)

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.

2020-03-15 – More DB refactor: search utilities

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.

2020-03-15 – Kickstart the Common + DB refactor

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.

2020-03-15 – Begin the DB refactor (Credits first; add util/ folder)

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.

2020-03-14 – Refactor the Common library

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.

2020-03-14 – Drop the separate Core project

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.

2020-03-14 – Prepare to split Core into its own DLL

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.)

2020-03-14 – DLL size optimizations

06d7a54 - Twilight

A tiny build tweak across the common/db/savefile project files to trim the size of the produced libraries.

2020-03-14 – Make the libraries shared so it links again

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.

2020-03-14 – Move savefile sources into their own library (the Qt-rant commit)

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.

2020-03-14 – First major library moved out and compiling

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.

2020-03-14 – Pre-refactor groundwork

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.

2020-03-14 – Begin the large-scale refactor

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.

2020-03-12 – More map-switching support (signs, sprites, tileset, warps)

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.

2020-03-11 – More setup for Area to change current map

f07eb1a - Twilight

Further groundwork for map switching, focused on the area-map object that holds which map is currently loaded.

2020-03-11 – Move Safari state into World Local; rename WorldPuzzle -> WorldLocal

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.

2020-03-11 – Fix overlapping Pokemon-name feedback messages

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.

2020-03-11 – Move saved local map state from Area to World

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.

2020-03-11 – Finish loading pre-loaded sprites from the map

1c3b85b - Twilight

Completes parsing of the map's pre-loaded sprite set into the area's loaded-sprites object.

2020-03-11 – Let Area switch maps without randomizing

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.

2020-03-11 – Map details: show extra map-specific icons

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.

2020-03-11 – Swap the events icon for a world/globe icon

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.

2020-03-10 – Set up icons on the map-details page

0c88190 - Twilight

Lays out the category icons on the map-details page (map, settings, missables, trades, and more), adding the corresponding SVG assets.

2020-03-10 – Add navigation to a Map Details screen

9bba1d9 - Twilight

Wires up the ability to open a dedicated Map Details screen from the Maps list, via the router.

2020-03-10 – Bug fixes enabling map randomization

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.

2020-03-10 – Create the Maps screen

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.

2020-03-09 – Complete the Rival screen

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.

2020-03-09 – More bug fixes

24c9425 - Twilight

Minor fixes in the daycare and item-storage objects.

2020-03-09 – The missed change: crash + leaks resolved

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.

2020-03-09 – Merge master

a29cada - Twilight

A routine merge of the master branch from the GitHub remote.

2020-03-09 – Resolve a nightmare crash (at the cost of new bugs)

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.

2020-03-09 – Note Pokemon Details screen in the README

dbe6481 - Twilight

A one-line README update recording the Pokemon Details screen.

2020-03-08 – Fix Trainer ID screen wiping all Pokemon nicknames

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.

2020-03-08 – Fix corrupted hidden items from a stray save typo

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.

2020-03-08 – Fix missables saved back incorrectly

ff76662 - Twilight

Fixes a bug where missable flags loaded correctly but were written back wrong, in the sprite-data save path.

2020-03-08 – Fix corrupted party saving

cb6fc99 - Twilight

Reworks the party fragment's save logic to fix a bug that was corrupting the party Pokemon when written back.

2020-03-08 – Add tooltips to the Pokemon Details screens

56ca1c0 - Twilight

Adds explanatory tooltips across the Pokemon-details editors (overview, stats, moves, the glance pane) to help explain the fields.

2020-03-08 – Fix an unneeded second move row

83e0e1d - Twilight

A one-line fix in the Pokemon box's move-correction logic that was spuriously adding a second move row.

2020-03-08 – Fix move list getting out of order

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.

2020-03-08 – Move-list work: chase the moveID / extra-move bugs

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.

2020-03-08 – Per-Pokemon move select box

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.

2020-03-07 – Various fixes

5008140 - Twilight

Assorted fixes in the Pokemon box and the details screen.

2020-03-07 – Grey out unavailable menu options

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.

2020-03-07 – Fix MissingNo menu wording

6f70850 - Twilight

A one-word wording fix on the MissingNo-related menu option in the overview tab.

2020-03-07 – Add menus with actions to the DV/EV 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.

2020-03-07 – Future shiny -> DV/EV tab; add future nature to General

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.

2020-03-07 – Smarter computed stats

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.

2020-03-07 – Fix incorrect stat calculation

e7e7abc - Twilight

A focused fix in the Pokemon box correcting how a stat was being computed.

2020-03-06 – More Pokemon Details / Stats screen

75e0f62 - Twilight

Builds out the stats tab with the DV and EV slider groups (DvStatGroup, EvStatGroup).

2020-03-06 – Overview tab + glance pane tweaks

2e7b25a - Twilight

Various fixes and refinements to the overview tab and the live glance pane.

2020-03-06 – Fix data being "corrected" and reset on load

5b9928c - Twilight

Fixes bugs where certain Pokemon data was being auto-corrected and reset just by loading it, with a matching glance-pane adjustment.

2020-03-06 – Add status condition select

8fc8bd6 - Twilight

Adds a status-condition picker: a new StatusSelectModel and SelectStatus combo, surfaced on the glance pane and overview tab.

2020-03-06 – Auto-correct data on level change

8ab9dc5 - Twilight

Adds a tweak so changing a Pokemon's level automatically corrects the dependent values that need to follow.

2020-03-06 – Begin the Glance Pane; add species select

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.

2020-03-06 – Big push on the Pokemon Details screen (+ types)

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.

2020-03-05 – Blank Details screen pops up; PokemonBox/Party made QML-friendly

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.

2020-03-03 – Various tweaks and minor fixes

649cf66 - Twilight

Small fixes in the Pokemon storage model and box view.

2020-03-03 – More fixes

f5f8c0f - Twilight

A round of fixes across the Pokemon box, storage box, player Pokemon and storage model.

2020-03-03 – More Pokemon screen cleanup and fixes

e22d083 - Twilight

Continued cleanup, fixes and improvements to the Pokemon storage screen and its models.

2020-03-03 – Full-featured Pokemon view

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.

2020-03-03 – Pokemon screen now workable (still rough)

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.

2020-03-03 – Prep a new screen (doesn't compile yet)

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.

2020-03-02 – Note Pokemart screen in the README

5b1b81a - Twilight

A one-line README update recording the Pokemart screen.

2020-03-02 – More PokemonStorage MVC

0eee25d - Twilight

Builds out the PokemonStorageModel (the model behind the storage boxes) with several hundred lines of logic.

2020-03-02 – Fix compile errors; first test run looks OK

5bd9304 - Twilight

Clears up compile errors from the in-progress Pokemon refactor; the first test run looks fine.

2020-03-02 – Begin modernizing the Pokemon code

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.

2020-03-02 – Rename "Party" to "Pokemon" on the home screen

578cc06 - Twilight

A one-word label change on the home menu.

2020-03-01 – Hacks to format money numbers correctly

1f8a4cb - Twilight

Reworks the money number formatting on the Pokemart screen to display correctly, which Twilight describes as somewhat hacky.