diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-02-07 00:40:22 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-02-07 00:40:22 -0500 |
commit | dcd35c895cb1c5680f92360cb084e6924ed3b76f (patch) | |
tree | e3b12bfd9f67e1237832602f03fe5bfd7380ab0b /src/field/overworld.c | |
parent | eff6795887cc27f2c5139df9a6da70f4f02338b4 (diff) | |
parent | c79d259508d47a8b5bde5b9060b8fe8c6989bd44 (diff) |
Merge branch 'master' into unk_text_8095904
Diffstat (limited to 'src/field/overworld.c')
-rw-r--r-- | src/field/overworld.c | 148 |
1 files changed, 113 insertions, 35 deletions
diff --git a/src/field/overworld.c b/src/field/overworld.c index e239daec7..07135080e 100644 --- a/src/field/overworld.c +++ b/src/field/overworld.c @@ -25,6 +25,7 @@ #include "link.h" #include "load_save.h" #include "main.h" +#include "m4a.h" #include "constants/maps.h" #include "map_name_popup.h" #include "menu.h" @@ -47,7 +48,7 @@ #include "tileset_anim.h" #include "time_events.h" #include "tv.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "wild_encounter.h" #ifdef SAPPHIRE @@ -62,6 +63,7 @@ struct UnkTVStruct u32 tv_field_4; }; +extern u8 gUnknown_020297ED; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; @@ -142,7 +144,7 @@ const struct UCoords32 gUnknown_0821664C[] = { 1, -1}, }; -const struct UnknownTaskStruct gUnknown_08216694 = +const struct ScanlineEffectParams gUnknown_08216694 = { (void *)REG_ADDR_WIN0H, ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, @@ -590,7 +592,7 @@ bool8 sub_80538D0(u16 x, u16 y) void sub_80538F0(u8 mapGroup, u8 mapNum) { - s32 i; + s32 paletteIndex; Overworld_SetWarpDestination(mapGroup, mapNum, -1, -1, -1); sub_8053F0C(); @@ -611,8 +613,8 @@ void sub_80538F0(u8 mapGroup, u8 mapNum) sub_8056D38(gMapHeader.mapData); apply_map_tileset2_palette(gMapHeader.mapData); - for (i = 6; i < 12; i++) - sub_807D874(i); + for (paletteIndex = 6; paletteIndex < 12; paletteIndex++) + ApplyWeatherGammaShiftToPal(paletteIndex); sub_8072ED0(); UpdateLocationHistoryForRoamer(); @@ -1106,6 +1108,68 @@ u8 sav1_map_get_battletype(void) return Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum)->battleType; } +#if DEBUG + +void debug_sub_8076B68(void); + +void debug_sub_80589D8(void); + +void debug_sub_8058A50(void); + +void CB2_InitTestMenu(void) +{ + m4aSoundVSyncOff(); + SetVBlankCallback(NULL); + DmaFill32(3, 0, (void *) VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *) PLTT, PLTT_SIZE); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + ScanlineEffect_Stop(); + Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4); + InitMenuWindow(&gWindowTemplate_81E6CE4); + debug_sub_8076B68(); + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + REG_IE |= 1; + REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP; + m4aSoundVSyncOn(); + SetVBlankCallback(debug_sub_8058A50); + m4aSongNumStart(0x19D); + SetMainCallback2(debug_sub_80589D8); +} + +void debug_sub_80589D8(void) +{ + if (UpdatePaletteFade()) + return; + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); +} + +void debug_sub_80589F4(void) +{ + if (UpdatePaletteFade()) + return; + + SetVBlankCallback(NULL); + + DmaFill32(3, 0, (void *) VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *) PLTT, PLTT_SIZE); + + SetMainCallback2(gMain.savedCallback); +} + +void debug_sub_8058A50(void) +{ + ProcessSpriteCopyRequests(); + LoadOam(); + TransferPlttBuffer(); +} + +#endif + void ResetSafariZoneFlag_(void) { ResetSafariZoneFlag(); @@ -1210,6 +1274,33 @@ void CB2_NewGame(void) SetMainCallback2(c2_overworld); } +#if DEBUG + +extern void (*gFieldCallback)(void); + +void debug_sub_8058C00(void) +{ + FieldClearVBlankHBlankCallbacks(); + StopMapMusic(); + ResetSafariZoneFlag_(); + player_avatar_init_params_reset(); + PlayTimeCounter_Start(); + ScriptContext1_Init(); + ScriptContext2_Disable(); + + if (gMain.heldKeys & R_BUTTON) + gFieldCallback = ExecuteTruckSequence; + else + gFieldCallback = sub_8080B60; + + do_load_map_stuff_loop(&gMain.state); + SetFieldVBlankCallback(); + set_callback1(c1_overworld); + SetMainCallback2(c2_overworld); +} + +#endif + void CB2_WhiteOut(void) { u8 val; @@ -1365,6 +1456,10 @@ void CB2_ContinueSavedGame(void) { FieldClearVBlankHBlankCallbacks(); StopMapMusic(); +#if DEBUG + if (gMain.heldKeys & R_BUTTON) + gUnknown_020297ED = TRUE; +#endif ResetSafariZoneFlag_(); LoadSaveblockMapHeader(); LoadSaveblockMapObjScripts(); @@ -1410,7 +1505,7 @@ void VBlankCB_Field(void) { LoadOam(); ProcessSpriteCopyRequests(); - sub_8089668(); + ScanlineEffect_InitHBlankDmaTransfer(); sub_8057A58(); TransferPlttBuffer(); sub_8072E74(); @@ -1422,7 +1517,7 @@ void sub_8054814(void) if (val) { sub_80815E0(val); - sub_80895F8(gUnknown_08216694); + ScanlineEffect_SetParams(gUnknown_08216694); } } @@ -1456,8 +1551,8 @@ bool32 sub_805483C(u8 *a1) case 4: sub_8054814(); sub_8054C54(); - SetUpWindowConfig(&gWindowConfig_81E6C3C); - InitMenuWindow(&gWindowConfig_81E6CE4); + Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); + InitMenuWindow(&gWindowTemplate_81E6CE4); (*a1)++; break; case 5: @@ -1522,8 +1617,8 @@ bool32 sub_805493C(u8 *a1, u32 a2) case 4: sub_8054814(); sub_8054C54(); - SetUpWindowConfig(&gWindowConfig_81E6C3C); - InitMenuWindow(&gWindowConfig_81E6CE4); + Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); + InitMenuWindow(&gWindowTemplate_81E6CE4); (*a1)++; break; case 5: @@ -1612,8 +1707,8 @@ bool32 sub_8054A9C(u8 *a1) case 3: sub_8054814(); sub_8054C54(); - SetUpWindowConfig(&gWindowConfig_81E6C3C); - InitMenuWindow(&gWindowConfig_81E6CE4); + Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); + InitMenuWindow(&gWindowTemplate_81E6CE4); (*a1)++; break; case 4: @@ -1664,29 +1759,12 @@ void do_load_map_stuff_loop(u8 *a1) void sub_8054BA8(void) { - u8 *addr; - u32 size; - REG_DISPCNT = 0; - remove_some_task(); + ScanlineEffect_Stop(); DmaClear16(3, PLTT + 2, PLTT_SIZE - 2); - - addr = (void *)VRAM; - size = 0x18000; - while (1) - { - DmaFill16(3, 0, addr, 0x1000); - addr += 0x1000; - size -= 0x1000; - if (size <= 0x1000) - { - DmaFill16(3, 0, addr, size); - break; - } - } - + DmaFill16Large(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000); ResetOamRange(0, 128); LoadOam(); } @@ -1695,8 +1773,8 @@ void sub_8054C2C(void) { sub_8054814(); sub_8054C54(); - SetUpWindowConfig(&gWindowConfig_81E6C3C); - InitMenuWindow(&gWindowConfig_81E6CE4); + Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); + InitMenuWindow(&gWindowTemplate_81E6CE4); mapdata_load_assets_to_gpu_and_full_redraw(); } @@ -1731,7 +1809,7 @@ void sub_8054D4C(u32 a1) ResetTasks(); ResetSpriteData(); ResetPaletteFade(); - dp12_8087EA4(); + ScanlineEffect_Clear(); ResetCameraUpdateInfo(); InstallCameraPanAheadCallback(); sub_805C7C4(0); |