mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Factor out usage_exit into into tools/common.h
This commit is contained in:
parent
2691c9f5c8
commit
be7a5e09b5
@ -11,7 +11,19 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
|
||||||
#define error_exit(...) exit((fprintf(stderr, __VA_ARGS__), 1))
|
#ifndef PROGRAM_NAME
|
||||||
|
#error Define PROGRAM_NAME before including common.h!
|
||||||
|
#endif
|
||||||
|
#ifndef USAGE_OPTS
|
||||||
|
#error Define USAGE_OPTS before including common.h!
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define error_exit(...) exit((fprintf(stderr, PROGRAM_NAME ": " __VA_ARGS__), 1))
|
||||||
|
|
||||||
|
void usage_exit(int status) {
|
||||||
|
fprintf(stderr, "Usage: " PROGRAM_NAME " " USAGE_OPTS "\n");
|
||||||
|
exit(status);
|
||||||
|
}
|
||||||
|
|
||||||
int getopt_long_index;
|
int getopt_long_index;
|
||||||
#define getopt_long(argc, argv, optstring, longopts) getopt_long(argc, argv, optstring, longopts, &getopt_long_index)
|
#define getopt_long(argc, argv, optstring, longopts) getopt_long(argc, argv, optstring, longopts, &getopt_long_index)
|
||||||
|
18
tools/gfx.c
18
tools/gfx.c
@ -1,8 +1,7 @@
|
|||||||
#include "common.h"
|
#define PROGRAM_NAME "gfx"
|
||||||
|
#define USAGE_OPTS "[-h|--help] [--trim-whitespace] [--remove-whitespace] [--interleave] [--remove-duplicates [--keep-whitespace]] [--remove-xflip] [--remove-yflip] [--preserve indexes] [-d|--depth depth] [-p|--png filename.png] [-o|--out outfile] infile"
|
||||||
|
|
||||||
void usage(void) {
|
#include "common.h"
|
||||||
fprintf(stderr, "Usage: gfx [-h|--help] [--trim-whitespace] [--remove-whitespace] [--interleave] [--remove-duplicates [--keep-whitespace]] [--remove-xflip] [--remove-yflip] [--preserve indexes] [-d|--depth depth] [-p|--png filename.png] [-o|--out outfile] infile\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Options {
|
struct Options {
|
||||||
bool trim_whitespace;
|
bool trim_whitespace;
|
||||||
@ -76,12 +75,10 @@ void parse_args(int argc, char *argv[]) {
|
|||||||
options.outfile = optarg;
|
options.outfile = optarg;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage();
|
usage_exit(0);
|
||||||
exit(0);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -128,7 +125,7 @@ void trim_whitespace(struct Graphic *graphic) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_tile_size() {
|
int get_tile_size(void) {
|
||||||
return options.depth * (options.interleave ? 16 : 8);
|
return options.depth * (options.interleave ? 16 : 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,8 +267,7 @@ int main(int argc, char *argv[]) {
|
|||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (argc < 1) {
|
if (argc < 1) {
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Graphic graphic;
|
struct Graphic graphic;
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
#include "common.h"
|
#define PROGRAM_NAME "png_dimensions"
|
||||||
|
#define USAGE_OPTS "front.png front.dimensions"
|
||||||
|
|
||||||
void usage() {
|
#include "common.h"
|
||||||
fputs("Usage: png_dimensions front.png front.dimensions\n", stderr);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t read_png_dimensions(const char *filename) {
|
uint8_t read_png_dimensions(const char *filename) {
|
||||||
uint32_t width_px = read_png_width_verbose(filename);
|
uint32_t width_px = read_png_width_verbose(filename);
|
||||||
@ -15,8 +14,7 @@ uint8_t read_png_dimensions(const char *filename) {
|
|||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
if (argc < 3) {
|
if (argc < 3) {
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t output_byte = read_png_dimensions(argv[1]);
|
uint8_t output_byte = read_png_dimensions(argv[1]);
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
#define PROGRAM_NAME "pokemon_animation"
|
||||||
|
#define USAGE_OPTS "[-h|--help] [-b|--bitmasks] [-f|--frames] front.animated.tilemap front.dimensions"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
struct Options {
|
struct Options {
|
||||||
@ -5,10 +8,6 @@ struct Options {
|
|||||||
bool use_frames;
|
bool use_frames;
|
||||||
};
|
};
|
||||||
|
|
||||||
void usage() {
|
|
||||||
fputs("Usage: pokemon_animation [-b|--bitmasks] [-f|--frames] front.animated.tilemap front.dimensions\n", stderr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void parse_args(int argc, char *argv[], struct Options *options) {
|
void parse_args(int argc, char *argv[], struct Options *options) {
|
||||||
struct option long_options[] = {
|
struct option long_options[] = {
|
||||||
{"bitmasks", no_argument, 0, 'b'},
|
{"bitmasks", no_argument, 0, 'b'},
|
||||||
@ -25,12 +24,10 @@ void parse_args(int argc, char *argv[], struct Options *options) {
|
|||||||
options->use_frames = true;
|
options->use_frames = true;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage();
|
usage_exit(0);
|
||||||
exit(0);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -175,8 +172,7 @@ int main(int argc, char *argv[]) {
|
|||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int width;
|
int width;
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
#define PROGRAM_NAME "pokemon_animation_graphics"
|
||||||
|
#define USAGE_OPTS "[-h|--help] [-o|--output front.animated.2bpp] [-t|--tilemap front.animated.tilemap] [--girafarig] front.2bpp front.dimensions"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
struct Options {
|
struct Options {
|
||||||
@ -6,10 +9,6 @@ struct Options {
|
|||||||
bool girafarig;
|
bool girafarig;
|
||||||
};
|
};
|
||||||
|
|
||||||
void usage() {
|
|
||||||
fputs("Usage: pokemon_animation_graphics [-h|--help] [-o|--output front.animated.2bpp] [-t|--tilemap front.animated.tilemap] [--girafarig] front.2bpp front.dimensions\n", stderr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void parse_args(int argc, char *argv[], struct Options *options) {
|
void parse_args(int argc, char *argv[], struct Options *options) {
|
||||||
struct option long_options[] = {
|
struct option long_options[] = {
|
||||||
{"output", required_argument, 0, 'o'},
|
{"output", required_argument, 0, 'o'},
|
||||||
@ -30,12 +29,10 @@ void parse_args(int argc, char *argv[], struct Options *options) {
|
|||||||
options->girafarig = true;
|
options->girafarig = true;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage();
|
usage_exit(0);
|
||||||
exit(0);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -154,8 +151,7 @@ int main(int argc, char *argv[]) {
|
|||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int width;
|
int width;
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
#include "common.h"
|
#define PROGRAM_NAME "scan_includes"
|
||||||
|
#define USAGE_OPTS "[-h|--help] [-s|--strict] filename.asm"
|
||||||
|
|
||||||
void usage() {
|
#include "common.h"
|
||||||
fputs("Usage: scan_includes [-h|--help] [-s|--strict] filename.asm\n", stderr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void parse_args(int argc, char *argv[], bool *strict) {
|
void parse_args(int argc, char *argv[], bool *strict) {
|
||||||
struct option long_options[] = {
|
struct option long_options[] = {
|
||||||
@ -16,12 +15,10 @@ void parse_args(int argc, char *argv[], bool *strict) {
|
|||||||
*strict = true;
|
*strict = true;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage();
|
usage_exit(0);
|
||||||
exit(0);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,8 +92,7 @@ int main(int argc, char *argv[]) {
|
|||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (argc < 1) {
|
if (argc < 1) {
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scan_file(argv[0], strict);
|
scan_file(argv[0], strict);
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
|
#define PROGRAM_NAME "stadium"
|
||||||
|
#define USAGE_OPTS "[-h|--help] [-b|--base us|eu|dbg] pokecrystal.gbc"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
enum Base { BASE_NONE, BASE_US, BASE_EU, BASE_DEBUG };
|
enum Base { BASE_NONE, BASE_US, BASE_EU, BASE_DEBUG };
|
||||||
|
|
||||||
void usage() {
|
|
||||||
fputs("Usage: stadium [-h|--help] [-b|--base us|eu|dbg] pokecrystal.gbc\n", stderr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void parse_args(int argc, char *argv[], enum Base *base) {
|
void parse_args(int argc, char *argv[], enum Base *base) {
|
||||||
struct option long_options[] = {
|
struct option long_options[] = {
|
||||||
{"base", required_argument, 0, 'b'},
|
{"base", required_argument, 0, 'b'},
|
||||||
@ -21,12 +20,10 @@ void parse_args(int argc, char *argv[], enum Base *base) {
|
|||||||
BASE_NONE;
|
BASE_NONE;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage();
|
usage_exit(0);
|
||||||
exit(0);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,8 +141,7 @@ int main(int argc, char *argv[]) {
|
|||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (argc < 1) {
|
if (argc < 1) {
|
||||||
usage();
|
usage_exit(1);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char *filename = argv[0];
|
char *filename = argv[0];
|
||||||
|
Loading…
Reference in New Issue
Block a user