46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
|
|
#pragma once
|
||
|
|
#include "squirrel.h"
|
||
|
|
#include "sqstdaux.h"
|
||
|
|
#include "sqstdblob.h"
|
||
|
|
#include "sqstdio.h"
|
||
|
|
#include "sqstdmath.h"
|
||
|
|
#include "sqstdstring.h"
|
||
|
|
#include "sqstdsystem.h"
|
||
|
|
#include <iostream>
|
||
|
|
|
||
|
|
typedef void *(*__GetGameManagerVoid)();
|
||
|
|
static SQInteger GameManager_GameManager(HSQUIRRELVM v)
|
||
|
|
{
|
||
|
|
void *GameManager = ((__GetGameManagerVoid)0x080CC18E)();
|
||
|
|
sq_pushuserpointer(v, GameManager);
|
||
|
|
return 1;
|
||
|
|
}
|
||
|
|
typedef void *(*__GameManagerByThis)(void *GameManager);
|
||
|
|
static SQInteger GameManager_GetParty(HSQUIRRELVM v)
|
||
|
|
{
|
||
|
|
SQUserPointer P;
|
||
|
|
sq_getuserpointer(v, 2, &P);
|
||
|
|
void *CParty = ((__GameManagerByThis)0x08294E10)(P);
|
||
|
|
if (CParty)
|
||
|
|
sq_pushuserpointer(v, CParty);
|
||
|
|
else
|
||
|
|
sq_pushinteger(v, 0);
|
||
|
|
return 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
static SQInteger register_GameManager_func(HSQUIRRELVM v, SQFUNCTION f, const char *fname)
|
||
|
|
{
|
||
|
|
sq_pushroottable(v);
|
||
|
|
sq_pushstring(v, fname, -1);
|
||
|
|
sq_newclosure(v, f, 0); // create a new function
|
||
|
|
sq_newslot(v, -3, SQFalse);
|
||
|
|
sq_pop(v, 1); // pops the root table
|
||
|
|
}
|
||
|
|
|
||
|
|
static void RegisterGameManager(HSQUIRRELVM v)
|
||
|
|
{
|
||
|
|
// 获得GameManager对象
|
||
|
|
register_GameManager_func(v, GameManager_GameManager, _SC("Sq_GameManager_GameManager"));
|
||
|
|
// 获得队伍对象
|
||
|
|
register_GameManager_func(v, GameManager_GetParty, _SC("Sq_GameManager_GetParty"));
|
||
|
|
}
|