diff --git a/desktop_version/src/Graphics.cpp b/desktop_version/src/Graphics.cpp index 29011461..ac8a0c9e 100644 --- a/desktop_version/src/Graphics.cpp +++ b/desktop_version/src/Graphics.cpp @@ -124,6 +124,19 @@ void Graphics::init() screenshake_x = 0; screenshake_y = 0; + + col_crewred = 0x00000000; + col_crewyellow = 0x00000000; + col_crewgreen = 0x00000000; + col_crewcyan = 0x00000000; + col_crewblue = 0x00000000; + col_crewpurple = 0x00000000; + col_crewinactive = 0x00000000; + col_clock = 0x00000000; + col_trinket = 0x00000000; + col_tr = 0; + col_tg = 0; + col_tb = 0; } int Graphics::font_idx(uint32_t ch) { @@ -160,6 +173,29 @@ void Graphics::drawspritesetcol(int x, int y, int t, int c) BlitSurfaceColoured(sprites[t],NULL,backBuffer, &rect, ct); } +void Graphics::updatetitlecolours() +{ + setcol(15); + col_crewred = ct.colour; + setcol(14); + col_crewyellow = ct.colour; + setcol(13); + col_crewgreen = ct.colour; + setcol(0); + col_crewcyan = ct.colour; + setcol(16); + col_crewblue = ct.colour; + setcol(20); + col_crewpurple = ct.colour; + setcol(19); + col_crewinactive = ct.colour; + + setcol(18); + col_clock = ct.colour; + setcol(18); + col_trinket = ct.colour; +} + void Graphics::Makebfont() { for (int j = 0; j < (grphx.im_bfont->h / 8); j++) @@ -540,6 +576,13 @@ void Graphics::drawsprite( int x, int y, int t, int r, int g, int b ) BlitSurfaceColoured(sprites[t], NULL, backBuffer, &rect, ct); } +void Graphics::drawsprite(int x, int y, int t, Uint32 c) +{ + SDL_Rect rect = { Sint16(x), Sint16(y), sprites_rect.w, sprites_rect.h }; + setcolreal(c); + BlitSurfaceColoured(sprites[t], NULL, backBuffer, &rect, ct); +} + void Graphics::drawtile( int x, int y, int t ) { if (!INBOUNDS(t, tiles)) @@ -890,22 +933,22 @@ void Graphics::drawcrewman( int x, int y, int t, bool act, bool noshift /*=false { if (flipmode) { - drawspritesetcol(x, y, 14, 19); + drawsprite(x, y, 14, col_crewinactive); } else { - drawspritesetcol(x, y, 12, 19); + drawsprite(x, y, 12, col_crewinactive); } } else { if (flipmode) { - drawspritesetcol(x - 8, y, 14, 19); + drawsprite(x - 8, y, 14, col_crewinactive); } else { - drawspritesetcol(x - 8, y, 12, 19); + drawsprite(x - 8, y, 12, col_crewinactive); } } } @@ -916,22 +959,22 @@ void Graphics::drawcrewman( int x, int y, int t, bool act, bool noshift /*=false switch(t) { case 0: - drawspritesetcol(x, y, crewframe, 0); + drawsprite(x, y, crewframe, col_crewcyan); break; case 1: - drawspritesetcol(x, y, crewframe, 20); + drawsprite(x, y, crewframe, col_crewpurple); break; case 2: - drawspritesetcol(x, y, crewframe, 14); + drawsprite(x, y, crewframe, col_crewyellow); break; case 3: - drawspritesetcol(x, y, crewframe, 15); + drawsprite(x, y, crewframe, col_crewred); break; case 4: - drawspritesetcol(x, y, crewframe, 13); + drawsprite(x, y, crewframe, col_crewgreen); break; case 5: - drawspritesetcol(x, y, crewframe, 16); + drawsprite(x, y, crewframe, col_crewblue); break; } diff --git a/desktop_version/src/Graphics.h b/desktop_version/src/Graphics.h index a59ee4e4..dbab3450 100644 --- a/desktop_version/src/Graphics.h +++ b/desktop_version/src/Graphics.h @@ -103,6 +103,7 @@ public: void drawgui(); void drawsprite(int x, int y, int t, int r, int g, int b); + void drawsprite(int x, int y, int t, Uint32 c); void printcrewname(int x, int y, int t); @@ -305,6 +306,20 @@ public: return v0 + alpha * (v1 - v0); } float alpha; + + Uint32 col_crewred; + Uint32 col_crewyellow; + Uint32 col_crewgreen; + Uint32 col_crewcyan; + Uint32 col_crewblue; + Uint32 col_crewpurple; //actually pink + Uint32 col_crewinactive; + Uint32 col_clock; + Uint32 col_trinket; + int col_tr; + int col_tg; + int col_tb; + void updatetitlecolours(); }; extern Graphics graphics; diff --git a/desktop_version/src/Logic.cpp b/desktop_version/src/Logic.cpp index 8e762d5f..6bd30b65 100644 --- a/desktop_version/src/Logic.cpp +++ b/desktop_version/src/Logic.cpp @@ -17,6 +17,27 @@ void titlelogic() graphics.updatetowerbackground(); } + if (!game.menustart) + { + graphics.col_tr = (int)(164 - (help.glow / 2) - int(fRandom() * 4)); + graphics.col_tg = 164 - (help.glow / 2) - int(fRandom() * 4); + graphics.col_tb = 164 - (help.glow / 2) - int(fRandom() * 4); + } + else + { + graphics.col_tr = map.r - (help.glow / 4) - int(fRandom() * 4); + graphics.col_tg = map.g - (help.glow / 4) - int(fRandom() * 4); + graphics.col_tb = map.b - (help.glow / 4) - int(fRandom() * 4); + if (graphics.col_tr < 0) graphics.col_tr = 0; + if(graphics.col_tr>255) graphics.col_tr=255; + if (graphics.col_tg < 0) graphics.col_tg = 0; + if(graphics.col_tg>255) graphics.col_tg=255; + if (graphics.col_tb < 0) graphics.col_tb = 0; + if(graphics.col_tb>255) graphics.col_tb=255; + + graphics.updatetitlecolours(); + } + graphics.crewframedelay--; if (graphics.crewframedelay <= 0) { @@ -51,6 +72,7 @@ void maplogic() //Misc help.updateglow(); graphics.updatetextboxes(); + graphics.updatetitlecolours(); graphics.crewframedelay--; if (graphics.crewframedelay <= 0) @@ -103,6 +125,17 @@ void gamecompletelogic() help.updateglow(); graphics.crewframe = 0; map.scrolldir = 1; + graphics.updatetitlecolours(); + + graphics.col_tr = map.r - (help.glow / 4) - fRandom() * 4; + graphics.col_tg = map.g - (help.glow / 4) - fRandom() * 4; + graphics.col_tb = map.b - (help.glow / 4) - fRandom() * 4; + if (graphics.col_tr < 0) graphics.col_tr = 0; + if(graphics.col_tr>255) graphics.col_tr=255; + if (graphics.col_tg < 0) graphics.col_tg = 0; + if(graphics.col_tg>255) graphics.col_tg=255; + if (graphics.col_tb < 0) graphics.col_tb = 0; + if(graphics.col_tb>255) graphics.col_tb=255; game.creditposition--; if (game.creditposition <= -game.creditmaxposition) diff --git a/desktop_version/src/Render.cpp b/desktop_version/src/Render.cpp index ce59dda3..732cb501 100644 --- a/desktop_version/src/Render.cpp +++ b/desktop_version/src/Render.cpp @@ -519,8 +519,8 @@ void menurender() graphics.Print(160 - 84, 132-20, game.tele_gametime, 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); graphics.Print(160 + 40, 132-20, help.number(game.tele_trinkets), 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); - graphics.drawspritesetcol(50, 126-20, 50, 18); - graphics.drawspritesetcol(175, 126-20, 22, 18); + graphics.drawsprite(50, 126-20, 50, graphics.col_clock); + graphics.drawsprite(175, 126-20, 22, graphics.col_trinket); break; case 1: //Show quick save info @@ -535,8 +535,8 @@ void menurender() graphics.Print(160 - 84, 132-20, game.quick_gametime, 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); graphics.Print(160 + 40, 132-20, help.number(game.quick_trinkets), 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); - graphics.drawspritesetcol(50, 126-20, 50, 18); - graphics.drawspritesetcol(175, 126-20, 22, 18); + graphics.drawsprite(50, 126-20, 50, graphics.col_clock); + graphics.drawsprite(175, 126-20, 22, graphics.col_trinket); break; } break; @@ -1029,9 +1029,9 @@ void titlerender() if (!game.menustart) { - tr = (int)(164 - (help.glow / 2) - int(fRandom() * 4)); - tg = 164 - (help.glow / 2) - int(fRandom() * 4); - tb = 164 - (help.glow / 2) - int(fRandom() * 4); + tr = graphics.col_tr; + tg = graphics.col_tg; + tb = graphics.col_tb; int temp = 50; graphics.drawsprite((160 - 96) + 0 * 32, temp, 23, tr, tg, tb); @@ -1051,15 +1051,9 @@ void titlerender() { if(!game.colourblindmode) graphics.drawtowerbackground(); - tr = map.r - (help.glow / 4) - int(fRandom() * 4); - tg = map.g - (help.glow / 4) - int(fRandom() * 4); - tb = map.b - (help.glow / 4) - int(fRandom() * 4); - if (tr < 0) tr = 0; - if(tr>255) tr=255; - if (tg < 0) tg = 0; - if(tg>255) tg=255; - if (tb < 0) tb = 0; - if(tb>255) tb=255; + tr = graphics.col_tr; + tg = graphics.col_tg; + tb = graphics.col_tb; menurender(); @@ -1113,15 +1107,9 @@ void gamecompleterender() if(!game.colourblindmode) graphics.drawtowerbackground(); - tr = map.r - (help.glow / 4) - fRandom() * 4; - tg = map.g - (help.glow / 4) - fRandom() * 4; - tb = map.b - (help.glow / 4) - fRandom() * 4; - if (tr < 0) tr = 0; - if(tr>255) tr=255; - if (tg < 0) tg = 0; - if(tg>255) tg=255; - if (tb < 0) tb = 0; - if(tb>255) tb=255; + tr = graphics.col_tr; + tg = graphics.col_tg; + tb = graphics.col_tb; //rendering starts... here! @@ -2193,8 +2181,8 @@ void maprender() graphics.Print(160 - 84, 78, game.savetime, 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); graphics.Print(160 + 40, 78, help.number(game.savetrinkets), 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); - graphics.drawspritesetcol(50, 74, 50, 18); - graphics.drawspritesetcol(175, 74, 22, 18); + graphics.drawsprite(50, 74, 50, graphics.col_clock); + graphics.drawsprite(175, 74, 22, graphics.col_trinket); } else { @@ -2202,8 +2190,8 @@ void maprender() graphics.Print(160 - 84, 132, game.savetime, 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); graphics.Print(160 + 40, 132, help.number(game.savetrinkets), 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); - graphics.drawspritesetcol(50, 126, 50, 18); - graphics.drawspritesetcol(175, 126, 22, 18); + graphics.drawsprite(50, 126, 50, graphics.col_clock); + graphics.drawsprite(175, 126, 22, graphics.col_trinket); } } else @@ -2240,8 +2228,8 @@ void maprender() graphics.Print(160 - 84, 78, game.savetime, 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); graphics.Print(160 + 40, 78, help.number(game.savetrinkets), 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); - graphics.drawspritesetcol(50, 74, 50, 18); - graphics.drawspritesetcol(175, 74, 22, 18); + graphics.drawsprite(50, 74, 50, graphics.col_clock); + graphics.drawsprite(175, 74, 22, graphics.col_trinket); } else { @@ -2253,8 +2241,8 @@ void maprender() graphics.Print(160 - 84, 132, game.savetime, 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); graphics.Print(160 + 40, 132, help.number(game.savetrinkets), 255 - (help.glow / 2), 255 - (help.glow / 2), 255 - (help.glow / 2)); - graphics.drawspritesetcol(50, 126, 50, 18); - graphics.drawspritesetcol(175, 126, 22, 18); + graphics.drawsprite(50, 126, 50, graphics.col_clock); + graphics.drawsprite(175, 126, 22, graphics.col_trinket); } } else