KisaragiLibrary
 
読み取り中…
検索中…
一致する文字列を見つけられません
Kisaragi_Resource.h
[詳解]
1#pragma once
2
3#include "Const.h"
4#include <string>
5#include <map>
7#include <DxLib.h>
8
9using std::string;
10using std::map;
11
12namespace Kisaragi_Lib
13{
14 namespace Resource
15 {
16
17 /// <summary>
18 /// 4̓Jbg摜ۑ.
19 /// </summary>
20 /// <param name="_pass">摜̃pX</param>
21 /// <returns>摜nh</returns>
22 int LoadAlphCutImg(string _pass);
23
25 {
26
27 };
28
29
30 /// <summary>
31 /// t@CpXKeyL\[X݂邩T.
32 /// </summary>
34 {
35 private:
36 //map<key,pass>
37 std::map<string, string>keyToPass;
38 //map<pass,key>
39 std::map<string, string>passToKey;
40
41 public:
42 /// <summary>
43 /// _key݂邩mF.
44 /// </summary>
45 /// <param name="_key">key</param>
46 /// <returns>true = ݂Ȃ. false = ݂
47 bool IsEmptyKey(string _key)
48 {
49 bool empty = true;
50 if (keyToPass.end() != keyToPass.find(_key))
51 {
52 empty = false;
53 }
54 return empty;
55 }
56
57 /// <summary>
58 /// _pass݂邩.
59 /// </summary>
60 /// <param name="_pass">pX</param>
61 /// <returns>true = ݂Ȃ. false = ݂
62 bool IsEmptyPass(string _pass)
63 {
64 bool empty = true;
65 if (passToKey.end() != passToKey.find(_pass))
66 {
67 empty = false;
68 }
69 return empty;
70 }
71
72 /// <summary>
73 /// vf̒ljs.ds.
74 /// </summary>
75 /// <param name="_key">ljKey</param>
76 /// <param name="_pass">ljPass</param>
77 /// <returns>ljǂ</returns>
78 Result Add(string _key, string _pass)
79 {
80 //_key݂ȂA
81 if (!IsEmptyKey(_key))
82 {
83 return FAIL;
84 }
85
86 //_passdȂA
87 if (!IsEmptyPass(_pass))
88 {
89 return FAIL;
90 }
91
92 //mapɒlj.
93 keyToPass.emplace(_key, _pass);
94 passToKey.emplace(_pass, _key);
95
96 return SUCCESS;
97 }
98
99 /// <summary>
100 /// vf̍폜s.
101 /// </summary>
102 /// <param name="_key">폜vfKey</param>
103 /// <returns>폜̉”
104 Result Remove(string _key)
105 {
106 //key݂ȂȂ
107 if (!IsEmptyKey(_key))
108 {
109 return FAIL;
110 }
111
112 passToKey.erase(KeyToPass(_key));
113 keyToPass.erase(_key);
114 return SUCCESS;
115 }
116
117 /// <summary>
118 /// KeypXɕϊ.
119 /// </summary>
120 /// <param name="_key">ϊkey</param>
121 /// <returns>_keyɑΉpX</returns>
122 string KeyToPass(const string _key)
123 {
124 return keyToPass[_key];
125 }
126
127 /// <summary>
128 /// pXKeyɕϊ.
129 /// </summary>
130 /// <param name="_pass">ϊpX</param>
131 /// <returns>_passɑΉkey</returns>
132 string PassToKey(const string _pass)
133 {
134 return passToKey[_pass];
135 }
136
137 void Reset()
138 {
139 keyToPass.clear();
140 passToKey.clear();
141 }
142 };
143
145 {
146 protected:
148
149 public:
151 {
152 return resourceFind;
153 }
154
155 virtual Result Add(const string _key, const string _pass) = 0;
156
157 virtual Result Remove(const string _key) = 0;
158
159 virtual void Reset() = 0;
160
161 };
162
163 //ǂݍݐp̉摜\[XNX
165 {
166 private:
167 map<string, int> imgData;
168
169 public:
170
171 Result Add(const string _key, const string _pass) override
172 {
173 int* tmp = new int();
174 *tmp = DxLib::LoadGraph(_pass.c_str());
175
176 if (*tmp == -1)
177 {
178 delete tmp;
179 return FAIL;
180 }
181
182
183 //key̒ljɎs
184 if (resourceFind.Add(_key, _pass) == FAIL)
185 {
186 delete tmp;
187 return FAIL;
188 }
189
190 imgData.emplace(_key, *tmp);
191
192 delete tmp;
193 return SUCCESS;
194 }
195
196 /// <summary>
197 /// 4̓ӏ؂摜lj܂.
198 /// </summary>
199 /// <param name="_key">摜f[^̃L[</param>
200 /// <param name="_pass">摜̃pX</param>
201 /// <returns>֐̐
202 Result Add_AlphaCut(const string _key, const string _pass)
203 {
204 int* tmp = new int();
205 *tmp = LoadAlphCutImg(_pass);
206
207 if (*tmp == -1)
208 {
209 delete tmp;
210 return FAIL;
211 }
212
213
214 //key̒ljɎs
215 if (resourceFind.Add(_key, _pass) == FAIL)
216 {
217 delete tmp;
218 return FAIL;
219 }
220
221 imgData.emplace(_key, *tmp);
222
223 delete tmp;
224 return SUCCESS;
225 }
226
227 int GetImg(const string _key)
228 {
229 if (imgData.count(_key) == 0)
230 {
231 return -1;
232 }
233
234 return imgData[_key];
235 }
236
237 Result Remove(const string _key) override
238 {
239 if (resourceFind.IsEmptyKey(_key) == false)
240 {
241 return FAIL;
242 }
243
244 resourceFind.Remove(_key);
245 DeleteGraph(imgData[_key]);
246
247 imgData.erase(_key);
248
249 return SUCCESS;
250 }
251
252 void Reset() override
253 {
254 imgData.clear();
255 resourceFind.Reset();
256 InitGraph();
257 }
258
259 };
260
261
262 ImgResource& GetImgResource();
263 }
264}
Result
成否を表す.
Definition Const.h:8
@ FAIL
Definition Const.h:9
@ SUCCESS
Definition Const.h:10
Definition Kisaragi_Resource.h:165
void Reset() override
Definition Kisaragi_Resource.h:252
int GetImg(const string _key)
Definition Kisaragi_Resource.h:227
map< string, int > imgData
Definition Kisaragi_Resource.h:167
Result Add_AlphaCut(const string _key, const string _pass)
4̓ӏ؂摜lj܂.
Definition Kisaragi_Resource.h:202
Result Remove(const string _key) override
Definition Kisaragi_Resource.h:237
Result Add(const string _key, const string _pass) override
Definition Kisaragi_Resource.h:171
Definition Kisaragi_Resource.h:145
ResourceFind ResourceFind()
Definition Kisaragi_Resource.h:150
virtual Result Remove(const string _key)=0
ResourceFind resourceFind
Definition Kisaragi_Resource.h:147
virtual Result Add(const string _key, const string _pass)=0
Definition Kisaragi_Resource.h:25
t@CpXKeyL\[X݂邩T.
Definition Kisaragi_Resource.h:34
Result Remove(string _key)
vf̍폜s.
Definition Kisaragi_Resource.h:104
Result Add(string _key, string _pass)
vf̒ljs.ds.
Definition Kisaragi_Resource.h:78
std::map< string, string > passToKey
Definition Kisaragi_Resource.h:39
void Reset()
Definition Kisaragi_Resource.h:137
bool IsEmptyKey(string _key)
_key݂邩mF.
Definition Kisaragi_Resource.h:47
string KeyToPass(const string _key)
KeypXɕϊ.
Definition Kisaragi_Resource.h:122
bool IsEmptyPass(string _pass)
_pass݂邩.
Definition Kisaragi_Resource.h:62
string PassToKey(const string _pass)
pXKeyɕϊ.
Definition Kisaragi_Resource.h:132
std::map< string, string > keyToPass
Definition Kisaragi_Resource.h:37
Definition Kisaragi_Resource.cpp:6
int LoadAlphCutImg(string _pass)
4̓Jbg摜ۑ.
Definition Kisaragi_Resource.cpp:12
ImgResource & GetImgResource()
Definition Kisaragi_Resource.cpp:130
Definition Accessor.hpp:110