2014-12-30 14:14:41 +01:00
|
|
|
|
|
|
|
|
#include "systemstate.h"
|
2018-01-29 21:55:48 +01:00
|
|
|
|
2014-12-30 14:14:41 +01:00
|
|
|
#include "../clib/stlutil.h"
|
|
|
|
|
#include "pkg.h"
|
2023-11-23 01:15:52 +01:00
|
|
|
#include "pol/objtype.h"
|
2018-12-21 20:27:05 +01:00
|
|
|
#include "tiles.h"
|
2014-12-30 14:14:41 +01:00
|
|
|
|
2016-02-19 19:26:35 +01:00
|
|
|
namespace Pol
|
|
|
|
|
{
|
|
|
|
|
namespace Plib
|
|
|
|
|
{
|
|
|
|
|
SystemState systemstate;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SystemState::SystemState()
|
|
|
|
|
: packages(),
|
|
|
|
|
packages_byname(),
|
|
|
|
|
accounts_txt_dirty( false ),
|
|
|
|
|
accounts_txt_stat(),
|
|
|
|
|
config(),
|
2022-12-22 21:53:54 +01:00
|
|
|
tile(),
|
2023-11-23 01:15:52 +01:00
|
|
|
max_graphic( 0 )
|
2016-02-19 19:26:35 +01:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SystemState::deinitialize()
|
|
|
|
|
{
|
|
|
|
|
Clib::delete_all( packages );
|
|
|
|
|
packages_byname.clear();
|
2022-12-22 21:53:54 +01:00
|
|
|
tile.clear();
|
2016-02-19 19:26:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
size_t SystemState::estimatedSize() const
|
|
|
|
|
{
|
|
|
|
|
size_t size = sizeof( SystemState );
|
2022-12-22 21:53:54 +01:00
|
|
|
|
|
|
|
|
size += sizeof( std::vector<Tile> ) + sizeof( Tile ) * tile.capacity();
|
2016-02-19 19:26:35 +01:00
|
|
|
|
|
|
|
|
size += 3 * sizeof( Package** ) + packages.capacity() * sizeof( Package* );
|
|
|
|
|
for ( const auto& pkg : packages )
|
|
|
|
|
if ( pkg != nullptr )
|
|
|
|
|
size += pkg->estimateSize();
|
|
|
|
|
|
|
|
|
|
for ( const auto& pkg_pair : packages_byname )
|
|
|
|
|
size += pkg_pair.first.capacity() + sizeof( Package* ) + ( sizeof( void* ) * 3 + 1 ) / 2;
|
|
|
|
|
return size;
|
|
|
|
|
}
|
2018-12-21 20:27:05 +01:00
|
|
|
} // namespace Plib
|
|
|
|
|
} // namespace Pol
|