mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-30 20:36:48 -05:00
Task_ShowPrintedBlackoutMessage
This commit is contained in:
@@ -6,116 +6,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start Task_ShowPrintedBlackoutMessage
|
||||
Task_ShowPrintedBlackoutMessage: ; 0x02048214
|
||||
push {r3-r4, lr}
|
||||
sub sp, #0xc
|
||||
bl TaskManager_GetEnvironment
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r4, #0x0]
|
||||
cmp r0, #0x4
|
||||
bhi _020482EA
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #0x6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_02048230: ; jump table (using 16-bit offset)
|
||||
.short _0204823A - _02048230 - 2; case 0
|
||||
.short _02048258 - _02048230 - 2; case 1
|
||||
.short _02048268 - _02048230 - 2; case 2
|
||||
.short _02048298 - _02048230 - 2; case 3
|
||||
.short _020482B2 - _02048230 - 2; case 4
|
||||
_0204823A:
|
||||
mov r0, #0x8
|
||||
str r0, [sp, #0x0]
|
||||
mov r1, #0x1
|
||||
str r1, [sp, #0x4]
|
||||
mov r0, #0x20
|
||||
str r0, [sp, #0x8]
|
||||
mov r0, #0x3
|
||||
mov r2, #0x2a
|
||||
mov r3, #0x0
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r0, [r4, #0x0]
|
||||
add r0, r0, #0x1
|
||||
str r0, [r4, #0x0]
|
||||
b _020482EA
|
||||
_02048258:
|
||||
bl IsPaletteFadeFinished
|
||||
cmp r0, #0x0
|
||||
beq _020482EA
|
||||
ldr r0, [r4, #0x0]
|
||||
add r0, r0, #0x1
|
||||
str r0, [r4, #0x0]
|
||||
b _020482EA
|
||||
_02048268:
|
||||
ldr r0, _020482F0 ; =gSystem
|
||||
ldr r1, [r0, #0x48]
|
||||
mov r0, #0x1
|
||||
tst r0, r1
|
||||
bne _02048278
|
||||
mov r0, #0x2
|
||||
tst r0, r1
|
||||
beq _020482EA
|
||||
_02048278:
|
||||
mov r0, #0x8
|
||||
str r0, [sp, #0x0]
|
||||
mov r0, #0x1
|
||||
str r0, [sp, #0x4]
|
||||
mov r0, #0x20
|
||||
str r0, [sp, #0x8]
|
||||
mov r0, #0x0
|
||||
add r1, r0, #0x0
|
||||
add r2, r0, #0x0
|
||||
add r3, r0, #0x0
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r0, [r4, #0x0]
|
||||
add r0, r0, #0x1
|
||||
str r0, [r4, #0x0]
|
||||
b _020482EA
|
||||
_02048298:
|
||||
bl IsPaletteFadeFinished
|
||||
cmp r0, #0x0
|
||||
beq _020482EA
|
||||
add r0, r4, #0x0
|
||||
add r0, #0xc
|
||||
mov r1, #0x0
|
||||
bl FillWindowPixelBuffer
|
||||
ldr r0, [r4, #0x0]
|
||||
add r0, r0, #0x1
|
||||
str r0, [r4, #0x0]
|
||||
b _020482EA
|
||||
_020482B2:
|
||||
add r0, r4, #0x0
|
||||
add r0, #0xc
|
||||
mov r1, #0x0
|
||||
bl ClearFrameAndWindow2
|
||||
add r0, r4, #0x0
|
||||
add r0, #0xc
|
||||
bl RemoveWindow
|
||||
ldr r0, [r4, #0x20]
|
||||
bl MessageFormat_Delete
|
||||
ldr r0, [r4, #0x1c]
|
||||
bl DestroyMsgData
|
||||
ldr r0, [r4, #0x8]
|
||||
mov r1, #0x3
|
||||
bl FreeBgTilemapBuffer
|
||||
ldr r0, [r4, #0x8]
|
||||
bl FreeToHeap
|
||||
add r0, r4, #0x0
|
||||
bl FreeToHeap
|
||||
add sp, #0xc
|
||||
mov r0, #0x1
|
||||
pop {r3-r4, pc}
|
||||
_020482EA:
|
||||
mov r0, #0x0
|
||||
add sp, #0xc
|
||||
pop {r3-r4, pc}
|
||||
.balign 4
|
||||
_020482F0: .word gSystem
|
||||
|
||||
thumb_func_start sub_020482F4
|
||||
sub_020482F4: ; 0x020482F4
|
||||
push {r4-r7, lr}
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
#include "blackout.h"
|
||||
#include "bg_window.h"
|
||||
#include "constants/maps.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "msgdata/msg.naix"
|
||||
#include "msgdata/msg/narc_0328.h"
|
||||
#include "graphic/font.naix"
|
||||
#include "gf_gfx_loader.h"
|
||||
#include "PAD_pad.h"
|
||||
#include "render_window.h"
|
||||
|
||||
static void Blackout_InitDisplays(BgConfig *bgConfig);
|
||||
/*static*/ void Blackout_DrawMessage(FieldSystem *fieldSystem, TaskManager *taskManager);
|
||||
static BOOL Task_ShowPrintedBlackoutMessage(TaskManager *taskManager);
|
||||
|
||||
extern BOOL Task_ShowPrintedBlackoutMessage(TaskManager *taskManager);
|
||||
extern void sub_020482F4(BlackoutScreenEnvironment *environment, s32 msgNo, u8 x, u8 y);
|
||||
extern void BeginNormalPaletteFade(u32 pattern, u32 typeTop, u32 typeBottom, u16 colour, u32 duration, u32 framesPer, HeapID heapId);
|
||||
extern BOOL IsPaletteFadeFinished(void);
|
||||
|
||||
extern SaveData *FieldSystem_GetSaveData(FieldSystem *fieldSystem);
|
||||
|
||||
@@ -93,3 +98,41 @@ static void Blackout_InitDisplays(BgConfig *bgConfig) {
|
||||
CopyWindowToVram(&env->window);
|
||||
TaskManager_Call(taskManager, Task_ShowPrintedBlackoutMessage, env);
|
||||
}
|
||||
|
||||
static BOOL Task_ShowPrintedBlackoutMessage(TaskManager *taskManager) {
|
||||
BlackoutScreenEnvironment *env = TaskManager_GetEnvironment(taskManager);
|
||||
switch (env->state) {
|
||||
case 0:
|
||||
BeginNormalPaletteFade(3, 1, 42, RGB_BLACK, 8, 1, HEAP_ID_32);
|
||||
env->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (IsPaletteFadeFinished()) {
|
||||
env->state++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (gSystem.newKeys & PAD_BUTTON_A || gSystem.newKeys & PAD_BUTTON_B) {
|
||||
BeginNormalPaletteFade(0, 0, 0, RGB_BLACK, 8, 1, HEAP_ID_32);
|
||||
env->state++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (IsPaletteFadeFinished()) {
|
||||
FillWindowPixelBuffer(&env->window, 0);
|
||||
env->state++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
ClearFrameAndWindow2(&env->window, FALSE);
|
||||
RemoveWindow(&env->window);
|
||||
MessageFormat_Delete(env->msgFmt);
|
||||
DestroyMsgData(env->msgData);
|
||||
FreeBgTilemapBuffer(env->bgConfig, GF_BG_LYR_MAIN_3);
|
||||
FreeToHeap(env->bgConfig);
|
||||
FreeToHeap(env);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, enum GFPalL
|
||||
}
|
||||
}
|
||||
|
||||
u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 layer, u32 baseAddr, u32 szByte, BOOL isCompressed, HeapID heapId)
|
||||
u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 layer, u32 baseAddr, u32 szByte, BOOL isCompressed, HeapID heapId) //todo: change this to new format
|
||||
{
|
||||
static void (*const load_funcs[])(void *, u32, u32) = {
|
||||
GX_LoadOBJ,
|
||||
|
||||
Reference in New Issue
Block a user