diff options
-rw-r--r-- | data/data_83FECCC.s | 23 | ||||
-rw-r--r-- | data/data_8471F00.s | 41 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/coins.c | 2 | ||||
-rw-r--r-- | src/teachy_tv.c | 469 |
5 files changed, 456 insertions, 80 deletions
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index edddda0ab..52af8de8a 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -1903,7 +1903,28 @@ gUnknown_841B76B:: @ 841B76B .incbin "baserom.gba", 0x41B76B, 0xE gUnknown_841B779:: @ 841B779 - .incbin "baserom.gba", 0x41B779, 0xC4 + .incbin "baserom.gba", 0x41B779, 0x2B + +gUnknown_841B7A4:: @ 841B7A4 + .string "Teach me how to battle.$" + +gUnknown_841B7BC:: @ 841B7BC + .string "What are status problems?$" + +gUnknown_841B7D6:: @ 841B7D6 + .string "What are type matchups?$" + +gUnknown_841B7EE:: @ 841B7EE + .string "I want to catch POKéMON.$" + +gUnknown_841B807:: @ 841B807 + .string "Teach me about TMs.$" + +gUnknown_841B81B:: @ 841B81B + .string "How do I register an item?$" + +gUnknown_841B836:: @ 841B836 + .string "CANCEL$" gUnknown_841B83D:: @ 841B83D .string "Hey, all you TRAINERS out there!\n" diff --git a/data/data_8471F00.s b/data/data_8471F00.s index e8b51cf69..672a9178e 100644 --- a/data/data_8471F00.s +++ b/data/data_8471F00.s @@ -215,47 +215,6 @@ gUnknown_84791E8:: @ 84791E8 gUnknown_84792D0:: @ 84792D0 .incbin "baserom.gba", 0x4792D0, 0x10 -gUnknown_84792E0:: @ 84792E0 - .incbin "baserom.gba", 0x4792E0, 0x10 - -gUnknown_84792F0:: @ 84792F0 - .incbin "baserom.gba", 0x4792F0, 0x50 - -gUnknown_8479340:: @ 8479340 - .incbin "baserom.gba", 0x479340, 0x28 - -gUnknown_8479368:: @ 8479368 - .incbin "baserom.gba", 0x479368, 0x18 - -gUnknown_8479380:: @ 8479380 - .incbin "baserom.gba", 0x479380, 0x10 - -gUnknown_8479390:: @ 8479390 - .incbin "baserom.gba", 0x479390, 0x1B8 - -gUnknown_8479548:: @ 8479548 - .incbin "baserom.gba", 0x479548, 0x18 - -gUnknown_8479560:: @ 8479560 - .4byte gUnknown_841B8BF - .4byte gUnknown_841BB40 - .4byte gUnknown_841BE76 - .4byte gUnknown_841C23B - .4byte gUnknown_841C459 - .4byte gUnknown_841C82A - -gUnknown_8479578:: @ 8479578 - .incbin "baserom.gba", 0x479578, 0x18 - -gUnknown_8479590:: @ 8479590 - .incbin "baserom.gba", 0x479590, 0x28 - -gUnknown_84795B8:: @ 84795B8 - .incbin "baserom.gba", 0x4795B8, 0x10 - -gUnknown_84795C8:: @ 84795C8 - .incbin "baserom.gba", 0x4795C8, 0x90 - .section .rodata.8479668 .align 2 diff --git a/ld_script.txt b/ld_script.txt index db9b37607..d264549b7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -450,6 +450,7 @@ SECTIONS { src/text_window_graphics.o(.rodata); src/quest_log_8150454.o(.rodata); data/data_8471F00.o(.rodata); + src/teachy_tv.o(.rodata); src/unk_815C980.o(.rodata); data/data_8471F00.o(.rodata.8479668); src/trainer_tower.o(.rodata); diff --git a/src/coins.c b/src/coins.c index 08646e2f9..e97928df7 100644 --- a/src/coins.c +++ b/src/coins.c @@ -3,8 +3,8 @@ #include "text.h" #include "menu.h" #include "text_window.h" +#include "strings.h" -extern const u8 gText_Coins[]; extern const u8 gUnknown_8417C2D[]; EWRAM_DATA static u8 sCoinsWindowId = 0; diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 6c0df1edc..6f1fcef3c 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -1,5 +1,4 @@ #include "main.h" -#include "global.h" #include "task.h" #include "menu.h" #include "palette.h" @@ -58,27 +57,30 @@ struct TeachyTvBuf EWRAM_DATA struct TeachyTvCtrlBlk gTeachyTV_StaticResources = {0}; EWRAM_DATA struct TeachyTvBuf * gUnknown_203F450 = NULL; -extern const struct ScrollIndicatorArrowPairTemplate gUnknown_8479380; -extern const u8 gUnknown_841B83D[]; -extern const struct BgTemplate gUnknown_84792E0[]; extern const struct SpritePalette gUnknown_83A5348; -extern void (**gUnknown_8479548[])(u8); -extern const u8 * const gUnknown_8479560[]; -extern const u8 * const gUnknown_8479578[]; +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[]; -extern const struct ListMenuTemplate gUnknown_8479368; -extern const struct ListMenuItem gUnknown_8479340[]; -extern const struct WindowTemplate gUnknown_84792F0[]; -extern const u16 gUnknown_8479590[]; -extern const u8 gUnknown_8479390[]; -extern const struct SubspriteTable gUnknown_84795B8[]; -extern const struct SpriteTemplate * const gUnknown_83A0010[]; -extern const u8 gUnknown_84795C8[]; -extern const struct MapData Route1_Layout; +void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId); +void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId); +void TeachyTvClusFuncNpcMoveAndSetupTextPrinter(u8 taskId); +void TeachyTvClusFuncIdleIfTextPrinterIsActive(u8 taskId); +void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId); +void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId); +void TeachyTvClusFuncIdleIfTextPrinterIsActive2(u8 taskId); +void TeachyTvClusFuncEraseTextWindowIfKeyPressed(u8 taskId); +void TeachyTvClusFuncStartAnimNpcWalkIntoGrass(u8 taskId); +void TeachyTvClusFuncDudeMoveUp(u8 taskId); +void TeachyTvClusFuncDudeMoveRight(u8 taskId); +void TeachyTvClusFuncDudeTurnLeft(u8 taskId); +void TeachyTvClusFuncDudeMoveLeft(u8 taskId); +void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId); +void TeachyTvClusFuncTaskBattleOrFadeByOptionChosen(u8 taskId); void TeachyTvCallback(void); void TeachyTvMainCallback(void); void TeachyTvVblankHandler(void); @@ -113,6 +115,399 @@ void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 * u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile); void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 *palIndexArray); +const struct BgTemplate gTeachyTvBgTemplateArray[] = +{ + { + .bg = 0x0, + .charBaseIndex = 0x0, + .mapBaseIndex = 0x1F, + .screenSize = 0x0, + .paletteMode = 0x0, + .priority = 0x1, + .baseTile = 0x0, + }, + { + .bg = 0x1, + .charBaseIndex = 0x0, + .mapBaseIndex = 0x1E, + .screenSize = 0x0, + .paletteMode = 0x0, + .priority = 0x0, + .baseTile = 0x0, + }, + { + .bg = 0x2, + .charBaseIndex = 0x0, + .mapBaseIndex = 0x1D, + .screenSize = 0x0, + .paletteMode = 0x0, + .priority = 0x2, + .baseTile = 0x0, + }, + { + .bg = 0x3, + .charBaseIndex = 0x2, + .mapBaseIndex = 0x1C, + .screenSize = 0x0, + .paletteMode = 0x0, + .priority = 0x3, + .baseTile = 0x0, + }, +}; + +const struct WindowTemplate gTeachyTvWindowTemplateArray[] = +{ + { + .bg = 0x1, + .tilemapLeft = 0x2, + .tilemapTop = 0xF, + .width = 0x1A, + .height = 0x4, + .paletteNum = 0x3, + .baseBlock = 0xEA, + }, + { + .bg = 0x0, + .tilemapLeft = 0x4, + .tilemapTop = 0x1, + .width = 0x16, + .height = 0xC, + .paletteNum = 0x3, + .baseBlock = 0x152, + }, + { + .bg = 0xFF, + .tilemapLeft = 0x0, + .tilemapTop = 0x0, + .width = 0x0, + .height = 0x0, + .paletteNum = 0x0, + .baseBlock = 0x0, + }, +}; + +const struct ListMenuItem gTeachyTvListMenuItemArray[] = +{ + { + .unk_00 = gUnknown_841B7A4, + .unk_04 = 0, + }, + { + .unk_00 = gUnknown_841B7BC, + .unk_04 = 1, + }, + { + .unk_00 = gUnknown_841B7D6, + .unk_04 = 2, + }, + { + .unk_00 = gUnknown_841B7EE, + .unk_04 = 3, + }, + { + .unk_00 = gUnknown_841B807, + .unk_04 = 4, + }, + { + .unk_00 = gUnknown_841B81B, + .unk_04 = 5, + }, + + { + .unk_00 = gUnknown_841B836, + .unk_04 = -2, + }, +}; + +const struct ListMenuItem gTeachyTvListMenuItemArray2[] = +{ + { + .unk_00 = gUnknown_841B7A4, + .unk_04 = 0, + }, + { + .unk_00 = gUnknown_841B7BC, + .unk_04 = 1, + }, + { + .unk_00 = gUnknown_841B7D6, + .unk_04 = 2, + }, + { + .unk_00 = gUnknown_841B7EE, + .unk_04 = 3, + }, + { + .unk_00 = gUnknown_841B836, + .unk_04 = -2, + }, +}; + +const struct ListMenuTemplate gTeachyTvListMenuTemplateArray = +{ + .items = gTeachyTvListMenuItemArray, + .moveCursorFunc = NULL, + .itemPrintFunc = NULL, + .totalItems = 0x7, + .maxShowed = 0x6, + .windowId = 0x0, + .header_X = 0x0, + .item_X = 0x8, + .cursor_X = 0x0, + .upText_Y = 0x6, + .cursorPal = 0x1, + .fillValue = 0x0, + .cursorShadowPal = 0x2, + .lettersSpacing = 0x0, + .itemVerticalPadding = 0x0, + .scrollMultiple = 0x1, + .fontId = 0x2, + .cursorKind = 0x0, +}; + +const struct ScrollIndicatorArrowPairTemplate gTeachyTvScrollIndicatorArrowPairTemplateArray = +{ + .unk_00 = 0x2, + .unk_01 = 0x78, + .unk_02 = 0xC, + .unk_03 = 0x3, + .unk_04 = 0x78, + .unk_05 = 0x64, + .unk_06 = 0x0, + .unk_08 = 0x1, + .unk_0a = 0x800, + .unk_0c = 0x800, + .unk_0e_0 = 0x0, + .unk_0e_4 = 0x0, +}; + +const u8 gTeachyTvSwitchFuncArray[] = +{ + 0xC, 0xC, 0xC, 0xC, 0x9, 0x9, 0x0, 0x0, +}; + +void (* const gTeachyTvFuncCluster0[])(u8) = +{ + TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos, + TeachyTvClusFuncClearBg2TeachyTvGraphic, + TeachyTvClusFuncNpcMoveAndSetupTextPrinter, + TeachyTvClusFuncIdleIfTextPrinterIsActive, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncStartAnimNpcWalkIntoGrass, + TeachyTvClusFuncDudeMoveUp, + TeachyTvClusFuncDudeMoveRight, + TeachyTvClusFuncTaskBattleOrFadeByOptionChosen, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncDudeTurnLeft, + TeachyTvClusFuncDudeMoveLeft, + TeachyTvClusFuncRenderAndRemoveBg1EndGraphic, + TeachyTvBackToOptionList, +}; + +void (* const gTeachyTvFuncCluster1[])(u8) = +{ + TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos, + TeachyTvClusFuncClearBg2TeachyTvGraphic, + TeachyTvClusFuncNpcMoveAndSetupTextPrinter, + TeachyTvClusFuncIdleIfTextPrinterIsActive, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncStartAnimNpcWalkIntoGrass, + TeachyTvClusFuncDudeMoveUp, + TeachyTvClusFuncDudeMoveRight, + TeachyTvClusFuncTaskBattleOrFadeByOptionChosen, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncDudeTurnLeft, + TeachyTvClusFuncDudeMoveLeft, + TeachyTvClusFuncRenderAndRemoveBg1EndGraphic, + TeachyTvBackToOptionList, +}; + +void (* const gTeachyTvFuncCluster2[])(u8) = +{ + TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos, + TeachyTvClusFuncClearBg2TeachyTvGraphic, + TeachyTvClusFuncNpcMoveAndSetupTextPrinter, + TeachyTvClusFuncIdleIfTextPrinterIsActive, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncStartAnimNpcWalkIntoGrass, + TeachyTvClusFuncDudeMoveUp, + TeachyTvClusFuncDudeMoveRight, + TeachyTvClusFuncTaskBattleOrFadeByOptionChosen, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncDudeTurnLeft, + TeachyTvClusFuncDudeMoveLeft, + TeachyTvClusFuncRenderAndRemoveBg1EndGraphic, + TeachyTvBackToOptionList, +}; + +void (* const gTeachyTvFuncCluster3[])(u8) = +{ + TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos, + TeachyTvClusFuncClearBg2TeachyTvGraphic, + TeachyTvClusFuncNpcMoveAndSetupTextPrinter, + TeachyTvClusFuncIdleIfTextPrinterIsActive, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncStartAnimNpcWalkIntoGrass, + TeachyTvClusFuncDudeMoveUp, + TeachyTvClusFuncDudeMoveRight, + TeachyTvClusFuncTaskBattleOrFadeByOptionChosen, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncDudeTurnLeft, + TeachyTvClusFuncDudeMoveLeft, + TeachyTvClusFuncRenderAndRemoveBg1EndGraphic, + TeachyTvBackToOptionList, +}; + +void (* const gTeachyTvFuncCluster4[])(u8) = +{ + TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos, + TeachyTvClusFuncClearBg2TeachyTvGraphic, + TeachyTvClusFuncNpcMoveAndSetupTextPrinter, + TeachyTvClusFuncIdleIfTextPrinterIsActive, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncTaskBattleOrFadeByOptionChosen, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncDudeTurnLeft, + TeachyTvClusFuncDudeMoveLeft, + TeachyTvClusFuncRenderAndRemoveBg1EndGraphic, + TeachyTvBackToOptionList, +}; + +void (* const gTeachyTvFuncCluster5[])(u8) = +{ + TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos, + TeachyTvClusFuncClearBg2TeachyTvGraphic, + TeachyTvClusFuncNpcMoveAndSetupTextPrinter, + TeachyTvClusFuncIdleIfTextPrinterIsActive, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncTaskBattleOrFadeByOptionChosen, + TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2, + TeachyTvClusFuncIdleIfTextPrinterIsActive2, + TeachyTvClusFuncEraseTextWindowIfKeyPressed, + TeachyTvClusFuncDudeTurnLeft, + TeachyTvClusFuncDudeMoveLeft, + TeachyTvClusFuncRenderAndRemoveBg1EndGraphic, + TeachyTvBackToOptionList, +}; + +void (* const * const gTeachyTvFuncClusterArray[])(u8) = +{ + gTeachyTvFuncCluster0, + gTeachyTvFuncCluster1, + gTeachyTvFuncCluster2, + gTeachyTvFuncCluster3, + gTeachyTvFuncCluster4, + 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(); @@ -219,7 +614,7 @@ void TeachyTvSetupBg(void) { InitBgReg(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_84792E0, 4); + InitBgsFromTemplates(0, gTeachyTvBgTemplateArray, 4); SetBgTilemapBuffer(1, gUnknown_203F450->buffer1); SetBgTilemapBuffer(2, gUnknown_203F450->buffer2); SetBgTilemapBuffer(3, gUnknown_203F450->buffer3); @@ -250,7 +645,7 @@ void TeachyTvLoadGraphic(void) void TeachyTvCreateAndRenderRbox(void) { - InitWindows(gUnknown_84792F0); + InitWindows(gTeachyTvWindowTemplateArray); DeactivateAllTextPrinters(); FillWindowPixelBuffer(0, 0xCC); PutWindowTilemap(0); @@ -260,12 +655,12 @@ void TeachyTvCreateAndRenderRbox(void) u8 TeachyTvSetupWindow(void) { - gMultiuseListMenuTemplate = gUnknown_8479368; + gMultiuseListMenuTemplate = gTeachyTvListMenuTemplateArray; gMultiuseListMenuTemplate.windowId = 1; gMultiuseListMenuTemplate.moveCursorFunc = TeachyTvAudioByInput; if (!CheckBagHasItem(ITEM_TM_CASE, 1)) { - gMultiuseListMenuTemplate.items = gUnknown_8479340; + gMultiuseListMenuTemplate.items = gTeachyTvListMenuItemArray2; gMultiuseListMenuTemplate.totalItems = 5; gMultiuseListMenuTemplate.maxShowed = 5; gMultiuseListMenuTemplate.upText_Y = (gMultiuseListMenuTemplate.upText_Y + 8) & 0xF; @@ -285,7 +680,7 @@ void TeachyTvSetupScrollIndicatorArrowPair(void) } else { - u8 res = AddScrollIndicatorArrowPair(&gUnknown_8479380, &(gTeachyTV_StaticResources.scrollOffset)); + u8 res = AddScrollIndicatorArrowPair(&gTeachyTvScrollIndicatorArrowPairTemplateArray, &(gTeachyTV_StaticResources.scrollOffset)); gUnknown_203F450->var_4007 = res; } } @@ -315,10 +710,10 @@ void TeachyTvInitIo(void) u8 TeachyTvSetupObjEventAndOam(void) { - u8 temp = AddPseudoEventObject(90, SpriteCallbackDummy, 0, 0, 8); - gSprites[temp].oam.priority = 2; - gSprites[temp].invisible = 1; - return temp; + u8 objId = AddPseudoEventObject(90, SpriteCallbackDummy, 0, 0, 8); + gSprites[objId].oam.priority = 2; + gSprites[objId].invisible = 1; + return objId; } void TeachyTvSetSpriteCoordsAndSwitchFrame(u8 objId, u16 x, u16 y, u8 frame) @@ -536,8 +931,8 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId) } else { - void (***array)(u8) = gUnknown_8479548; - void (**cluster)(u8) = array[(u8)gTeachyTV_StaticResources.optionChosen]; + void (* const * const *array)(u8) = gTeachyTvFuncClusterArray; + void (* const * const cluster)(u8) = array[(u8)gTeachyTV_StaticResources.optionChosen]; cluster[data[3]](taskId); } } @@ -545,7 +940,7 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId) void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId) { s16 *data = gTasks[taskId].data; - const u8 * const* texts = gUnknown_8479560; + const u8 * const* texts = gTeachyTvTextArray1; TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]); ++data[3]; } @@ -553,7 +948,7 @@ void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId) void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId) { s16 *data = gTasks[taskId].data; - const u8 * const* texts = gUnknown_8479578; + const u8 * const* texts = gTeachyTvTextArray2; TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]); ++data[3]; } @@ -701,7 +1096,7 @@ void TeachyTvBackToOptionList(u8 taskId) } } -void TeachyTvChainTaskBattleOrFadeByOptionChosen(u8 taskId) +void TeachyTvClusFuncTaskBattleOrFadeByOptionChosen(u8 taskId) { int op = gTeachyTV_StaticResources.optionChosen; if (op >= 0) @@ -732,7 +1127,7 @@ void TeachyTvPostBattleFadeControl(u8 taskId) s16 *data = gTasks[taskId].data; if (!(gPaletteFade.active)) { - const u8 *funcIdx = gUnknown_8479390; + const u8 *funcIdx = gTeachyTvSwitchFuncArray; int arg = funcIdx[gTeachyTV_StaticResources.optionChosen]; data[3] = arg; gTasks[taskId].func = TeachyTvRenderMsgAndSwitchClusterFuncs; @@ -767,7 +1162,7 @@ void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 m } else { - SetSubspriteTables(obj, gUnknown_84795B8); + SetSubspriteTables(obj, gTeachyTvSubspriteTableArray); obj->subspriteTableNum = 0; obj->subspriteMode = 1; } @@ -813,7 +1208,7 @@ u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y) int high, low; if ((x < 0) || (y < 0)) return 0; - arr = gUnknown_84795C8; + arr = gTeachyTvGrassAnimArray; high = ((y >> 4) + gUnknown_203F450->var_4005) << 4; low = ((x >> 4) + gUnknown_203F450->var_4004); return arr[high+low]; @@ -1230,8 +1625,8 @@ void TeachyTvPushBackNewMapPalIndexArrayEntry(struct MapData *mStruct, u16 *buf1 metaTileEntryAddr = &((u16*)(ts->metatiles))[8 * temp]; buf1[0] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[0]) << 12) + 4 * offset; buf1[1] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[1]) << 12) + 4 * offset + 1; - buf1[0x20] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[2]) << 12) + 4 * offset + 2; - buf1[0x21] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[3]) << 12) + 4 * offset + 3; + buf1[32] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[2]) << 12) + 4 * offset + 2; + buf1[33] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[3]) << 12) + 4 * offset + 3; } #else NAKED @@ -1327,8 +1722,8 @@ void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 * { for (j = 0; j < 4; ++j) { - u32 offset2 = j - 3; - u8 value = buffer[(i << 2) - offset2]; + u32 offset = j - 3; + u8 value = buffer[(i << 2) - offset]; src[(i << 2) + j] = ((value & 0xF) << 4) + ((value & 0xF0) >> 4); } } |