forked from JDoe212/DS-FPS-Mouse-Fixer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfig_FIle_Handler.cpp
64 lines (56 loc) · 2.17 KB
/
Config_FIle_Handler.cpp
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
目的: このファイルには、このスクリプト全体のためのコンフィグリーダーが含まれている。ゲーム機能が動作する待機時間を読み取る.
*/
#include <cstring>
#include <string>
#include <fstream>
#include <unordered_map>
// 二つの文字列を取り、全体の文字列からサブ文字列を削除し、サブ文字列が削除された文字列を返す
void removeSubstring(char *string, const char *substring)
{
// サブ文字列の位置を検索
char *match = strstr(string, substring);
// サブ文字列の長さを取得
size_t subLen = strlen(substring);
if (match != nullptr) {
// サブ文字列の後ろにある文字を前に移動
memmove(match, match + subLen, strlen(match + subLen) + 1);
}
}
// コンフィグファイルの作成・読み取り、およびその使用方法の指示
void ConfigReader() {
const std::string filename = "DS_Config.txt";
std::ifstream inFile(filename);
if (!inFile) {
std::ofstream outFile(filename);
outFile <<
"VALUES\n\n"
"mouseResetWait = 33\n"
"buttonWait = 33\n"
"swapWait = 220\n"
"keyWait = 30\n"
"autoMouseDrag = 1\n";
outFile.close();
inFile.open(filename);
}
std::unordered_map<std::string, int*> configMap;
configMap["mouseResetWait"] = &mouseResetWait;
configMap["buttonWait"] = &buttonWait;
configMap["swapWait"] = &swapWait;
configMap["keyWait"] = &keyWait;
std::string line, key, value;
size_t equalsPos;
while (std::getline(inFile, line)) {
if ((equalsPos = line.find(" = ")) != std::string::npos) {
key = line.substr(0, equalsPos);
value = line.substr(equalsPos + 3);
auto it = configMap.find(key);
if (it != configMap.end()) {
// 値を整数に変換し、絶対値にする
*(it->second) = std::abs(std::stoi(value));
} else if (key == "autoMouseDrag") {
autoMouseDrag = std::stoi(value);
}
}
}
}