summaryrefslogtreecommitdiff
path: root/include/pso/TPlyGuildCardTag.h
blob: f10b8e42961b3e4d6c35bc74beb16bea0c3e167a (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
#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:
	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.tag0 = src.tag().tag0;
		m_tag.tag1 = src.tag().tag1;
		m_tag.tag2 = src.tag().tag2;
		m_guildcard_number = src.guildcard_number();
	};

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