|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {; {0 S) Q% V; N7 U5 s' J! P
public:
" ?) f$ b' y o' S" ` static std::string GetSharePath() {
# O9 s/ }+ q* z4 ?, A // 优先检查 share 目录- `. |! Z' O% C; U/ e1 F
if (DirectoryExists("./share/")) {& Q- ^2 O( c8 ~( @+ h
return "./share/";! u6 a( E2 b4 B4 f S
}
9 O+ _+ m8 l, ~. y // 如果 share 目录不存在,使用当前目录
# @" r! W! _ `6 P# q return "./";
; R6 g% m" J; @! w: b }! z; B' X7 k8 W- P) J# _
- P8 z- I$ B x7 x
static std::string GetItemetcPath() {0 b1 n. [; u3 {1 \
return GetSharePath() + "itemetc.csv";
, D$ h5 g. ?' a, X% F0 C# M }
: k w! A$ T/ z$ n9 s3 a8 g- F# ]# V4 m / L9 }! [$ e# E; M W+ G2 L: i
static std::string GetItemarmorPath() {; d5 h! v$ e D" W
return GetSharePath() + "itemarmor.csv";
) r3 u% M4 F6 o+ z9 z l }' D) L# l% v3 V P; V
9 s. O& Q) @: O; t g' Z) t
static std::string GetItemweaponPath() {
) K: ^% J& @; e return GetSharePath() + "itemweapon.csv";
/ }; |4 U9 S+ M. |+ t7 u }+ Z0 c% A2 u# s! @; F! ]
; {) |/ T0 L* G; Y4 R# r static std::string GetSkillnamePath() {5 f$ }8 L3 w; m) `, S& T
return GetSharePath() + "skillname.csv";! m, F/ c9 Z$ ?# b6 }. J
}6 c6 r$ I% L8 K8 a9 R8 Y' i" v3 M
, C8 @, M+ G5 p" g2 L4 ~: m7 zprivate:* T7 A2 k# K; G% Z2 R$ b1 x
static bool DirectoryExists(const std::string& path) {% m# u2 L7 t' b9 z) l
// 实现目录存在性检查; b$ Z% q# s% G- n" `! O8 q
struct stat info;* Q1 H5 S" }2 B* K3 d" { R
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
' G6 B0 m. k7 {! q3 X' r }& `* B; X+ w! K. r, s
}; |
|