Skip to content

Split 'Race Records' into several different patchers #494

@Infernio

Description

@Infernio

Just formalizing what I've been planning to do for a while now. Sub-issue of #312.

TL;DR

The Race patcher is far too complex for a single patcher. It's more complex than Import Actors, and that's split into four patchers!
Splitting it is necessary if we want to have any chance of moving it to newer games.

Details

My original plan was to split it into three patchers - Import Races, Tweak Races and Race Fixer/NPC Fixer (not sure about that name).
However, my attempt at splitting it failed miserably, because I didn't properly understand how it works.

It turns out the CBash version is already nicely split into five patchers, they've just been hackily glued together:

  • Import Races - simple preserving importer, handles Body-F, Body-M, Body-Size-F, Body-Size-M, Hair, R.Attributes-F, R.Attributes-M, R.Description, R.Ears, R.Head, R.Mouth, R.Skills, R.Teeth, Voice-F and Voice-M
  • Import Races: Eyes - this still does too much, it merges eyes via the Eyes tag but also does all the crazy eye/hair fixing
  • Import Races: Relations - merger/preserver, handles R.Relations, very similar to Import Relations, maybe we could invent an R.Derel tag too
  • Import Races: Spells - merger/preserver, handles R.AddSpells and R.ChangeSpells
  • Tweak Races - houses the races tweaks (e.g. Bigger Nords and Orcs)

Notably absent is the NPC fixing functionality of the PBash version, CBash just doesn't seem to have that.

Final split design, arrived at after one attempt that failed due to regressions:

  • Import Races - same as above
  • Import Races: Relations - same as above
  • Import Races: Spells - same as above
  • Tweak Races - same as above
  • Eye Checker - the googly eye filtering
  • Race Checker - the hair/eye sorting
  • NPC Checker - the NPC eye/hair fixing

Metadata

Metadata

Assignees

Labels

A-patchersArea: Patchers (Everything in the patcher package)C-todoCategory: TODO, specific item that needs to be accomplished in working towards a goalM-relnotesMisc: Issue should be listed in the version history for its milestone

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions