diff options
-rw-r--r-- | include/fame_checker.h | 2 | ||||
-rw-r--r-- | include/field_map_obj.h | 4 | ||||
-rw-r--r-- | include/fieldmap.h | 1 | ||||
-rw-r--r-- | include/graphics.h | 7 | ||||
-rw-r--r-- | include/list_menu.h | 4 | ||||
-rw-r--r-- | include/main.h | 2 | ||||
-rw-r--r-- | include/sprite.h | 2 | ||||
-rw-r--r-- | include/strings.h | 23 | ||||
-rw-r--r-- | src/fame_checker.c | 16 | ||||
-rw-r--r-- | src/mystery_gift_menu.c | 2 | ||||
-rw-r--r-- | src/teachy_tv.c | 242 | ||||
-rw-r--r-- | src/tm_case.c | 8 |
12 files changed, 167 insertions, 146 deletions
diff --git a/include/fame_checker.h b/include/fame_checker.h index af705e34f..257431d8b 100644 --- a/include/fame_checker.h +++ b/include/fame_checker.h @@ -41,7 +41,7 @@ extern u8 gIconDescriptionBoxIsOpen; void ResetFameChecker(void); void FullyUnlockFameChecker(void); -void UseFameChecker(void (*)()); +void UseFameChecker(MainCallback savedCallback); void SetFlavorTextFlagFromSpecialVars(void); void UpdatePickStateFromSpecialVar8005(void); diff --git a/include/field_map_obj.h b/include/field_map_obj.h index d67fc476c..27a7f23d7 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -46,7 +46,7 @@ void FieldObjectClearAnim(struct MapObject *); void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); void SpawnFieldObjectsInView(s16, s16); u8 sprite_new(u8, u8, s16, s16, u8, u8); -u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8); +u8 AddPseudoEventObject(u16, SpriteCallback, s16, s16, u8); u8 show_sprite(u8, u8, u8); u8 SpawnSpecialFieldObjectParameterized(u8, u8, u8, s16, s16, u8); u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); @@ -92,5 +92,7 @@ void npc_paltag_set_load(u8 mode); // Exported data declarations extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; +extern const struct SpritePalette gUnknown_83A5348; +extern const struct SpriteTemplate * const gUnknown_83A0010[]; #endif //GUARD_FIELD_MAP_OBJ_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 537626edc..9903962a1 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -12,6 +12,7 @@ #define VIRTUAL_MAP_SIZE 0x2800 extern struct BackupMapData VMap; +extern const struct MapData Route1_Layout; u32 MapGridGetMetatileIdAt(int, int); u32 MapGridGetMetatileBehaviorAt(int, int); diff --git a/include/graphics.h b/include/graphics.h index 04d05da2b..f48f7f8ca 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -160,6 +160,7 @@ extern const u32 gTMCase_TMSpriteGfx[]; extern const u32 gUnknown_8E84F20[]; extern const u32 gUnknown_8E85068[]; extern const u8 gUnknown_8E99118[]; +extern const u16 gTMCaseMainWindowPalette[]; // egg_hatch extern const u32 gBattleTextboxTiles[]; @@ -168,4 +169,10 @@ extern const u32 gBattleTextboxPalette[]; extern const u32 gTradeGba2_Pal[]; extern const u32 gTradeGba_Gfx[]; +// teachy_tv +extern const u8 gUnknown_8E86240[]; +extern const u8 gUnknown_8E86BE8[]; +extern const u8 gUnknown_8E86D6C[]; +extern const u8 gUnknown_8E86F98[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/list_menu.h b/include/list_menu.h index fe42651b6..79dc3ec3f 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -9,8 +9,8 @@ struct ListMenuItem { - const u8 *unk_00; - s32 unk_04; + const u8 *label; + s32 index; }; struct ListMenu; diff --git a/include/main.h b/include/main.h index 6e9d2a25d..a250475cb 100644 --- a/include/main.h +++ b/include/main.h @@ -3,8 +3,6 @@ #include "global.h" -#include "global.h" - typedef void (*MainCallback)(void); typedef void (*IntrCallback)(void); typedef void (*IntrFunc)(void); diff --git a/include/sprite.h b/include/sprite.h index bc47f7100..fb0f710e8 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -232,6 +232,8 @@ struct OamMatrix s16 d; }; +typedef void (*SpriteCallback)(struct Sprite *); + extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; diff --git a/include/strings.h b/include/strings.h index 6af1b0d69..51aeb376a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -113,6 +113,27 @@ extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[]; extern const u8 gText_TurnedOverItemsWorthYen[]; extern const u8 gPokeDudeText_TMTypes[]; extern const u8 gPokeDudeText_ReadTMDescription[]; -extern const u16 gTMCaseMainWindowPalette[]; + +// teachy_tv +extern const u8 gUnknown_841B7A4[]; +extern const u8 gUnknown_841B7BC[]; +extern const u8 gUnknown_841B7D6[]; +extern const u8 gUnknown_841B7EE[]; +extern const u8 gUnknown_841B807[]; +extern const u8 gUnknown_841B81B[]; +extern const u8 gUnknown_841B836[]; +extern const u8 gUnknown_841B83D[]; +extern const u8 gUnknown_841B8BF[]; +extern const u8 gUnknown_841BB40[]; +extern const u8 gUnknown_841BE76[]; +extern const u8 gUnknown_841C23B[]; +extern const u8 gUnknown_841C459[]; +extern const u8 gUnknown_841C82A[]; +extern const u8 gUnknown_841BA41[]; +extern const u8 gUnknown_841BD10[]; +extern const u8 gUnknown_841C0AF[]; +extern const u8 gUnknown_841C384[]; +extern const u8 gUnknown_841C7B4[]; +extern const u8 gUnknown_841C994[]; #endif //GUARD_STRINGS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 740c9b9cf..75b61ce53 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1341,14 +1341,14 @@ static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) u16 who; ListMenuGetScrollAndRow(sFameCheckerData->listMenuTaskId, &listY, &cursorY); who = listY + cursorY; - AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); + AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].label); if (!onInit) { if (listY < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; else if (listY > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; - AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); + AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].label); } sFameCheckerData->listMenuCurIdx = itemIndex; @@ -1368,20 +1368,20 @@ static u8 FC_PopulateListMenu(void) { if (sTrainerIdxs[fameCheckerIdx] < FC_NONTRAINER_START) { - sListMenuItems[nitems].unk_00 = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName; - sListMenuItems[nitems].unk_04 = nitems; + sListMenuItems[nitems].label = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName; + sListMenuItems[nitems].index = nitems; } else { - sListMenuItems[nitems].unk_00 = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START]; - sListMenuItems[nitems].unk_04 = nitems; + sListMenuItems[nitems].label = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START]; + sListMenuItems[nitems].index = nitems; } sFameCheckerData->unlockedPersons[nitems] = fameCheckerIdx; nitems++; } } - sListMenuItems[nitems].unk_00 = gFameCheckerText_Cancel; - sListMenuItems[nitems].unk_04 = nitems; + sListMenuItems[nitems].label = gFameCheckerText_Cancel; + sListMenuItems[nitems].index = nitems; sFameCheckerData->unlockedPersons[nitems] = 0xFF; nitems++; gFameChecker_ListMenuTemplate.totalItems = nitems; diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 16e01f362..9ff96eb23 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -703,7 +703,7 @@ u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu) width = 0; for (i = 0; i < listMenuTemplate.totalItems; i++) { - u32 curWidth = GetStringWidth(2, listMenuTemplate.items[i].unk_00, listMenuTemplate.lettersSpacing); + u32 curWidth = GetStringWidth(2, listMenuTemplate.items[i].label, listMenuTemplate.lettersSpacing); if (curWidth > width) width = curWidth; } diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 6f1fcef3c..368508b77 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -1,4 +1,3 @@ -#include "main.h" #include "task.h" #include "menu.h" #include "palette.h" @@ -31,6 +30,9 @@ #include "help_system.h" #include "overworld.h" #include "unk_8159F40.h" +#include "graphics.h" +#include "fieldmap.h" +#include "strings.h" struct TeachyTvCtrlBlk { @@ -57,14 +59,6 @@ struct TeachyTvBuf EWRAM_DATA struct TeachyTvCtrlBlk gTeachyTV_StaticResources = {0}; EWRAM_DATA struct TeachyTvBuf * gUnknown_203F450 = NULL; -extern const struct SpritePalette gUnknown_83A5348; -extern const struct SpriteTemplate * const gUnknown_83A0010[]; -extern const struct MapData Route1_Layout; -extern const u8 gUnknown_841B7A4[], gUnknown_841B7BC[], gUnknown_841B7D6[], gUnknown_841B7EE[], gUnknown_841B807[], gUnknown_841B81B[], gUnknown_841B836[], gUnknown_841B83D[], gUnknown_841B8BF[], gUnknown_841BB40[], gUnknown_841BE76[], gUnknown_841C23B[], gUnknown_841C459[], gUnknown_841C82A[], gUnknown_841BA41[], gUnknown_841BD10[], gUnknown_841C0AF[], gUnknown_841C384[], gUnknown_841C7B4[], gUnknown_841C994[]; -extern const u8 gUnknown_8E86240[]; -extern const u8 gUnknown_8E86BE8[]; -extern const u8 gUnknown_8E86D6C[]; -extern const u8 gUnknown_8E86F98[]; void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId); void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId); @@ -189,57 +183,57 @@ const struct WindowTemplate gTeachyTvWindowTemplateArray[] = const struct ListMenuItem gTeachyTvListMenuItemArray[] = { { - .unk_00 = gUnknown_841B7A4, - .unk_04 = 0, + .label = gUnknown_841B7A4, + .index = 0, }, { - .unk_00 = gUnknown_841B7BC, - .unk_04 = 1, + .label = gUnknown_841B7BC, + .index = 1, }, { - .unk_00 = gUnknown_841B7D6, - .unk_04 = 2, + .label = gUnknown_841B7D6, + .index = 2, }, { - .unk_00 = gUnknown_841B7EE, - .unk_04 = 3, + .label = gUnknown_841B7EE, + .index = 3, }, { - .unk_00 = gUnknown_841B807, - .unk_04 = 4, + .label = gUnknown_841B807, + .index = 4, }, { - .unk_00 = gUnknown_841B81B, - .unk_04 = 5, + .label = gUnknown_841B81B, + .index = 5, }, { - .unk_00 = gUnknown_841B836, - .unk_04 = -2, + .label = gUnknown_841B836, + .index = -2, }, }; const struct ListMenuItem gTeachyTvListMenuItemArray2[] = { { - .unk_00 = gUnknown_841B7A4, - .unk_04 = 0, + .label = gUnknown_841B7A4, + .index = 0, }, { - .unk_00 = gUnknown_841B7BC, - .unk_04 = 1, + .label = gUnknown_841B7BC, + .index = 1, }, { - .unk_00 = gUnknown_841B7D6, - .unk_04 = 2, + .label = gUnknown_841B7D6, + .index = 2, }, { - .unk_00 = gUnknown_841B7EE, - .unk_04 = 3, + .label = gUnknown_841B7EE, + .index = 3, }, { - .unk_00 = gUnknown_841B836, - .unk_04 = -2, + .label = gUnknown_841B836, + .index = -2, }, }; @@ -428,86 +422,6 @@ void (* const * const gTeachyTvFuncClusterArray[])(u8) = gTeachyTvFuncCluster5, }; -const u8 * const gTeachyTvTextArray1[] = -{ - gUnknown_841B8BF, - gUnknown_841BB40, - gUnknown_841BE76, - gUnknown_841C23B, - gUnknown_841C459, - gUnknown_841C82A, -}; - -const u8 * const gTeachyTvTextArray2[] = -{ - gUnknown_841BA41, - gUnknown_841BD10, - gUnknown_841C0AF, - gUnknown_841C384, - gUnknown_841C7B4, - gUnknown_841C994, -}; - -const u16 gUnknown_8479590[] = -{ - 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, - 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, -}; - -const struct Subsprite gTeachyTvSubspriteArray[] = -{ - { - .x = -0x8, - .y = -0x8, - .shape = 0x1, - .size = 0x0, - .tileOffset = 0x0, - .priority = 0x3, - }, - { - .x = -0x8, - .y = 0x0, - .shape = 0x1, - .size = 0x0, - .tileOffset = 0x2, - .priority = 0x2, - }, -}; - -const struct SubspriteTable gTeachyTvSubspriteTableArray[] = -{ - { - .subspriteCount = 0, - .subsprites = NULL, - }, - { - .subspriteCount = 2, - .subsprites = gTeachyTvSubspriteArray, - }, -}; - -const u8 gTeachyTvGrassAnimArray[] = -{ - 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 0, 0, -}; - void TeachyTvCallback(void) { RunTasks(); @@ -754,7 +668,7 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId) { s16 *data = gTasks[taskId].data; int v1 = data[1]; - struct Sprite *v3 = &gSprites[v1]; + struct Sprite *objAddr = &gSprites[v1]; int op; ClearWindowTilemap(1); @@ -776,7 +690,7 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId) data[4] = 0; data[5] = 0; - TeachyTvGrassAnimationMain(taskId, v3->pos2.x, v3->pos2.y, 0, 1); + TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 1); } void TeachyTvInitTextPrinter(const char *text) @@ -811,7 +725,7 @@ void TeachyTvQuitFadeControlAndTaskDel(u8 taskId) else { sub_8055DC4(); - SetMainCallback2((void (*)())gTeachyTV_StaticResources.callback); + SetMainCallback2(gTeachyTV_StaticResources.callback); } TeachyTvFree(); DestroyTask(taskId); @@ -940,7 +854,15 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId) void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId) { s16 *data = gTasks[taskId].data; - const u8 * const* texts = gTeachyTvTextArray1; + const u8 * const *texts = (const u8 *const []) + { + gUnknown_841B8BF, + gUnknown_841BB40, + gUnknown_841BE76, + gUnknown_841C23B, + gUnknown_841C459, + gUnknown_841C82A, + }; TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]); ++data[3]; } @@ -948,11 +870,79 @@ void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId) void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId) { s16 *data = gTasks[taskId].data; - const u8 * const* texts = gTeachyTvTextArray2; + const u8 * const *texts = (const u8 *const []) + { + gUnknown_841BA41, + gUnknown_841BD10, + gUnknown_841C0AF, + gUnknown_841C384, + gUnknown_841C7B4, + gUnknown_841C994, + }; TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]); ++data[3]; } +const u16 gUnknown_8479590[] = +{ + 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, + 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, +}; + +const struct Subsprite gTeachyTvSubspriteArray[] = +{ + { + .x = -0x8, + .y = -0x8, + .shape = 0x1, + .size = 0x0, + .tileOffset = 0x0, + .priority = 0x3, + }, + { + .x = -0x8, + .y = 0x0, + .shape = 0x1, + .size = 0x0, + .tileOffset = 0x2, + .priority = 0x2, + }, +}; + +const struct SubspriteTable gTeachyTvSubspriteTableArray[] = +{ + { + .subspriteCount = 0, + .subsprites = NULL, + }, + { + .subspriteCount = 2, + .subsprites = gTeachyTvSubspriteArray, + }, +}; + +const u8 gTeachyTvGrassAnimArray[] = +{ + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, +}; + void TeachyTvClusFuncIdleIfTextPrinterIsActive2(u8 taskId) { s16 *data = (u16 *)gTasks[taskId].data; @@ -1027,25 +1017,25 @@ void TeachyTvClusFuncDudeTurnLeft(u8 taskId) { s16 *data = gTasks[taskId].data; - struct Sprite *v3 = &gSprites[data[1]]; - StartSpriteAnim(v3, 6); + struct Sprite *objAddr = &gSprites[data[1]]; + StartSpriteAnim(objAddr, 6); ++data[3]; data[4] = 0; data[5] = 0; - TeachyTvGrassAnimationMain(taskId, v3->pos2.x, v3->pos2.y, 0, 0); + TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 0); } void TeachyTvClusFuncDudeMoveLeft(u8 taskId) { s16 *data = gTasks[taskId].data; - struct Sprite *v2 = &gSprites[data[1]]; + struct Sprite *objAddr = &gSprites[data[1]]; - if (!(v2->pos2.x & 0xF)) - TeachyTvGrassAnimationMain(taskId, v2->pos2.x - 8, v2->pos2.y, 0, 0); - if (v2->pos2.x == 8) + if (!(objAddr->pos2.x & 0xF)) + TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x - 8, objAddr->pos2.y, 0, 0); + if (objAddr->pos2.x == 8) ++data[3]; else - --v2->pos2.x; + --objAddr->pos2.x; } void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId) diff --git a/src/tm_case.c b/src/tm_case.c index a436269f3..026ba95a7 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -496,11 +496,11 @@ static void InitTMCaseListMenuItems(void) for (i = 0; i < sTMCaseDynamicResources->numTMs; i++) { GetTMNumberAndMoveString(sListMenuStringsBuffer[i], pocket->itemSlots[i].itemId); - sListMenuItemsBuffer[i].unk_00 = sListMenuStringsBuffer[i]; - sListMenuItemsBuffer[i].unk_04 = i; + sListMenuItemsBuffer[i].label = sListMenuStringsBuffer[i]; + sListMenuItemsBuffer[i].index = i; } - sListMenuItemsBuffer[i].unk_00 = gText_Close; - sListMenuItemsBuffer[i].unk_04 = -2; + sListMenuItemsBuffer[i].label = gText_Close; + sListMenuItemsBuffer[i].index = -2; gMultiuseListMenuTemplate.items = sListMenuItemsBuffer; gMultiuseListMenuTemplate.totalItems = sTMCaseDynamicResources->numTMs + 1; gMultiuseListMenuTemplate.windowId = 0; |