#ifndef PSOV3ENCRYPTION_H #define PSOV3ENCRYPTION_H #include #include #include #include class PSOEncryption { public: PSOEncryption(); virtual void update_stream() = 0; virtual ~PSOEncryption(); virtual void init(u32 seed) = 0; virtual u32 next() = 0; }; class PSOV3Encryption : public PSOEncryption { public: PSOV3Encryption(); virtual void update_stream(); virtual ~PSOV3Encryption(); virtual void init(u32 seed); virtual u32 next(); PRIVATE_MEMBER_ACCESSORS_ARRAY(u32, buffer, 522); PRIVATE_MEMBER_ACCESSORS_NON_REF(u32 *, buffer_start); PRIVATE_MEMBER_ACCESSORS_NON_REF(u32 *, buffer_end); private: TArray m_buffer; u32 *m_buffer_start; u32 *m_buffer_end; }; #endif