mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-06-26 06:28:30 +02:00
Since the exact same tower background is also used on the menu, we need to save the current state of the background when entering the menu (before overwriting it), and then put it back when we're done. Maybe we ought to separate the in-game and menu tower backgrounds... This also fixes a semi-hilarious bug where you could make Panic Room go in the other direction by simply going to the options menu in-game. This is accomplished by adding convenience functions mapclass::bg_to_kludge() and mapclass::kludge_to_bg().
192 lines
3.8 KiB
C++
192 lines
3.8 KiB
C++
#ifndef MAPGAME_H
|
|
#define MAPGAME_H
|
|
|
|
#include "Tower.h"
|
|
#include "WarpClass.h"
|
|
#include "Finalclass.h"
|
|
#include "Labclass.h"
|
|
#include "Spacestation2.h"
|
|
#include "Otherlevel.h"
|
|
#include "Entity.h"
|
|
#include "Graphics.h"
|
|
#include <vector>
|
|
#include "Music.h"
|
|
#include "editor.h"
|
|
|
|
class mapclass
|
|
{
|
|
public:
|
|
mapclass();
|
|
|
|
int RGB(int red,int green,int blue);
|
|
|
|
int intpol(int a, int b, float c);
|
|
|
|
void setteleporter(int x, int y);
|
|
|
|
void settrinket(int x, int y);
|
|
|
|
void resetmap();
|
|
|
|
void resetnames();
|
|
|
|
void transformname(int t);
|
|
|
|
std::string getglitchname(int x, int y);
|
|
|
|
void initmapdata();
|
|
|
|
int finalat(int x, int y);
|
|
|
|
int maptiletoenemycol(int t);
|
|
|
|
void changefinalcol(int t);
|
|
|
|
void setcol(const int r1, const int g1, const int b1 , const int r2, const int g2, const int b2, const int c);
|
|
|
|
void updatetowerglow();
|
|
|
|
void nexttowercolour();
|
|
|
|
void settowercolour(int t);
|
|
|
|
bool spikecollide(int x, int y);
|
|
|
|
bool collide(int x, int y);
|
|
|
|
void settile(int xp, int yp, int t);
|
|
|
|
|
|
int area(int _rx, int _ry);
|
|
|
|
void exploretower();
|
|
|
|
void hideship();
|
|
|
|
void showship();
|
|
|
|
void resetplayer();
|
|
|
|
void warpto(int rx, int ry , int t, int tx, int ty);
|
|
|
|
void gotoroom(int rx, int ry);
|
|
|
|
std::string currentarea(int t);
|
|
|
|
void loadlevel(int rx, int ry);
|
|
|
|
|
|
std::vector <int> roomdeaths;
|
|
std::vector <int> roomdeathsfinal;
|
|
std::vector <int> areamap;
|
|
std::vector <int> contents;
|
|
std::vector <int> explored;
|
|
std::vector <int> vmult;
|
|
std::vector <std::string> tmap;
|
|
|
|
int temp;
|
|
int temp2;
|
|
int background;
|
|
int rcol;
|
|
int tileset;
|
|
bool warpx;
|
|
bool warpy;
|
|
|
|
|
|
std::string roomname;
|
|
std::string hiddenname;
|
|
|
|
//Special tower stuff
|
|
bool towermode;
|
|
float ypos;
|
|
float oldypos;
|
|
int bypos;
|
|
int cameramode;
|
|
int cameraseek, cameraseekframe;
|
|
int resumedelay;
|
|
bool minitowermode;
|
|
int scrolldir;
|
|
|
|
//This is the old colour cycle
|
|
int r, g,b;
|
|
int check, cmode;
|
|
int towercol;
|
|
int colstate, colstatedelay;
|
|
int colsuperstate;
|
|
int spikeleveltop, spikelevelbottom;
|
|
int oldspikeleveltop, oldspikelevelbottom;
|
|
bool tdrawback;
|
|
int bscroll;
|
|
//final level navigation
|
|
int finalx;
|
|
int finaly;
|
|
bool finalmode;
|
|
bool finalstretch;
|
|
|
|
//Variables for playing custom levels
|
|
bool custommode;
|
|
bool custommodeforreal;
|
|
int customx, customy;
|
|
int customwidth, customheight;
|
|
int custommmxoff, custommmyoff, custommmxsize, custommmysize;
|
|
int customzoom;
|
|
bool customshowmm;
|
|
|
|
std::vector<std::string> specialnames;
|
|
int glitchmode;
|
|
int glitchdelay;
|
|
std::string glitchname;
|
|
|
|
//final level colour cycling stuff
|
|
bool final_colormode;
|
|
int final_mapcol;
|
|
int final_aniframe;
|
|
int final_aniframedelay;
|
|
int final_colorframe, final_colorframedelay;
|
|
|
|
//Teleporters and Trinkets on the map
|
|
std::vector<point> teleporters;
|
|
std::vector<point> shinytrinkets;
|
|
|
|
bool showteleporters, showtargets, showtrinkets;
|
|
|
|
//Roomtext
|
|
bool roomtexton;
|
|
std::vector<Roomtext> roomtext;
|
|
|
|
//Levels
|
|
otherlevelclass otherlevel;
|
|
spacestation2class spacestation2;
|
|
labclass lablevel;
|
|
finalclass finallevel;
|
|
warpclass warplevel;
|
|
towerclass tower;
|
|
int extrarow;
|
|
|
|
//Accessibility options
|
|
bool invincibility;
|
|
|
|
//Map cursor
|
|
int cursorstate, cursordelay;
|
|
|
|
int kludge_bypos;
|
|
int kludge_colstate;
|
|
int kludge_scrolldir;
|
|
void inline bg_to_kludge()
|
|
{
|
|
kludge_bypos = bypos;
|
|
kludge_colstate = colstate;
|
|
kludge_scrolldir = scrolldir;
|
|
}
|
|
void inline kludge_to_bg()
|
|
{
|
|
bypos = kludge_bypos;
|
|
colstate = kludge_colstate;
|
|
scrolldir = kludge_scrolldir;
|
|
}
|
|
};
|
|
|
|
extern mapclass map;
|
|
|
|
#endif /* MAPGAME_H */
|