core/NextMap.h
changeset 2203 159ab9bad58c
parent 2077 3c6fe374e8b7
child 2205 2e628fb36eef
     1.1 --- a/core/NextMap.h	Sat Jul 12 22:28:10 2008 +0000
     1.2 +++ b/core/NextMap.h	Sun Jul 13 05:13:37 2008 +0000
     1.3 @@ -34,17 +34,58 @@
     1.4  
     1.5  #include "sm_globals.h"
     1.6  #include "eiface.h"
     1.7 +#include "sh_list.h"
     1.8 +#include "sm_stringutil.h"
     1.9 +
    1.10 +struct MapChangeData
    1.11 +{
    1.12 +	MapChangeData(const char *mapName, const char *changeReason, time_t time)
    1.13 +	{
    1.14 +		UTIL_Format(m_mapName, sizeof(m_mapName), mapName);
    1.15 +		UTIL_Format(m_changeReason, sizeof(m_changeReason), changeReason);
    1.16 +		startTime = time;
    1.17 +	}
    1.18 +
    1.19 +	MapChangeData()
    1.20 +	{
    1.21 +		m_mapName[0] = '\0';
    1.22 +		m_changeReason[0] = '\0';
    1.23 +		startTime = 0;
    1.24 +	}
    1.25 +
    1.26 +	char m_mapName[32];
    1.27 +	char m_changeReason[100];
    1.28 +	time_t startTime;
    1.29 +};
    1.30  
    1.31  class NextMapManager : public SMGlobalClass
    1.32  {
    1.33  public:
    1.34 +	NextMapManager();
    1.35 +
    1.36 +#if defined ORANGEBOX_BUILD
    1.37 +	friend void CmdChangeLevelCallback(const CCommand &command);
    1.38 +#else
    1.39 +	friend void CmdChangeLevelCallback();
    1.40 +#endif
    1.41 +
    1.42  	void OnSourceModAllInitialized_Post();
    1.43  	void OnSourceModShutdown();
    1.44 +	void OnSourceModLevelChange(const char *mapName);
    1.45  
    1.46  	const char *GetNextMap();
    1.47  	bool SetNextMap(const char *map);
    1.48  
    1.49 +	void ForceChangeLevel(const char *mapName, const char* changeReason);
    1.50 +
    1.51  	void HookChangeLevel(const char *map, const char *unknown);
    1.52 +
    1.53 +public:
    1.54 +	SourceHook::List<MapChangeData *> m_mapHistory;
    1.55 +
    1.56 +private:
    1.57 +	MapChangeData m_tempChangeInfo;
    1.58 +	char lastMap[32];
    1.59  };
    1.60  
    1.61  extern NextMapManager g_NextMap;