1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-02-27 16:44:00 +00:00

fix grid of type OT_BLACKINVIS being drawn like OT_BLACK after map load

reconstructGrid() or editor use fixed this, but that usually didn't happen
when playing vanilla maps normally

Again, the dreaded black edges, should now be fixed for good...
This commit is contained in:
fgenesis 2024-11-04 04:42:42 +01:00
parent 441fe9f332
commit 4702cd238c
2 changed files with 32 additions and 51 deletions

View file

@ -2722,6 +2722,27 @@ void Game::applyState()
gridRenderUser1 = new GridRender(OT_USER1); gridRenderUser1 = new GridRender(OT_USER1);
gridRenderUser2 = new GridRender(OT_USER2); gridRenderUser2 = new GridRender(OT_USER2);
blackRender->alpha = 1;
blackRender->color = Vector(0, 0, 0);
blackRender->setBlendType(BLEND_DISABLED);
gridRender->color = Vector(1, 0, 0);
gridRender2->color = Vector(1, 1, 0);
gridRender3->color = Vector(1, 0.5f, 0);
edgeRender->color = Vector(0.3f, 0, 0.6f);
gridRenderEnt->color = Vector(0, 1, 0.5);
gridRenderUser1->color = Vector(1, 0, 1);
gridRenderUser2->color = Vector(1, 1, 1);
addRenderObject(blackRender, LR_ELEMENTS4);
addRenderObject(gridRender, LR_DEBUG_TEXT);
addRenderObject(gridRender2, LR_DEBUG_TEXT);
addRenderObject(gridRender3, LR_DEBUG_TEXT);
addRenderObject(edgeRender, LR_DEBUG_TEXT);
addRenderObject(gridRenderEnt, LR_DEBUG_TEXT);
addRenderObject(gridRenderUser1, LR_DEBUG_TEXT);
addRenderObject(gridRenderUser2, LR_DEBUG_TEXT);
if (verbose) debugLog("Loading Scene"); if (verbose) debugLog("Loading Scene");
if(!loadScene(sceneToLoad)) if(!loadScene(sceneToLoad))
{ {
@ -2748,45 +2769,10 @@ void Game::applyState()
songLineRender = new SongLineRender(); songLineRender = new SongLineRender();
addRenderObject(songLineRender, LR_HUD); addRenderObject(songLineRender, LR_HUD);
gridRender->color = Vector(1, 0, 0);
addRenderObject(gridRender, LR_DEBUG_TEXT);
gridRender->alpha = 0;
gridRender2->color = Vector(1, 1, 0);
addRenderObject(gridRender2, LR_DEBUG_TEXT);
gridRender2->alpha = 0;
gridRender3->color = Vector(1, 0.5f, 0);
addRenderObject(gridRender3, LR_DEBUG_TEXT);
gridRender3->alpha = 0;
edgeRender->color = Vector(0.3f, 0, 0.6f);
addRenderObject(edgeRender, LR_DEBUG_TEXT);
edgeRender->alpha = 0;
gridRenderEnt->color = Vector(0, 1, 0.5);
addRenderObject(gridRenderEnt, LR_DEBUG_TEXT);
gridRenderEnt->alpha = 0;
addRenderObject(gridRenderUser1, LR_DEBUG_TEXT);
gridRenderUser1->color = Vector(1, 0, 1);
gridRenderUser1->alpha = 0;
addRenderObject(gridRenderUser2, LR_DEBUG_TEXT);
gridRenderUser2->color = Vector(1, 1, 1);
gridRenderUser2->alpha = 0;
waterSurfaceRender = new WaterSurfaceRender(); waterSurfaceRender = new WaterSurfaceRender();
//waterSurfaceRender->setRenderPass(-1); //waterSurfaceRender->setRenderPass(-1);
addRenderObject(waterSurfaceRender, LR_WATERSURFACE); addRenderObject(waterSurfaceRender, LR_WATERSURFACE);
blackRender->color = Vector(0, 0, 0);
//blackRender->alpha = 0;
blackRender->setBlendType(BLEND_DISABLED);
addRenderObject(blackRender, LR_ELEMENTS4);
blackRender->rebuildBuffers(this->obsRows);
miniMapRender = new MiniMapRender; miniMapRender = new MiniMapRender;
// position is set in minimaprender::onupdate // position is set in minimaprender::onupdate
miniMapRender->scale = Vector(0.55f, 0.55f); miniMapRender->scale = Vector(0.55f, 0.55f);
@ -4058,24 +4044,19 @@ static void checkgridrender(GridRender *gr, ObsType obs)
void Game::updateGridRender(ObsType obs) void Game::updateGridRender(ObsType obs)
{ {
// These are usually not visible. Delay rebuild until they are actually shown.
checkgridrender(gridRender, obs);
checkgridrender(gridRender2, obs);
checkgridrender(gridRender3, obs);
checkgridrender(edgeRender, obs);
checkgridrender(gridRenderEnt, obs);
checkgridrender(gridRenderUser1, obs);
checkgridrender(gridRenderUser2, obs);
// This is normally not necessary, because black is only changed by the editor. // This is normally not necessary, because black is only changed by the editor.
// Keeping it here possibly for future mod compat. // Keeping it here possibly for future mod compat.
// It's also always shown, so we can immediately rebuild it // It's also always shown, so we can immediately rebuild it
if(obs & OT_BLACK) checkgridrender(blackRender, obs);
{
// Don't pass this->obsRows here (which is the raw data)! // These are usually not visible. Delay rebuild until they are actually shown.
// Need the changes done by trimGrid() -> need to collect rows anew. checkgridrender(edgeRender, obs);
blackRender->rebuildBuffers(); checkgridrender(gridRender, obs);
} checkgridrender(gridRender2, obs);
checkgridrender(gridRender3, obs);
checkgridrender(gridRenderEnt, obs);
checkgridrender(gridRenderUser1, obs);
checkgridrender(gridRenderUser2, obs);
} }
Vector Game::getCameraPositionFor(const Vector &pos) Vector Game::getCameraPositionFor(const Vector &pos)

View file

@ -76,7 +76,7 @@ GridRender::GridRender(ObsType obsType)
position.z = 5; position.z = 5;
cull = false; cull = false;
alpha = 0.5f; alpha = 0.0f;
this->scale.x = TILE_SIZE; // See comment about value scaling below this->scale.x = TILE_SIZE; // See comment about value scaling below
this->scale.y = TILE_SIZE; this->scale.y = TILE_SIZE;
} }