From a02d40d1410ad0b63f943600028348daccdebbe4 Mon Sep 17 00:00:00 2001 From: tgsm Date: Sun, 25 Jul 2021 22:35:52 -0500 Subject: Decompile scrcmd_17 -> scrcmd_amity_square Command names courtesy of DSPRE. --- arm9/src/scrcmd_amity_square.c | 117 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 arm9/src/scrcmd_amity_square.c (limited to 'arm9/src') diff --git a/arm9/src/scrcmd_amity_square.c b/arm9/src/scrcmd_amity_square.c new file mode 100644 index 00000000..aa38449f --- /dev/null +++ b/arm9/src/scrcmd_amity_square.c @@ -0,0 +1,117 @@ +#include "scrcmd.h" +#include "constants/pokemon.h" +#include "event_data.h" + +extern void FUN_0205F54C(struct ScriptState* state); +extern u16 FUN_0205F55C(struct ScriptState* state); + +static const u16 sAmitySquarePossibleAccessoriesByPokemon[6][10] = { + // TODO: accessory constants + { 0, 5, 21, 11, 26, 13, 25, 31, 16, 33 }, // Clefairy and Skitty + { 2, 19, 20, 24, 17, 0, 23, 29, 28, 15 }, // Torchic and Drifloon + { 8, 9, 3, 11, 22, 30, 17, 6, 14, 32 }, // Psyduck and Pachirisu + { 12, 18, 21, 13, 31, 9, 25, 24, 27, 6 }, // Jigglypuff and Shroomish + { 5, 3, 26, 19, 20, 1, 7, 16, 22, 15 }, // Pikachu + { 12, 30, 2, 20, 29, 4, 8, 27, 14, 10 }, // Buneary and Happiny +}; + +THUMB_FUNC BOOL ScrCmd_ClearAmitySquareSteps(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205F54C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CheckAmitySquareSteps(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = FUN_0205F55C(state); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetAmitySquareAccessory(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 rand = (u16)(LCRandom() % 100); + + u32 j; + if (rand < 15) + { + j = 0; + } + else if (rand < 30) + { + j = 1; + } + else if (rand < 45) + { + j = 2; + } + else if (rand < 60) + { + j = 3; + } + else if (rand < 70) + { + j = 4; + } + else if (rand < 80) + { + j = 5; + } + else if (rand < 88) + { + j = 6; + } + else if (rand < 93) + { + j = 7; + } + else if (rand < 98) + { + j = 8; + } + else + { + j = 9; + } + + u32 i; + switch (species) + { + case SPECIES_CLEFAIRY: + case SPECIES_SKITTY: + i = 0; + break; + case SPECIES_TORCHIC: + case SPECIES_DRIFLOON: + i = 1; + break; + case SPECIES_PSYDUCK: + case SPECIES_PACHIRISU: + i = 2; + break; + case SPECIES_JIGGLYPUFF: + case SPECIES_SHROOMISH: + i = 3; + break; + case SPECIES_PIKACHU: + i = 4; + break; + case SPECIES_BUNEARY: + case SPECIES_HAPPINY: + i = 5; + break; + default: + i = 0; + break; + } + + *ret_ptr = sAmitySquarePossibleAccessoriesByPokemon[i][j]; + return FALSE; +} -- cgit v1.2.3 From 66abfb42155c9643f5709beae069a76054660cc8 Mon Sep 17 00:00:00 2001 From: tgsm Date: Mon, 26 Jul 2021 19:06:44 -0500 Subject: scrcmd_amity_square: Use new accessory constants --- arm9/src/scrcmd_amity_square.c | 97 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 90 insertions(+), 7 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/scrcmd_amity_square.c b/arm9/src/scrcmd_amity_square.c index aa38449f..c957dec1 100644 --- a/arm9/src/scrcmd_amity_square.c +++ b/arm9/src/scrcmd_amity_square.c @@ -1,4 +1,5 @@ #include "scrcmd.h" +#include "constants/accessories.h" #include "constants/pokemon.h" #include "event_data.h" @@ -6,13 +7,95 @@ extern void FUN_0205F54C(struct ScriptState* state); extern u16 FUN_0205F55C(struct ScriptState* state); static const u16 sAmitySquarePossibleAccessoriesByPokemon[6][10] = { - // TODO: accessory constants - { 0, 5, 21, 11, 26, 13, 25, 31, 16, 33 }, // Clefairy and Skitty - { 2, 19, 20, 24, 17, 0, 23, 29, 28, 15 }, // Torchic and Drifloon - { 8, 9, 3, 11, 22, 30, 17, 6, 14, 32 }, // Psyduck and Pachirisu - { 12, 18, 21, 13, 31, 9, 25, 24, 27, 6 }, // Jigglypuff and Shroomish - { 5, 3, 26, 19, 20, 1, 7, 16, 22, 15 }, // Pikachu - { 12, 30, 2, 20, 29, 4, 8, 27, 14, 10 }, // Buneary and Happiny + { // Clefairy and Skitty + ACCESSORY_WHITE_FLUFF, + ACCESSORY_ORANGE_FLUFF, + ACCESSORY_WHITE_FEATHER, + ACCESSORY_MINI_PEBBLE, + ACCESSORY_SMALL_LEAF, + ACCESSORY_BLUE_SCALE, + + ACCESSORY_WHITE_BEARD, + ACCESSORY_THIN_MUSHROOM, + ACCESSORY_BIG_SCALE, + + ACCESSORY_STUMP + }, + + { // Torchic and Drifloon + ACCESSORY_PINK_FLUFF, + ACCESSORY_RED_FEATHER, + ACCESSORY_YELLOW_FEATHER, + ACCESSORY_BLACK_BEARD, + ACCESSORY_NARROW_SCALE, + ACCESSORY_WHITE_FLUFF, + + ACCESSORY_WHITE_MOUSTACHE, + ACCESSORY_SHED_CLAW, + ACCESSORY_NARROW_LEAF, + + ACCESSORY_PURPLE_SCALE + }, + + { // Psyduck and Pachirisu + ACCESSORY_SNAGGY_PEBBLE, + ACCESSORY_JAGGED_BOULDER, + ACCESSORY_BROWN_FLUFF, + ACCESSORY_MINI_PEBBLE, + ACCESSORY_BLACK_MOUSTACHE, + ACCESSORY_SHED_HORN, + + ACCESSORY_NARROW_SCALE, + ACCESSORY_ROUND_PEBBLE, + ACCESSORY_GREEN_SCALE, + + ACCESSORY_THICK_MUSHROOM + }, + + { // Jigglypuff and Shroomish + ACCESSORY_PINK_SCALE, + ACCESSORY_BLUE_FEATHER, + ACCESSORY_WHITE_FEATHER, + ACCESSORY_BLUE_SCALE, + ACCESSORY_THIN_MUSHROOM, + ACCESSORY_JAGGED_BOULDER, + + ACCESSORY_WHITE_BEARD, + ACCESSORY_BLACK_BEARD, + ACCESSORY_BIG_LEAF, + + ACCESSORY_ROUND_PEBBLE + }, + + { // Pikachu + ACCESSORY_ORANGE_FLUFF, + ACCESSORY_BROWN_FLUFF, + ACCESSORY_SMALL_LEAF, + ACCESSORY_RED_FEATHER, + ACCESSORY_YELLOW_FEATHER, + ACCESSORY_YELLOW_FLUFF, + + ACCESSORY_GLITTER_BOULDER, + ACCESSORY_BIG_SCALE, + ACCESSORY_BLACK_MOUSTACHE, + + ACCESSORY_PURPLE_SCALE + }, + + { // Buneary and Happiny + ACCESSORY_PINK_SCALE, + ACCESSORY_SHED_HORN, + ACCESSORY_PINK_FLUFF, + ACCESSORY_YELLOW_FEATHER, + ACCESSORY_SHED_CLAW, + ACCESSORY_BLACK_FLUFF, + + ACCESSORY_SNAGGY_PEBBLE, + ACCESSORY_BIG_LEAF, + ACCESSORY_GREEN_SCALE, + + ACCESSORY_BLACK_PEBBLE + }, }; THUMB_FUNC BOOL ScrCmd_ClearAmitySquareSteps(struct ScriptContext* ctx) -- cgit v1.2.3