mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-06-28 15:38:30 +02:00
d3a868b566
RGBflip() does the exact same thing as getRGB(), now that all the surface masks have been fixed. This axes RGBflip() and changes all callers to use getRGB() instead. It is more readable that way. By doing this, there is less copy-pasting. Additionally, it is now easier to search for RGBf() - which is an ENTIRELY different function than RGBflip() - now that the name of RGBf is no longer the first four characters of some different, unrelated function. Previously I would've had to do `rg 'RGBf[^\w]'` which was stupid and awful and I hated it.
127 lines
3.6 KiB
C++
127 lines
3.6 KiB
C++
#include "Enums.h"
|
|
#include "Game.h"
|
|
#include "Graphics.h"
|
|
#include "KeyPoll.h"
|
|
#include "UtilityClass.h"
|
|
|
|
static int pre_fakepercent=0, pre_transition=30;
|
|
static bool pre_startgame=false;
|
|
static int pre_darkcol=0, pre_lightcol=0, pre_curcol=0, pre_coltimer=0, pre_offset=0;
|
|
|
|
static int pre_frontrectx=30, pre_frontrecty=20, pre_frontrectw=260, pre_frontrecth=200;
|
|
static int pre_temprectx=0, pre_temprecty=0, pre_temprectw=320, pre_temprecth=240;
|
|
|
|
void preloaderinput(void)
|
|
{
|
|
game.press_action = false;
|
|
|
|
if (key.isDown(KEYBOARD_z) || key.isDown(KEYBOARD_SPACE) || key.isDown(KEYBOARD_v) || key.isDown(game.controllerButton_flip)) {
|
|
game.press_action = true;
|
|
}
|
|
|
|
if (game.press_action) {
|
|
//Skip to TITLEMODE immediately
|
|
game.gamestate = TITLEMODE;
|
|
game.jumpheld = true;
|
|
}
|
|
}
|
|
|
|
void preloaderrenderfixed(void)
|
|
{
|
|
if (pre_transition < 30) pre_transition--;
|
|
if(pre_transition>=30){
|
|
pre_fakepercent++;
|
|
if (pre_fakepercent >= 100) {
|
|
pre_fakepercent = 100;
|
|
pre_startgame = true;
|
|
}
|
|
|
|
pre_offset = (pre_offset + 4 + int(fRandom() * 5.0f))%32;
|
|
pre_coltimer--;
|
|
if (pre_coltimer <= 0) {
|
|
pre_curcol = (pre_curcol + int(fRandom() * 5.0f)) % 6;
|
|
pre_coltimer = 8;
|
|
}
|
|
}
|
|
|
|
if (pre_transition <= -10) {
|
|
game.gamestate = TITLEMODE;
|
|
}
|
|
}
|
|
|
|
void preloaderrender(void)
|
|
{
|
|
if(pre_transition>=30){
|
|
switch(pre_curcol) {
|
|
case 0:
|
|
pre_lightcol = graphics.getRGB(0xBF,0x59,0x6F);
|
|
pre_darkcol = graphics.getRGB(0x88,0x3E,0x53);
|
|
break;
|
|
case 1:
|
|
pre_lightcol = graphics.getRGB(0x6C,0xBC,0x5C);
|
|
pre_darkcol = graphics.getRGB(0x50,0x86,0x40);
|
|
break;
|
|
case 2:
|
|
pre_lightcol = graphics.getRGB(0x5D,0x57,0xAA);
|
|
pre_darkcol = graphics.getRGB(0x2F,0x2F,0x6C);
|
|
break;
|
|
case 3:
|
|
pre_lightcol = graphics.getRGB(0xB7,0xBA,0x5E);
|
|
pre_darkcol = graphics.getRGB(0x84,0x83,0x42);
|
|
break;
|
|
case 4:
|
|
pre_lightcol = graphics.getRGB(0x57,0x90,0xAA);
|
|
pre_darkcol = graphics.getRGB(0x2F,0x5B,0x6C);
|
|
break;
|
|
case 5:
|
|
pre_lightcol = graphics.getRGB(0x90,0x61,0xB1);
|
|
pre_darkcol = graphics.getRGB(0x58,0x3D,0x71);
|
|
break;
|
|
default:
|
|
pre_lightcol = graphics.getRGB(0x00,0x00,0x00);
|
|
pre_darkcol = graphics.getRGB(0x08,0x00,0x00);
|
|
break;
|
|
}
|
|
|
|
for (int i = 0; i < 18; i++) {
|
|
pre_temprecty = (i * 16)- pre_offset;
|
|
if (i % 2 == 0)
|
|
{
|
|
FillRect(graphics.backBuffer, pre_temprectx, pre_temprecty, pre_temprectw,pre_temprecth, pre_lightcol);
|
|
}
|
|
else
|
|
{
|
|
FillRect(graphics.backBuffer, pre_temprectx, pre_temprecty, pre_temprectw,pre_temprecth, pre_darkcol);
|
|
}
|
|
}
|
|
|
|
FillRect(graphics.backBuffer, pre_frontrectx, pre_frontrecty, pre_frontrectw,pre_frontrecth, graphics.getRGB(0x3E,0x31,0xA2));
|
|
|
|
if(pre_fakepercent==100){
|
|
graphics.Print(282-(15*8), 204, "LOADING... " + help.String(int(pre_fakepercent))+"%", 124, 112, 218, false);
|
|
}else{
|
|
graphics.Print(282-(14*8), 204, "LOADING... " + help.String(int(pre_fakepercent))+"%", 124, 112, 218, false);
|
|
}
|
|
|
|
//Render
|
|
if (pre_startgame) {
|
|
pre_transition = 29;
|
|
}
|
|
}else if (pre_transition <= -10) {
|
|
//Switch to TITLEMODE (handled by preloaderrenderfixed)
|
|
}else if (pre_transition < 5) {
|
|
ClearSurface(graphics.backBuffer);
|
|
}else if (pre_transition < 20) {
|
|
pre_temprecty = 0;
|
|
pre_temprecth = 240;
|
|
ClearSurface(graphics.backBuffer);
|
|
FillRect(graphics.backBuffer, pre_frontrectx, pre_frontrecty, pre_frontrectw,pre_frontrecth, graphics.getRGB(0x3E,0x31,0xA2));
|
|
|
|
graphics.Print(282-(15*8), 204, "LOADING... 100%", 124, 112, 218, false);
|
|
}
|
|
|
|
graphics.drawfade();
|
|
|
|
graphics.render();
|
|
}
|