|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {$ V- w8 l6 }) \: Q0 G& u
public:" E3 l8 K& W% G, I, ]
static std::string GetSharePath() {
8 g6 i# y; r! W8 _ // 优先检查 share 目录
7 R. \9 U* |' Z/ [# I+ ]4 f if (DirectoryExists("./share/")) {( A3 N+ }0 U9 r% W% z! J) g
return "./share/";( \! d8 O7 V' u, `& s. s! l; V
}
& w d( a, e8 C' m // 如果 share 目录不存在,使用当前目录
1 i0 C( O# F. q3 d+ M return "./";
% Y* z* h* _/ I, J& Y' {5 c }; S9 a$ m; _3 R+ P* o
4 O* d1 [9 y) o
static std::string GetItemetcPath() {
7 g- e, Q4 G0 S! h0 b return GetSharePath() + "itemetc.csv";
+ h( q$ k6 d/ v, A/ |2 P/ ^ }
9 G, w, O- p; p" d % ^! a: T2 B5 T8 m# n! Y
static std::string GetItemarmorPath() {
) u, A0 w- ^8 A: V* T! m# ] return GetSharePath() + "itemarmor.csv";- x5 f( T) R7 X
}
8 }; Z, E2 r4 x' e
# g. T9 k `4 R$ J6 |+ F0 K static std::string GetItemweaponPath() {* Y, D7 D5 E, a' o% [( K' {
return GetSharePath() + "itemweapon.csv";
2 L3 X; d4 }6 v6 \, ^" V$ O }
+ v' P+ }* i/ D , `" q8 ~+ Q' p5 n5 i: Q& b
static std::string GetSkillnamePath() {- e0 G) A, A1 o- T0 h$ ]
return GetSharePath() + "skillname.csv";
1 A& i- J: i: M( [ }
* \0 i8 b0 i6 B5 I- K7 i3 q " s0 Y/ H$ P5 p+ k- \ k8 u9 }: l
private:
' G( p. v9 j O7 f1 @9 X, j static bool DirectoryExists(const std::string& path) {
- J& ~* l" b! @ // 实现目录存在性检查# d+ E) t# O8 z2 L+ l' i8 m
struct stat info;9 l7 _- S# V0 b+ M
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
' j9 H7 |! ^* q6 T5 G$ R! |$ e }# g$ I$ _: _/ m4 R+ {
}; |
|