Files
FC1/CrySystem/ScriptObjectScript.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

58 lines
1.9 KiB
C++

// ScriptObjectScript.h: interface for the CScriptObjectScript class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SCRIPTOBJECTSCRIPT_H__2432459C_19FC_4AC4_8EAA_D73967BC4B37__INCLUDED_)
#define AFX_SCRIPTOBJECTSCRIPT_H__2432459C_19FC_4AC4_8EAA_D73967BC4B37__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <IScriptSystem.h>
#include <_ScriptableEx.h>
#include <set> // STL set<>
/*! This class implements script-functions for exposing the scripting system functionalities
REMARKS:
After initialization of the script-object it will be globally accessable through scripts using the namespace "Script".
Example:
Script.LoadScript("scripts/common.lua")
IMPLEMENTATIONS NOTES:
These function will never be called from C-Code. They're script-exclusive.
*/
class CScriptObjectScript :
public _ScriptableEx<CScriptObjectScript>
{
public:
CScriptObjectScript();
virtual ~CScriptObjectScript();
void Init(IScriptSystem *pScriptSystem);
int LoadScript(IFunctionHandler *pH);
int ReloadScripts(IFunctionHandler *pH);
int ReloadScript(IFunctionHandler *pH);
int UnloadScript(IFunctionHandler *pH);
int DumpLoadedScripts(IFunctionHandler *pH);
int Debug(IFunctionHandler *pH);
int DebugFull(IFunctionHandler *pH);
static void InitializeTemplate(IScriptSystem *pSS);
private: // -------------------------------------------------------------------------
//! recursive
//! /return amount of table elements (recursive)
DWORD Debug_Buckets_recursive( IScriptObject *pCurrent, string &sPath, std::set<const void *> &setVisited, const DWORD dwMinBucket );
//! not recursive
void Debug_Elements( IScriptObject *pCurrent, string &sPath, std::set<const void *> &setVisited );
//! recursive
void Debug_Full_recursive( IScriptObject *pCurrent, string &sPath, std::set<const void *> &setVisited );
};
#endif // !defined(AFX_SCRIPTOBJECTSCRIPT_H__2432459C_19FC_4AC4_8EAA_D73967BC4B37__INCLUDED_)