refactor(editor): extract parseHexOrError + hoist parseHex

parseHex was a static helper in cli_gen_texture.cpp. 81 sites
across the file each open-coded the same 6-line "if !parseHex
then fprintf 'X is not a valid hex color' and return 1" block.

Hoist parseHex into cli_png_emit.hpp as inline (header-only,
non-trivial but only called once per handler at startup so
inlining cost is negligible). Add inline parseHexOrError that
wraps it with the canonical error message.

Each call site collapses from 6 lines to 1:

  if (!parseHexOrError(stoneHex, sr, sg, sb,
                       "gen-texture-cobble")) return 1;

Bonus: 29 compound-color sites that used a single
"one of the hex colors is invalid" message are split into
separate parseHexOrError calls per color — now the error
identifies WHICH color failed instead of just saying
"one of them".

cli_gen_texture.cpp drops by ~320 lines (4877 → 4557). Output
bytes verified identical for cobble / mosaic / stained-glass.
Error message contract improved: 'NOTHEX' now reports
"'NOTHEX' is not a valid hex color" everywhere instead of
the generic compound message.
This commit is contained in:
Kelsi 2026-05-09 12:06:49 -07:00
parent 4cb1c33335
commit e1e505984f
2 changed files with 174 additions and 530 deletions

File diff suppressed because it is too large Load diff