mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-30 01:48:15 +03:00
Move all editor-specific attributes to a new editorclass
This is a pretty hefty commit! But essentially, I made a new editorclass object, and moved all functions and variables that only get used in the in-game level editor to that class. This cleanly demarcates which things are in the editor and which things are just general custom level stuff. Then I fixed up all the callers. I also fixed up some NO_CUSTOM_LEVELS and NO_EDITOR ifdefs, too, in several places.
This commit is contained in:
@@ -7,31 +7,6 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
// Text entry field type
|
||||
enum textmode {
|
||||
TEXT_NONE,
|
||||
|
||||
// In-editor text fields
|
||||
TEXT_LOAD,
|
||||
TEXT_SAVE,
|
||||
TEXT_ROOMNAME,
|
||||
TEXT_SCRIPT,
|
||||
TEXT_ROOMTEXT,
|
||||
TEXT_GOTOROOM,
|
||||
LAST_EDTEXT = TEXT_GOTOROOM,
|
||||
|
||||
// Settings-mode text fields
|
||||
TEXT_TITLE,
|
||||
TEXT_DESC,
|
||||
TEXT_WEBSITE,
|
||||
TEXT_CREATOR,
|
||||
NUM_TEXTMODES,
|
||||
|
||||
// Text modes with an entity
|
||||
FIRST_ENTTEXT = TEXT_SCRIPT,
|
||||
LAST_ENTTEXT = TEXT_ROOMTEXT
|
||||
};
|
||||
|
||||
class edentities{
|
||||
public:
|
||||
int x, y, t;
|
||||
@@ -104,20 +79,10 @@ class EditorData
|
||||
std::string modifier;
|
||||
};
|
||||
|
||||
struct GhostInfo {
|
||||
int rx; // game.roomx-100
|
||||
int ry; // game.roomy-100
|
||||
int x; // .xp
|
||||
int y; // .yp
|
||||
int col; // .colour
|
||||
Uint32 realcol;
|
||||
int frame; // .drawframe
|
||||
};
|
||||
|
||||
class editorclass{
|
||||
public:
|
||||
editorclass(void);
|
||||
|
||||
class customlevelclass
|
||||
{
|
||||
public:
|
||||
customlevelclass(void);
|
||||
std::string Desc1;
|
||||
std::string Desc2;
|
||||
std::string Desc3;
|
||||
@@ -130,7 +95,6 @@ class editorclass{
|
||||
bool getLevelMetaData(std::string& filename, LevelMetaData& _data );
|
||||
|
||||
void reset(void);
|
||||
void getlin(const enum textmode mode, const std::string& prompt, std::string* ptr);
|
||||
const int* loadlevel(int rxi, int ryi);
|
||||
|
||||
int gettileidx(
|
||||
@@ -161,54 +125,20 @@ class editorclass{
|
||||
ROOM_PROPERTIES
|
||||
#undef FOREACH_PROP
|
||||
|
||||
void placetilelocal(int x, int y, int t);
|
||||
|
||||
int getenemyframe(int t);
|
||||
int base(int x, int y);
|
||||
|
||||
int backbase(int x, int y);
|
||||
|
||||
int at(int x, int y);
|
||||
|
||||
int freewrap(int x, int y);
|
||||
|
||||
int backonlyfree(int x, int y);
|
||||
|
||||
int backfree(int x, int y);
|
||||
|
||||
int spikefree(int x, int y);
|
||||
int free(int x, int y);
|
||||
int absfree(int x, int y);
|
||||
|
||||
int match(int x, int y);
|
||||
int outsidematch(int x, int y);
|
||||
|
||||
int backmatch(int x, int y);
|
||||
|
||||
void switch_tileset(const bool reversed);
|
||||
void switch_tilecol(const bool reversed);
|
||||
void clamp_tilecol(const int rx, const int ry, const bool wrap);
|
||||
void switch_enemy(const bool reversed);
|
||||
void switch_warpdir(const bool reversed);
|
||||
|
||||
bool load(std::string& _path);
|
||||
#ifndef NO_EDITOR
|
||||
bool save(std::string& _path);
|
||||
#endif
|
||||
void generatecustomminimap(void);
|
||||
int edgetile(int x, int y);
|
||||
int outsideedgetile(int x, int y);
|
||||
|
||||
int backedgetile(int x, int y);
|
||||
|
||||
int labspikedir(int x, int y, int t);
|
||||
int spikedir(int x, int y);
|
||||
int findtrinket(int t);
|
||||
int findcrewmate(int t);
|
||||
int findwarptoken(int t);
|
||||
void findstartpoint(void);
|
||||
int getlevelcol(const int tileset, const int tilecol);
|
||||
int getenemycol(int t);
|
||||
int entcol;
|
||||
Uint32 entcolreal;
|
||||
|
||||
//Colouring stuff
|
||||
int getwarpbackground(int rx, int ry);
|
||||
@@ -220,93 +150,19 @@ class editorclass{
|
||||
int numtrinkets(void);
|
||||
int numcrewmates(void);
|
||||
edlevelclass level[numrooms]; //Maxwidth*maxheight
|
||||
int kludgewarpdir[numrooms]; //Also maxwidth*maxheight
|
||||
|
||||
int notedelay;
|
||||
int oldnotedelay;
|
||||
std::string note;
|
||||
std::string keybuffer;
|
||||
std::string filename;
|
||||
std::string loaded_filepath;
|
||||
|
||||
int drawmode;
|
||||
int tilex, tiley;
|
||||
int keydelay, lclickdelay;
|
||||
bool savekey, loadkey;
|
||||
int levx, levy;
|
||||
int entframe, entframedelay;
|
||||
|
||||
int scripttexttype;
|
||||
std::string oldenttext;
|
||||
|
||||
enum textmode textmod; // In text entry
|
||||
std::string* textptr; // Pointer to text we're changing
|
||||
std::string textdesc; // Description (for editor mode text fields)
|
||||
union {
|
||||
int desc; // Which description row we're changing
|
||||
int textent; // Entity ID for text prompt
|
||||
};
|
||||
bool xmod, zmod, cmod, vmod, bmod, hmod, spacemod, warpmod;
|
||||
bool titlemod, creatormod, desc1mod, desc2mod, desc3mod, websitemod;
|
||||
|
||||
int roomnamehide;
|
||||
bool saveandquit;
|
||||
bool shiftmenu, shiftkey;
|
||||
int spacemenu;
|
||||
bool settingsmod, settingskey;
|
||||
int warpent;
|
||||
bool updatetiles, changeroom;
|
||||
int deletekeyheld;
|
||||
|
||||
int boundarymod, boundarytype;
|
||||
int boundx1, boundx2, boundy1, boundy2;
|
||||
|
||||
int levmusic;
|
||||
int mapwidth, mapheight; //Actual width and height of stage
|
||||
|
||||
int version;
|
||||
|
||||
//Script editor stuff
|
||||
void removeline(int t);
|
||||
void insertline(int t);
|
||||
|
||||
bool scripteditmod;
|
||||
int scripthelppage, scripthelppagedelay;
|
||||
std::vector<std::string> sb;
|
||||
std::string sbscript;
|
||||
int sbx, sby;
|
||||
int pagey;
|
||||
|
||||
//Functions for interfacing with the script:
|
||||
void addhook(std::string t);
|
||||
void removehook(std::string t);
|
||||
void addhooktoscript(std::string t);
|
||||
void removehookfromscript(std::string t);
|
||||
void loadhookineditor(std::string t);
|
||||
void clearscriptbuffer(void);
|
||||
void gethooks(void);
|
||||
bool checkhook(std::string t);
|
||||
std::vector<std::string> hooklist;
|
||||
|
||||
int hookmenupage, hookmenu;
|
||||
|
||||
//Direct Mode variables
|
||||
int dmtile;
|
||||
int dmtileeditor;
|
||||
|
||||
Uint32 getonewaycol(const int rx, const int ry);
|
||||
Uint32 getonewaycol(void);
|
||||
bool onewaycol_override;
|
||||
|
||||
int returneditoralpha;
|
||||
int oldreturneditoralpha;
|
||||
|
||||
std::vector<GhostInfo> ghosts;
|
||||
int currentghosts;
|
||||
};
|
||||
|
||||
#ifndef ED_DEFINITION
|
||||
extern editorclass ed;
|
||||
#ifndef CL_DEFINITION
|
||||
extern customlevelclass cl;
|
||||
#endif
|
||||
|
||||
#endif /* CUSTOMLEVELS_H */
|
||||
|
||||
Reference in New Issue
Block a user