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;