|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
+ V! b) n! k; Apublic:
X9 h/ f9 ?: z, z v8 }4 I( r static std::string GetSharePath() {
0 e' B: s. G1 ` Y' A; ]% q // 优先检查 share 目录
, X1 k: Y- y; L) u" c if (DirectoryExists("./share/")) {' j" F" h+ R9 C- }
return "./share/";
3 Y7 v3 I' |( M9 i }
& p0 y. n$ x! L W- h // 如果 share 目录不存在,使用当前目录
1 `1 }) U3 c% v1 N# z return "./";
# t) N4 F$ M, J* M3 z: c }9 W5 [8 S9 L8 _5 C* R* O9 ]5 s- e
' M/ i# C, {. o$ h5 R
static std::string GetItemetcPath() {
! J n5 x( L+ M2 Q8 J( X2 q return GetSharePath() + "itemetc.csv";- B' W7 P$ k# B. O1 G4 u
}+ J: G4 U2 ]# Z; m+ i8 l1 n \
% ^7 G' K. e' u# a! ~& T2 ` static std::string GetItemarmorPath() {
: K& q. i* L% l% N return GetSharePath() + "itemarmor.csv";1 x0 R* U( ~* _0 m- y, r8 A' [
}
6 s I* R% [0 ~+ z* q7 O& _. Y" V ' x2 d1 r$ H/ L0 |
static std::string GetItemweaponPath() {
' ]/ L; W1 B" v0 ?- E& \' H return GetSharePath() + "itemweapon.csv";
$ g; N6 ^; o: n0 h: @ a# J }3 P& e* m: ?8 P( x
% ]' u0 Q" c& C static std::string GetSkillnamePath() {- X' c+ V6 l, u. g! t( `
return GetSharePath() + "skillname.csv";
) _, `; j! I, r9 w }
( W2 f& } C. p & Z( y& z$ A% v
private:
2 h7 D, c. T4 _$ g9 S. [ static bool DirectoryExists(const std::string& path) {
+ `/ R1 l" K0 g! ^8 E // 实现目录存在性检查
- h& u% t* m* D/ S+ D struct stat info;/ Q- g! i1 G4 t6 m6 v
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
0 K) R4 g9 z# B }
7 B: w3 y! u" v( i}; |
|