GBA Video: Fix OBJ semitransparency interaction properly...

This commit is contained in:
Jeffrey Pfau 2015-09-24 20:24:22 -07:00
parent 9cd5b12925
commit 8e4a79a17f
1 changed files with 2 additions and 3 deletions

View File

@ -147,15 +147,14 @@ int GBAVideoSoftwareRendererPreprocessSprite(struct GBAVideoSoftwareRenderer* re
}
int variant = renderer->target1Obj &&
GBAWindowControlIsBlendEnable(renderer->currentWindow.packed) &&
(renderer->blendEffect == BLEND_BRIGHTEN || renderer->blendEffect == BLEND_DARKEN) &&
GBAObjAttributesAGetMode(sprite->a) != OBJ_MODE_SEMITRANSPARENT;
(renderer->blendEffect == BLEND_BRIGHTEN || renderer->blendEffect == BLEND_DARKEN);
if (GBAObjAttributesAGetMode(sprite->a) == OBJ_MODE_SEMITRANSPARENT) {
int target2 = renderer->target2Bd << 4;
target2 |= renderer->bg[0].target2 << (renderer->bg[0].priority);
target2 |= renderer->bg[1].target2 << (renderer->bg[1].priority);
target2 |= renderer->bg[2].target2 << (renderer->bg[2].priority);
target2 |= renderer->bg[3].target2 << (renderer->bg[3].priority);
if ((1 << GBAObjAttributesCGetPriority(sprite->c)) < target2) {
if ((1 << GBAObjAttributesCGetPriority(sprite->c)) <= target2) {
variant = 0;
}
}