diff --git a/saco/unkclass5.cpp b/saco/unkclass5.cpp index 9244689..f03cd00 100644 --- a/saco/unkclass5.cpp +++ b/saco/unkclass5.cpp @@ -1,10 +1,37 @@ #include "main.h" +CIntArray::~CIntArray() +{ + SetSize(0); +} + +bool CIntArray::SetSize(unsigned int nSize) +{ + if(!nSize) { + if(m_pData) { + free(m_pData); + m_pData = NULL; + } + m_nSize = 0; + return true; + } + + int *pNew = (int *)realloc(m_pData, nSize * sizeof(int)); + if(!pNew) return false; + + m_pData = pNew; + if(m_nSize < nSize) { + for(unsigned int i = m_nSize; i != nSize; i++) + m_pData[i] = 0; + } + + m_nSize = nSize; + return true; +} + CUnkClass5::CUnkClass5(IDirect3DDevice9 *pD3DDevice) { - field_0 = 0; - field_4 = 0; m_pD3DDevice = pD3DDevice; m_pDialog = NULL; field_30 = 0; diff --git a/saco/unkclass5.h b/saco/unkclass5.h index ec3b34d..a2915be 100644 --- a/saco/unkclass5.h +++ b/saco/unkclass5.h @@ -1,11 +1,22 @@ #pragma once +class CIntArray +{ +public: + CIntArray() { m_pData = NULL; m_nSize = 0; } + ~CIntArray(); + + bool SetSize(unsigned int nSize); + + int *m_pData; + unsigned int m_nSize; +}; + class CUnkClass5 { private: - int field_0; - int field_4; + CIntArray m_Array; IDirect3DDevice9* m_pD3DDevice; char _gapC[8]; int field_14;