2020-01-01 21:29:24 +01:00
|
|
|
#ifndef BLOCKV_H
|
|
|
|
#define BLOCKV_H
|
|
|
|
|
2020-07-19 06:21:27 +02:00
|
|
|
#include <SDL.h>
|
2020-01-01 21:29:24 +01:00
|
|
|
#include <string>
|
|
|
|
|
|
|
|
class blockclass
|
|
|
|
{
|
|
|
|
public:
|
Explicitly declare void for all void parameter functions (#628)
Apparently in C, if you have `void test();`, it's completely okay to do
`test(2);`. The function will take in the argument, but just discard it
and throw it away. It's like a trash can, and a rude one at that. If you
declare it like `void test(void);`, this is prevented.
This is not a problem in C++ - doing `void test();` and `test(2);` is
guaranteed to result in a compile error (this also means that right now,
at least in all `.cpp` files, nobody is ever calling a void parameter
function with arguments and having their arguments be thrown away).
However, we may not be using C++ in the future, so I just want to lay
down the precedent that if a function takes in no arguments, you must
explicitly declare it as such.
I would've added `-Wstrict-prototypes`, but it produces an annoying
warning message saying it doesn't work in C++ mode if you're compiling
in C++ mode. So it can be added later.
2021-02-25 23:23:59 +01:00
|
|
|
blockclass(void);
|
|
|
|
void clear(void);
|
2020-01-01 21:29:24 +01:00
|
|
|
|
|
|
|
void rectset(const int xi, const int yi, const int wi, const int hi);
|
2020-04-04 00:26:19 +02:00
|
|
|
|
2021-09-12 08:15:34 +02:00
|
|
|
void setblockcolour(const char* col);
|
2020-01-01 21:29:24 +01:00
|
|
|
public:
|
|
|
|
//Fundamentals
|
|
|
|
SDL_Rect rect;
|
|
|
|
int type;
|
|
|
|
int trigger;
|
|
|
|
int xp, yp, wp, hp;
|
|
|
|
std::string script, prompt;
|
|
|
|
int r, g, b;
|
Add `setactivityposition(x,y)`, add new textbox color `transparent` (#847)
* Add `setactivityposition(x,y)`, add new textbox color `transparent`
This commit adds a new internal command as a part of the visual activity zone changes I've been making.
This one allows the user to reposition the activity zone to anywhere on the screen.
In addition, this commit adds the textbox color `transparent`, which just sets r, g and b to 0.
rgb(0, 0, 0) normally creates the color black, however in VVVVVV textboxes, it makes the background
of them invisible, and makes the text the off-white color which the game uses elsewhere.
* add new variables to hardreset
* Fix unwanted text centering; offset position by 16, 4
It makes sense for `setactivityposition(0, 0)` to place the activity zone in the default position,
so the x has been offset by 16, and the y has been offset by 4.
Text was being automatically centered, meaning any activity zone which wasn't centered had misplaced text.
This has been fixed by calculating the center manually, and offsetting it by the passed value.
2021-10-14 00:38:51 +02:00
|
|
|
int activity_x, activity_y;
|
2020-01-01 21:29:24 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* BLOCKV_H */
|