Changed to support rewritten amxxlog
This commit is contained in:
		@@ -56,7 +56,9 @@
 | 
				
			|||||||
#include "CMenu.h"
 | 
					#include "CMenu.h"
 | 
				
			||||||
#include "CEvent.h"
 | 
					#include "CEvent.h"
 | 
				
			||||||
#include "fakemeta.h"
 | 
					#include "fakemeta.h"
 | 
				
			||||||
 | 
					#include "amxxlog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define AMXXLOG_Log g_log.Log
 | 
				
			||||||
#define AMX_VERSION     "0.2"
 | 
					#define AMX_VERSION     "0.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern AMX_NATIVE_INFO  core_Natives[];
 | 
					extern AMX_NATIVE_INFO  core_Natives[];
 | 
				
			||||||
@@ -106,10 +108,6 @@ void UTIL_IntToString(int value, char *output);
 | 
				
			|||||||
void UTIL_ShowMOTD( edict_t *client , char *motd, int mlen, const char *name);
 | 
					void UTIL_ShowMOTD( edict_t *client , char *motd, int mlen, const char *name);
 | 
				
			||||||
void UTIL_ShowMenu( edict_t* pEntity, int slots, int time, char *menu, int mlen );
 | 
					void UTIL_ShowMenu( edict_t* pEntity, int slots, int time, char *menu, int mlen );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Logging
 | 
					 | 
				
			||||||
void AMXXLOG_Init();
 | 
					 | 
				
			||||||
void AMXXLOG_MapChange();
 | 
					 | 
				
			||||||
void AMXXLOG_Log(const char *fmt, ...);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define GET_PLAYER_POINTER(e)   (&g_players[ENTINDEX(e)])
 | 
					#define GET_PLAYER_POINTER(e)   (&g_players[ENTINDEX(e)])
 | 
				
			||||||
//#define GET_PLAYER_POINTER(e)   (&g_players[(((int)e-g_edict_point)/sizeof(edict_t ))])
 | 
					//#define GET_PLAYER_POINTER(e)   (&g_players[(((int)e-g_edict_point)/sizeof(edict_t ))])
 | 
				
			||||||
