diff options
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/menu_cursor.c | 26 | ||||
-rw-r--r-- | src/engine/mystery_event_msg.c | 51 | ||||
-rw-r--r-- | src/engine/mystery_event_script.c | 14 | ||||
-rw-r--r-- | src/engine/naming_screen.c | 425 | ||||
-rw-r--r-- | src/engine/record_mixing.c | 12 | ||||
-rw-r--r-- | src/engine/sprite.c | 2 | ||||
-rw-r--r-- | src/engine/trade.c | 12 | ||||
-rw-r--r-- | src/engine/trainer_card.c | 7 |
8 files changed, 364 insertions, 185 deletions
diff --git a/src/engine/menu_cursor.c b/src/engine/menu_cursor.c index d43be2a2f..960d3cc87 100644 --- a/src/engine/menu_cursor.c +++ b/src/engine/menu_cursor.c @@ -3,25 +3,7 @@ #include "palette.h" #include "sprite.h" -extern const struct SpriteSheet gUnknown_0842F140[]; -extern const struct SpriteSheet gUnknown_0842F1C0[]; -extern const struct SpritePalette gUnknown_0842F240; -extern const struct SpritePalette gUnknown_0842F248; -extern const struct SpriteTemplate gSpriteTemplate_842F250[]; -extern const struct SpriteTemplate gSpriteTemplate_842F298[]; - -extern struct Subsprite *const gUnknown_0842F5BC[]; - -extern const struct SubspriteTable gSubspriteTables_842F5C0[]; -extern const struct SubspriteTable gSubspriteTables_842F6C0[]; -extern const struct SubspriteTable gUnknown_0842F758[]; - -extern const struct Subsprite gUnknown_0842F780; -extern const struct Subsprite gUnknown_0842F788; -extern const struct Subsprite gUnknown_0842F790; - -extern u16 gUnknown_0203A360[]; - +EWRAM_DATA u16 gUnknown_0203A360[0x10] = {}; EWRAM_DATA struct Subsprite gMenuCursorSubsprites[10] = {0}; EWRAM_DATA u8 gUnknown_0203A3D0 = 0; EWRAM_DATA u8 gUnknown_0203A3D1 = 0; @@ -29,6 +11,12 @@ EWRAM_DATA u8 gUnknown_0203A3D2 = 0; EWRAM_DATA u8 gUnknown_0203A3D3 = 0; EWRAM_DATA u8 gUnknown_0203A3D4 = 0; +#if ENGLISH +#include "../src/data/menu_cursor_en.h" +#elif GERMAN +#include "../src/data/menu_cursor_de.h" +#endif // ENGLISH/GERMAN + void sub_814A590(void) { gUnknown_0203A3D0 = 0x40; diff --git a/src/engine/mystery_event_msg.c b/src/engine/mystery_event_msg.c new file mode 100644 index 000000000..03ef22727 --- /dev/null +++ b/src/engine/mystery_event_msg.c @@ -0,0 +1,51 @@ +#include "global.h" + +#if ENGLISH + +const u8 gOtherText_BerryObtainedDadHasIt[] = _("Obtained a {STR_VAR_2} BERRY!\nDad has it at PETALBURG GYM."); + +const u8 gOtherText_BerryTransformed[] = _("The {STR_VAR_1} BERRY transformed into\none {STR_VAR_2} BERRY."); + +const u8 gOtherText_BerryAlreadyObtained[] = _("The {STR_VAR_1} BERRY has already been\nobtained."); + +const u8 gOtherText_SpecialRibbonReceived[] = _("A special RIBBON was awarded to your\nparty POKéMON."); + +const u8 gOtherText_DexUpgraded[] = _("The POKéDEX has been upgraded with\nthe NATIONAL MODE."); + +const u8 gOtherText_RareWordAdded[] = _("A rare word has been added."); + +const u8 gOtherText_PokeWasSentOver[] = _("{STR_VAR_1} was sent over!"); + +const u8 gOtherText_PartyIsFull[] = _("Your party is full.\n{STR_VAR_1} could not be sent over."); + +const u8 gOtherText_NewTrainerInHoenn[] = _("A new TRAINER has arrived in HOENN."); + +const u8 gOtherText_NewAdversaryInBattleTower[] = _("A new adversary has arrived in the\nBATTLE TOWER."); + +const u8 gOtherText_DataCannotUseVersion[] = _("This data cannot be used in\nthis version."); + +#elif GERMAN + +const u8 gOtherText_BerryObtainedDadHasIt[] = _("Eine {STR_VAR_2}BEERE! Vater in der \nARENA von BLÜTENBURG CITY besitzt\lauch eine."); + +const u8 gOtherText_BerryTransformed[] = _("Die {STR_VAR_1}BEERE verwandelte\nsich in eine {STR_VAR_2}BEERE!"); + +const u8 gOtherText_BerryAlreadyObtained[] = _("Du hast schon eine {STR_VAR_1}BEERE."); + +const u8 gOtherText_SpecialRibbonReceived[] = _("Ein besonderes BAND wurde deinem\nPOKéMON im Team verliehen."); + +const u8 gOtherText_DexUpgraded[] = _("Der POKéDEX wurde mit dem NATIONALEN\nMODUS ausgerüstet."); + +const u8 gOtherText_RareWordAdded[] = _("Ein seltenes Wort wurde hinzugefügt."); + +const u8 gOtherText_PokeWasSentOver[] = _("{STR_VAR_1} wurde gesendet!"); + +const u8 gOtherText_PartyIsFull[] = _("Dein Team ist bereits vollständig.\n{STR_VAR_1} kann nicht gesendet\lwerden."); + +const u8 gOtherText_NewTrainerInHoenn[] = _("Ein neuer TRAINER ist in HOENN\nangekommen."); + +const u8 gOtherText_NewAdversaryInBattleTower[] = _("Ein neuer Widersacher ist im DUELLTURM\neingetroffen."); + +const u8 gOtherText_DataCannotUseVersion[] = _("Die Daten können in dieser Edition\nnicht eingesetzt werden."); + +#endif // ENGLISH/GERMAN diff --git a/src/engine/mystery_event_script.c b/src/engine/mystery_event_script.c index 12ad329da..6fcad66ac 100644 --- a/src/engine/mystery_event_script.c +++ b/src/engine/mystery_event_script.c @@ -14,6 +14,7 @@ #include "string_util.h" #include "text.h" #include "util.h" +#include "mystery_event_msg.h" #if ENGLISH #define LANGUAGE_MASK 0x2 @@ -32,17 +33,6 @@ extern void party_compaction(void); extern ScrCmdFunc gMysteryEventScriptCmdTable[]; extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[]; -extern const u8 gOtherText_BerryObtainedDadHasIt[]; -extern const u8 gOtherText_BerryTransformed[]; -extern const u8 gOtherText_BerryAlreadyObtained[]; -extern const u8 gOtherText_SpecialRibbonReceived[]; -extern const u8 gOtherText_DexUpgraded[]; -extern const u8 gOtherText_RareWordAdded[]; -extern const u8 gOtherText_PokeWasSentOver[]; -extern const u8 gOtherText_PartyIsFull[]; -extern const u8 gOtherText_NewTrainerInHoenn[]; -extern const u8 gOtherText_DataCannotUseVersion[]; - static EWRAM_DATA struct ScriptContext sMysteryEventScriptContext = {0}; static bool32 CheckCompatibility(u16 a1, u32 a2, u16 a3, u32 a4) @@ -317,7 +307,7 @@ bool8 MEScrCmd_setenigmaberry(struct ScriptContext *ctx) ctx->data[2] = 2; if (IsEnigmaBerryValid() == TRUE) - VarSet(0x402D, 1); + VarSet(VAR_ENIGMA_BERRY_AVAILABLE, 1); else ctx->data[2] = 1; diff --git a/src/engine/naming_screen.c b/src/engine/naming_screen.c index 4d2545440..440504d5a 100644 --- a/src/engine/naming_screen.c +++ b/src/engine/naming_screen.c @@ -1,6 +1,7 @@ #include "global.h" #include "naming_screen.h" #include "data2.h" +#include "graphics.h" #include "field_effect.h" #include "field_map_obj.h" #include "field_player_avatar.h" @@ -29,16 +30,11 @@ extern u16 gKeyRepeatStartDelay; extern u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); -const u32 gSpriteImage_83CE094[] = INCBIN_U32("graphics/naming_screen/pc_icon/0.4bpp"); -const u32 gSpriteImage_83CE154[] = INCBIN_U32("graphics/naming_screen/pc_icon/1.4bpp"); +const u8 gSpriteImage_83CE094[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp"); +const u8 gSpriteImage_83CE154[] = INCBIN_U8("graphics/naming_screen/pc_icon/1.4bpp"); -//Some unused pointer, perhaps. -asm(".section .rodata\n\ -@ XXX: what is this?\n\ - .align 2\n\ - .4byte 0x2000000\n"); +struct NamingScreenData *const namingScreenDataPtr = &namingScreenData; -extern u16 *const gUnknown_083CE28C[]; extern const struct SubspriteTable gSubspriteTables_83CE558[]; extern const struct SubspriteTable gSubspriteTables_83CE560[]; extern const struct SubspriteTable gSubspriteTables_83CE578[]; @@ -55,7 +51,6 @@ extern const struct SpriteTemplate gSpriteTemplate_83CE688; extern const struct SpriteSheet gUnknown_083CE6A0[]; extern const struct SpritePalette gUnknown_083CE708[]; extern const u8 gNamingScreenMenu_Gfx[]; -extern const u16 gNamingScreenPalettes[]; extern const u16 gUnknown_083CE748[]; extern const u16 gUnknown_083CEBF8[]; extern const u16 gUnknown_083CF0A8[]; @@ -198,12 +193,12 @@ static void VBlankCB_NamingScreen(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - REG_BG1VOFS = namingScreenData.bg1vOffset; - REG_BG2VOFS = namingScreenData.bg2vOffset; + REG_BG1VOFS = namingScreenDataPtr->bg1vOffset; + REG_BG2VOFS = namingScreenDataPtr->bg2vOffset; REG_BG1CNT &= 0xFFFC; - REG_BG1CNT |= namingScreenData.unk8; + REG_BG1CNT |= namingScreenDataPtr->unk8; REG_BG2CNT &= 0xFFFC; - REG_BG2CNT |= namingScreenData.unkA; + REG_BG2CNT |= namingScreenDataPtr->unkA; } static void StoreNamingScreenParameters(u8 templateNum, u8 *destBuffer, u16 c, u16 d, u32 e, MainCallback returnCallback) @@ -228,12 +223,12 @@ static void GetNamingScreenParameters(void) taskId = FindTaskIdByFunc(Task_DoNothing); task = &gTasks[taskId]; - namingScreenData.templateNum = task->data[0]; - namingScreenData.unk3E = task->data[1]; - namingScreenData.unk40 = task->data[2]; - namingScreenData.unk42 = (task->data[3] << 16) | (u16)task->data[4]; - LoadWordFromTwoHalfwords(&task->data[5], (u32 *)&namingScreenData.destBuffer); - LoadWordFromTwoHalfwords(&task->data[7], (u32 *)&namingScreenData.returnCallback); + namingScreenDataPtr->templateNum = task->data[0]; + namingScreenDataPtr->unk3E = task->data[1]; + namingScreenDataPtr->unk40 = task->data[2]; + namingScreenDataPtr->unk42 = (task->data[3] << 16) | (u16)task->data[4]; + LoadWordFromTwoHalfwords(&task->data[5], (u32 *)&namingScreenDataPtr->destBuffer); + LoadWordFromTwoHalfwords(&task->data[7], (u32 *)&namingScreenDataPtr->returnCallback); DestroyTask(taskId); } @@ -311,20 +306,20 @@ static const struct NamingScreenTemplate *const sNamingScreenTemplates[]; //for static void NamingScreen_Init(void) { GetNamingScreenParameters(); - namingScreenData.state = 0; - namingScreenData.bg1vOffset = 0; - namingScreenData.bg2vOffset = 0; - namingScreenData.unk8 = 1; - namingScreenData.unkA = 2; - namingScreenData.unkC = 0; - namingScreenData.unkD = 1; - namingScreenData.template = sNamingScreenTemplates[namingScreenData.templateNum]; - namingScreenData.currentPage = namingScreenData.template->unk4; - namingScreenData.unk2 = 14 - namingScreenData.template->maxChars / 2; - namingScreenData.unk3C = gKeyRepeatStartDelay; - memset(namingScreenData.textBuffer, 0xFF, sizeof(namingScreenData.textBuffer)); - if (namingScreenData.template->unk0 != 0) - StringCopy(namingScreenData.textBuffer, namingScreenData.destBuffer); + namingScreenDataPtr->state = 0; + namingScreenDataPtr->bg1vOffset = 0; + namingScreenDataPtr->bg2vOffset = 0; + namingScreenDataPtr->unk8 = 1; + namingScreenDataPtr->unkA = 2; + namingScreenDataPtr->unkC = 0; + namingScreenDataPtr->unkD = 1; + namingScreenDataPtr->template = sNamingScreenTemplates[namingScreenDataPtr->templateNum]; + namingScreenDataPtr->currentPage = namingScreenDataPtr->template->unk4; + namingScreenDataPtr->unk2 = 14 - namingScreenDataPtr->template->maxChars / 2; + namingScreenDataPtr->unk3C = gKeyRepeatStartDelay; + memset(namingScreenDataPtr->textBuffer, 0xFF, sizeof(namingScreenDataPtr->textBuffer)); + if (namingScreenDataPtr->template->unk0 != 0) + StringCopy(namingScreenDataPtr->textBuffer, namingScreenDataPtr->destBuffer); gKeyRepeatStartDelay = 16; } @@ -408,14 +403,14 @@ static void sub_80B5E50(void) static void Task_NamingScreenMain(u8 taskId) { - while (sMainStateFuncs[namingScreenData.state](&gTasks[taskId]) != 0) + while (sMainStateFuncs[namingScreenDataPtr->state](&gTasks[taskId]) != 0) ; } static bool8 MainState_BeginFadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - namingScreenData.state++; + namingScreenDataPtr->state++; return 0; } @@ -425,7 +420,7 @@ static bool8 MainState_WaitFadeIn(struct Task *task) { SetInputState(INPUT_STATE_ENABLED); sub_80B68D8(1); - namingScreenData.state++; + namingScreenDataPtr->state++; } return FALSE; } @@ -441,7 +436,7 @@ static bool8 MainState_MoveToOKButton(struct Task *task) { SetInputState(INPUT_STATE_ENABLED); MoveCursorToOKButton(); - namingScreenData.state = MAIN_STATE_HANDLE_INPUT; + namingScreenDataPtr->state = MAIN_STATE_HANDLE_INPUT; } return FALSE; } @@ -454,7 +449,7 @@ static bool8 MainState_StartPageSwap(struct Task *task) sub_80B6888(1); sub_80B6460(0, 0, 1); PlaySE(SE_WIN_OPEN); - namingScreenData.state = MAIN_STATE_WAIT_PAGE_SWAP; + namingScreenDataPtr->state = MAIN_STATE_WAIT_PAGE_SWAP; return FALSE; } @@ -465,18 +460,18 @@ static bool8 MainState_WaitPageSwap(struct Task *task) if (IsPageSwapAnimNotInProgress()) { - namingScreenData.state = MAIN_STATE_HANDLE_INPUT; - namingScreenData.currentPage++; - namingScreenData.currentPage %= 3; + namingScreenDataPtr->state = MAIN_STATE_HANDLE_INPUT; + namingScreenDataPtr->currentPage++; + namingScreenDataPtr->currentPage %= 3; sub_80B7614(); sub_80B77F8(); SetInputState(INPUT_STATE_ENABLED); GetCursorPos(&cursorX, &cursorY); #if ENGLISH - if (namingScreenData.currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) + if (namingScreenDataPtr->currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) cursorX = 5; #elif GERMAN - if (namingScreenData.currentPage == PAGE_OTHERS && (cursorX == 7 || cursorX == 8)) + if (namingScreenDataPtr->currentPage == PAGE_OTHERS && (cursorX == 7 || cursorX == 8)) cursorX = 6; #endif SetCursorPos(cursorX, cursorY); @@ -491,17 +486,17 @@ static bool8 MainState_6(struct Task *task) SetInputState(INPUT_STATE_DISABLED); sub_80B68D8(0); sub_80B6460(3, 0, 1); - gKeyRepeatStartDelay = namingScreenData.unk3C; - if (namingScreenData.templateNum == NAMING_SCREEN_TEMPLATE_MON_NAME + gKeyRepeatStartDelay = namingScreenDataPtr->unk3C; + if (namingScreenDataPtr->templateNum == NAMING_SCREEN_TEMPLATE_MON_NAME && CalculatePlayerPartyCount() >= 6) { DisplaySentToPCMessage(); - namingScreenData.state = MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE; + namingScreenDataPtr->state = MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE; return FALSE; } else { - namingScreenData.state = MAIN_STATE_BEGIN_FADE_OUT; + namingScreenDataPtr->state = MAIN_STATE_BEGIN_FADE_OUT; return TRUE; //Exit the naming screen } } @@ -509,21 +504,21 @@ static bool8 MainState_6(struct Task *task) static bool8 MainState_UpdateSentToPCMessage(struct Task *task) { if (MenuUpdateWindowText()) - namingScreenData.state++; + namingScreenDataPtr->state++; return FALSE; } static bool8 MainState_BeginFadeInOut(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - namingScreenData.state++; + namingScreenDataPtr->state++; return FALSE; } static bool8 MainState_WaitFadeOutAndExit(struct Task *task) { if (!gPaletteFade.active) - SetMainCallback2(namingScreenData.returnCallback); + SetMainCallback2(namingScreenDataPtr->returnCallback); return FALSE; } @@ -584,7 +579,7 @@ static bool8 KeyboardKeyHandler_Character(u8 event) if (var) { SetInputState(INPUT_STATE_DISABLED); - namingScreenData.state = MAIN_STATE_MOVE_TO_OK_BUTTON; + namingScreenDataPtr->state = MAIN_STATE_MOVE_TO_OK_BUTTON; } } return FALSE; @@ -613,7 +608,7 @@ static bool8 KeyboardKeyHandler_OK(u8 event) if (event == KBEVENT_PRESSED_A) { PlaySE(SE_SELECT); - namingScreenData.state = MAIN_STATE_6; + namingScreenDataPtr->state = MAIN_STATE_6; return TRUE; } else @@ -622,7 +617,7 @@ static bool8 KeyboardKeyHandler_OK(u8 event) static bool8 sub_80B61C8(void) { - namingScreenData.state = MAIN_STATE_START_PAGE_SWAP; + namingScreenDataPtr->state = MAIN_STATE_START_PAGE_SWAP; return TRUE; } @@ -764,9 +759,9 @@ static void HandleDpadMovement(struct Task *task) { //The "others" page only has 5 columns #if ENGLISH - if (namingScreenData.currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) + if (namingScreenDataPtr->currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) #elif GERMAN - if (namingScreenData.currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7 || cursorX == 8)) + if (namingScreenDataPtr->currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7 || cursorX == 8)) #endif { if (sDpadDeltaX[dpadDir] > 0) @@ -948,8 +943,8 @@ static void Task_HandlePageSwapAnim(u8 taskId) static bool8 PageSwapAnimState_Init(struct Task *task) { - namingScreenData.bg1vOffset = 0; - namingScreenData.bg2vOffset = 0; + namingScreenDataPtr->bg1vOffset = 0; + namingScreenDataPtr->bg2vOffset = 0; task->tState++; return 0; } @@ -958,19 +953,19 @@ static bool8 PageSwapAnimState_1(struct Task *task) { u16 *const arr[] = { - &namingScreenData.bg2vOffset, - &namingScreenData.bg1vOffset + &namingScreenDataPtr->bg2vOffset, + &namingScreenDataPtr->bg1vOffset }; task->tFrameCount += 4; - *arr[namingScreenData.unkC] = Sin(task->tFrameCount, 40); - *arr[namingScreenData.unkD] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *arr[namingScreenDataPtr->unkC] = Sin(task->tFrameCount, 40); + *arr[namingScreenDataPtr->unkD] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 64) { - u8 temp = namingScreenData.unk8; //Why u8 and not u16? + u8 temp = namingScreenDataPtr->unk8; //Why u8 and not u16? - namingScreenData.unk8 = namingScreenData.unkA; - namingScreenData.unkA = temp; + namingScreenDataPtr->unk8 = namingScreenDataPtr->unkA; + namingScreenDataPtr->unkA = temp; task->tState++; } return 0; @@ -978,17 +973,17 @@ static bool8 PageSwapAnimState_1(struct Task *task) static bool8 PageSwapAnimState_2(struct Task *task) { - u16 *const arr[] = {&namingScreenData.bg2vOffset, &namingScreenData.bg1vOffset}; + u16 *const arr[] = {&namingScreenDataPtr->bg2vOffset, &namingScreenDataPtr->bg1vOffset}; task->tFrameCount += 4; - *arr[namingScreenData.unkC] = Sin(task->tFrameCount, 40); - *arr[namingScreenData.unkD] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *arr[namingScreenDataPtr->unkC] = Sin(task->tFrameCount, 40); + *arr[namingScreenDataPtr->unkD] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 128) { - u8 temp = namingScreenData.unkC; + u8 temp = namingScreenDataPtr->unkC; - namingScreenData.unkC = namingScreenData.unkD; - namingScreenData.unkD = temp; + namingScreenDataPtr->unkC = namingScreenDataPtr->unkD; + namingScreenDataPtr->unkD = temp; task->tState++; } return 0; @@ -1009,11 +1004,11 @@ static bool8 PageSwapAnimState_Done(struct Task *task) static void CursorInit(void) { - namingScreenData.cursorSpriteId = CreateSprite(&gSpriteTemplate_83CE640, 0, 0, 0); - gSprites[namingScreenData.cursorSpriteId].oam.priority = 1; - gSprites[namingScreenData.cursorSpriteId].oam.objMode = 1; - gSprites[namingScreenData.cursorSpriteId].data[6] = 1; - gSprites[namingScreenData.cursorSpriteId].data[6] = 2; + namingScreenDataPtr->cursorSpriteId = CreateSprite(&gSpriteTemplate_83CE640, 0, 0, 0); + gSprites[namingScreenDataPtr->cursorSpriteId].oam.priority = 1; + gSprites[namingScreenDataPtr->cursorSpriteId].oam.objMode = 1; + gSprites[namingScreenDataPtr->cursorSpriteId].data[6] = 1; + gSprites[namingScreenDataPtr->cursorSpriteId].data[6] = 2; SetCursorPos(0, 0); } @@ -1031,12 +1026,12 @@ static const u8 sKeyboardSymbolPositions[][COLUMN_COUNT] = { static u8 CursorColToKeyboardCol(s16 x) { - return sKeyboardSymbolPositions[namingScreenData.currentPage][x]; + return sKeyboardSymbolPositions[namingScreenDataPtr->currentPage][x]; } static void SetCursorPos(s16 x, s16 y) { - struct Sprite *cursorSprite = &gSprites[namingScreenData.cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[namingScreenDataPtr->cursorSpriteId]; cursorSprite->pos1.x = CursorColToKeyboardCol(x) * 8 + 27; cursorSprite->pos1.y = y * 16 + 80; @@ -1048,7 +1043,7 @@ static void SetCursorPos(s16 x, s16 y) static void GetCursorPos(s16 *x, s16 *y) { - struct Sprite *cursorSprite = &gSprites[namingScreenData.cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[namingScreenDataPtr->cursorSpriteId]; *x = cursorSprite->data[0]; *y = cursorSprite->data[1]; @@ -1061,25 +1056,25 @@ static void MoveCursorToOKButton(void) static void sub_80B6888(u8 a) { - gSprites[namingScreenData.cursorSpriteId].data[4] &= -256; - gSprites[namingScreenData.cursorSpriteId].data[4] |= a; - StartSpriteAnim(&gSprites[namingScreenData.cursorSpriteId], 0); + gSprites[namingScreenDataPtr->cursorSpriteId].data[4] &= -256; + gSprites[namingScreenDataPtr->cursorSpriteId].data[4] |= a; + StartSpriteAnim(&gSprites[namingScreenDataPtr->cursorSpriteId], 0); } static void sub_80B68D8(u8 a) { - gSprites[namingScreenData.cursorSpriteId].data[4] &= 0xFF; - gSprites[namingScreenData.cursorSpriteId].data[4] |= a << 8; + gSprites[namingScreenDataPtr->cursorSpriteId].data[4] &= 0xFF; + gSprites[namingScreenDataPtr->cursorSpriteId].data[4] |= a << 8; } static void sub_80B6914(void) { - StartSpriteAnim(&gSprites[namingScreenData.cursorSpriteId], 1); + StartSpriteAnim(&gSprites[namingScreenDataPtr->cursorSpriteId], 1); } static bool8 IsCursorAnimFinished(void) { - return gSprites[namingScreenData.cursorSpriteId].animEnded; + return gSprites[namingScreenDataPtr->cursorSpriteId].animEnded; } static u8 GetKeyRoleAtCursorPos(void) @@ -1134,7 +1129,7 @@ static void sub_80B6A80(void) u8 spriteId3; spriteId1 = CreateSprite(&gSpriteTemplate_83CE5C8, 0xCC, 0x50, 0); - namingScreenData.unk10 = spriteId1; + namingScreenDataPtr->unk10 = spriteId1; SetSubspriteTables(&gSprites[spriteId1], gSubspriteTables_83CE558); spriteId2 = CreateSprite(&gSpriteTemplate_83CE5F8, 0xCC, 0x4C, 1); @@ -1148,10 +1143,10 @@ static void sub_80B6A80(void) static void sub_80B6B14(void) { - struct Sprite *sprite = &gSprites[namingScreenData.unk10]; + struct Sprite *sprite = &gSprites[namingScreenDataPtr->unk10]; sprite->data[0] = 2; - sprite->data[1] = namingScreenData.currentPage; + sprite->data[1] = namingScreenDataPtr->currentPage; } static u8 sub_80B6B5C(struct Sprite *); @@ -1178,7 +1173,7 @@ static u8 sub_80B6B5C(struct Sprite *sprite) struct Sprite *sprite1 = &gSprites[sprite->data[6]]; struct Sprite *sprite2 = &gSprites[sprite->data[7]]; - sub_80B6C48(namingScreenData.currentPage, sprite1, sprite2); + sub_80B6C48(namingScreenDataPtr->currentPage, sprite1, sprite2); sprite->data[0]++; return 0; } @@ -1247,11 +1242,11 @@ static void sub_80B6D04(void) s16 r1; u8 i; - r1 = (namingScreenData.unk2 - 1) * 8 + 4; + r1 = (namingScreenDataPtr->unk2 - 1) * 8 + 4; spriteId = CreateSprite(&gSpriteTemplate_83CE658, r1, 0x28, 0); gSprites[spriteId].oam.priority = 3; - r1 = namingScreenData.unk2 * 8 + 4; - for (i = 0; i < namingScreenData.template->maxChars; i++, r1 += 8) + r1 = namingScreenDataPtr->unk2 * 8 + 4; + for (i = 0; i < namingScreenDataPtr->template->maxChars; i++, r1 += 8) { spriteId = CreateSprite(&gSpriteTemplate_83CE670, r1, 0x2C, 0); gSprites[spriteId].oam.priority = 3; @@ -1312,7 +1307,7 @@ static void (*const gUnknown_083CE2E0[])(void) = static void sub_80B6E44(void) { - gUnknown_083CE2E0[namingScreenData.template->unk2](); + gUnknown_083CE2E0[namingScreenDataPtr->template->unk2](); } static void nullsub_40(void) @@ -1324,7 +1319,7 @@ static void sub_80B6E68(void) u8 rivalGfxId; u8 spriteId; - rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, namingScreenData.unk3E); + rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, namingScreenDataPtr->unk3E); spriteId = AddPseudoFieldObject(rivalGfxId, SpriteCallbackDummy, 0x38, 0x18, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], 4); @@ -1344,7 +1339,7 @@ static void sub_80B6EFC(void) u8 spriteId; sub_809D51C(); - spriteId = CreateMonIcon(namingScreenData.unk3E, SpriteCallbackDummy, 0x34, 0x18, 0, namingScreenData.unk42); + spriteId = CreateMonIcon(namingScreenDataPtr->unk3E, SpriteCallbackDummy, 0x34, 0x18, 0, namingScreenDataPtr->unk42); gSprites[spriteId].oam.priority = 3; } @@ -1352,21 +1347,21 @@ static u8 GetTextCaretPosition(void) { u8 i; - for (i = 0; i < namingScreenData.template->maxChars; i++) + for (i = 0; i < namingScreenDataPtr->template->maxChars; i++) { - if (namingScreenData.textBuffer[i] == EOS) + if (namingScreenDataPtr->textBuffer[i] == EOS) return i; } - return namingScreenData.template->maxChars - 1; + return namingScreenDataPtr->template->maxChars - 1; } static u8 GetPreviousTextCaretPosition(void) { s8 i; - for (i = namingScreenData.template->maxChars - 1; i > 0; i--) + for (i = namingScreenDataPtr->template->maxChars - 1; i > 0; i--) { - if (namingScreenData.textBuffer[i] != EOS) + if (namingScreenDataPtr->textBuffer[i] != EOS) return i; } return 0; @@ -1378,9 +1373,9 @@ static void DeleteTextCharacter(void) u8 var2; index = GetPreviousTextCaretPosition(); - namingScreenData.textBuffer[index] = 0; + namingScreenDataPtr->textBuffer[index] = 0; sub_80B7960(); - namingScreenData.textBuffer[index] = EOS; + namingScreenDataPtr->textBuffer[index] = EOS; var2 = GetKeyRoleAtCursorPos(); if (var2 == 0 || var2 == 2) sub_80B6460(1, 0, 1); @@ -1408,7 +1403,7 @@ static bool8 sub_80B7004(void) PlaySE(SE_SELECT); if (r4) { - if (GetPreviousTextCaretPosition() == namingScreenData.template->maxChars - 1) + if (GetPreviousTextCaretPosition() == namingScreenDataPtr->template->maxChars - 1) return TRUE; } return FALSE; @@ -1420,7 +1415,7 @@ static void sub_80B7090(void) // DoInput? u8 r4; r5 = GetPreviousTextCaretPosition(); - r4 = namingScreenData.textBuffer[r5]; + r4 = namingScreenDataPtr->textBuffer[r5]; if (sub_80B7198(r4)) { if (sub_80B7264(r4)) @@ -1445,7 +1440,7 @@ static bool8 sub_80B7104(void) u8 r4; r5 = GetPreviousTextCaretPosition(); - r4 = namingScreenData.textBuffer[r5]; + r4 = namingScreenDataPtr->textBuffer[r5]; if (sub_80B720C(r4)) { sub_80B72A4(r4, r5); @@ -1460,7 +1455,7 @@ static bool8 sub_80B713C(void) u8 r4; r5 = GetPreviousTextCaretPosition(); - r4 = namingScreenData.textBuffer[r5]; + r4 = namingScreenDataPtr->textBuffer[r5]; if (sub_80B7264(r4)) { sub_80B7370(r4, r5); @@ -1473,7 +1468,7 @@ static void AddTextCharacter(u8 ch) { u8 index = GetTextCaretPosition(); - namingScreenData.textBuffer[index] = ch; + namingScreenDataPtr->textBuffer[index] = ch; } static bool8 sub_80B7198(u8 a) @@ -1545,7 +1540,7 @@ static void sub_80B72A4(u8 a, u8 b) chr = a + 0x2C; else if (a >= 155 && a <= 159) chr = a + 0xFB; - namingScreenData.textBuffer[b] = chr; + namingScreenDataPtr->textBuffer[b] = chr; } static void sub_80B7370(u8 a, u8 b) @@ -1560,7 +1555,7 @@ static void sub_80B7370(u8 a, u8 b) chr = a + 0x31; else if (a >= 150 && a <= 154) chr = a + 5; - namingScreenData.textBuffer[b] = chr; + namingScreenDataPtr->textBuffer[b] = chr; } static void sub_80B73CC(u8 a, u8 b) @@ -1583,7 +1578,7 @@ static void sub_80B73CC(u8 a, u8 b) chr = a + 0xCF; else if (a >= 150 && a <= 154) chr = a + 0xD4; - namingScreenData.textBuffer[b] = chr; + namingScreenDataPtr->textBuffer[b] = chr; } static void sub_80B7474(u8 a, u8 b) @@ -1594,18 +1589,18 @@ static void sub_80B7474(u8 a, u8 b) chr = a + 0xCF; else if (a >= 155 && a <= 159) chr = a + 0xCF; - namingScreenData.textBuffer[b] = chr; + namingScreenDataPtr->textBuffer[b] = chr; } static void sub_80B74B0(void) { u8 i; - for (i = 0; i < namingScreenData.template->maxChars; i++) + for (i = 0; i < namingScreenDataPtr->template->maxChars; i++) { - if (namingScreenData.textBuffer[i] != 0 && namingScreenData.textBuffer[i] != 0xFF) + if (namingScreenDataPtr->textBuffer[i] != 0 && namingScreenDataPtr->textBuffer[i] != 0xFF) { - StringCopyN(namingScreenData.destBuffer, namingScreenData.textBuffer, namingScreenData.template->maxChars + 1); + StringCopyN(namingScreenDataPtr->destBuffer, namingScreenDataPtr->textBuffer, namingScreenDataPtr->template->maxChars + 1); break; } } @@ -1613,7 +1608,7 @@ static void sub_80B74B0(void) static void DisplaySentToPCMessage(void) { - StringCopy(gStringVar1, namingScreenData.destBuffer); + StringCopy(gStringVar1, namingScreenDataPtr->destBuffer); StringExpandPlaceholders(gStringVar4, gOtherText_SentToPC); BasicInitMenuWindow(&gWindowConfig_81E6E88); MenuDisplayMessageBox(); @@ -1670,8 +1665,8 @@ static void sub_80B75C4(void) (u16 *)(VRAM + 0xE800), }; - gUnknown_083CE2F0[namingScreenData.currentPage][0](arr[namingScreenData.unkC]); - gUnknown_083CE2F0[namingScreenData.currentPage][1](arr[namingScreenData.unkD]); + gUnknown_083CE2F0[namingScreenDataPtr->currentPage][0](arr[namingScreenDataPtr->unkC]); + gUnknown_083CE2F0[namingScreenDataPtr->currentPage][1](arr[namingScreenDataPtr->unkD]); } static void sub_80B7614(void) @@ -1682,7 +1677,7 @@ static void sub_80B7614(void) (u16 *)(VRAM + 0xE800), }; - gUnknown_083CE2F0[namingScreenData.currentPage][1](arr[namingScreenData.unkD]); + gUnknown_083CE2F0[namingScreenDataPtr->currentPage][1](arr[namingScreenDataPtr->unkD]); } static void sub_80B7650(u16 *vramBuffer) @@ -1736,12 +1731,12 @@ static void sub_80B76E0(u16 *vramBuffer, const u16 *src) static void sub_80B772C(void) { - nullsub_20(namingScreenData.currentPage, namingScreenData.unkC); + nullsub_20(namingScreenDataPtr->currentPage, namingScreenDataPtr->unkC); } static void sub_80B7740(void) { - nullsub_20((namingScreenData.currentPage + 1) % 3, namingScreenData.unkD); + nullsub_20((namingScreenDataPtr->currentPage + 1) % 3, namingScreenDataPtr->unkD); } static void nullsub_20(u8 a, u8 b) @@ -1802,23 +1797,23 @@ static const u8 sKeyboardCharacters[][4][20]; //forward declaration static u8 GetCharAtKeyboardPos(s16 a, s16 b) { - return sKeyboardCharacters[namingScreenData.currentPage][b][a]; + return sKeyboardCharacters[namingScreenDataPtr->currentPage][b][a]; } static void sub_80B7794(void) { - BasicInitMenuWindow(gUnknown_083CE328[namingScreenData.currentPage][0][namingScreenData.unkC]); - gUnknown_083CE310[namingScreenData.currentPage][0](); - BasicInitMenuWindow(gUnknown_083CE328[namingScreenData.currentPage][1][namingScreenData.unkD]); - gUnknown_083CE310[namingScreenData.currentPage][1](); + BasicInitMenuWindow(gUnknown_083CE328[namingScreenDataPtr->currentPage][0][namingScreenDataPtr->unkC]); + gUnknown_083CE310[namingScreenDataPtr->currentPage][0](); + BasicInitMenuWindow(gUnknown_083CE328[namingScreenDataPtr->currentPage][1][namingScreenDataPtr->unkD]); + gUnknown_083CE310[namingScreenDataPtr->currentPage][1](); sub_80B772C(); sub_80B7740(); } static void sub_80B77F8(void) { - BasicInitMenuWindow(gUnknown_083CE328[namingScreenData.currentPage][1][namingScreenData.unkD]); - gUnknown_083CE310[namingScreenData.currentPage][1](); + BasicInitMenuWindow(gUnknown_083CE328[namingScreenDataPtr->currentPage][1][namingScreenDataPtr->unkD]); + gUnknown_083CE310[namingScreenDataPtr->currentPage][1](); sub_80B7740(); } @@ -1849,9 +1844,9 @@ static void PrintKeyboardCharacters(u8 page) //print letters on page static void sub_80B78A8(void) { BasicInitMenuWindow(&gWindowConfig_81E6F4C); - gUnknown_083CE358[namingScreenData.templateNum](); - gUnknown_083CE368[namingScreenData.template->unk3](); - MenuPrint(namingScreenData.template->title, 9, 2); + gUnknown_083CE358[namingScreenDataPtr->templateNum](); + gUnknown_083CE368[namingScreenDataPtr->template->unk3](); + MenuPrint(namingScreenDataPtr->template->title, 9, 2); } static void nullsub_61(void) @@ -1860,7 +1855,7 @@ static void nullsub_61(void) static void sub_80B78F8(void) { - StringCopy(gStringVar1, gSpeciesNames[(s16)namingScreenData.unk3E]); + StringCopy(gStringVar1, gSpeciesNames[(s16)namingScreenDataPtr->unk3E]); } static void nullsub_62(void) @@ -1871,9 +1866,9 @@ static void sub_80B7924(void) { u8 genderSymbol[2] = _("♂"); - if ((s16)namingScreenData.unk40 != MON_GENDERLESS) + if ((s16)namingScreenDataPtr->unk40 != MON_GENDERLESS) { - if ((s16)namingScreenData.unk40 == MON_FEMALE) + if ((s16)namingScreenDataPtr->unk40 == MON_FEMALE) genderSymbol[0] = 0xB6; //female symbol MenuPrint(genderSymbol, 0x14, 4); } @@ -1890,9 +1885,9 @@ static void sub_80B7960(void) string[4] = 0x11; string[5] = 1; string += 6; - StringCopy(string, namingScreenData.textBuffer); + StringCopy(string, namingScreenDataPtr->textBuffer); BasicInitMenuWindow(&gWindowConfig_81E6F4C); - MenuPrint(gStringVar1, namingScreenData.unk2, 4); + MenuPrint(gStringVar1, namingScreenDataPtr->unk2, 4); } //-------------------------------------------------- @@ -2034,4 +2029,162 @@ const struct OamData gOamData_83CE4A8 = .affineParam = 0, }; -//TODO: dump sprite data + +const struct Subsprite gSubspriteTable_83CE4B0[] = { + { -20, -16, ST_OAM_H_RECTANGLE, 1, 0, 1 }, + { 12, -16, ST_OAM_SQUARE, 0, 4, 1 }, + { -20, -8, ST_OAM_H_RECTANGLE, 1, 5, 1 }, + { 12, -8, ST_OAM_SQUARE, 0, 9, 1 }, + { -20, 0, ST_OAM_H_RECTANGLE, 1, 10, 1 }, + { 12, 0, ST_OAM_SQUARE, 0, 14, 1 }, + { -20, 8, ST_OAM_H_RECTANGLE, 1, 15, 1 }, + { 12, 8, ST_OAM_SQUARE, 0, 19, 1 } +}; + +const struct Subsprite gSubspriteTable_83CE4F0[] = { + { -12, -4, ST_OAM_SQUARE, 0, 0, 1 }, + { 4, -4, ST_OAM_SQUARE, 0, 1, 1 } +}; + +const struct Subsprite gSubspriteTable_83CE500[] = { + { -12, -4, ST_OAM_H_RECTANGLE, 0, 0, 1 }, + { 4, -4, ST_OAM_SQUARE, 0, 2, 1 } +}; + +const struct Subsprite gSubspriteTable_83CE510[] = { + { -20, -12, ST_OAM_H_RECTANGLE, 1, 0, 1 }, + { 12, -12, ST_OAM_SQUARE, 0, 4, 1 }, + { -20, -4, ST_OAM_H_RECTANGLE, 1, 5, 1 }, + { 12, -4, ST_OAM_SQUARE, 0, 9, 1 }, + { -20, 4, ST_OAM_H_RECTANGLE, 1, 10, 1 }, + { 12, 4, ST_OAM_SQUARE, 0, 14, 1 } +}; + +const struct Subsprite gSubspriteTable_83CE540[] = { + { -8, -12, ST_OAM_H_RECTANGLE, 0, 0, 3 }, + { -8, -4, ST_OAM_H_RECTANGLE, 0, 2, 3 }, + { -8, 4, ST_OAM_H_RECTANGLE, 0, 4, 3 } +}; + +const struct SubspriteTable gSubspriteTables_83CE558[] = { + { 8, gSubspriteTable_83CE4B0 } +}; + +const struct SubspriteTable gSubspriteTables_83CE560[] = { + { 2, gSubspriteTable_83CE500 }, + { 2, gSubspriteTable_83CE500 }, + { 2, gSubspriteTable_83CE500 } +}; + +const struct SubspriteTable gSubspriteTables_83CE578[] = { + { 6, gSubspriteTable_83CE510 } +}; + +const struct SubspriteTable gSubspriteTables_83CE580[] = { + { 3, gSubspriteTable_83CE540 } +}; + +const struct SpriteFrameImage gSpriteImageTable_83CE588[] = { + { gSpriteImage_83CE094, 0xc0 }, + { gSpriteImage_83CE154, 0xc0 } +}; + +const union AnimCmd gSpriteAnim_83CE598[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83CE5A0[] = { + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(8, 8), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83CE5AC[] = { + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd *const gSpriteAnimTable_83CE5B8[] = { + gSpriteAnim_83CE598 +}; + +const union AnimCmd *const gSpriteAnimTable_83CE5BC[] = { + gSpriteAnim_83CE598, + gSpriteAnim_83CE5A0 +}; + +const union AnimCmd *const gSpriteAnimTable_83CE5C4[] = { + gSpriteAnim_83CE5AC +}; + +const struct SpriteTemplate gSpriteTemplate_83CE5C8 = { + 2, 4, &gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6B34 +}; + +const struct SpriteTemplate gSpriteTemplate_83CE5E0 = { + 3, 1, &gOamData_83CE4A8, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83CE5F8 = { + 4, 4, &gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83CE610 = { + 0, 6, &gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83CE628 = { + 1, 6, &gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83CE640 = { + 7, 5, &gOamData_83CE4A0, gSpriteAnimTable_83CE5BC, NULL, gDummySpriteAffineAnimTable, sub_80B6998 +}; + +const struct SpriteTemplate gSpriteTemplate_83CE658 = { + 10, 3, &gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6D9C +}; + +const struct SpriteTemplate gSpriteTemplate_83CE670 = { + 11, 3, &gOamData_83CE498, gSpriteAnimTable_83CE5B8, NULL, gDummySpriteAffineAnimTable, sub_80B6DE8 +}; + +const struct SpriteTemplate gSpriteTemplate_83CE688 = { + 0xFFFF, 0, &gOamData_83CE498, gSpriteAnimTable_83CE5C4, gSpriteImageTable_83CE588, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteSheet gUnknown_083CE6A0[] = { + { gNamingScreenBackButtonTiles, 0x1E0, 0 }, + { gNamingScreenOKButtonTiles, 0x1E0, 1 }, + { gNamingScreenChangeKeyboardBoxTiles, 0x280, 2 }, + { gNamingScreenChangeKeyboardButtonTiles, 0x100, 3 }, + { gNamingScreenLowerTextTiles, 0x60, 4 }, + { gNamingScreenUpperTextTiles, 0x60, 5 }, + { gNamingScreenOthersTextTiles, 0x60, 6 }, + { gNamingScreenCursorTiles, 0x80, 7 }, + { gNamingScreenActiveCursorSmallTiles, 0x80, 8 }, + { gNamingScreenActiveCursorBigTiles, 0x80, 9 }, + { gNamingScreenRightPointingTriangleTiles, 0x20, 10 }, + { gNamingScreenUnderscoreTiles, 0x20, 11 }, + {} +}; + +const struct SpritePalette gUnknown_083CE708[] = { + {gNamingScreenPalettes[0], 0}, + {gNamingScreenPalettes[1], 1}, + {gNamingScreenPalettes[2], 2}, + {gNamingScreenPalettes[3], 3}, + {gNamingScreenPalettes[4], 4}, + {gNamingScreenPalettes[5], 5}, + {gNamingScreenPalettes[4], 6}, + {} +}; + +const u16 gUnknown_083CE748[] = INCBIN_U16("graphics/naming_screen/lower_keyboard_map.bin"); + +const u16 gUnknown_083CEBF8[] = INCBIN_U16("graphics/naming_screen/upper_keyboard_map.bin"); + +const u16 gUnknown_083CF0A8[] = INCBIN_U16("graphics/naming_screen/others_keyboard_map.bin"); + diff --git a/src/engine/record_mixing.c b/src/engine/record_mixing.c index 6cb1e54b2..c8e2e34d5 100644 --- a/src/engine/record_mixing.c +++ b/src/engine/record_mixing.c @@ -36,7 +36,7 @@ static u8 gUnknown_0300071C[4]; void *recordMixingSecretBases = &gSaveBlock1.secretBases; void *recordMixingTvShows = &gSaveBlock1.tvShows; -void *gUnknown_083D0274 = &gSaveBlock1.unknown_2ABC; +void *gUnknown_083D0274 = &gSaveBlock1.pokeNews; void *gUnknown_083D0278 = &gSaveBlock1.mauvilleMan; void *recordMixingEasyChatPairs = &gSaveBlock1.easyChatPairs; struct RecordMixingDayCareMail *gUnknown_083D0280 = &gUnknown_02038738; @@ -119,7 +119,7 @@ void Task_RecordMixing_Main(u8 taskId) { case 0: // init sub_8007270(gSpecialVar_0x8005); - VarSet(VAR_0x4000, 1); + VarSet(VAR_TEMP_0, 1); gUnknown_03000718 = 0; RecordMixing_PrepareExchangePacket(); CreateRecordMixingSprite(); @@ -1016,26 +1016,26 @@ void sub_80B9F3C(u16 *a, u8 b) { if (!CheckBagHasItem(*a, 1) && !CheckPCHasItem(*a, 1) && AddBagItem(*a, 1)) { - VarSet(VAR_0x4001, *a); + VarSet(VAR_TEMP_1, *a); StringCopy(gStringVar1, gLinkPlayers[0].name); if (*a == ITEM_EON_TICKET) FlagSet(FLAG_SYS_HAS_EON_TICKET); } else { - VarSet(VAR_0x4001, ITEM_NONE); + VarSet(VAR_TEMP_1, ITEM_NONE); } } else { if (AddBagItem(*a, 1) == TRUE) { - VarSet(VAR_0x4001, *a); + VarSet(VAR_TEMP_1, *a); StringCopy(gStringVar1, gLinkPlayers[0].name); } else { - VarSet(VAR_0x4001, ITEM_NONE); + VarSet(VAR_TEMP_1, ITEM_NONE); } } } diff --git a/src/engine/sprite.c b/src/engine/sprite.c index c1bb36917..cf35e12a3 100644 --- a/src/engine/sprite.c +++ b/src/engine/sprite.c @@ -598,7 +598,7 @@ static u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, return index; } -u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) { u8 i; diff --git a/src/engine/trade.c b/src/engine/trade.c index 0567b4d2f..0bc589ff4 100644 --- a/src/engine/trade.c +++ b/src/engine/trade.c @@ -5391,7 +5391,7 @@ static void sub_804D80C(struct Sprite *sprite) } } -u16 sub_804D89C(void) +u16 GetInGameTradeSpeciesInfo(void) { const struct InGameTrade *inGameTrade = &gIngameTrades[gSpecialVar_0x8004]; StringCopy(gStringVar1, gSpeciesNames[inGameTrade->playerSpecies]); @@ -5408,7 +5408,7 @@ static void sub_804D8E4(void) StringCopy(gStringVar2, gSpeciesNames[inGameTrade->species]); } -static void sub_804D948(u8 whichPlayerMon, u8 whichInGameTrade) +static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) { const struct InGameTrade *inGameTrade = &gIngameTrades[whichInGameTrade]; u8 level = GetMonData(&gPlayerParty[whichPlayerMon], MON_DATA_LEVEL); @@ -5478,16 +5478,16 @@ static void sub_804DAD4(struct MailStruct *mail, const struct InGameTrade *trade mail->itemId = trade->heldItem; } -u16 sub_804DB2C(void) +u16 GetTradeSpecies(void) { if (GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_IS_EGG)) return SPECIES_NONE; return GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_SPECIES); } -void sub_804DB68(void) +void CreateInGameTradePokemon(void) { - sub_804D948(gSpecialVar_0x8005, gSpecialVar_0x8004); + _CreateInGameTradePokemon(gSpecialVar_0x8005, gSpecialVar_0x8004); } #ifdef NONMATCHING @@ -5670,7 +5670,7 @@ static void sub_804E144(void) UpdatePaletteFade(); } -void sub_804E174(void) +void DoInGameTradeScene(void) { ScriptContext2_Enable(); CreateTask(sub_804E1A0, 10); diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c index 207fa5f77..ffa4cbd08 100644 --- a/src/engine/trainer_card.c +++ b/src/engine/trainer_card.c @@ -287,10 +287,7 @@ void sub_8093324(void) if (ewram0_2.var_1) { - struct TrainerCard(*trainerCards)[4] = &gTrainerCards; - s16 var = task->data[TD_1]; - struct TrainerCard *dest = &(*trainerCards)[var]; - memcpy(&ewram0_2.var_64, dest, sizeof(struct TrainerCard)); + ewram0_2.var_64 = gTrainerCards[task->data[TD_1]]; } else { @@ -324,7 +321,7 @@ void sub_8093390(struct TrainerCard *trainerCard) trainerCard->firstHallOfFameC = playTime & 0xFF; trainerCard->hasPokedex = FlagGet(FLAG_SYS_POKEDEX_GET); - trainerCard->var_3 = sub_8090FC0(); + trainerCard->var_3 = CompletedHoennPokedex(); trainerCard->pokedexSeen = GetPokedexSeenCount(); trainerCard->trainerId = (gSaveBlock2.playerTrainerId[1] << 8) | gSaveBlock2.playerTrainerId[0]; |