summaryrefslogtreecommitdiff
path: root/src/field_effect.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-06-29 11:41:09 -0400
committerGriffinR <griffin.g.richards@gmail.com>2020-06-29 16:32:46 -0400
commiteb80012757b664a474f3c745115aa4f109b69443 (patch)
treea48b9f2748b1bc00426a3e877520b0a56b2342f2 /src/field_effect.c
parent4ea6992172a53eb263d5f4342c5e08dfc3f8096a (diff)
Document more misc field effects
Diffstat (limited to 'src/field_effect.c')
-rw-r--r--src/field_effect.c52
1 files changed, 23 insertions, 29 deletions
diff --git a/src/field_effect.c b/src/field_effect.c
index fbf6bd10c..b681fc70e 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -2229,7 +2229,7 @@ void StartEscapeRopeFieldEffect(void)
{
ScriptContext2_Enable();
FreezeObjectEvents();
- CreateTask(Task_EscapeRopeWarpOut, 0x50);
+ CreateTask(Task_EscapeRopeWarpOut, 80);
}
static void Task_EscapeRopeWarpOut(u8 taskId)
@@ -2598,8 +2598,8 @@ static void FieldMoveShowMonOutdoorsEffect_Init(struct Task *task)
task->data[11] = REG_WININ;
task->data[12] = REG_WINOUT;
StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback);
- task->tWinHoriz = WIN_RANGE(240, 241);
- task->tWinVert = WIN_RANGE(80, 81);
+ task->tWinHoriz = WIN_RANGE(DISPLAY_WIDTH, DISPLAY_WIDTH + 1);
+ task->tWinVert = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1);
task->tWinIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
task->tWinOut = WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR;
SetGpuReg(REG_OFFSET_WIN0H, task->tWinHoriz);
@@ -2637,15 +2637,15 @@ static void FieldMoveShowMonOutdoorsEffect_CreateBanner(struct Task *task)
if (horiz < 0)
horiz = 0;
- if (vertHi < 40)
- vertHi = 40;
+ if (vertHi < DISPLAY_HEIGHT / 4)
+ vertHi = DISPLAY_HEIGHT / 4;
- if (vertLo > 120)
- vertLo = 120;
+ if (vertLo > DISPLAY_WIDTH / 2)
+ vertLo = DISPLAY_WIDTH / 2;
task->tWinHoriz = (horiz << 8) | (task->tWinHoriz & 0xff);
task->tWinVert = (vertHi << 8) | vertLo;
- if (horiz == 0 && vertHi == 40 && vertLo == 120)
+ if (horiz == 0 && vertHi == DISPLAY_HEIGHT / 4 && vertLo == DISPLAY_WIDTH / 2)
{
gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen;
task->tState++;
@@ -2670,15 +2670,15 @@ static void FieldMoveShowMonOutdoorsEffect_ShrinkBanner(struct Task *task)
vertHi += 6;
vertLo -= 6;
- if (vertHi > 80)
- vertHi = 80;
+ if (vertHi > DISPLAY_HEIGHT / 2)
+ vertHi = DISPLAY_HEIGHT / 2;
- if (vertLo < 81)
- vertLo = 81;
+ if (vertLo < DISPLAY_HEIGHT / 2 + 1)
+ vertLo = DISPLAY_HEIGHT / 2 + 1;
task->tWinVert = (vertHi << 8) | vertLo;
- if (vertHi == 80 && vertLo == 81)
+ if (vertHi == DISPLAY_HEIGHT / 2 && vertLo == DISPLAY_HEIGHT / 2 + 1)
task->tState++;
}
@@ -2686,8 +2686,8 @@ static void FieldMoveShowMonOutdoorsEffect_RestoreBg(struct Task *task)
{
u16 bg0cnt = (REG_BG0CNT >> 8) << 11;
CpuFill32(0, (void *)VRAM + bg0cnt, 0x800);
- task->tWinHoriz = 241;
- task->tWinVert = 161;
+ task->tWinHoriz = DISPLAY_WIDTH + 1;
+ task->tWinVert = DISPLAY_HEIGHT + 1;
task->tWinIn = task->data[11];
task->tWinOut = task->data[12];
task->tState++;
@@ -2787,8 +2787,8 @@ static void FieldMoveShowMonIndoorsEffect_SlideBannerOn(struct Task *task)
{
if (SlideIndoorBannerOnscreen(task))
{
- SetGpuReg(REG_OFFSET_WIN1H, 0x00f0);
- SetGpuReg(REG_OFFSET_WIN1V, 0x2878);
+ SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, DISPLAY_WIDTH));
+ SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(DISPLAY_HEIGHT / 4, DISPLAY_HEIGHT - DISPLAY_HEIGHT / 4));
gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen;
task->tState++;
}
@@ -2807,8 +2807,8 @@ static void FieldMoveShowMonIndoorsEffect_RestoreBg(struct Task *task)
AnimateIndoorShowMonBg(task);
task->tBgOffsetIdx = task->tBgHoriz & 7;
task->tBgOffset = 0;
- SetGpuReg(REG_OFFSET_WIN1H, 0xffff);
- SetGpuReg(REG_OFFSET_WIN1V, 0xffff);
+ SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0xFF, 0xFF));
+ SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0xFF, 0xFF));
task->tState++;
}
@@ -2917,7 +2917,7 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality)
struct Sprite *sprite;
v0 = (species & 0x80000000) >> 16;
species &= 0x7fffffff;
- monSprite = CreateMonSprite_FieldMove(species, otId, personality, 0x140, 0x50, 0);
+ monSprite = CreateMonSprite_FieldMove(species, otId, personality, 320, 80, 0);
sprite = &gSprites[monSprite];
sprite->callback = SpriteCallbackDummy;
sprite->oam.priority = 0;
@@ -2928,9 +2928,9 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality)
static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite)
{
- if ((sprite->pos1.x -= 20) <= 120)
+ if ((sprite->pos1.x -= 20) <= DISPLAY_WIDTH / 2)
{
- sprite->pos1.x = 120;
+ sprite->pos1.x = DISPLAY_WIDTH / 2;
sprite->sOnscreenTimer = 30;
sprite->callback = SpriteCB_FieldMoveMonWaitAfterCry;
if (sprite->data[6])
@@ -2947,21 +2947,15 @@ static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite)
static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite)
{
if ((--sprite->sOnscreenTimer) == 0)
- {
sprite->callback = SpriteCB_FieldMoveMonSlideOffscreen;
- }
}
static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite)
{
if (sprite->pos1.x < -64)
- {
sprite->sSlidOffscreen = TRUE;
- }
else
- {
sprite->pos1.x -= 20;
- }
}
#undef tState
@@ -3311,7 +3305,7 @@ static void StartFlyBirdSwoopDown(u8 spriteId)
struct Sprite *sprite;
sprite = &gSprites[spriteId];
sprite->callback = SpriteCB_FlyBirdSwoopDown;
- sprite->pos1.x = 120;
+ sprite->pos1.x = DISPLAY_WIDTH / 2;
sprite->pos1.y = 0;
sprite->pos2.x = 0;
sprite->pos2.y = 0;