Fix Vector2 and Vector2i coord access via operator[]

This commit is contained in:
Bartłomiej T. Listwon 2022-02-09 09:18:05 +01:00
parent a47a71b87e
commit 134aac5725

View file

@ -60,10 +60,10 @@ struct _NO_DISCARD_CLASS_ Vector2 {
};
_FORCE_INLINE_ real_t &operator[](int p_idx) {
return p_idx ? y : x;
return coord[p_idx];
}
_FORCE_INLINE_ const real_t &operator[](int p_idx) const {
return p_idx ? y : x;
return coord[p_idx];
}
_FORCE_INLINE_ void set_all(real_t p_value) {
@ -275,6 +275,8 @@ struct _NO_DISCARD_CLASS_ Vector2i {
AXIS_Y,
};
union {
struct {
union {
int x;
int width;
@ -283,12 +285,16 @@ struct _NO_DISCARD_CLASS_ Vector2i {
int y;
int height;
};
};
int coord[2];
};
_FORCE_INLINE_ int &operator[](int p_idx) {
return p_idx ? y : x;
return coord[p_idx];
}
_FORCE_INLINE_ const int &operator[](int p_idx) const {
return p_idx ? y : x;
return coord[p_idx];
}
Vector2i operator+(const Vector2i &p_v) const;