summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2023-02-26 19:10:51 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2023-02-26 19:10:51 -0400
commite140c56525cca0eb490bdd77eac4701f4748d34f (patch)
tree63138f5a96c273e30241b5f7abaf109d4663cec7
parent25e3c303b8f47785a0056077a66b7a77449ff827 (diff)
pso/macros: Add getters/setters macros
This'll come in handy later.
-rw-r--r--context.h36
-rw-r--r--include/pso/macros.h36
2 files changed, 72 insertions, 0 deletions
diff --git a/context.h b/context.h
index def7359..1e0952b 100644
--- a/context.h
+++ b/context.h
@@ -87,6 +87,42 @@ typedef long ptrdiff_t;
#define __packed__
+#define PRIVATE_MEMBER_GETTER(type, name) \
+ type name() { \
+ return m_##name; \
+ }
+
+#define PRIVATE_MEMBER_SETTER(type, name) \
+ void set_##name(type val) { \
+ m_##name = val; \
+ }
+
+#define PRIVATE_MEMBER_GETTER_ARRAY(type, name, size) \
+ TArray<type, size> &name() { \
+ return m_##name; \
+ }
+
+#define PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, ...) \
+ ret_type (*name())(__VA_ARGS__) { \
+ return m_##name; \
+ }
+
+#define PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, ...) \
+ void set_##name(ret_type (*val)(__VA_ARGS__)) { \
+ m_##name = val; \
+ }
+
+#define PRIVATE_MEMBER_ACCESSORS(type, name) \
+ PRIVATE_MEMBER_GETTER(type, name); \
+ PRIVATE_MEMBER_SETTER(type, name)
+
+#define PRIVATE_MEMBER_ACCESSORS_ARRAY(type, name, size) \
+ PRIVATE_MEMBER_GETTER_ARRAY(type, name, size)
+
+#define PRIVATE_MEMBER_ACCESSORS_FUNC(ret_type, name, ...) \
+ PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, __VA_ARGS__); \
+ PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, __VA_ARGS__)
+
// pso/TMainTask.h
#define X_OR_Y_CHILD(flags, old_flags, one_prefix, zero_prefix, suffix) \
if (flags != old_flags) { \
diff --git a/include/pso/macros.h b/include/pso/macros.h
index 1434e16..a341b7f 100644
--- a/include/pso/macros.h
+++ b/include/pso/macros.h
@@ -57,4 +57,40 @@
#define __packed__
+#define PRIVATE_MEMBER_GETTER(type, name) \
+ type name() { \
+ return m_##name; \
+ }
+
+#define PRIVATE_MEMBER_SETTER(type, name) \
+ void set_##name(type val) { \
+ m_##name = val; \
+ }
+
+#define PRIVATE_MEMBER_GETTER_ARRAY(type, name, size) \
+ TArray<type, size> &name() { \
+ return m_##name; \
+ }
+
+#define PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, ...) \
+ ret_type (*name())(__VA_ARGS__) { \
+ return m_##name; \
+ }
+
+#define PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, ...) \
+ void set_##name(ret_type (*val)(__VA_ARGS__)) { \
+ m_##name = val; \
+ }
+
+#define PRIVATE_MEMBER_ACCESSORS(type, name) \
+ PRIVATE_MEMBER_GETTER(type, name); \
+ PRIVATE_MEMBER_SETTER(type, name)
+
+#define PRIVATE_MEMBER_ACCESSORS_ARRAY(type, name, size) \
+ PRIVATE_MEMBER_GETTER_ARRAY(type, name, size)
+
+#define PRIVATE_MEMBER_ACCESSORS_FUNC(ret_type, name, ...) \
+ PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, __VA_ARGS__); \
+ PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, __VA_ARGS__)
+
#endif