|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
. ~7 Y; F, n6 H _0 @public:
C q* h" q8 d. d! ? static std::string GetSharePath() {5 Q9 i) ]& m5 U' y) j% c
// 优先检查 share 目录/ y& N% i* Z4 n. W& j( i9 _
if (DirectoryExists("./share/")) {
( j( a0 R4 x0 P+ r! V% u0 [ return "./share/";) k9 e- D* `5 f7 z' Q/ c
}, C, H* K9 v( z5 l) f/ A- Y
// 如果 share 目录不存在,使用当前目录
3 J$ v8 j* | c/ p; f! X return "./";
9 T5 e/ @9 R k l }
7 J* S4 b! {' Z+ k
- X. E L u9 a8 O/ C static std::string GetItemetcPath() {
1 F3 Y" y' p- c7 d$ T- J return GetSharePath() + "itemetc.csv";3 ^% h5 y# |: u! }* I2 G1 X& @
}- A3 s/ B' B; X4 c1 S1 ^1 |( o) l
4 S' d/ i6 m4 m# a1 B6 ]
static std::string GetItemarmorPath() {9 j7 n# p' \/ V, ]: C. B6 V% |% E
return GetSharePath() + "itemarmor.csv";, U+ C5 i0 ~# ~( [) @0 `; P0 J
}
/ b9 W. u u6 e
4 n$ e/ S7 m* { static std::string GetItemweaponPath() {
~8 z$ p1 s; w return GetSharePath() + "itemweapon.csv";- g2 ?$ g9 ^1 X0 s* O) H4 `
}
5 z% A# ^8 M8 _, K: t
$ N" O6 s8 K( ~5 N static std::string GetSkillnamePath() {
9 ?4 B; e& z: v" m& D1 } return GetSharePath() + "skillname.csv";7 e: {& R( P4 D& m" j; Y" ]+ I" ~' Y
}
n4 T$ g0 g1 g6 t S
: ^2 O2 F7 {+ e) w. _; H/ V4 F S9 gprivate:1 [& h' ~3 L. g3 f/ l+ B4 Z6 a
static bool DirectoryExists(const std::string& path) {; M+ X$ g& H* Z2 g
// 实现目录存在性检查, {7 X0 {: I# Z/ o# @, _6 e3 E( x
struct stat info;0 Y; i, ^ D5 S
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);( A+ {2 ~ `9 m+ Q' L
}
2 D, L- i. y; `* h# w}; |
|