use window macros in battle_transition.c

This commit is contained in:
jiangzhengwenjz
2019-10-11 06:33:35 +08:00
parent c0c4a2e94b
commit 2ea9fe6bde
+40 -42
View File
@@ -857,14 +857,14 @@ static bool8 BT_Phase2BigPokeball_Init(struct Task *task)
task->tEva = 0; task->tEva = 0;
task-> tTheta = 0; task-> tTheta = 0;
task-> tAmplitude = 0x4000; task-> tAmplitude = 0x4000;
sTransitionStructPtr->winIn = 0x3F; sTransitionStructPtr->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->winOut = 0; sTransitionStructPtr->winOut = 0;
sTransitionStructPtr->win0H = 240; sTransitionStructPtr->win0H = WIN_RANGE(0, 0xF0);
sTransitionStructPtr->win0V = 160; sTransitionStructPtr->win0V = WIN_RANGE(0, 0xA0);
sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD;
sTransitionStructPtr->bldAlpha = (task->tEvb << 8) | task->tEva; sTransitionStructPtr->bldAlpha = (task->tEvb << 8) | task->tEva;
for (i = 0; i < 160; ++i) for (i = 0; i < 160; ++i)
gScanlineEffectRegBuffers[1][i] = 240; gScanlineEffectRegBuffers[1][i] = 0xF0;
SetVBlankCallback(VBCB_BT_Phase2BigPokeball1); SetVBlankCallback(VBCB_BT_Phase2BigPokeball1);
BT_GetBg0TilemapAndTilesetBase(&tilemapAddr, &tilesetAddr); BT_GetBg0TilemapAndTilesetBase(&tilemapAddr, &tilesetAddr);
CpuFill16(0, tilemapAddr, 0x800); CpuFill16(0, tilemapAddr, 0x800);
@@ -897,7 +897,7 @@ static bool8 BT_Phase2BigPokeball_UpdateWave1IncEva(struct Task *task)
++task->tEva; ++task->tEva;
task->tInterval = 1; // Broken logic. This makes the condition always TRUE. task->tInterval = 1; // Broken logic. This makes the condition always TRUE.
} }
sTransitionStructPtr->bldAlpha = (task->tEvb << 8) | task->tEva; sTransitionStructPtr->bldAlpha = BLDALPHA_BLEND(task->tEva, task->tEvb);
// Increment eva until it reaches 50% coeff // Increment eva until it reaches 50% coeff
if (task->tEva > 15) if (task->tEva > 15)
++task->tState; ++task->tState;
@@ -1148,13 +1148,11 @@ static bool8 BT_Phase2ClockwiseBlackFade_Init(struct Task *task)
BT_InitCtrlBlk(); BT_InitCtrlBlk();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
sTransitionStructPtr->winIn = 0; sTransitionStructPtr->winIn = 0;
sTransitionStructPtr->winOut = 0x3F; sTransitionStructPtr->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR;
sTransitionStructPtr->win0H = 0xF0F1; sTransitionStructPtr->win0H = WIN_RANGE(0xF0, 0xF1);
sTransitionStructPtr->win0V = 0x00A0; sTransitionStructPtr->win0V = WIN_RANGE(0, 0xA0);
for (i = 0; i < 160; ++i) for (i = 0; i < 160; ++i)
{ gScanlineEffectRegBuffers[1][i] = WIN_RANGE(0xF3, 0xF4);
gScanlineEffectRegBuffers[1][i] = 0xF3F4;
}
SetVBlankCallback(VBCB_BT_Phase2ClockwiseBlackFade); SetVBlankCallback(VBCB_BT_Phase2ClockwiseBlackFade);
sTransitionStructPtr->trEndPtX = 120; sTransitionStructPtr->trEndPtX = 120;
++task->tState; ++task->tState;
@@ -1167,7 +1165,7 @@ static bool8 BT_Phase2ClockwiseBlackFade_Step1(struct Task *task)
BT_DiagonalSegment_InitParams(sTransitionStructPtr->data, 120, 80, sTransitionStructPtr->trEndPtX, -1, 1, 1); BT_DiagonalSegment_InitParams(sTransitionStructPtr->data, 120, 80, sTransitionStructPtr->trEndPtX, -1, 1, 1);
do do
{ {
gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = (sTransitionStructPtr->trCurrentPtX + 1) | 0x7800; gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = WIN_RANGE(0x78, sTransitionStructPtr->trCurrentPtX + 1);
} }
while (!BT_DiagonalSegment_ComputePointOnSegment(sTransitionStructPtr->data, TRUE, TRUE)); while (!BT_DiagonalSegment_ComputePointOnSegment(sTransitionStructPtr->data, TRUE, TRUE));
@@ -1197,7 +1195,7 @@ static bool8 BT_Phase2ClockwiseBlackFade_Step2(struct Task *task)
left = sTransitionStructPtr->trCurrentPtX; left = sTransitionStructPtr->trCurrentPtX;
right = 240; right = 240;
} }
gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = right | (left << 8); gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = WIN_RANGE2(left, right);
if (finished) if (finished)
break; break;
finished = BT_DiagonalSegment_ComputePointOnSegment(sTransitionStructPtr->data, TRUE, TRUE); finished = BT_DiagonalSegment_ComputePointOnSegment(sTransitionStructPtr->data, TRUE, TRUE);
@@ -1211,7 +1209,7 @@ static bool8 BT_Phase2ClockwiseBlackFade_Step2(struct Task *task)
else else
{ {
while (sTransitionStructPtr->trCurrentPtY < sTransitionStructPtr->trEndPtY) while (sTransitionStructPtr->trCurrentPtY < sTransitionStructPtr->trEndPtY)
gScanlineEffectRegBuffers[0][++sTransitionStructPtr->trCurrentPtY] = right | (left << 8); gScanlineEffectRegBuffers[0][++sTransitionStructPtr->trCurrentPtY] = WIN_RANGE2(left, right);
} }
++sTransitionStructPtr->vblankDma; ++sTransitionStructPtr->vblankDma;
return FALSE; return FALSE;
@@ -1265,7 +1263,7 @@ static bool8 BT_Phase2ClockwiseBlackFade_Step4(struct Task *task)
left = 120; left = 120;
right = sTransitionStructPtr->trCurrentPtX; right = sTransitionStructPtr->trCurrentPtX;
} }
win0H = right | (left << 8); win0H = WIN_RANGE2(left, right);
gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = win0H; gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = win0H;
if (finished) if (finished)
break; break;
@@ -1280,7 +1278,7 @@ static bool8 BT_Phase2ClockwiseBlackFade_Step4(struct Task *task)
else else
{ {
while (sTransitionStructPtr->trCurrentPtY > sTransitionStructPtr->trEndPtY) while (sTransitionStructPtr->trCurrentPtY > sTransitionStructPtr->trEndPtY)
gScanlineEffectRegBuffers[0][--sTransitionStructPtr->trCurrentPtY] = right | (left << 8); gScanlineEffectRegBuffers[0][--sTransitionStructPtr->trCurrentPtY] = WIN_RANGE2(left, right);
} }
++sTransitionStructPtr->vblankDma; ++sTransitionStructPtr->vblankDma;
return FALSE; return FALSE;
@@ -1301,7 +1299,7 @@ static bool8 BT_Phase2ClockwiseBlackFade_Step5(struct Task *task)
left = 0; left = 0;
right = 240; right = 240;
} }
gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = right | (left << 8); gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = WIN_RANGE2(left, right);
} }
while (!BT_DiagonalSegment_ComputePointOnSegment(sTransitionStructPtr->data, TRUE, TRUE)); while (!BT_DiagonalSegment_ComputePointOnSegment(sTransitionStructPtr->data, TRUE, TRUE));
sTransitionStructPtr->trEndPtX += 32; sTransitionStructPtr->trEndPtX += 32;
@@ -1431,12 +1429,12 @@ static bool8 BT_Phase2BlackWaveToRight_Init(struct Task *task)
BT_InitCtrlBlk(); BT_InitCtrlBlk();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
sTransitionStructPtr->winIn = 0x3F; sTransitionStructPtr->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->winOut = 0; sTransitionStructPtr->winOut = 0;
sTransitionStructPtr->win0H = 240; sTransitionStructPtr->win0H = WIN_RANGE(0, 0xF0);
sTransitionStructPtr->win0V = 160; sTransitionStructPtr->win0V = WIN_RANGE(0, 0xA0);
for (i = 0; i < 160; ++i) for (i = 0; i < 160; ++i)
gScanlineEffectRegBuffers[1][i] = 242; gScanlineEffectRegBuffers[1][i] = WIN_RANGE(0, 0xF2);
SetVBlankCallback(VBCB_BT_Phase2BlackWaveToRight); SetVBlankCallback(VBCB_BT_Phase2BlackWaveToRight);
++task->tState; ++task->tState;
return TRUE; return TRUE;
@@ -1460,7 +1458,7 @@ static bool8 BT_Phase2BlackWaveToRight_UpdateWave(struct Task *task)
left = 0; left = 0;
if (left > 240) if (left > 240)
left = 240; left = 240;
*winVal = (left << 8) | (0xF1); *winVal = WIN_RANGE(left, 0xF1);
if (left < 240) if (left < 240)
nextFunc = FALSE; nextFunc = FALSE;
} }
@@ -2529,10 +2527,10 @@ static bool8 BT_Phase2AntiClockwiseSpiral_Init(struct Task *task)
BT_InitCtrlBlk(); BT_InitCtrlBlk();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
sTransitionStructPtr->winIn = 0; sTransitionStructPtr->winIn = 0;
sTransitionStructPtr->winOut = 0x3F; sTransitionStructPtr->winOut = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->win0H = 0x7878; sTransitionStructPtr->win0H = WIN_RANGE(0x78, 0x78);
sTransitionStructPtr->win0V = 0x3070; sTransitionStructPtr->win0V = WIN_RANGE(0x30, 0x70);
sTransitionStructPtr->win1V = 0x1090; sTransitionStructPtr->win1V = WIN_RANGE(0x10, 0x90);
sTransitionStructPtr->counter = 0; sTransitionStructPtr->counter = 0;
sub_80D1F64(0, 0, FALSE); sub_80D1F64(0, 0, FALSE);
sub_80D1F64(0, 0, TRUE); sub_80D1F64(0, 0, TRUE);
@@ -2665,11 +2663,11 @@ static bool8 BT_Phase2Mugshot_Init(struct Task *task)
task->tTheta = 0; task->tTheta = 0;
task->tbg0HOfsOpponent = 1; task->tbg0HOfsOpponent = 1;
task->tbg0HOfsPlayer = 239; task->tbg0HOfsPlayer = 239;
sTransitionStructPtr->winIn = 0x3F; sTransitionStructPtr->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->winOut = 0x3E; sTransitionStructPtr->winOut = WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->win0V = 160; sTransitionStructPtr->win0V = WIN_RANGE(0, 0xA0);
for (i = 0; i < 160; ++i) for (i = 0; i < 160; ++i)
gScanlineEffectRegBuffers[1][i] = 0xF0F1; gScanlineEffectRegBuffers[1][i] = WIN_RANGE(0xF0, 0xF1);
SetVBlankCallback(VBCB_BT_Phase2Mugshot1_Slide); SetVBlankCallback(VBCB_BT_Phase2Mugshot1_Slide);
++task->tState; ++task->tState;
return FALSE; return FALSE;
@@ -2784,7 +2782,7 @@ static bool8 BT_Phase2Mugshot_WaitForPlayerInPlace(struct Task *task)
DmaStop(0); DmaStop(0);
memset(gScanlineEffectRegBuffers[0], 0, 320); memset(gScanlineEffectRegBuffers[0], 0, 320);
memset(gScanlineEffectRegBuffers[1], 0, 320); memset(gScanlineEffectRegBuffers[1], 0, 320);
SetGpuReg(REG_OFFSET_WIN0H, 0xF0); SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0));
SetGpuReg(REG_OFFSET_BLDY, 0); SetGpuReg(REG_OFFSET_BLDY, 0);
++task->tState; ++task->tState;
task->tCounter = 0; task->tCounter = 0;
@@ -3026,9 +3024,9 @@ static bool8 BT_Phase2SlicedScreen_Init(struct Task *task)
ScanlineEffect_Clear(); ScanlineEffect_Clear();
task->tAcc = 256; task->tAcc = 256;
task->tJerk = 1; task->tJerk = 1;
sTransitionStructPtr->winIn = 0x3F; sTransitionStructPtr->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->winOut = 0; sTransitionStructPtr->winOut = 0;
sTransitionStructPtr->win0V = 160; sTransitionStructPtr->win0V = WIN_RANGE(0, 0xA0);
for (i = 0; i < 160; ++i) for (i = 0; i < 160; ++i)
{ {
gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->bg123HOfs; gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->bg123HOfs;
@@ -3065,7 +3063,7 @@ static bool8 BT_Phase2SlicedScreen_UpdateOffsets(struct Task *task)
else else
{ {
*ofsBuffer = sTransitionStructPtr->bg123HOfs - task->tSpeed; *ofsBuffer = sTransitionStructPtr->bg123HOfs - task->tSpeed;
*win0HBuffer = (task->tSpeed << 8) | 0xF1; *win0HBuffer = WIN_RANGE(task->tSpeed, 0xF1);
} }
} }
if (task->tSpeed > 0xEF) if (task->tSpeed > 0xEF)
@@ -3126,9 +3124,9 @@ static bool8 BT_Phase2WhiteFadeInStripes_Init(struct Task *task)
ScanlineEffect_Clear(); ScanlineEffect_Clear();
sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_LIGHTEN; sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_LIGHTEN;
sTransitionStructPtr->bldY = 0; sTransitionStructPtr->bldY = 0;
sTransitionStructPtr->winIn = 0x1E; sTransitionStructPtr->winIn = WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ;
sTransitionStructPtr->winOut = 0x3F; sTransitionStructPtr->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->win0V = 160; sTransitionStructPtr->win0V = WIN_RANGE(0, 0xA0);
for (i = 0; i < 160; ++i) for (i = 0; i < 160; ++i)
{ {
gScanlineEffectRegBuffers[1][i] = 0; gScanlineEffectRegBuffers[1][i] = 0;
@@ -3180,7 +3178,7 @@ static bool8 BT_Phase2WhiteFadeInStripes_Stop(struct Task *task)
sTransitionStructPtr->win0H = 240; sTransitionStructPtr->win0H = 240;
sTransitionStructPtr->bldY = 0; sTransitionStructPtr->bldY = 0;
sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN; sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN;
sTransitionStructPtr->winIn = 0x3F; sTransitionStructPtr->winIn = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WININ_WIN0_CLR;
sTransitionStructPtr->counter = 0; sTransitionStructPtr->counter = 0;
SetVBlankCallback(VBCB_BT_Phase2WhiteFadeInStripes2); SetVBlankCallback(VBCB_BT_Phase2WhiteFadeInStripes2);
++task->tState; ++task->tState;
@@ -3351,11 +3349,11 @@ static bool8 BT_Phase2BlackDoodles_Init(struct Task *task)
BT_InitCtrlBlk(); BT_InitCtrlBlk();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
sTransitionStructPtr->winIn = 0x3F; sTransitionStructPtr->winIn = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR;
sTransitionStructPtr->winOut = 0; sTransitionStructPtr->winOut = 0;
sTransitionStructPtr->win0V = 0xA0; sTransitionStructPtr->win0V = WIN_RANGE(0, 0xA0);
for (i = 0; i < 160; ++i) for (i = 0; i < 160; ++i)
gScanlineEffectRegBuffers[0][i] = 0x00F0; gScanlineEffectRegBuffers[0][i] = WIN_RANGE(0, 0xF0);
CpuSet(gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 160); CpuSet(gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 160);
SetVBlankCallback(VBCB_BT_Phase2BlackDoodles); SetVBlankCallback(VBCB_BT_Phase2BlackDoodles);
++task->tState; ++task->tState;
@@ -3394,7 +3392,7 @@ static bool8 BT_Phase2BlackDoodles_DrawSingleBrush(struct Task *task)
if (right <= left) if (right <= left)
right = left; right = left;
} }
gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = right | (left << 8); gScanlineEffectRegBuffers[0][sTransitionStructPtr->trCurrentPtY] = WIN_RANGE2(left, right);
if (nextFunc) if (nextFunc)
{ {
++task->tState; ++task->tState;