Fixed shadow palette tag. Fully removed permanent shadows.
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 144 B After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 4.7 KiB |
@ -10,7 +10,7 @@ JASC-PAL
|
|||||||
213 213 213
|
213 213 213
|
||||||
222 222 222
|
222 222 222
|
||||||
164 164 164
|
164 164 164
|
||||||
255 0 255
|
0 0 0
|
||||||
255 0 255
|
255 0 255
|
||||||
255 0 255
|
255 0 255
|
||||||
180 180 180
|
180 180 180
|
||||||
|
|||||||
@ -28,45 +28,13 @@ static const struct SpriteFrameImage sPicTable_ShadowExtraLarge[] = {
|
|||||||
obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge),
|
obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge),
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {
|
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {0xFFFF, TAG_WEATHER_START, &gObjectEventBaseOam_8x8, sAnimTable_Shadow, sPicTable_ShadowSmall, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||||
.tileTag = TAG_NONE,
|
|
||||||
.paletteTag = OBJ_EVENT_PAL_TAG_MAY,
|
|
||||||
.oam = &gObjectEventBaseOam_8x8,
|
|
||||||
.anims = sAnimTable_Shadow,
|
|
||||||
.images = sPicTable_ShadowSmall,
|
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
|
||||||
.callback = UpdateShadowFieldEffect,
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {
|
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {0xFFFF, TAG_WEATHER_START, &gObjectEventBaseOam_16x8, sAnimTable_Shadow, sPicTable_ShadowMedium, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||||
.tileTag = TAG_NONE,
|
|
||||||
.paletteTag = OBJ_EVENT_PAL_TAG_MAY,
|
|
||||||
.oam = &gObjectEventBaseOam_16x8,
|
|
||||||
.anims = sAnimTable_Shadow,
|
|
||||||
.images = sPicTable_ShadowMedium,
|
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
|
||||||
.callback = UpdateShadowFieldEffect,
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {
|
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {0xFFFF, TAG_WEATHER_START, &gObjectEventBaseOam_32x8, sAnimTable_Shadow, sPicTable_ShadowLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||||
.tileTag = TAG_NONE,
|
|
||||||
.paletteTag = OBJ_EVENT_PAL_TAG_MAY,
|
|
||||||
.oam = &gObjectEventBaseOam_32x8,
|
|
||||||
.anims = sAnimTable_Shadow,
|
|
||||||
.images = sPicTable_ShadowLarge,
|
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
|
||||||
.callback = UpdateShadowFieldEffect,
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {
|
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {0xFFFF, TAG_WEATHER_START, &gObjectEventBaseOam_64x32, sAnimTable_Shadow, sPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||||
.tileTag = TAG_NONE,
|
|
||||||
.paletteTag = OBJ_EVENT_PAL_TAG_MAY,
|
|
||||||
.oam = &gObjectEventBaseOam_64x32,
|
|
||||||
.anims = sAnimTable_Shadow,
|
|
||||||
.images = sPicTable_ShadowExtraLarge,
|
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
|
||||||
.callback = UpdateShadowFieldEffect,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct SpriteFrameImage sPicTable_TallGrass[] = {
|
static const struct SpriteFrameImage sPicTable_TallGrass[] = {
|
||||||
overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 0),
|
overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 0),
|
||||||
|
|||||||
@ -352,7 +352,7 @@ void UpdateShadowFieldEffect(struct Sprite *sprite)
|
|||||||
sprite->x = linkedSprite->x;
|
sprite->x = linkedSprite->x;
|
||||||
sprite->y = linkedSprite->y + sprite->data[3];
|
sprite->y = linkedSprite->y + sprite->data[3];
|
||||||
sprite->invisible = linkedSprite->invisible;
|
sprite->invisible = linkedSprite->invisible;
|
||||||
if (!objectEvent->active
|
if (!objectEvent->active || !objectEvent->hasShadow
|
||||||
|| MetatileBehavior_IsPokeGrass(objectEvent->currentMetatileBehavior)
|
|| MetatileBehavior_IsPokeGrass(objectEvent->currentMetatileBehavior)
|
||||||
|| MetatileBehavior_IsSurfableWaterOrUnderwater(objectEvent->currentMetatileBehavior)
|
|| MetatileBehavior_IsSurfableWaterOrUnderwater(objectEvent->currentMetatileBehavior)
|
||||||
|| MetatileBehavior_IsSurfableWaterOrUnderwater(objectEvent->previousMetatileBehavior))
|
|| MetatileBehavior_IsSurfableWaterOrUnderwater(objectEvent->previousMetatileBehavior))
|
||||||
|
|||||||