|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
9 u+ Y {2 S2 I& W" Kpublic:
- U6 s! e( ~& z) v4 J static std::string GetSharePath() {; U0 a; q& w% q( I
// 优先检查 share 目录: @/ k1 a1 O+ u' }
if (DirectoryExists("./share/")) {3 K- e6 L7 z' R ^- r3 ]7 F
return "./share/";
* \& Y0 f: Q; m, O! P8 q }
* }/ C0 }3 q% B5 m) \ ? // 如果 share 目录不存在,使用当前目录
! k# d$ |+ G8 r. s/ ]' X9 o( y3 f* ` return "./";- [; z& E) l, \! P5 E
}- L/ o+ {+ w6 ^& W' u; f
( B# f: e2 I1 a0 a$ R) ~* @0 R static std::string GetItemetcPath() {
* _+ z, F0 [+ e# T* e2 N% R return GetSharePath() + "itemetc.csv";
3 n9 r5 {1 w0 [ }
+ T' u# L* U5 s/ v7 ]! L
6 b6 r; {6 i2 Z/ n7 ?. C5 C static std::string GetItemarmorPath() { X, z& L1 v( I
return GetSharePath() + "itemarmor.csv";
3 P6 ?3 a: u# S7 Z( s% ~ }
4 @# e2 A, D% a# q, F; Z9 N2 t : ] G! b, d& g+ k
static std::string GetItemweaponPath() {
( D3 E$ ~$ B) E9 t return GetSharePath() + "itemweapon.csv";
: p6 A0 M, U6 }. I }, U$ c3 m' P+ S- @+ V( U
+ C2 \2 R4 U' @8 x
static std::string GetSkillnamePath() {, g! c. @6 ` z/ {! z1 Q' Z& s
return GetSharePath() + "skillname.csv";% [! E e/ T2 D# K9 i
}% M) ]' j/ a: w# p! m$ x
. f: `7 K R1 eprivate:
8 R3 K3 ]& S0 t static bool DirectoryExists(const std::string& path) {
3 Q8 E8 A4 T6 d7 M2 x // 实现目录存在性检查- Q4 }1 d& f+ E; m
struct stat info;
+ Q' k) M J8 [/ z; y return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);, g h4 E. I$ R: K- e$ G
}
# }* M3 Y; l( e7 R3 ~}; |
|