OROCHI
 
Loading...
Searching...
No Matches
GxResFlagManager.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13#if GX_DEVELOP
14
15GX_CORE_NAMESPACE_BEGIN()
16
17//===========================================================================
19//===========================================================================
20class GxResFlagManager : public GxResBase
21{
22 //-----------------------------------------------------------
24 //-----------------------------------------------------------
26public:
27 // RTTI定義
28 GX_RTTI_RESOURCE(GxResFlagManager, GxResBase)
29 // ClassBaseReference継承クラス用禁止宣言
30 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxResFlagManager)
31
32
33 static constexpr u32 FLAG_CATEGORY_MAX = GxMath::VALUE_32;
35 static constexpr u32 FLAG_LOCAL_MAX = GxMath::VALUE_1K;
37 static constexpr u32 FLAG_LOCAL_SIZE = FLAG_LOCAL_MAX / sizeof(u32);
38
40 struct GxFlagCategoryData : public GxStructBase
41 {
42 //-----------------------------------------------------------
44 //-----------------------------------------------------------
46 public:
47 GX_RTTI_STRUCT(GxFlagCategoryData)
48
49
50 //-----------------------------------------------------------
52 //-----------------------------------------------------------
54 public:
56 void setFlag( u32 index, b32 on );
58 b32 isOnFlag( u32 index ) const;
59
61 //-----------------------------------------------------------
63 //-----------------------------------------------------------
65 public:
66 u32 _id;
67 u32 _flagData[FLAG_LOCAL_SIZE];
68
70 };
71
73 //-----------------------------------------------------------
75 //-----------------------------------------------------------
77public:
79 GxResFlagManager(void);
80
82 //-----------------------------------------------------------
84 //-----------------------------------------------------------
86
88 void setFlag( u32 id, u32 index, b32 on );
90 b32 isOnFlag( u32 id, u32 index, b32& isOn ) const;
91
93 //-----------------------------------------------------------
95 //-----------------------------------------------------------
97
102 GX_FORCE_INLINE virtual b32 load(GxStream& stream, u32 /*dataSize*/) { return loadXml(stream); }
103
107 GX_FORCE_INLINE virtual b32 save(GxStream& stream) { return saveXml(stream, GX_RTTI); }
108
110 //-----------------------------------------------------------
112 //-----------------------------------------------------------
114private:
115 GxFlagCategoryData _flagCategoryData[ FLAG_CATEGORY_MAX ];
116
118};
119
120GX_CORE_NAMESPACE_END()
121
122#endif // GX_DEVELOP
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_RTTI_RESOURCE(__THIS__, __BASE__)
リソースクラス型情報宣言
Definition GxRttiResource.h:102
static constexpr u32 VALUE_32
32
Definition GxMath.h:124
static constexpr u32 VALUE_1K
1K
Definition GxMath.h:129
リソース基底クラス
Definition GxResBase.h:23
ストリーム基礎クラス
Definition GxStream.h:20
Definition GxBase.h:24
32bitブーリアン
Definition GxDefine.h:173