summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/teachy_tv.c118
1 files changed, 58 insertions, 60 deletions
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index 8c126805a..9e50d2d75 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -63,6 +63,15 @@ extern struct SpriteTemplate *gUnknown_83A0010;
extern u8 gUnknown_84795C8;
extern struct MapData Route1_Layout;
+extern void VblankHblankHandlerSetZero();
+extern void sub_812B1E0(u16);
+extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
+extern void sub_8055DC4();
+extern bool16 sub_80BF518(u8 textPrinterId);
+extern void _call_via_r1(s32 arg, void *func);
+extern void sub_810B108(u8);
+extern void sub_8159F40();
+
void TeachyTvCallback();
void TeachyTvMainCallback();
void TeachyTvVblankHandler();
@@ -97,15 +106,6 @@ void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *
u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile);
void TeachyTvLoadMapPalette(struct MapData *mStruct, u8 *palIndexArray);
-extern void VblankHblankHandlerSetZero();
-extern void sub_812B1E0(u16);
-extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
-extern void sub_8055DC4();
-extern bool16 sub_80BF518(u8 textPrinterId);
-extern void _call_via_r1(s32 arg, void *func);
-extern void sub_810B108(u8);
-extern void sub_8159F40();
-
void TeachyTvCallback()
{
RunTasks();
@@ -161,59 +161,57 @@ void TeachyTvMainCallback()
u32 x;
state = gMain.state;
- if ( !state )
- goto RESETANDLOAD;
- else if ( state == 1 )
- goto SETDMATOVRAM;
- else
- return;
-RESETANDLOAD:
- memBuf = (u8 **)&gUnknown_203F450;
- (*memBuf) = (u8*)AllocZeroed(0x4008u);
- *(u32*)gUnknown_203F450 = (u32)state;
- *((u8*)gUnknown_203F450 + 0x4006) = state;
- *((u8*)gUnknown_203F450 + 0x4007) = 0xFF;
- VblankHblankHandlerSetZero();
- clear_scheduled_bg_copies_to_vram();
- ScanlineEffect_Stop();
- FreeAllSpritePalettes();
- ResetPaletteFade();
- ResetSpriteData();
- ResetTasks();
- TeachyTvSetupBg();
- TeachyTvLoadGraphic();
- ++gMain.state;
- return;
-SETDMATOVRAM:
- if( free_temp_tile_data_buffers_if_possible() == 1 )
- return;
- TeachyTvCreateAndRenderRbox();
- TeachyTvInitIo();
- if ( gTeachyTV_StaticResources.mode == 2 )
+ switch(state)
{
- taskId = CreateTask(TeachyTvPostBattleFadeControl, 0);
- gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
- TeachyTvSetupPostBattleWindowAndObj(taskId);
- }
- else
- {
- taskId = CreateTask(TeachyTvOptionListController, 0);
- x = (u32)TeachyTvSetupWindow();
- gTasks[taskId].data[0] = (x << 24) >> 24;
- gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
- TeachyTvSetupScrollIndicatorArrowPair();
- PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
- TeachyTvSetWindowRegs();
+ case 0:
+ memBuf = (u8 **)&gUnknown_203F450;
+ (*memBuf) = (u8*)AllocZeroed(0x4008u);
+ *(u32*)gUnknown_203F450 = (u32)state;
+ *((u8*)gUnknown_203F450 + 0x4006) = state;
+ *((u8*)gUnknown_203F450 + 0x4007) = 0xFF;
+ VblankHblankHandlerSetZero();
+ clear_scheduled_bg_copies_to_vram();
+ ScanlineEffect_Stop();
+ FreeAllSpritePalettes();
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ TeachyTvSetupBg();
+ TeachyTvLoadGraphic();
+ ++gMain.state;
+ break;
+ case 1:
+ if( free_temp_tile_data_buffers_if_possible() == 1 )
+ return;
+ TeachyTvCreateAndRenderRbox();
+ TeachyTvInitIo();
+ if ( gTeachyTV_StaticResources.mode == 2 )
+ {
+ taskId = CreateTask(TeachyTvPostBattleFadeControl, 0);
+ gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
+ TeachyTvSetupPostBattleWindowAndObj(taskId);
+ }
+ else
+ {
+ taskId = CreateTask(TeachyTvOptionListController, 0);
+ x = (u32)TeachyTvSetupWindow();
+ gTasks[taskId].data[0] = (x << 24) >> 24;
+ gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
+ TeachyTvSetupScrollIndicatorArrowPair();
+ PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
+ TeachyTvSetWindowRegs();
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1u);
+ schedule_bg_copy_tilemap_to_vram(2u);
+ schedule_bg_copy_tilemap_to_vram(3u);
+ sub_812B1E0(9); // help system something
+ BlendPalettes(0xFFFFFFFF, 0x10u, 0);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10u, 0, 0);
+ SetVBlankCallback(TeachyTvVblankHandler);
+ SetMainCallback2(TeachyTvCallback);
+ break;
}
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1u);
- schedule_bg_copy_tilemap_to_vram(2u);
- schedule_bg_copy_tilemap_to_vram(3u);
- sub_812B1E0(9); // help system something
- BlendPalettes(0xFFFFFFFF, 0x10u, 0);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10u, 0, 0);
- SetVBlankCallback(TeachyTvVblankHandler);
- SetMainCallback2(TeachyTvCallback);
}
void TeachyTvSetupBg()