@@ -129,7 +127,7 @@ struct fakecmd_t {
 | 
				
			|||||||
  bool fake;
 | 
					  bool fake;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern CLog g_log;
 | 
				
			||||||
extern CPluginMngr g_plugins;
 | 
					extern CPluginMngr g_plugins;
 | 
				
			||||||
extern CTaskMngr g_tasksMngr;
 | 
					extern CTaskMngr g_tasksMngr;
 | 
				
			||||||
extern CPlayer g_players[33];
 | 
					extern CPlayer g_players[33];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,6 +56,7 @@ funEventCall modMsgs[MAX_REG_MSGS];
 | 
				
			|||||||
void (*function)(void*);
 | 
					void (*function)(void*);
 | 
				
			||||||
void (*endfunction)(void*);
 | 
					void (*endfunction)(void*);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CLog g_log;
 | 
				
			||||||
CForwardMngr  g_forwards;
 | 
					CForwardMngr  g_forwards;
 | 
				
			||||||
CList<CPlayer*> g_auth;
 | 
					CList<CPlayer*> g_auth;
 | 
				
			||||||
CList<CCVar> g_cvars;
 | 
					CList<CCVar> g_cvars;
 | 
				
			||||||
@@ -208,13 +209,8 @@ int	C_Spawn( edict_t *pent ) {
 | 
				
			|||||||
  hostname = CVAR_GET_POINTER("hostname");
 | 
					  hostname = CVAR_GET_POINTER("hostname");
 | 
				
			||||||
  mp_timelimit = CVAR_GET_POINTER("mp_timelimit");
 | 
					  mp_timelimit = CVAR_GET_POINTER("mp_timelimit");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // we	need to	initialize logging in Meta_Attach, but we have to create a new logfile each	map,
 | 
					
 | 
				
			||||||
  // so	we clear g_log_dir in ServerDeactivate_Post	to know	we should create one...
 | 
					  g_log.MapChange();
 | 
				
			||||||
  if (g_log_dir.empty())
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
	g_log_dir.set(get_localinfo("amxx_logs", "addons/amxx/logs"));
 | 
					 | 
				
			||||||
	AMXXLOG_MapChange();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ######	Initialize task	manager
 | 
					  // ######	Initialize task	manager
 | 
				
			||||||
  g_tasksMngr.registerTimers( &gpGlobals->time,	&mp_timelimit->value,  &g_game_timeleft		);
 | 
					  g_tasksMngr.registerTimers( &gpGlobals->time,	&mp_timelimit->value,  &g_game_timeleft		);
 | 
				
			||||||
@@ -503,9 +499,6 @@ void C_ServerDeactivate_Post() {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
#endif // MEMORY_TEST
 | 
					#endif // MEMORY_TEST
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_log_dir.clear();
 | 
					 | 
				
			||||||
  AMXXLOG_Log("Log file	closed.");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RETURN_META(MRES_IGNORED);
 | 
					  RETURN_META(MRES_IGNORED);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1076,9 +1069,7 @@ C_DLLEXPORT	int	Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, m
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ######	Initialize logging here
 | 
					  // ######	Initialize logging here
 | 
				
			||||||
  AMXXLOG_Init();
 | 
					 | 
				
			||||||
  g_log_dir.set(get_localinfo("amxx_logs", "addons/amxx/logs"));
 | 
					  g_log_dir.set(get_localinfo("amxx_logs", "addons/amxx/logs"));
 | 
				
			||||||
  AMXXLOG_MapChange();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //  ###### Now attach	metamod	modules
 | 
					  //  ###### Now attach	metamod	modules
 | 
				
			||||||
  // This will also call modules Meta_Query and Meta_Attach functions
 | 
					  // This will also call modules Meta_Query and Meta_Attach functions
 | 
				
			||||||
@@ -1114,6 +1105,8 @@ C_DLLEXPORT	int	Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON	reason)	{
 | 
				
			|||||||
  g_FakeMeta.Meta_Detach(now, reason);
 | 
					  g_FakeMeta.Meta_Detach(now, reason);
 | 
				
			||||||
  g_FakeMeta.ReleasePlugins();
 | 
					  g_FakeMeta.ReleasePlugins();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_log.CloseFile();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return(TRUE);
 | 
					  return(TRUE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1269,6 +1262,28 @@ C_DLLEXPORT	int	GetEngineFunctions_Post(enginefuncs_t *pengfuncsFromEngine,	int
 | 
				
			|||||||
  meta_engfuncs_post.pfnRegUserMsg = C_RegUserMsg_Post;
 | 
					  meta_engfuncs_post.pfnRegUserMsg = C_RegUserMsg_Post;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  CList<int, int> list;
 | 
				
			||||||
 | 
					  list.put(new int (8));
 | 
				
			||||||
 | 
					  list.put_back(new int(10));
 | 
				
			||||||
 | 
					  list.put_front(new int(6));
 | 
				
			||||||
 | 
					  list.put(new int (12));
 | 
				
			||||||
 | 
					  CList<int,int>::iterator iter;
 | 
				
			||||||
 | 
					  iter = list.begin();
 | 
				
			||||||
 | 
					  while (iter)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
						  if (*iter == 10)
 | 
				
			||||||
 | 
							  iter.remove();
 | 
				
			||||||
 | 
						  else if (*iter == 8)
 | 
				
			||||||
 | 
							  iter.put(new int (9));
 | 
				
			||||||
 | 
						  else
 | 
				
			||||||
 | 
							++iter;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  iter = list.begin();
 | 
				
			||||||
 | 
					  while (iter)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
						  AMXXLOG_Log("%d", *iter);
 | 
				
			||||||
 | 
						  ++iter;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  return g_FakeMeta.GetEngineFunctions_Post(pengfuncsFromEngine, interfaceVersion, &meta_engfuncs_post);
 | 
					  return g_FakeMeta.GetEngineFunctions_Post(pengfuncsFromEngine, interfaceVersion, &meta_engfuncs_post);
 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
  if(*interfaceVersion!=ENGINE_INTERFACE_VERSION) {
 | 
					  if(*interfaceVersion!=ENGINE_INTERFACE_VERSION) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -814,6 +814,16 @@ REAL MNF_CellToReal(cell x)
 | 
				
			|||||||
	return *(REAL*)&x;
 | 
						return *(REAL*)&x;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MNF_Log(const char *fmt, ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						// :TODO: Overflow possible here
 | 
				
			||||||
 | 
						char msg[3072];
 | 
				
			||||||
 | 
						va_list arglst;
 | 
				
			||||||
 | 
						va_start(arglst, fmt);
 | 
				
			||||||
 | 
						vsprintf(msg, fmt, arglst);
 | 
				
			||||||
 | 
						va_end(arglst);
 | 
				
			||||||
 | 
						AMXXLOG_Log("%s", msg);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// Fnptr Request function for the new interface
 | 
					// Fnptr Request function for the new interface
 | 
				
			||||||
const char *g_LastRequestedFunc = NULL;
 | 
					const char *g_LastRequestedFunc = NULL;
 | 
				
			||||||
#define REGISTER_FUNC(name, func) { name, (void*)func },
 | 
					#define REGISTER_FUNC(name, func) { name, (void*)func },
 | 
				
			||||||
@@ -830,7 +840,7 @@ void *Module_ReqFnptr(const char *funcName)
 | 
				
			|||||||
		REGISTER_FUNC("BuildPathname", build_pathname)
 | 
							REGISTER_FUNC("BuildPathname", build_pathname)
 | 
				
			||||||
			REGISTER_FUNC("PrintSrvConsole", print_srvconsole)
 | 
								REGISTER_FUNC("PrintSrvConsole", print_srvconsole)
 | 
				
			||||||
			REGISTER_FUNC("GetModname", MNF_GetModname)
 | 
								REGISTER_FUNC("GetModname", MNF_GetModname)
 | 
				
			||||||
			REGISTER_FUNC("Log", AMXXLOG_Log)
 | 
								REGISTER_FUNC("Log", MNF_Log)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Amx scripts loading / unloading / managing
 | 
								// Amx scripts loading / unloading / managing
 | 
				
			||||||
			REGISTER_FUNC("GetAmxScript", MNF_GetAmxScript)
 | 
								REGISTER_FUNC("GetAmxScript", MNF_GetAmxScript)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user