|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {! L8 Q; I8 D- `
public:
2 M3 C L! u8 S0 b: j5 O static std::string GetSharePath() {+ {7 _1 L& }6 `& }
// 优先检查 share 目录2 v" Z0 x. h& D$ F; Y: w1 T% ]- u% p
if (DirectoryExists("./share/")) {
5 u1 T! j# k& m6 r- B return "./share/";& B1 \! X# X2 f
}
( O5 l/ P3 R. S // 如果 share 目录不存在,使用当前目录
4 Q- _: n$ k3 [' R8 i7 t6 \& U$ C return "./";* a: [ c( b3 U( g7 S2 f/ j
}
' m) y0 c P( n ! a @& ?7 k0 h
static std::string GetItemetcPath() {1 y) |7 p, F5 L9 z: h
return GetSharePath() + "itemetc.csv";0 F4 }5 y8 |" u3 d+ ^% s6 z
}9 x6 J: D$ v& B' L# I
" R8 s) D4 u! O; `
static std::string GetItemarmorPath() {
: F0 M7 C( A% ^2 J0 [ { return GetSharePath() + "itemarmor.csv";, }' ]& E: M3 i# a3 q
}
5 R' X9 z5 U( l4 v: o
, O1 o9 T4 ^( i! W3 G' n! X3 {) G1 J static std::string GetItemweaponPath() {
5 t( G# Y4 D2 v: e* L4 V# F0 _ return GetSharePath() + "itemweapon.csv";: g# U' s- |& I4 q, G
}
: s; M0 o2 b: W; t3 a
. Q! o, Q1 p/ o. f8 ~ static std::string GetSkillnamePath() {; H1 @2 j0 d7 f" f7 T. L% }
return GetSharePath() + "skillname.csv";
1 L |* ^) _ @" k }
* t9 k- K+ J/ }0 N" \
# u8 V8 [7 [3 S" t. Uprivate:
* J Q2 |4 ~% K: a; y static bool DirectoryExists(const std::string& path) {& |! W# B3 u+ B$ i5 T
// 实现目录存在性检查
0 C6 J. a& ~/ `/ J" [/ Q0 z struct stat info;0 v4 r9 ~ y* F. y$ I% `' {, I/ V
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);4 H" Q. }) N" R% p- @
}7 l. f) X8 O/ ~
}; |
|