through InitCurrentFlashLevelScanlineEffect

This commit is contained in:
PikalaxALT
2020-03-28 14:40:25 -04:00
parent f0fe4904d0
commit f5f4d6bc1f
11 changed files with 101 additions and 146 deletions
+3 -132
View File
@@ -5,135 +5,6 @@
.text
thumb_func_start CB2_ContinueSavedGame
CB2_ContinueSavedGame: @ 8056938
push {lr}
bl FieldClearVBlankHBlankCallbacks
bl StopMapMusic
bl ResetSafariZoneFlag_
bl LoadSaveblockMapHeader
bl sub_80550A8
bl UnfreezeObjectEvents
bl sub_8054E40
bl InitMapFromSavedGame
bl PlayTimeCounter_Start
bl ScriptContext1_Init
bl ScriptContext2_Disable
ldr r1, _08056990 @ =gFieldCallback2
movs r0, 0
str r0, [r1]
ldr r1, _08056994 @ =gUnknown_2031DE0
movs r0, 0x1
strb r0, [r1]
bl sav2_x1_query_bit1
cmp r0, 0x1
bne _0805699C
bl sav2_x9_clear_bit1
bl SetWarpDestinationToContinueGameWarp
bl WarpIntoMap
ldr r0, _08056998 @ =CB2_LoadMap
bl SetMainCallback2
b _080569AC
.align 2, 0
_08056990: .4byte gFieldCallback2
_08056994: .4byte gUnknown_2031DE0
_08056998: .4byte CB2_LoadMap
_0805699C:
ldr r0, _080569B0 @ =gFieldCallback
ldr r1, _080569B4 @ =sub_8056918
str r1, [r0]
ldr r0, _080569B8 @ =CB1_Overworld
bl SetMainCallback1
bl CB2_ReturnToField
_080569AC:
pop {r0}
bx r0
.align 2, 0
_080569B0: .4byte gFieldCallback
_080569B4: .4byte sub_8056918
_080569B8: .4byte CB1_Overworld
thumb_func_end CB2_ContinueSavedGame
thumb_func_start FieldClearVBlankHBlankCallbacks
FieldClearVBlankHBlankCallbacks: @ 80569BC
push {lr}
bl sub_80CC87C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080569CE
bl CloseLink
_080569CE:
ldr r0, _080569E4 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080569E8
movs r0, 0xC5
bl EnableInterrupts
movs r0, 0x2
bl DisableInterrupts
b _080569F4
.align 2, 0
_080569E4: .4byte gWirelessCommType
_080569E8:
movs r0, 0x2
bl DisableInterrupts
movs r0, 0x1
bl EnableInterrupts
_080569F4:
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl SetHBlankCallback
pop {r0}
bx r0
thumb_func_end FieldClearVBlankHBlankCallbacks
thumb_func_start SetFieldVBlankCallback
SetFieldVBlankCallback: @ 8056A04
push {lr}
ldr r0, _08056A10 @ =VBlankCB_Field
bl SetVBlankCallback
pop {r0}
bx r0
.align 2, 0
_08056A10: .4byte VBlankCB_Field
thumb_func_end SetFieldVBlankCallback
thumb_func_start VBlankCB_Field
VBlankCB_Field: @ 8056A14
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl ScanlineEffect_InitHBlankDmaTransfer
bl FieldUpdateBgTilemapScroll
bl TransferPlttBuffer
bl TransferTilesetAnimsBuffer
pop {r0}
bx r0
thumb_func_end VBlankCB_Field
thumb_func_start InitCurrentFlashLevelScanlineEffect
InitCurrentFlashLevelScanlineEffect: @ 8056A34
push {lr}
bl Overworld_GetFlashLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _08056A52
bl WriteFlashScanlineEffectBuffer
ldr r2, _08056A58 @ =gFlashEffectParams
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
bl ScanlineEffect_SetParams
_08056A52:
pop {r0}
bx r0
.align 2, 0
_08056A58: .4byte gFlashEffectParams
thumb_func_end InitCurrentFlashLevelScanlineEffect
thumb_func_start map_loading_iteration_3
map_loading_iteration_3: @ 8056A5C
push {r4,lr}
@@ -1297,7 +1168,7 @@ sub_8057430: @ 8057430
strb r0, [r1]
bl ResetSafariZoneFlag_
bl LoadSaveblockMapHeader
bl sub_80550A8
bl LoadSaveblockObjEventScripts
bl UnfreezeObjectEvents
bl sub_8054E40
bl InitMapFromSavedGame
@@ -1306,10 +1177,10 @@ sub_8057430: @ 8057430
ldr r1, _08057488 @ =gUnknown_2031DE0
movs r0, 0x1
strb r0, [r1]
bl sav2_x1_query_bit1
bl UseContinueGameWarp
cmp r0, 0x1
bne _08057490
bl sav2_x9_clear_bit1
bl ClearContinueGameWarpStatus
bl SetWarpDestinationToContinueGameWarp
bl WarpIntoMap
ldr r0, _0805748C @ =CB2_LoadMap
-5
View File
@@ -5,11 +5,6 @@
.section .rodata
.align 2, 0
gFlashEffectParams:: @ 826D330
.4byte REG_WIN0H
.4byte (2 >> 1) | ((DMA_16BIT | DMA_DEST_RELOAD | DMA_SRC_INC | DMA_REPEAT | DMA_START_HBLANK | DMA_ENABLE) << 16)
.byte 1, 0
.align 2
gUnknown_826D33C:: @ 826D33C
.4byte sub_8058684
+1
View File
@@ -33,5 +33,6 @@ void InstallCameraPanAheadCallback(void);
void DrawDoorMetatileAt(int x, int y, const u16 *data);
void move_tilemap_camera_to_upper_left_corner(void);
void CameraUpdate(void);
void FieldUpdateBgTilemapScroll(void);
#endif //GUARD_FIELD_CAMERA_H
+1
View File
@@ -10,6 +10,7 @@ void sub_807E3EC(void);
void DoOutwardBarnDoorWipe(void);
void Task_BarnDoorWipe(u8 taskId);
void FieldCB_RushInjuredPokemonToCenter(void);
void WriteFlashScanlineEffectBuffer(u8 flashLevel);
extern const s32 gMaxFlashLevel;
+1
View File
@@ -33,5 +33,6 @@ void IncrementResortGorgeousStepCounter(void);
void IncrementBirthIslandRockStepCount(void);
void ResetCyclingRoadChallengeData(void);
void ResetFieldTasksArgs(void);
bool8 UsedPokemonCenterWarp(void);
#endif // GUARD_FIELD_SPECIALS_H
+1
View File
@@ -39,5 +39,6 @@ void apply_map_tileset1_tileset2_palette(struct MapLayout const * mapLayout);
void InitMap(void);
void copy_map_tileset2_to_vram_2(const struct MapLayout * mapLayout);
void apply_map_tileset2_palette(const struct MapLayout * mapLayout);
void InitMapFromSavedGame(void);
#endif //GUARD_FIELDMAP_H
+3 -1
View File
@@ -30,6 +30,8 @@ void ApplyNewEncryptionKeyToWord(u32 * word, u32 encryptionKey);
void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey);
void ClearContinueGameWarpStatus2(void);
void SetContinueGameWarpStatusToDynamicWarp(void);
void sub_804C1AC(void);
void SetContinueGameWarpStatus(void);
bool32 UseContinueGameWarp(void);
void ClearContinueGameWarpStatus();
#endif // GUARD_LOAD_SAVE_H
+1 -1
View File
@@ -2037,7 +2037,7 @@ const u16 sPokeCenter1FMaps[] = {
MAP_UNDEFINED
};
bool8 sub_80CC87C(void)
bool8 UsedPokemonCenterWarp(void)
{
s32 i;
u16 mapno = (gLastUsedWarp.mapGroup << 8) + gLastUsedWarp.mapNum;
+3 -3
View File
@@ -127,17 +127,17 @@ void MoveSaveBlocks_ResetHeap(void)
gSaveBlock2Ptr->encryptionKey = encryptionKey;
}
u32 sav2_x1_query_bit1(void)
u32 UseContinueGameWarp(void)
{
return gSaveBlock2Ptr->specialSaveWarpFlags & CONTINUE_GAME_WARP;
}
void sav2_x9_clear_bit1(void)
void ClearContinueGameWarpStatus(void)
{
gSaveBlock2Ptr->specialSaveWarpFlags &= ~CONTINUE_GAME_WARP;
}
void sub_804C1AC(void)
void SetContinueGameWarpStatus(void)
{
gSaveBlock2Ptr->specialSaveWarpFlags |= CONTINUE_GAME_WARP;
}
+86 -3
View File
@@ -1,6 +1,7 @@
#include "global.h"
#include "gflib.h"
#include "event_data.h"
#include "event_object_movement.h"
#include "event_scripts.h"
#include "field_camera.h"
#include "field_control_avatar.h"
@@ -28,6 +29,7 @@
#include "roamer.h"
#include "safari_zone.h"
#include "save_location.h"
#include "scanline_effect.h"
#include "script.h"
#include "script_pokemon_util.h"
#include "tileset_anims.h"
@@ -94,11 +96,12 @@ void CB2_LoadMap2(void);
void c2_80567AC(void);
void CB2_ReturnToFieldLocal(void);
void CB2_ReturnToFieldLink(void);
void FieldClearVBlankHBlankCallbacks(void);
void SetFieldVBlankCallback(void);
void VBlankCB_Field(void);
void MoveSaveBlocks_ResetHeap_(void);
void sub_8056E80(void);
void CB1_UpdateLinkState(void);
void SetFieldVBlankCallback(void);
void FieldClearVBlankHBlankCallbacks(void);
void ResetAllMultiplayerState(void);
void do_load_map_stuff_loop(u8 *state);
bool32 sub_8056CD8(u8 *state);
@@ -322,7 +325,7 @@ void sub_8054F68(void)
}
}
void sub_80550A8(void)
void LoadSaveblockObjEventScripts(void)
{
int i;
const struct ObjectEventTemplate * src = gMapHeader.events->objectEvents;
@@ -1572,3 +1575,83 @@ void sub_8056918(void)
ShowMapNamePopup(FALSE);
FieldCB_WarpExitFadeFromBlack();
}
void CB2_ContinueSavedGame(void)
{
FieldClearVBlankHBlankCallbacks();
StopMapMusic();
ResetSafariZoneFlag_();
LoadSaveblockMapHeader();
LoadSaveblockObjEventScripts();
UnfreezeObjectEvents();
sub_8054E40();
InitMapFromSavedGame();
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
gFieldCallback2 = NULL;
gUnknown_2031DE0 = TRUE;
if (UseContinueGameWarp() == TRUE)
{
ClearContinueGameWarpStatus();
SetWarpDestinationToContinueGameWarp();
WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
}
else
{
gFieldCallback = sub_8056918;
SetMainCallback1(CB1_Overworld);
CB2_ReturnToField();
}
}
void FieldClearVBlankHBlankCallbacks(void)
{
if (UsedPokemonCenterWarp() == TRUE)
CloseLink();
if (gWirelessCommType != 0)
{
EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL);
DisableInterrupts(INTR_FLAG_HBLANK);
}
else
{
DisableInterrupts(INTR_FLAG_HBLANK);
EnableInterrupts(INTR_FLAG_VBLANK);
}
SetVBlankCallback(NULL);
SetHBlankCallback(NULL);
}
void SetFieldVBlankCallback(void)
{
SetVBlankCallback(VBlankCB_Field);
}
void VBlankCB_Field(void)
{
LoadOam();
ProcessSpriteCopyRequests();
ScanlineEffect_InitHBlankDmaTransfer();
FieldUpdateBgTilemapScroll();
TransferPlttBuffer();
TransferTilesetAnimsBuffer();
}
void InitCurrentFlashLevelScanlineEffect(void)
{
u8 flashLevel = Overworld_GetFlashLevel();
if (flashLevel != 0)
{
WriteFlashScanlineEffectBuffer(flashLevel);
ScanlineEffect_SetParams((struct ScanlineEffectParams){
.dmaDest = &REG_WIN0H,
.dmaControl = (2 >> 1) | ((DMA_16BIT | DMA_DEST_RELOAD | DMA_SRC_INC | DMA_REPEAT | DMA_START_HBLANK | DMA_ENABLE) << 16),
.initState = 1,
.unused9 = 0
});
}
}
+1 -1
View File
@@ -28,7 +28,7 @@ bool8 EnterHallOfFame(void)
{
SetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME, (gSaveBlock2Ptr->playTimeHours << 16) | (gSaveBlock2Ptr->playTimeMinutes << 8) | gSaveBlock2Ptr->playTimeSeconds);
}
sub_804C1AC();
SetContinueGameWarpStatus();
SetContinueGameWarpToHealLocation(SPAWN_PALLET_TOWN);
gaveAtLeastOneRibbon = FALSE;
for (i = 0, r7 = &ribbonState; i < PARTY_SIZE; i++)