|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {* y' ?1 P- E6 F
public:
! p6 e* C% t& V# E0 U static std::string GetSharePath() {0 J6 `8 S/ _0 W3 S9 _
// 优先检查 share 目录( ^2 V5 |0 s$ P6 k9 z4 ]( D1 E
if (DirectoryExists("./share/")) {- v. q) M) A& w6 Q# {' a
return "./share/";
$ {! x1 W3 T" w2 ~8 ~ }+ R8 ^* O f7 M2 j/ g4 S/ i( T* q4 N1 F. R
// 如果 share 目录不存在,使用当前目录# A9 i, I1 {( O: T' t
return "./";
- A" n. G9 i% K# k, z0 N8 d }
2 L) M$ K3 ^4 N' i6 E/ D* P 3 {4 i" F& D6 R4 J$ K9 w! p1 ^
static std::string GetItemetcPath() {" `& J4 u3 j% }2 N
return GetSharePath() + "itemetc.csv";4 a, u5 f; ?: U* a: E8 G
} a' s7 I% u+ R, Z2 U; J* K# v
- \9 L/ K# k; m& J7 ^
static std::string GetItemarmorPath() {
% `1 O5 V* S/ E3 T6 e return GetSharePath() + "itemarmor.csv";1 A# G' Q3 u" m
}% r0 n; h7 _5 m+ Z& ?" G/ n
2 U8 y Q* U) f7 @6 W0 u static std::string GetItemweaponPath() {$ t Q4 Q, }' M! ~0 n, M! [* ^7 n
return GetSharePath() + "itemweapon.csv";
2 W% \( T2 i# ?( u9 r3 b3 W. Q, U }) `, d+ m4 b: d N; r3 S
% G' {+ B) i, u# s6 P+ A
static std::string GetSkillnamePath() {. M4 W6 w3 g% ~" {& x
return GetSharePath() + "skillname.csv";$ G7 O" c ]) L
}
7 s$ `& A1 w. O: F1 k) ~# ~
+ g6 ^+ M# w M" nprivate:" _+ `' L7 q( \6 r& ^+ S8 `- g
static bool DirectoryExists(const std::string& path) {
4 N" v: l, \! I0 b2 v // 实现目录存在性检查
6 n( Y5 b' Y# E& d* x3 m7 S struct stat info;) |1 P6 D" ]/ z& U9 j* X/ Y
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
) J3 V" \* E( F" T! m, j }
1 y- @! F" ]! u# z2 X9 M( |% ~* a3 D}; |
|