diff options
author | red031000 <rubenru09@aol.com> | 2020-06-07 16:46:28 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-06-07 16:46:28 +0100 |
commit | 28bffae5bc2b497329e04dbae842d3b6fe3024d8 (patch) | |
tree | 9a0d2efca7696d6c3eb3680b22af2fcf0c8c6f1a /tools/nitrogfx/main.c | |
parent | cc67cafa094351a033f295d054380acc63fddd78 (diff) |
ncpr palette support
Diffstat (limited to 'tools/nitrogfx/main.c')
-rw-r--r-- | tools/nitrogfx/main.c | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/tools/nitrogfx/main.c b/tools/nitrogfx/main.c index 07083234..1c7fc1e1 100644 --- a/tools/nitrogfx/main.c +++ b/tools/nitrogfx/main.c @@ -371,7 +371,7 @@ void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc, WriteGbaPalette(outputPath, &palette); } -void HandleJascToNtrPaletteCommand(char *inputPath, char *outputPath, int argc, char **argv) +void HandleJascToNtrNCLRPaletteCommand(char *inputPath, char *outputPath, int argc, char **argv) { int numColors = 0; @@ -405,7 +405,44 @@ void HandleJascToNtrPaletteCommand(char *inputPath, char *outputPath, int argc, if (numColors != 0) palette.numColors = numColors; - WriteNtrPalette(outputPath, &palette); + WriteNtrNCLRPalette(outputPath, &palette); +} + +void HandleJascToNtrNCPRPaletteCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int numColors = 0; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-num_colors") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No number of colors following \"-num_colors\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &numColors)) + FATAL_ERROR("Failed to parse number of colors.\n"); + + if (numColors < 1) + FATAL_ERROR("Number of colors must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + struct Palette palette; + + ReadJascPalette(inputPath, &palette); + + if (numColors != 0) + palette.numColors = numColors; + + WriteNtrNCPRPalette(outputPath, &palette); } void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) @@ -656,8 +693,10 @@ int main(int argc, char **argv) { "png", "gbapal", HandlePngToGbaPaletteCommand }, { "gbapal", "pal", HandleGbaToJascPaletteCommand }, { "nclr", "pal", HandleNtrToJascPaletteCommand }, + { "ncpr", "pal", HandleNtrToJascPaletteCommand }, { "pal", "gbapal", HandleJascToGbaPaletteCommand }, - { "pal", "nclr", HandleJascToNtrPaletteCommand }, + { "pal", "nclr", HandleJascToNtrNCLRPaletteCommand }, + { "pal", "ncpr", HandleJascToNtrNCPRPaletteCommand }, { "latfont", "png", HandleLatinFontToPngCommand }, { "png", "latfont", HandlePngToLatinFontCommand }, { "hwjpnfont", "png", HandleHalfwidthJapaneseFontToPngCommand }, |