summaryrefslogtreecommitdiff
path: root/include/pso/TPlyGuildCardTag.h
blob: 5808e5666f2b937a48fe500a6225382bacd28724 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef TPLYGUILDCARDTAG_H
#define TPLYGUILDCARDTAG_H

#include "pso/forward.h"
#include "pso/macros.h"
#include <global_types.h>

struct gc_tag {
	u8 tag0;
	u8 tag1;
	u16 tag2;
};

class TPlyGuildCardTag {
public:
	TPlyGuildCardTag();
	TPlyGuildCardTag(u16 tag2, u32 guildcard_number);

	void bswap();
	void assign(const TPlyGuildCardTag &src);
	void assign(const TPlyGuildCardTag *src);

	PRIVATE_MEMBER_ACCESSORS(gc_tag, tag);
	PRIVATE_MEMBER_ACCESSORS(u32, tag_u32);
	PRIVATE_MEMBER_ACCESSORS(u32, guildcard_number);
private:
	void _assign(const TPlyGuildCardTag &src) {
		m_tag = src.m_tag;
		m_guildcard_number = src.m_guildcard_number;
	};

	union {
		gc_tag m_tag;
		u32 m_tag_u32;
	};
	u32 m_guildcard_number;
} __packed__;
#endif