
//
// SS2_Platform_HUD.h
//
// Created by SK - 26/09/2007
//
// Copyright (C) 2007 Rebellion, All Rights Reserved.
//

#ifndef __AVP_PLATFORM_SAVE_STATE__
#define __AVP_PLATFORM_SAVE_STATE__

#include "LoadAndSave/AVP_Profile_LoadAndSave.h"

class Asura_StaticSaveBlock;

class AVP_PS3_SaveState
{
public:
	static bool Update();
	static bool Save( bool bForceManual, void* pxData, Asura_StaticSaveBlock* pxSaveBlock );
	static bool Load( void* pxData, Asura_StaticSaveBlock* pxSaveBlock );

	static bool GetShouldOfferLoad();

	static bool CheckProfile( const void* pProfile );

private:
	enum STATE
	{
		VOID = 0,
		IDLE,
		AUTOSAVING,
		SAVING,
		LOADING,
		ASKINGDELETE,
		DELETING,
		ASKINGRETRY,
		COUNTING,

		NUM_STATES
	};

	static STATE s_eState;
	static STATE s_eNextState;
	static void* s_pxLastData;
	static Asura_StaticSaveBlock* s_pxLastSaveBlock;
	static u_int s_uNumProfiles;
	static AVP_Profile_SaveData s_xProfileSaveBackup;
};

#endif //__AVP_PLATFORM_SAVE_STATE__
