1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-18 10:38:31 +02:00

Add being able to override the one-way recolor

Disabling the one-way recolor if assets are mounted is needed to make
existing levels not look bad, but what about levels that want to use the
recolor anyway?

The best solution here is to just introduce another bool into the XML,
and make the re-color opt-in and only present if assets are mounted if
that tag is present.
This commit is contained in:
Misa 2020-06-30 14:08:14 -07:00 committed by Ethan Lee
parent 2d21bab4ea
commit 5201f67909
3 changed files with 19 additions and 4 deletions

View File

@ -640,7 +640,7 @@ void Graphics::drawtile( int x, int y, int t )
SDL_Rect rect = { Sint16(x), Sint16(y), tiles_rect.w, tiles_rect.h };
#if !defined(NO_CUSTOM_LEVELS)
if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted)
if (t >= 14 && t <= 17 && (!FILESYSTEM_assetsmounted || ed.onewaycol_override))
{
colourTransform thect = {ed.getonewaycol()};
BlitSurfaceTinted(tiles[t], NULL, backBuffer, &rect, thect);
@ -663,7 +663,7 @@ void Graphics::drawtile2( int x, int y, int t )
SDL_Rect rect = { Sint16(x), Sint16(y), tiles_rect.w, tiles_rect.h };
#if !defined(NO_CUSTOM_LEVELS)
if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted)
if (t >= 14 && t <= 17 && (!FILESYSTEM_assetsmounted || ed.onewaycol_override))
{
colourTransform thect = {ed.getonewaycol()};
BlitSurfaceTinted(tiles2[t], NULL, backBuffer, &rect, thect);
@ -3119,7 +3119,7 @@ void Graphics::drawforetile(int x, int y, int t)
setRect(rect, x,y,tiles_rect.w, tiles_rect.h);
#if !defined(NO_CUSTOM_LEVELS)
if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted)
if (t >= 14 && t <= 17 && (!FILESYSTEM_assetsmounted || ed.onewaycol_override))
{
colourTransform thect = {ed.getonewaycol()};
BlitSurfaceTinted(tiles[t], NULL, foregroundBuffer, &rect, thect);
@ -3142,7 +3142,7 @@ void Graphics::drawforetile2(int x, int y, int t)
setRect(rect, x,y,tiles_rect.w, tiles_rect.h);
#if !defined(NO_CUSTOM_LEVELS)
if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted)
if (t >= 14 && t <= 17 && (!FILESYSTEM_assetsmounted || ed.onewaycol_override))
{
colourTransform thect = {ed.getonewaycol()};
BlitSurfaceTinted(tiles2[t], NULL, foregroundBuffer, &rect, thect);

View File

@ -398,6 +398,8 @@ void editorclass::reset()
ghosts.clear();
currentghosts = 0;
onewaycol_override = false;
}
void editorclass::gethooks()
@ -1708,6 +1710,11 @@ bool editorclass::load(std::string& _path)
{
website = pText;
}
if(pKey == "onewaycol_override")
{
onewaycol_override = atoi(pText);
}
}
}
@ -1993,6 +2000,13 @@ bool editorclass::save(std::string& _path)
meta->LinkEndChild( doc.NewText( website.c_str() ));
msg->LinkEndChild( meta );
if (onewaycol_override)
{
meta = doc.NewElement( "onewaycol_override" );
meta->LinkEndChild( doc.NewText( help.String(onewaycol_override).c_str() ));
msg->LinkEndChild( meta );
}
data->LinkEndChild( msg );
msg = doc.NewElement( "mapwidth" );

View File

@ -241,6 +241,7 @@ class editorclass{
Uint32 getonewaycol(const int rx, const int ry);
Uint32 getonewaycol();
bool onewaycol_override;
int returneditoralpha;
int oldreturneditoralpha;