#include "PSOProtocol.hh" #include using namespace std; uint16_t PSOCommandHeader::command(GameVersion version) const { switch (version) { case GameVersion::DC: case GameVersion::GC: return reinterpret_cast(this)->command; case GameVersion::PC: case GameVersion::Patch: return reinterpret_cast(this)->command; case GameVersion::BB: return reinterpret_cast(this)->command; } throw logic_error("unknown game version"); } uint16_t PSOCommandHeader::size(GameVersion version) const { switch (version) { case GameVersion::DC: case GameVersion::GC: return reinterpret_cast(this)->size; case GameVersion::PC: case GameVersion::Patch: return reinterpret_cast(this)->size; case GameVersion::BB: return reinterpret_cast(this)->size; } throw logic_error("unknown game version"); } uint32_t PSOCommandHeader::flag(GameVersion version) const { switch (version) { case GameVersion::DC: case GameVersion::GC: return reinterpret_cast(this)->flag; case GameVersion::PC: case GameVersion::Patch: return reinterpret_cast(this)->flag; case GameVersion::BB: return reinterpret_cast(this)->flag; } throw logic_error("unknown game version"); }