|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {1 i7 Z- z0 r: X: R" L/ S) p
public:7 O$ u" |5 L% P9 E8 ~! h; T
static std::string GetSharePath() {3 M6 [6 S+ o% V8 i$ {; r" O1 r! s
// 优先检查 share 目录/ R2 d; s7 I6 z1 p3 `) f: }- l
if (DirectoryExists("./share/")) {
, N% d) o7 v. }: q* I+ G6 }# r return "./share/";
* o, X5 T! _' b: e }
0 b8 J! i( _ R // 如果 share 目录不存在,使用当前目录
+ F) x: B+ Q% |; m8 M0 t; u$ J return "./";6 h1 @: s- H4 I, B# p
}$ _4 L' O# p& y. F
: z! k4 z Z6 Q static std::string GetItemetcPath() {# |2 M2 @+ w. Z+ ^# Z& l/ \
return GetSharePath() + "itemetc.csv";& K1 x- j2 P- x/ `8 p; w
}
* W5 m* o q4 W) Y: P' n
" f+ S) N# b) I V' w- e0 |1 v static std::string GetItemarmorPath() {
% N8 y% E) ]5 P" S0 q return GetSharePath() + "itemarmor.csv";
: c$ e0 H7 V% x4 U3 z1 g" ~ }- q/ u2 ^: N2 Y5 }8 j
. t* X7 l- U/ }7 L* \! }
static std::string GetItemweaponPath() {
4 q$ B% x9 u- Y7 T return GetSharePath() + "itemweapon.csv";
9 O# g ?3 M* o9 ^1 M }( d! m- I: L5 \& p1 o
) g- e: N) H6 V% l* h9 }
static std::string GetSkillnamePath() {- Q( B: j8 n% j- H3 d
return GetSharePath() + "skillname.csv";+ p/ ~# x; g4 K( J# m/ p8 u1 s8 A$ y
}
" Y% R8 o3 j" }3 O" V
% O' h( [! G; m! ]private:
- |& c! c, R* g4 E6 P7 H static bool DirectoryExists(const std::string& path) {
6 n+ M' ~3 Q3 A p6 [ // 实现目录存在性检查# h8 u/ O) r9 L9 j
struct stat info;
, ^4 x- a; E, a2 L return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);: r% ^$ F+ s# r, I& K7 N
}
0 N/ s; h% Y: C7 S}; |
|