From 05f8c90ec01d659d7f0bcbe7f0f55941566fe601 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Fri, 4 Aug 2023 05:45:15 -0500 Subject: [PATCH] Standardize data types using a data type enum. Get function implemented. --- SHNFileDecryptor/AbState.shn.bak | Bin 227224 -> 227224 bytes SHNFileDecryptor/SHNFileDecryptor.h | 50 +++++++++++++++++---------- SHNFileDecryptor/SHNFile_example.cpp | 2 ++ 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/SHNFileDecryptor/AbState.shn.bak b/SHNFileDecryptor/AbState.shn.bak index 49c9c463c26aac034c18ce1c04459e08a8512cf1..2fd7fc33ac85a07fe0146ef2f278e80fce384ab7 100644 GIT binary patch delta 38 tcmbR7o_EH3-VM#H+^<9qGwdata; - int type=0; + DataType type=DataType::BYTE; Data(byte b); Data(sbyte b); Data(uint16_t n); @@ -82,6 +92,7 @@ public: void Write(int row,int col,uint32_t val); void Write(int row,int col,float val); void Write(int row,int col,std::string val); + const SHNFile::Data Get(int row,int col)const; SHNFile(); }; #ifdef OLC_PGEX_SHNFile @@ -223,7 +234,7 @@ float SHNFile::ReadSingle(){ return f; } void SHNFile::WriteSingle(std::ofstream&f,float n){ - byte bytes[4]; + byte bytes[4]={}; memcpy(&n,&bytes,4); for(int i=0;i<4;i++){ f<ptr=std::make_shared(byte(b)); data=ptr; - type=1; + type=DataType::BYTE; } SHNFile::Data::Data(sbyte b){ std::shared_ptrptr=std::make_shared(sbyte(b)); data=ptr; - type=7; + type=DataType::SBYTE; } SHNFile::Data::Data(uint16_t n){ std::shared_ptrptr=std::make_shared(uint16_t(n)); data=ptr; - type=2; + type=DataType::UINT16; } SHNFile::Data::Data(int16_t n){ std::shared_ptrptr=std::make_shared(int16_t(n)); data=ptr; - type=6; + type=DataType::INT16; } SHNFile::Data::Data(uint32_t n){ std::shared_ptrptr=std::make_shared(uint32_t(n)); data=ptr; - type=3; + type=DataType::UINT32; } SHNFile::Data::Data(int32_t n){ std::shared_ptrptr=std::make_shared(int32_t(n)); data=ptr; - type=8; + type=DataType::INT32; } SHNFile::Data::Data(float n){ std::shared_ptrptr=std::make_shared(float(n)); data=ptr; - type=4; + type=DataType::FLOAT; } SHNFile::Data::Data(std::string str){ std::shared_ptrptr=std::make_shared(str); data=ptr; - type=5; + type=DataType::STRING; } template T SHNFile::Data::Get(){ @@ -301,28 +312,28 @@ void SHNFile::Data::Set(T b){ } std::string SHNFile::Data::GetDisplayText(){ switch(type){ - case 1:{ + case DataType::BYTE:{ return std::to_string(int(Get())); }break; - case 7:{ + case DataType::SBYTE:{ return std::to_string(int(Get())); }break; - case 2:{ + case DataType::UINT16:{ return std::to_string(Get()); }break; - case 6:{ + case DataType::INT16:{ return std::to_string(Get()); }break; - case 3:{ + case DataType::UINT32:{ return std::to_string(Get()); }break; - case 8:{ + case DataType::INT32:{ return std::to_string(Get()); }break; - case 4:{ + case DataType::FLOAT:{ return std::to_string(Get()); }break; - case 5:{ + case DataType::STRING:{ return Get(); }break; } @@ -497,6 +508,9 @@ void SHNFile::Save(){ WriteBytes(encryptedFile,data); std::cout<<"File "<(val); } diff --git a/SHNFileDecryptor/SHNFile_example.cpp b/SHNFileDecryptor/SHNFile_example.cpp index 3fec96d..d6cfc23 100644 --- a/SHNFileDecryptor/SHNFile_example.cpp +++ b/SHNFileDecryptor/SHNFile_example.cpp @@ -4,6 +4,8 @@ int main(){ SHNFile shn; shn.Load("AbState.shn"); + SHNFile::Data dat=shn.Get(3,6); + std::cout<