diff --git a/Makefile b/Makefile index 6f6b87c..bd4b2ea 100644 --- a/Makefile +++ b/Makefile @@ -4,12 +4,18 @@ BUILD_TYPES := release debug # defaults BUILD_LANG ?= english BUILD_TYPE ?= release -GIT_VERSION ?= $(shell git describe --tags --abbrev=0) -GIT_FULL ?= $(shell git describe --tags --always --dirty 2>/dev/null) +GIT_SUFFIX := $(shell git describe --tags --long --dirty | sed -E 's/^[^-]+-([0-9]+)-g[0-9a-f]+(-dirty)?$$/\1/') +GIT_FULL := $(shell git describe --tags --always --dirty 2>/dev/null) + +ifeq ($(GIT_SUFFIX),0) +GIT_VERSION = $(shell git describe --tags --abbrev=0) +else +GIT_VERSION = $(shell git describe --tags --abbrev=0)b +endif CMD_GOALS := $(filter-out build,$(MAKECMDGOALS)) -LANG_INDEX := $(shell echo $(BUILD_LANGS) | tr ' ' '\n' | nl -v0 | grep -w $(BUILD_LANG) | awk '{print $$1}') +LANG_INDEX := $(shell echo $(BUILD_LANGS) | tr ' ' '\n' | nl -v0 | grep -w $(BUILD_LANG) | awk '{print $$1 + 1}') TYPE_INDEX := $(shell echo $(BUILD_TYPES) | tr ' ' '\n' | nl -v0 | grep -w $(BUILD_TYPE) | awk '{print $$1}') CPPFLAGS += -DPTGB_BUILD_LANGUAGE=$(LANG_INDEX) @@ -19,16 +25,6 @@ CPPFLAGS += -DBUILD_INFO=\"$(GIT_FULL)\" CFLAGS += $(CPPFLAGS) CXXFLAGS += $(CPPFLAGS) -# detect language -ifneq ($(filter $(BUILD_LANGS),$(CMD_GOALS)),) -BUILD_LANG := $(filter $(BUILD_LANGS),$(CMD_GOALS)) -endif - -# detect build type -ifneq ($(filter $(BUILD_TYPES),$(CMD_GOALS)),) -BUILD_TYPE := $(filter $(BUILD_TYPES),$(CMD_GOALS)) -endif - #--------------------------------------------------------------------------------- .SUFFIXES: @@ -193,7 +189,7 @@ generate_data: CXXFLAGS= \ LDFLAGS= \ AR=ar \ - $(MAKE) -C tools/payload-generator + $(MAKE) -C tools/payload-generator BUILD_LANG=$(BUILD_LANG) BUILD_TYPE=$(BUILD_TYPE) @echo @echo "----------------------------------------------------------------" @echo diff --git a/include/debug_mode.h b/include/debug_mode.h index d5928be..5c14c87 100644 --- a/include/debug_mode.h +++ b/include/debug_mode.h @@ -32,6 +32,8 @@ #define DONT_TRANSFER_POKEMON_AT_INDEX_X (false && DEBUG_MODE) #define POKEMON_INDEX_TO_SKIP 5 #define ENABLE_TEXT_DEBUG_SCREEN (true && DEBUG_MODE) +#define DEBUG_PAYLOADS (false && DEBUG_MODE) + #define DEBUG_GAME EMERALD_ID #define DEBUG_VERS VERS_1_0 diff --git a/text_helper/main.py b/text_helper/main.py index 527ef56..bf5313d 100755 --- a/text_helper/main.py +++ b/text_helper/main.py @@ -507,9 +507,11 @@ def generate_cpp_file(): for section in textSections: cppFile.write("#include \"" + section.upper() + "_" + lang.name.lower() + "_lz10_bin.h\"\n") - for lang in Languages: - cppFile.write(f"\n#if PTGB_BUILD_LANGUAGE == {lang.value + 1}\n") - cppFile.write("const u8* get_compressed_text_table(int table_index)\n") + + cppFile.write("\nconst u8* get_compressed_text_table(int table_index)\n") + + for i, lang in enumerate(Languages): + cppFile.write(f"\n#{"el" if i > 0 else ""}if PTGB_BUILD_LANGUAGE == {lang.value + 1}\n") cppFile.write("{\n") cppFile.write("\tswitch (table_index)\n\t{\n") for section in textSections: @@ -519,8 +521,8 @@ def generate_cpp_file(): cppFile.write("\t\treturn " + section + "_" + lang.name.lower() + "_lz10_bin;\n") cppFile.write("\t\tbreak;\n") cppFile.write("\t}\n") - cppFile.write("}\n\n") - cppFile.write(f"#endif\n\n\n") + cppFile.write("}\n") + cppFile.write(f"#else\n#error \"Unsupported PTGB_BUILD_LANGUAGE\"\n#endif") def output_json_file(): print("\tOutputting json file") @@ -566,7 +568,11 @@ class Font: def build_h(): print("Building font.h") with open(fontDir + "/include/fonts.h", 'w') as f: - f.write(f'''#include "debug_mode.h" + f.write(f'''#ifndef PTGB_BUILD_LANGUAGE +#error "PTGB_BUILD_LANGUAGE not defined" +#endif + +#include "debug_mode.h" #include "pokemon_data.h" #ifndef __FONTS_H__ diff --git a/tools/payload-generator/Makefile b/tools/payload-generator/Makefile index a5dcb98..a1de7be 100644 --- a/tools/payload-generator/Makefile +++ b/tools/payload-generator/Makefile @@ -1,5 +1,27 @@ + +BUILD_LANGS := japanese english french german italian spanish-eu spanish-la +BUILD_TYPES := release debug + +# defaults +BUILD_LANG ?= english +BUILD_TYPE ?= release +GIT_VERSION ?= $(shell git describe --tags --abbrev=0) +GIT_FULL ?= $(shell git describe --tags --always --dirty 2>/dev/null) + +CMD_GOALS := $(filter-out build,$(MAKECMDGOALS)) + +LANG_INDEX := $(shell echo $(BUILD_LANGS) | tr ' ' '\n' | nl -v0 | grep -w $(BUILD_LANG) | awk '{print $$1 + 1}') +TYPE_INDEX := $(shell echo $(BUILD_TYPES) | tr ' ' '\n' | nl -v0 | grep -w $(BUILD_TYPE) | awk '{print $$1}') + +CPPFLAGS += -DPTGB_BUILD_LANGUAGE=$(LANG_INDEX) +CPPFLAGS += -DDEBUG_MODE=$(TYPE_INDEX) +CPPFLAGS += -DBUILD_INFO=\"$(GIT_FULL)\" + +CFLAGS += $(CPPFLAGS) +CXXFLAGS += $(CPPFLAGS) + # # Compiler flags -CXXFLAGS := -std=c++20 -fno-rtti -fno-exceptions -fno-unwind-tables -Wall -Wextra -I $(CURDIR)/include -g +CXXFLAGS += -std=c++20 -fno-rtti -fno-exceptions -fno-unwind-tables -Wall -Wextra -I $(CURDIR)/include -g # Source files directory SRC_DIR := ./src diff --git a/tools/payload-generator/src/payloads/payload_builder.cpp b/tools/payload-generator/src/payloads/payload_builder.cpp index 4fbe2cf..f1ee5c5 100644 --- a/tools/payload-generator/src/payloads/payload_builder.cpp +++ b/tools/payload-generator/src/payloads/payload_builder.cpp @@ -5,7 +5,6 @@ #include #define DATA_LOC (SHOW_DATA_PACKETS ? curr_rom.transferStringLocation : curr_rom.wEnemyMonSpecies) -#define DEBUG_PAYLOADS (false && DEBUG_MODE) void init_payload(byte *payload_buffer, const GB_ROM &curr_rom, int type, bool debug) {