From 9d7b581310eb500910a4cf89e9f2a317eee40ec8 Mon Sep 17 00:00:00 2001 From: Rangi Date: Fri, 14 Oct 2022 16:21:42 -0400 Subject: Add `COUNTOF` macro to tools/common.h --- tools/common.h | 2 ++ tools/make_patch.c | 2 +- tools/pkmncompress.c | 20 ++++++++++---------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/tools/common.h b/tools/common.h index f04e917b..2c690423 100644 --- a/tools/common.h +++ b/tools/common.h @@ -19,6 +19,8 @@ #error Define USAGE_OPTS before including common.h! #endif +#define COUNTOF(...) (sizeof(__VA_ARGS__) / sizeof(*(__VA_ARGS__))) + #define error_exit(...) exit((fprintf(stderr, PROGRAM_NAME ": " __VA_ARGS__), 1)) noreturn void usage_exit(int status) { diff --git a/tools/make_patch.c b/tools/make_patch.c index 71c6b455..ecfd67b2 100644 --- a/tools/make_patch.c +++ b/tools/make_patch.c @@ -165,7 +165,7 @@ int strfind(const char *s, const char *list[], int count) { return -1; } -#define vstrfind(s, ...) strfind(s, (const char *[]){__VA_ARGS__}, sizeof (const char *[]){__VA_ARGS__} / sizeof(const char *)) +#define vstrfind(s, ...) strfind(s, (const char *[]){__VA_ARGS__}, COUNTOF((const char *[]){__VA_ARGS__})) int parse_arg_value(const char *arg, bool absolute, const struct Symbol *symbols, const char *patch_name) { // Comparison operators for "ConditionValueB" evaluate to their particular values diff --git a/tools/pkmncompress.c b/tools/pkmncompress.c index f8899b1e..0e20df4f 100644 --- a/tools/pkmncompress.c +++ b/tools/pkmncompress.c @@ -32,7 +32,7 @@ void write_bit(int bit) { } void compress_plane(uint8_t *plane, int width) { - static int nybble_lookup[2][0x10] = { + static int gray_codes[2][0x10] = { {0x0, 0x1, 0x3, 0x2, 0x6, 0x7, 0x5, 0x4, 0xC, 0xD, 0xF, 0xE, 0xA, 0xB, 0x9, 0x8}, {0x8, 0x9, 0xB, 0xA, 0xE, 0xF, 0xD, 0xC, 0x4, 0x5, 0x7, 0x6, 0x2, 0x3, 0x1, 0x0}, }; @@ -44,10 +44,10 @@ void compress_plane(uint8_t *plane, int width) { } int j = i / width + m * width * 8; int nybble_hi = (plane[j] >> 4) & 0xF; - int code_1 = nybble_lookup[nybble_lo & 1][nybble_hi]; + int code_hi = gray_codes[nybble_lo & 1][nybble_hi]; nybble_lo = plane[j] & 0xF; - int code_2 = nybble_lookup[nybble_hi & 1][nybble_lo]; - plane[j] = (code_1 << 4) | code_2; + int code_lo = gray_codes[nybble_hi & 1][nybble_lo]; + plane[j] = (code_hi << 4) | code_lo; } } @@ -105,7 +105,7 @@ int interpret_compress(uint8_t *plane1, uint8_t *plane2, int mode, int order, in } cur_bit = 7; cur_byte = 0; - memset(compressed, 0, sizeof(compressed) / sizeof(*compressed)); + memset(compressed, 0, COUNTOF(compressed)); compressed[0] = (width << 4) | width; write_bit(order); uint8_t bit_groups[0x1000] = {0}; @@ -113,7 +113,7 @@ int interpret_compress(uint8_t *plane1, uint8_t *plane2, int mode, int order, in for (int plane = 0; plane < 2; plane++) { int type = 0; int nums = 0; - memset(bit_groups, 0, sizeof(bit_groups) / sizeof(*bit_groups)); + memset(bit_groups, 0, COUNTOF(bit_groups)); for (int x = 0; x < width; x++) { for (int bit = 0; bit < 8; bit += 2) { for (int y = 0, byte = x * width * 8; y < width * 8; y++, byte++) { @@ -129,7 +129,7 @@ int interpret_compress(uint8_t *plane1, uint8_t *plane2, int mode, int order, in write_bit(0); } type = 1; - memset(bit_groups, 0, sizeof(bit_groups) / sizeof(*bit_groups)); + memset(bit_groups, 0, COUNTOF(bit_groups)); index = 0; } else { if (!type) { @@ -171,7 +171,7 @@ int compress(uint8_t *data, int width) { plane1[i] = data[i * 2]; plane2[i] = data[i * 2 + 1]; } - uint8_t current[sizeof(compressed) / sizeof(*compressed)] = {0}; + uint8_t current[COUNTOF(compressed)] = {0}; int compressed_size = -1; for (int mode = 1; mode < 4; mode++) { for (int order = 0; order < 2; order++) { @@ -181,12 +181,12 @@ int compress(uint8_t *data, int width) { int new_size = interpret_compress(plane1, plane2, mode, order, width); if (compressed_size == -1 || new_size < compressed_size) { compressed_size = new_size; - memset(current, 0, sizeof(current) / sizeof(*current)); + memset(current, 0, COUNTOF(current)); memcpy(current, compressed, compressed_size / 8); } } } - memset(compressed, 0, sizeof(compressed) / sizeof(*compressed)); + memset(compressed, 0, COUNTOF(compressed)); memcpy(compressed, current, compressed_size / 8); free(plane1); free(plane2); -- cgit v1.3.1-sl0p From 6bb3d82e7a11d2fbdada3e5a57e51d9ec7fff142 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Tue, 25 Oct 2022 18:02:29 +0200 Subject: Fix preinclude dependencies From pokecrystal: - 0425018d1ce5b3b726e3cd83f59f14ead9171c92 - 8b429e2a545e87407a3b8c7b92f7ceafc455e390 --- Makefile | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 39176c78..215aa768 100644 --- a/Makefile +++ b/Makefile @@ -103,20 +103,21 @@ $(pokeblue_vc_obj): RGBASMFLAGS += -D _BLUE -D _BLUE_VC rgbdscheck.o: rgbdscheck.asm $(RGBASM) -o $@ $< +# Build tools when building the rom. +# This has to happen before the rules are processed, since that's when scan_includes is run. +ifeq (,$(filter clean tidy tools,$(MAKECMDGOALS))) + +$(info $(shell $(MAKE) -C tools)) + # The dep rules have to be explicit or else missing files won't be reported. # As a side effect, they're evaluated immediately instead of when the rule is invoked. # It doesn't look like $(shell) can be deferred so there might not be a better way. +preinclude_deps := includes.asm $(shell tools/scan_includes includes.asm) define DEP -$1: $2 $$(shell tools/scan_includes $2) | includes.asm rgbdscheck.o +$1: $2 $$(shell tools/scan_includes $2) $(preinclude_deps) | rgbdscheck.o $$(RGBASM) $$(RGBASMFLAGS) -o $$@ $$< endef -# Build tools when building the rom. -# This has to happen before the rules are processed, since that's when scan_includes is run. -ifeq (,$(filter clean tidy tools,$(MAKECMDGOALS))) - -$(info $(shell $(MAKE) -C tools)) - # Dependencies for objects (drop _red and _blue from asm file basenames) $(foreach obj, $(pokered_obj), $(eval $(call DEP,$(obj),$(obj:_red.o=.asm)))) $(foreach obj, $(pokeblue_obj), $(eval $(call DEP,$(obj),$(obj:_blue.o=.asm)))) @@ -125,7 +126,7 @@ $(foreach obj, $(pokered_vc_obj), $(eval $(call DEP,$(obj),$(obj:_red_vc.o=.asm) $(foreach obj, $(pokeblue_vc_obj), $(eval $(call DEP,$(obj),$(obj:_blue_vc.o=.asm)))) # Dependencies for VC files that need to run scan_includes -%.constants.sym: %.constants.asm $(shell tools/scan_includes %.constants.asm) | includes.asm rgbdscheck.o +%.constants.sym: %.constants.asm $(shell tools/scan_includes %.constants.asm) $(preinclude_deps) | rgbdscheck.o $(RGBASM) $(RGBASMFLAGS) $< > $@ endif -- cgit v1.3.1-sl0p From 53805947c3bc30c491b4f2a820c27e152dfa4b89 Mon Sep 17 00:00:00 2001 From: Rangi Date: Sat, 3 Dec 2022 11:11:13 -0500 Subject: Use rgbds 0.6.1 (0.6.0 also still works) --- .github/workflows/main.yml | 2 +- INSTALL.md | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 805aea49..9b3efa30 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@master with: path: rgbds - ref: v0.6.0 + ref: v0.6.1 repository: gbdev/rgbds - name: Install rgbds diff --git a/INSTALL.md b/INSTALL.md index c8965f40..e0204866 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -42,9 +42,9 @@ Run setup and leave the default settings. At the "**Select Packages**" step, cho Double click on the text that says "**Skip**" next to each package to select the most recent version to install. -Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.6.0**. +Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.6.1**. -**Note:** If you already have an older rgbds, you will need to update to 0.6.0. Ignore this if you have never installed rgbds before. If a version newer than 0.6.0 does not work, try downloading 0.6.0. +**Note:** If you already have an installed rgbds older than 0.6.0, you will need to update to 0.6.0 or 0.6.1. Ignore this if you have never installed rgbds before. If a version newer than 0.6.1 does not work, try downloading 0.6.1. Now open the **Cygwin terminal** and enter the following commands. @@ -67,7 +67,7 @@ Install [**Homebrew**](https://brew.sh/). Follow the official instructions. Open **Terminal** and prepare to enter commands. -Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.6.0**. +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.6.1**. Now you're ready to [build **pokered**](#build-pokered). @@ -84,7 +84,7 @@ To install the software required for **pokered**: sudo apt-get install make gcc git ``` -Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source. +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source. ### OpenSUSE @@ -94,7 +94,7 @@ To install the software required for **pokered**: sudo zypper install make gcc git ``` -Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source. +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source. ### Arch Linux @@ -104,9 +104,9 @@ To install the software required for **pokered**: sudo pacman -S make gcc git ``` -Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for Arch Linux to install **rgbds 0.6.0**. +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for Arch Linux to install **rgbds 0.6.1**. -If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source. +If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source. ### Termux @@ -122,7 +122,7 @@ To install **rgbds**: sudo apt install rgbds ``` -If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source. +If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source. ### Other distros @@ -133,7 +133,7 @@ If your distro is not listed here, try to find the required software in its repo - `git` - `rgbds` -If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source. +If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source. Now you're ready to [build **pokered**](#build-pokered). @@ -155,8 +155,8 @@ make ### Build with a local rgbds version -If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.6.0 globally. Instead, you can put its files in a directory within pokered, such as `pokered/rgbds-0.6.0/`. Then specify it when you run `make`: +If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.6.1 globally. Instead, you can put its files in a directory within pokered, such as `pokered/rgbds-0.6.1/`. Then specify it when you run `make`: ```bash -make RGBDS=rgbds-0.6.0/ +make RGBDS=rgbds-0.6.1/ ``` -- cgit v1.3.1-sl0p From 20ebfd079f1331af5cc4f0edea35163b5b35612d Mon Sep 17 00:00:00 2001 From: vulcandth Date: Wed, 28 Dec 2022 21:47:27 -0600 Subject: Add table assertion to `TrainerDataPointers` (#403) * Add table assertion to `TrainerDataPointers` * Add table assertion to `TrainerNamePointers` --- data/trainers/name_pointers.asm | 2 ++ data/trainers/parties.asm | 2 ++ 2 files changed, 4 insertions(+) diff --git a/data/trainers/name_pointers.asm b/data/trainers/name_pointers.asm index 6317f54a..914fe9d4 100644 --- a/data/trainers/name_pointers.asm +++ b/data/trainers/name_pointers.asm @@ -2,6 +2,7 @@ TrainerNamePointers: ; These are only used for trainers' defeat speeches. ; They were originally shortened variants of the trainer class names ; in the Japanese versions, but are now redundant with TrainerNames. + table_width 2, TrainerNamePointers dw .YoungsterName dw .BugCatcherName dw .LassName @@ -49,6 +50,7 @@ TrainerNamePointers: dw wTrainerName dw wTrainerName dw wTrainerName + assert_table_length NUM_TRAINERS .YoungsterName: db "YOUNGSTER@" .BugCatcherName: db "BUG CATCHER@" diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index dddcf653..b2ad5e08 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -1,4 +1,5 @@ TrainerDataPointers: + table_width 2, TrainerDataPointers dw YoungsterData dw BugCatcherData dw LassData @@ -46,6 +47,7 @@ TrainerDataPointers: dw ChannelerData dw AgathaData dw LanceData + assert_table_length NUM_TRAINERS ; if first byte != $FF, then ; first byte is level (of all pokemon on this team) -- cgit v1.3.1-sl0p From e076ee0a40b2a21183e2cc535519e64b706b5407 Mon Sep 17 00:00:00 2001 From: dannye <33dannye@gmail.com> Date: Wed, 28 Dec 2022 21:48:55 -0600 Subject: Add list assertion to TrainerNames --- data/trainers/names.asm | 96 +++++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/data/trainers/names.asm b/data/trainers/names.asm index d8e1f550..dc6ded77 100644 --- a/data/trainers/names.asm +++ b/data/trainers/names.asm @@ -1,48 +1,50 @@ TrainerNames:: - db "YOUNGSTER@" - db "BUG CATCHER@" - db "LASS@" - db "SAILOR@" - db "JR.TRAINER♂@" - db "JR.TRAINER♀@" - db "POKéMANIAC@" - db "SUPER NERD@" - db "HIKER@" - db "BIKER@" - db "BURGLAR@" - db "ENGINEER@" - db "JUGGLER@" - db "FISHERMAN@" - db "SWIMMER@" - db "CUE BALL@" - db "GAMBLER@" - db "BEAUTY@" - db "PSYCHIC@" - db "ROCKER@" - db "JUGGLER@" - db "TAMER@" - db "BIRD KEEPER@" - db "BLACKBELT@" - db "RIVAL1@" - db "PROF.OAK@" - db "CHIEF@" - db "SCIENTIST@" - db "GIOVANNI@" - db "ROCKET@" - db "COOLTRAINER♂@" - db "COOLTRAINER♀@" - db "BRUNO@" - db "BROCK@" - db "MISTY@" - db "LT.SURGE@" - db "ERIKA@" - db "KOGA@" - db "BLAINE@" - db "SABRINA@" - db "GENTLEMAN@" - db "RIVAL2@" - db "RIVAL3@" - db "LORELEI@" - db "CHANNELER@" - db "AGATHA@" - db "LANCE@" + list_start TrainerNames + li "YOUNGSTER" + li "BUG CATCHER" + li "LASS" + li "SAILOR" + li "JR.TRAINER♂" + li "JR.TRAINER♀" + li "POKéMANIAC" + li "SUPER NERD" + li "HIKER" + li "BIKER" + li "BURGLAR" + li "ENGINEER" + li "JUGGLER" + li "FISHERMAN" + li "SWIMMER" + li "CUE BALL" + li "GAMBLER" + li "BEAUTY" + li "PSYCHIC" + li "ROCKER" + li "JUGGLER" + li "TAMER" + li "BIRD KEEPER" + li "BLACKBELT" + li "RIVAL1" + li "PROF.OAK" + li "CHIEF" + li "SCIENTIST" + li "GIOVANNI" + li "ROCKET" + li "COOLTRAINER♂" + li "COOLTRAINER♀" + li "BRUNO" + li "BROCK" + li "MISTY" + li "LT.SURGE" + li "ERIKA" + li "KOGA" + li "BLAINE" + li "SABRINA" + li "GENTLEMAN" + li "RIVAL2" + li "RIVAL3" + li "LORELEI" + li "CHANNELER" + li "AGATHA" + li "LANCE" + assert_list_length NUM_TRAINERS -- cgit v1.3.1-sl0p From 5c4795d5bc19edd872adf7b17d0c6264eecd6459 Mon Sep 17 00:00:00 2001 From: SatoMew Date: Sun, 26 Feb 2023 16:14:21 +0000 Subject: Complete and improve debug name labels (#408) --- engine/debug/debug_menu.asm | 10 ++++++---- engine/menus/main_menu.asm | 1 + engine/movie/oak_speech/oak_speech.asm | 10 ++++++---- engine/movie/title.asm | 23 ++++++++++++++--------- home/init.asm | 2 +- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm index f2297129..907acb8a 100644 --- a/engine/debug/debug_menu.asm +++ b/engine/debug/debug_menu.asm @@ -2,12 +2,14 @@ DebugMenu: IF DEF(_DEBUG) call ClearScreen - ld hl, DebugPlayerName + ; These debug names are used for TestBattle. + ; StartNewGameDebug uses the debug names from PrepareOakSpeech. + ld hl, DebugBattlePlayerName ld de, wPlayerName ld bc, NAME_LENGTH call CopyData - ld hl, DebugRivalName + ld hl, DebugBattleRivalName ld de, wRivalName ld bc, NAME_LENGTH call CopyData @@ -57,10 +59,10 @@ IF DEF(_DEBUG) set 1, [hl] jp StartNewGameDebug -DebugPlayerName: +DebugBattlePlayerName: db "Tom@" -DebugRivalName: +DebugBattleRivalName: db "Juerry@" DebugMenuOptions: diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm index d94c65eb..024def28 100644 --- a/engine/menus/main_menu.asm +++ b/engine/menus/main_menu.asm @@ -309,6 +309,7 @@ LinkCanceledText: StartNewGame: ld hl, wd732 res 1, [hl] + ; fallthrough StartNewGameDebug: call OakSpeech ld c, 20 diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm index 93cdfaab..3a08372d 100644 --- a/engine/movie/oak_speech/oak_speech.asm +++ b/engine/movie/oak_speech/oak_speech.asm @@ -1,4 +1,4 @@ -SetDefaultNames: +PrepareOakSpeech: ld a, [wLetterPrintingDelayFlags] push af ld a, [wOptions] @@ -22,11 +22,13 @@ SetDefaultNames: ld a, [wOptionsInitialized] and a call z, InitOptions - ld hl, NintenText + ; These debug names are used for StartNewGameDebug. + ; TestBattle uses the debug names from DebugMenu. + ld hl, DebugNewGamePlayerName ld de, wPlayerName ld bc, NAME_LENGTH call CopyData - ld hl, SonyText + ld hl, DebugNewGameRivalName ld de, wRivalName ld bc, NAME_LENGTH jp CopyData @@ -40,7 +42,7 @@ OakSpeech: call PlayMusic call ClearScreen call LoadTextBoxTilePatterns - call SetDefaultNames + call PrepareOakSpeech predef InitPlayerData2 ld hl, wNumBoxItems ld a, POTION diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 1ee0cc25..ad5f6ebf 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -1,15 +1,17 @@ -; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...) -CopyFixedLengthText: +CopyDebugName: ld bc, NAME_LENGTH jp CopyData -SetDefaultNamesBeforeTitlescreen:: - ld hl, NintenText +PrepareTitleScreen:: + ; These debug names are already copied later in PrepareOakSpeech. + ; Removing the unused copies below has no apparent impact. + ; CopyDebugName can also be safely deleted afterwards. + ld hl, DebugNewGamePlayerName ld de, wPlayerName - call CopyFixedLengthText - ld hl, SonyText + call CopyDebugName + ld hl, DebugNewGameRivalName ld de, wRivalName - call CopyFixedLengthText + call CopyDebugName xor a ldh [hWY], a ld [wLetterPrintingDelayFlags], a @@ -405,5 +407,8 @@ IF DEF(_BLUE) db $61,$62,$63,$64,$65,$66,$67,$68,"@" ; "Blue Version" ENDC -NintenText: db "NINTEN@" -SonyText: db "SONY@" +DebugNewGamePlayerName: + db "NINTEN@" + +DebugNewGameRivalName: + db "SONY@" diff --git a/home/init.asm b/home/init.asm index 81e75586..db21efbc 100644 --- a/home/init.asm +++ b/home/init.asm @@ -116,7 +116,7 @@ DEF rLCDC_DEFAULT EQU %11100011 ld a, rLCDC_DEFAULT ldh [rLCDC], a - jp SetDefaultNamesBeforeTitlescreen + jp PrepareTitleScreen ClearVram:: ld hl, VRAM_Begin -- cgit v1.3.1-sl0p From a76ae055cc306f922e84d546b2f54f32e35a6a11 Mon Sep 17 00:00:00 2001 From: RainbowMetalPigeon <118711812+RainbowMetalPigeon@users.noreply.github.com> Date: Sat, 25 Mar 2023 20:28:55 -0700 Subject: Dex weights are in tenths of a pound --- data/pokemon/dex_entries.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm index c99087e2..ceb431b7 100644 --- a/data/pokemon/dex_entries.asm +++ b/data/pokemon/dex_entries.asm @@ -194,7 +194,7 @@ PokedexEntryPointers: ; string: species name ; height in feet, inches -; weight in pounds +; weight in tenths of a pound ; text entry RhydonDexEntry: -- cgit v1.3.1-sl0p From 17eaf761e38cea827320f984cfaaa1527276ab15 Mon Sep 17 00:00:00 2001 From: Vortyne <104168801+Vortyne@users.noreply.github.com> Date: Sat, 25 Mar 2023 23:31:59 -0400 Subject: Name some unnamed animation constants (#396) --- constants/move_constants.asm | 14 +++++++------- data/moves/animations.asm | 4 ++-- engine/battle/core.asm | 4 ++-- engine/battle/effects.asm | 16 ++++++++-------- engine/battle/trainer_ai.asm | 2 +- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/constants/move_constants.asm b/constants/move_constants.asm index 570be95e..3376c1af 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -178,14 +178,14 @@ DEF NUM_ATTACKS EQU const_value - 1 const SHOWPIC_ANIM const STATUS_AFFECTED_ANIM const ANIM_A8 - const ANIM_A9 + const ENEMY_HUD_SHAKE_ANIM const TRADE_BALL_DROP_ANIM const TRADE_BALL_SHAKE_ANIM const TRADE_BALL_TILT_ANIM const TRADE_BALL_POOF_ANIM const XSTATITEM_ANIM ; use X Attack/Defense/Speed/Special - const ANIM_AF - const ANIM_B0 + const XSTATITEM_DUPLICATE_ANIM + const SHRINKING_SQUARE_ANIM const ANIM_B1 const ANIM_B2 const ANIM_B3 @@ -197,18 +197,18 @@ DEF NUM_ATTACKS EQU const_value - 1 const ANIM_B9 const BURN_PSN_ANIM ; Plays when a monster is burned or poisoned const ANIM_BB - const ANIM_BC + const SLP_PLAYER_ANIM const SLP_ANIM ; sleeping monster - const ANIM_BE + const CONF_PLAYER_ANIM const CONF_ANIM ; confused monster - const ANIM_C0 + const SLIDE_DOWN_ANIM const TOSS_ANIM ; toss Poké Ball const SHAKE_ANIM ; shaking Poké Ball when catching monster const POOF_ANIM ; puff of smoke const BLOCKBALL_ANIM ; trainer knocks away Poké Ball const GREATTOSS_ANIM ; toss Great Ball const ULTRATOSS_ANIM ; toss Ultra Ball or Master Ball - const ANIM_C7 + const SHAKE_SCREEN_ANIM const HIDEPIC_ANIM ; monster disappears const ROCK_ANIM ; throw rock const BAIT_ANIM ; throw bait diff --git a/data/moves/animations.asm b/data/moves/animations.asm index 0a8db8f5..29a78477 100644 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -192,7 +192,7 @@ AttackAnimationPointers: dw SleepEnemyAnim dw ConfusedPlayerAnim dw ConfusedEnemyAnim - dw FaintAnim + dw SlideDownAnim dw BallTossAnim dw BallShakeAnim dw BallPoofAnim @@ -1263,7 +1263,7 @@ BallBlockAnim: battle_anim NO_MOVE, SUBANIM_0_BALL_BLOCK, 0, 3 db -1 ; end -FaintAnim: +SlideDownAnim: battle_anim DIG, SE_SLIDE_MON_DOWN db -1 ; end diff --git a/engine/battle/core.asm b/engine/battle/core.asm index f84b759c..4a0263e2 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -3327,7 +3327,7 @@ CheckPlayerStatusConditions: ; fast asleep xor a ld [wAnimationType], a - ld a, SLP_ANIM - 1 + ld a, SLP_PLAYER_ANIM call PlayMoveAnimation ld hl, FastAsleepText call PrintText @@ -3411,7 +3411,7 @@ CheckPlayerStatusConditions: call PrintText xor a ld [wAnimationType], a - ld a, CONF_ANIM - 1 + ld a, CONF_PLAYER_ANIM call PlayMoveAnimation call BattleRandom cp 50 percent + 1 ; chance to hurt itself diff --git a/engine/battle/effects.asm b/engine/battle/effects.asm index c68d6731..aaaf20d0 100644 --- a/engine/battle/effects.asm +++ b/engine/battle/effects.asm @@ -123,12 +123,12 @@ PoisonEffect: dec de ldh a, [hWhoseTurn] and a - ld b, ANIM_C7 + ld b, SHAKE_SCREEN_ANIM ld hl, wPlayerBattleStatus3 ld a, [de] ld de, wPlayerToxicCounter jr nz, .ok - ld b, ANIM_A9 + ld b, ENEMY_HUD_SHAKE_ANIM ld hl, wEnemyBattleStatus3 ld de, wEnemyToxicCounter .ok @@ -232,14 +232,14 @@ FreezeBurnParalyzeEffect: ld a, 1 << PAR ld [wEnemyMonStatus], a call QuarterSpeedDueToParalysis ; quarter speed of affected mon - ld a, ANIM_A9 + ld a, ENEMY_HUD_SHAKE_ANIM call PlayBattleAnimation jp PrintMayNotAttackText ; print paralysis text .burn1 ld a, 1 << BRN ld [wEnemyMonStatus], a call HalveAttackDueToBurn ; halve attack of affected mon - ld a, ANIM_A9 + ld a, ENEMY_HUD_SHAKE_ANIM call PlayBattleAnimation ld hl, BurnedText jp PrintText @@ -247,7 +247,7 @@ FreezeBurnParalyzeEffect: call ClearHyperBeam ; resets hyper beam (recharge) condition from target ld a, 1 << FRZ ld [wEnemyMonStatus], a - ld a, ANIM_A9 + ld a, ENEMY_HUD_SHAKE_ANIM call PlayBattleAnimation ld hl, FrozenText jp PrintText @@ -802,7 +802,7 @@ ThrashPetalDanceEffect: inc a ld [de], a ; set thrash/petal dance counter to 2 or 3 at random ldh a, [hWhoseTurn] - add ANIM_B0 + add SHRINKING_SQUARE_ANIM jp PlayBattleAnimation2 SwitchAndTeleportEffect: @@ -1002,7 +1002,7 @@ ChargeEffect: jr z, .chargeEffect ld hl, wEnemyBattleStatus1 ld de, wEnemyMoveEffect - ld b, ANIM_AF + ld b, XSTATITEM_DUPLICATE_ANIM .chargeEffect set CHARGING_UP, [hl] ld a, [de] @@ -1016,7 +1016,7 @@ ChargeEffect: cp DIG jr nz, .notDigOrFly set INVULNERABLE, [hl] ; mon is now invulnerable to typical attacks (fly/dig) - ld b, ANIM_C0 + ld b, SLIDE_DOWN_ANIM .notDigOrFly xor a ld [wAnimationType], a diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index 2ef60f5b..e21a3492 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -713,7 +713,7 @@ AIIncreaseStat: ld a, [hl] push af push hl - ld a, ANIM_AF + ld a, XSTATITEM_DUPLICATE_ANIM ld [hli], a ld [hl], b callfar StatModifierUpEffect -- cgit v1.3.1-sl0p From 1b9540cc49f76626445d2cb5744be1e81c709ca8 Mon Sep 17 00:00:00 2001 From: dannye <33dannye@gmail.com> Date: Tue, 25 Apr 2023 19:40:00 -0500 Subject: Update `EndBug` to v9. --- .github/workflows/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9b3efa30..44317b8b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -69,9 +69,8 @@ jobs: - name: Update symbols if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }} - uses: EndBug/add-and-commit@v7 + uses: EndBug/add-and-commit@v9 with: - branch: symbols cwd: "./symbols" add: "*.sym" message: ${{ github.event.commits[0].message }} -- cgit v1.3.1-sl0p