|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {9 C4 `$ i' _, M* v7 c8 d1 y! S3 `
public:
" R9 i3 c/ @. s8 N static std::string GetSharePath() {5 Y% @; U% G% E. ~. q
// 优先检查 share 目录
3 H8 l. ~/ x0 j- q if (DirectoryExists("./share/")) { c( C/ h$ }; Z1 M6 h9 @3 V
return "./share/";5 f0 s) u, J' X! _
}/ A3 e8 J9 ?" x: J" G
// 如果 share 目录不存在,使用当前目录
* P6 J! M+ ` g9 F7 a) B return "./";/ a% ?0 {6 L# Z
}
6 ^% i; w0 B8 e5 ~/ S& N
5 G! N3 u. x5 U- Q static std::string GetItemetcPath() {
: u2 z9 h4 q; H( i/ H2 w4 p( E# d. ` return GetSharePath() + "itemetc.csv";4 Y @5 C4 F0 l$ M
}/ }/ i, d; }, g) Y" ]: h
0 ], g. s' y8 G) C2 N* h static std::string GetItemarmorPath() {$ X8 r1 ~* I" T
return GetSharePath() + "itemarmor.csv";1 w5 W8 z2 ]4 m. L
}2 v3 A/ N; E, r$ f; @
: |; H3 q- L+ I9 p6 z7 \! p
static std::string GetItemweaponPath() {
* q& E) s8 N' k( ^! u$ L# ~7 W return GetSharePath() + "itemweapon.csv";: \8 [$ p# B. B
}
* y! v' ?+ y. K6 p% B1 p c) \ 2 e* f6 E2 N9 U: y, B+ m
static std::string GetSkillnamePath() {3 g4 X; ?! E$ ?# z
return GetSharePath() + "skillname.csv";8 z) K4 K; M- U" S
}
; f9 i# w2 }# D$ |; W0 o& p3 I
+ D2 I& p/ ? {6 j* P) vprivate:
& _( v, N' c2 k static bool DirectoryExists(const std::string& path) {! B/ T* v" I1 X T2 f9 N" X9 v
// 实现目录存在性检查' t5 g \6 R( A1 d+ A# }
struct stat info;+ `: ]9 m8 |3 | O; o
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
p. |+ W$ E+ m: t4 {2 W7 d }
/ V5 R) u- H2 r1 Y! _) v# i! ?}; |
|