summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2023-03-08 16:41:27 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2023-03-08 16:41:27 -0400
commitc194e33e98492bbd0384f2a6b9a533bcfb57701d (patch)
treeb029d62b0ab06f10852ec5d409094ffd0f3f19e2
parent09c901655db3bb42d2aac4b506846b18833d777c (diff)
macros: Add `as()`
-rw-r--r--context.h6
-rw-r--r--include/pso/TPlySmth.h6
-rw-r--r--include/pso/macros.h2
3 files changed, 9 insertions, 5 deletions
diff --git a/context.h b/context.h
index 39fa7f3..def67af 100644
--- a/context.h
+++ b/context.h
@@ -142,6 +142,8 @@ typedef long ptrdiff_t;
PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, __VA_ARGS__); \
PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, __VA_ARGS__)
+#define as(type, var) reinterpret_cast<type>(var)
+
// pso/TMainTask.h
#define X_OR_Y_CHILD(flags, old_flags, one_prefix, zero_prefix, suffix) \
if (flags != old_flags) { \
@@ -837,8 +839,8 @@ public:
TPlySmth() {};
void bswap() {
- bswap_32(reinterpret_cast<u32 *>(&m_smth));
- bswap_32(reinterpret_cast<u32 *>(&m_smth1));
+ bswap_32(as(u32 *, &m_smth));
+ bswap_32(as(u32 *, &m_smth1));
};
public:
u8 m_smth[4];
diff --git a/include/pso/TPlySmth.h b/include/pso/TPlySmth.h
index 2530c7b..e510047 100644
--- a/include/pso/TPlySmth.h
+++ b/include/pso/TPlySmth.h
@@ -2,8 +2,8 @@
#define TPLYSMTH_H
#include <global_types.h>
+#include <pso/macros.h>
#include <pso/protocol.h>
-#include <pso/TArray.h>
#include <pso/TProtocol.h>
class TPlySmth {
@@ -11,8 +11,8 @@ public:
TPlySmth() {};
void bswap() {
- bswap_32(reinterpret_cast<u32 *>(&m_smth));
- bswap_32(reinterpret_cast<u32 *>(&m_smth1));
+ bswap_32(as(u32 *, &m_smth));
+ bswap_32(as(u32 *, &m_smth1));
};
public:
u8 m_smth[4];
diff --git a/include/pso/macros.h b/include/pso/macros.h
index 291a550..e182c54 100644
--- a/include/pso/macros.h
+++ b/include/pso/macros.h
@@ -108,4 +108,6 @@
PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, __VA_ARGS__); \
PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, __VA_ARGS__)
+#define as(type, var) reinterpret_cast<type>(var)
+
#endif