diff --git a/Source/Client/Session.h b/Source/Client/Session.h index bfd9e6f3..c8f11ca7 100644 --- a/Source/Client/Session.h +++ b/Source/Client/Session.h @@ -37,8 +37,17 @@ struct SessionRecord6144 { /* 0036 */ std::int16_t day; }; +struct SessionRecord6178Entry { + /* 0000 */ std::string unknown_0000; + /* 0018 */ int unknown_0018; +}; + struct SessionRecord6178 { - /* 0000 */ unsigned char unknown_0000[0x2C]; + /* 0000 */ unsigned char unknown_0000; + /* 0001 */ unsigned char unknown_0001; + /* 0004 */ int id; + /* 0008 */ std::string unknown_0008; + /* 0020 */ std::vector unknown_0020; }; struct RobeAlpha { @@ -389,6 +398,7 @@ public: int GetMapProperty12() const; int GetMapProperty13() const; bool HasUnknown6178Records() const; + bool HasUnknown6178Record(int id) const; int IsState291To303(int state) const; int IsType0Or4(int type) const; int IsMonsterActor(CGameActor* actor) const; diff --git a/Source/Client/SessionPredicates.cpp b/Source/Client/SessionPredicates.cpp index b9d1dbcf..f4fec068 100644 --- a/Source/Client/SessionPredicates.cpp +++ b/Source/Client/SessionPredicates.cpp @@ -29,6 +29,19 @@ int CSession::IsState291To303(int state) const { } } +// OFFSET: 0x00E1D700 +// FUNCTION: fn_23851 +bool CSession::HasUnknown6178Record(int id) const { + auto it = this->unknown_6178.begin(); + for (; it != this->unknown_6178.end(); ++it) { + const SessionRecord6178 record = *it; + if (id == record.id) { + break; + } + } + return it != this->unknown_6178.end(); +} + // OFFSET: 0x00E1D850 // FUNCTION: fn_23852 int CSession::IsType0Or4(int type) const {