|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
0 v, G. N& k. _$ V8 H# F/ dpublic:
( G- U6 W z: A5 ~9 c { static std::string GetSharePath() {$ y g% h, E; M0 Y; Z
// 优先检查 share 目录( D( g% A( V$ Z+ I
if (DirectoryExists("./share/")) {0 {. `# {: \6 J/ A S
return "./share/";- n9 @; e- D# x
}9 r/ ?8 U0 p8 d, t# S
// 如果 share 目录不存在,使用当前目录
6 h! W5 E+ D* O) u: l( ^* @ return "./";# G w3 m8 v6 W: E
}
% p2 U$ H6 _8 V4 B O . {* ^, ]- b5 t/ p! M6 X
static std::string GetItemetcPath() {
; E0 E" y7 ~; \+ U& D: W return GetSharePath() + "itemetc.csv";2 ]/ v8 O+ l$ S
}. d8 F, O# b0 _9 ^. e; V5 C& s
& h) P$ B% z2 a; a7 x
static std::string GetItemarmorPath() {
: o( F' x' z9 Y1 z1 I return GetSharePath() + "itemarmor.csv";. ~. H+ `/ ]# p9 C
}- x) ?3 d/ u% ^# p) @' i
. g2 m, W, m* D# K/ G$ Z
static std::string GetItemweaponPath() {
6 w4 r' j8 T4 B/ r+ ~ d* @ return GetSharePath() + "itemweapon.csv";$ u# g1 u% N; `$ x. V
}
" ~+ k8 b8 H. Z. l
; F$ q) ?! u; m, Z static std::string GetSkillnamePath() {, j1 A( u; E. s
return GetSharePath() + "skillname.csv";
9 A, S( @% x2 y1 _! ] ?+ ^6 b }
) [8 \( e! g. g1 n! V- v, | 7 q2 L+ @; b& }) q3 v1 [/ @% M6 N/ G
private:
( r& G) i: x# i static bool DirectoryExists(const std::string& path) {6 F) F( l- [$ l4 E; C/ F4 [! \. k
// 实现目录存在性检查
/ c6 T* A: l& f4 m6 s( Z8 a# Q struct stat info;. c* F; G: o+ t
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
. A7 @ c4 a. J8 j' @. u9 ^ }/ ~! B! J4 b" u
}; |
|