Пример #1
0
/*
 * disable sensor
 *
 * @param sensor type
 */
SQInteger emoDisableSensor(HSQUIRRELVM v) {
    SQInteger nargs = sq_gettop(v);
    if (nargs < 2) {
        LOGE("Invalid call: emoDisableSensors(sensorType)");
        return 0;
    }

    SQInteger sensorType;
    sq_getinteger(v, 2, &sensorType);

    engine->disableSensor(sensorType);

    return 0;
}
Пример #2
0
SQInteger AIList::_set(HSQUIRRELVM vm)
{
	if (sq_gettype(vm, 2) != OT_INTEGER) return SQ_ERROR;
	if (sq_gettype(vm, 3) != OT_INTEGER || sq_gettype(vm, 3) == OT_NULL) {
		return sq_throwerror(vm, _SC("you can only assign integers to this list"));
	}

	SQInteger idx, val;
	sq_getinteger(vm, 2, &idx);
	if (sq_gettype(vm, 3) == OT_NULL) {
		this->RemoveItem(idx);
		return 0;
	}

	sq_getinteger(vm, 3, &val);
	if (!this->HasItem(idx)) {
		this->AddItem(idx, val);
		return 0;
	}

	this->SetValue(idx, val);
	return 0;
}
Пример #3
0
/*
 * enable onFps callback
 * 
 * @param onUpdate interval
 */
SQInteger emoEnableOnFpsCallback(HSQUIRRELVM v) {
    engine->enableOnFpsListener(true);

    SQInteger nargs = sq_gettop(v);

    if (nargs <= 2 && sq_gettype(v, 2) != OT_NULL) {
        SQInteger interval;
        sq_getinteger(v, 2, &interval);

        engine->setOnFpsListenerInterval(interval);
    }

    return 0;
}
Пример #4
0
// setPickupRotation(Pickupid, x, y, z)
SQInteger CPickupNatives::SetRotation(SQVM * pVM)
{
	SQInteger pickupid;
	sq_getinteger(pVM, 2, &pickupid);
	if(g_pPickupManager->DoesExist(pickupid))
	{
		CVector3 vecPosition;
		sq_getvector3(pVM, 3, &vecPosition);
		sq_pushbool(pVM, g_pPickupManager->SetRotation(pickupid, vecPosition));
		return 1;
	}
	sq_pushbool(pVM, false);
	return 1;
}
Пример #5
0
SQInteger SFKeyPressed(HSQUIRRELVM v)
{
    int key;
    sq_getinteger(Scripts.vm, 2, &key);
    if (InputKeyPressed(key))
    {
        sq_pushbool(Scripts.vm, SQTrue);
    }
    else
    {
        sq_pushbool(Scripts.vm, SQFalse);
    }
    return 1;
}
Пример #6
0
// showTextForPlayer
SQInteger sq_toggleTextForPlayer(SQVM * pVM)
{
	SQInteger playerId;
	SQInteger textId;
	SQBool show;

	sq_getbool(pVM, -1, &show);
	sq_getinteger(pVM, -2, &textId);
	sq_getinteger(pVM, -3, &playerId);

	if(pNetowkManager->GetPlayerManager()->GetSlotState(playerId))
	{
		RakNet::BitStream bsSend;
		bsSend.Write((EntityId)textId);
		bsSend.Write(show != 0);
		pNetowkManager->GetRPC4()->Call("Script_toggleTextForPlayer",&bsSend,HIGH_PRIORITY,RELIABLE,0,pNetowkManager->GetRakPeer()->GetSystemAddressFromIndex(playerId),false);

		sq_pushbool(pVM, true);
		return 1;
	}

	sq_pushbool(pVM, false);
	return 1;		
}
Пример #7
0
int AnimSquirrel::getAnimLength(SQVM* v)
{
    const char* tChar;
    int ID;
    float retVal = -1.0f;
    SQInteger nargs = sq_gettop(v);
    if(nargs >= 3)
    {
        sq_getstring(v,3,&tChar);
        sq_getinteger(v,2,&ID);
        retVal = GameEngine::getAnimLength(ID,tChar);
    }
    sq_pushfloat(v,retVal);
    return 1;
}
Пример #8
0
// setActorNametagColor(actorid, color)
SQInteger CActorNatives::SetColor(SQVM * pVM)
{
	EntityId actorId;
	SQInteger color = 0xFFFFFFFF;
	sq_getentity(pVM, -2, &actorId);
	sq_getinteger(pVM, -1, &color);

	if(g_pActorManager->DoesExist(actorId))
	{
		g_pActorManager->SetColor(actorId,color);
		return 1;
	}
	sq_pushbool(pVM,false);
	return 1;
}
Пример #9
0
SQInteger TransportTimeSignatureCtor(HSQUIRRELVM vm)
{
    SQInteger numargs = sq_gettop(vm);
    // check parameter count
    if(numargs > 3) {
        return sq_throwerror(vm, "too many parameters, expected at most 2");
    }
    if(numargs < 3) {
        return sq_throwerror(vm, "insufficient parameters, expected at least 2");
    }
    // get parameter 1 "numerator" as integer
    SQInteger numerator;
    if (SQ_FAILED(sq_getinteger(vm, 2, &numerator))){
        return sq_throwerror(vm, "argument 1 \"numerator\" is not of type integer");
    }

    // get parameter 2 "denominator" as integer
    SQInteger denominator;
    if (SQ_FAILED(sq_getinteger(vm, 3, &denominator))){
        return sq_throwerror(vm, "argument 2 \"denominator\" is not of type integer");
    }

    TimeSignature *obj;
    // call the implementation
    try {
        obj = new TimeSignature(numerator, denominator);
    }
    catch(std::exception const& e) {
        return sq_throwerror(vm, e.what());
    }

    // return pointer to new object
    sq_setinstanceup(vm, 1, (SQUserPointer*)obj);
    sq_setreleasehook(vm, 1, TransportTimeSignatureRelease);
    return 1;
}
Пример #10
0
int AnimSquirrel::isPlaying(SQVM* v)
{
    const char* tChar;
    int ID;
    bool retVal = false;
    SQInteger nargs = sq_gettop(v);
    if(nargs >= 3)
    {
        sq_getstring(v,3,&tChar);
        sq_getinteger(v,2,&ID);
        retVal = GameEngine::isPlaying(ID,tChar);
    }
    sq_pushbool(v,retVal);
    return 1;
}
Пример #11
0
//  bool  ViCbSetiPos(VApiHandle hWnd, int x, int y, int nWight, int nHight)
SQInteger ViCbSetiPos(HSQUIRRELVM v)
{
	SQInteger      nargs         = sq_gettop(v);
	SQInteger      Handle        = 0;
	CControlUI*    pCtrl         = NULL;
	int            x             = 0;
	int            y             = 0;
	int            nWight        = 0;
	int            nHight        = 0;
	RECT           rc            = {0};
	if (!v || 5 + 1 != nargs) {goto _Exit_;}
	if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;}
	if (OT_INTEGER  != sq_gettype(v, 3) && OT_FLOAT  != sq_gettype(v, 3)) {goto _Exit_;}
	if (OT_INTEGER  != sq_gettype(v, 4) && OT_FLOAT  != sq_gettype(v, 4)) {goto _Exit_;}
	if (OT_INTEGER  != sq_gettype(v, 5) && OT_FLOAT  != sq_gettype(v, 5)) {goto _Exit_;}
	if (OT_INTEGER  != sq_gettype(v, 6) && OT_FLOAT  != sq_gettype(v, 6)) {goto _Exit_;}
	
	
	sq_getinteger(v, 2, &Handle);
	sq_getinteger(v, 3, &x);
	sq_getinteger(v, 4, &y);
	sq_getinteger(v, 5, &nWight);
	sq_getinteger(v, 6, &nHight);
	pCtrl = QiHwHandleToCtrl(Handle);
	if (!pCtrl) {goto _Exit_;}

	rc.left = x;
	rc.top = y;
	rc.right = x + nWight;
	rc.bottom = y + nHight;
	pCtrl->SetPos(rc);
	
_Exit_:
	sq_pushbool(v, TRUE);
	return 1;
}
Пример #12
0
// setDayOfWeek(day)
SQInteger CWorldNatives::SetDayOfWeek(SQVM * pVM)
{
	SQInteger iDay;
	sq_getinteger(pVM, 2, &iDay);

	if(iDay >= 0 && iDay <= 6)
	{
		CTime::GetInstance()->SetDayOfWeek(iDay);
		sq_pushbool(pVM, true);
		return 1;
	}

	sq_pushbool(pVM, false);
	return 1;
}
Пример #13
0
bool sc_CallSomeCallback(HSQUIRRELVM v, const wchar_t *callback, const int param)
{
	int top = sq_gettop(v);
	int result = 0;
	sq_pushroottable(v);

	sq_pushstring(v, callback, -1);
	if(SQ_SUCCEEDED(sq_get(v, -2))) {
		sq_pushroottable(v);
		sq_pushinteger(v, param);
		sq_call(v, 2, 1, 1);
		sq_getinteger(v, sq_gettop(v), &result);
	}
	sq_settop(v, top);
	return result == 1;
}
Пример #14
0
SQInteger time_delayMicroseconds(HSQUIRRELVM v)
{
	SQInteger nargs = sq_gettop(v); //number of arguments
	if(nargs >= 2)
	{
		if(sq_gettype(v, 2) == OT_INTEGER)
		{
			int us;
			sq_getinteger(v, 2, &us);
			delayMicroseconds(us);
		}
		else
			sq_throwerror(v, "Invalid parameter for delayMicroseconds()");
	}
	return 0;
}
Пример #15
0
/*
 * get instance member value as float
 */
bool getInstanceMemberAsInteger(HSQUIRRELVM v, int idx, const char *name, SQInteger* value) {
	if (sq_gettype(v, idx) == OT_NULL) return false;
	sq_pushstring(v, name, -1);
	if (!SQ_SUCCEEDED(sq_get(v, idx))) {
		sq_pop(v, 1);
		return false;
	}
	if (sq_gettype(v, -1) == OT_NULL) {
		return false;
		sq_pop(v, 1);
	}
	sq_getinteger(v, -1, value);
	sq_pop(v, 1);
	
	return true;
}
Пример #16
0
// setTrafficLightsState(state)
SQInteger CWorldNatives::SetTrafficLightsState(SQVM * pVM)
{
	SQInteger iState;
	sq_getinteger(pVM, 2, &iState);
	if(iState > 0 && iState <= 3)
	{
		sq_pushbool(pVM, CTrafficLights::GetInstance()->SetState((CTrafficLights::eTrafficLightState)iState));
		return 1;
	}
	else
	{
		CLogFile::Printf("Failed to set TrafficLightsState to %d(Only available from 0 to 3)",iState);
		sq_pushbool(pVM,false);
		return 1;
	}
}
Пример #17
0
SQInteger CSharedVehicleNatives::GetModel( SQVM * pVM )
{
	// Get the vehicle id
	SQInteger vehicleId;
	sq_getinteger( pVM, -1, &vehicleId );

	// Is the vehicle active?
	if( pCore->GetVehicleManager()->IsActive( vehicleId ) )
	{
		sq_pushinteger( pVM, pCore->GetVehicleManager()->Get( vehicleId )->GetModel () );
		return 1;
	}

	sq_pushbool( pVM, false );
	return 1;
}
Пример #18
0
_MEMBER_FUNCTION_IMPL(GUIMultiColumnList, removeRow)
{
	CEGUI::MultiColumnList * pWindow = sq_getinstance<CEGUI::MultiColumnList *>(pVM);
	if(!pWindow)
	{
		sq_pushbool(pVM, false);
		return 1;
	}

	SQInteger sqiRow;
	sq_getinteger(pVM, -1, &sqiRow);

	pWindow->removeRow(sqiRow);
	sq_pushbool(pVM, true);
	return 1;
}
Пример #19
0
bool sc_OnPlayerText(HSQUIRRELVM v, const short index, const wchar_t *text)
{
	int result = 1;
	int top = sq_gettop(v);
	sq_pushroottable(v);
	sq_pushstring(v, _SC("OnPlayerText"), -1);
	if(SQ_SUCCEEDED(sq_get(v, -2))) {
		sq_pushroottable(v);
		sq_pushinteger(v, index);
		sq_pushstring(v, text, -1);
		sq_call(v, 3, 1, 1);
		sq_getinteger(v, sq_gettop(v), &result);
	}
	sq_settop(v, top);
	return result != 0;
}
Пример #20
0
static SQInteger string_find(HSQUIRRELVM v)
{
	SQInteger top,start_idx=0;
	const SQChar *str,*substr,*ret;
	if(((top=sq_gettop(v))>1) && SQ_SUCCEEDED(sq_getstring(v,1,&str)) && SQ_SUCCEEDED(sq_getstring(v,2,&substr))){
		if(top>2)sq_getinteger(v,3,&start_idx);
		if((sq_getsize(v,1)>start_idx) && (start_idx>=0)){
			ret=scstrstr(&str[start_idx],substr);
			if(ret){
				sq_pushinteger(v,(SQInteger)(ret-str));
				return 1;
			}
		}
		return 0;
	}
	return sq_throwerror(v,_SC("invalid param"));
}
Пример #21
0
SQInteger _stream_readblob(HSQUIRRELVM v)
{
    SETUP_STREAM(v);
    SQUserPointer data,blobp;
    SQInteger size,res;
    sq_getinteger(v,2,&size);
    if(size > self->Len()) {
        size = self->Len();
    }
    data = sq_getscratchpad(v,size);
    res = self->Read(data,size);
    if(res <= 0)
        return sq_throwerror(v,_SC("no data left to read"));
    blobp = sqstd_createblob(v,res);
    memcpy(blobp,data,res);
    return 1;
}
Пример #22
0
// toRGBA( colour );
SQInteger CUtilNatives::ToRGBA( SQVM * pVM )
{
	SQInteger iColour;
	sq_getinteger( pVM, -1, &iColour );

	CColor m_color( (unsigned long)iColour );
	
	CSquirrelArguments args;
	args.push( m_color.R );
	args.push( m_color.G );
	args.push( m_color.B );
	args.push( m_color.A );

	CSquirrelArgument arguments(args, true);
	arguments.push( pVM );
	return 1;
}
Пример #23
0
// Node:OpenNode(mode,name);
int n_OpenNode(HSQUIRRELVM pVM)
{
	for(int i = 0;i < MAX_NODES;i++)
	{
		if(pNodes[i]) continue;
		const char* temp;
		int mode;
		sq_getinteger(pVM,-2,&mode);
		sq_getstring(pVM, -1, &temp);

		pNodes[i] = new CNode((unsigned int)mode,temp);

		sq_pushinteger(pVM,i);
		return 1;
	}
	return 0;
}
Пример #24
0
SQInteger sq_setTextPositionForAll(SQVM * pVM)
{
	SQInteger textId;
	float x, y;

	sq_getfloat(pVM, -1, &y);
	sq_getfloat(pVM, -2, &x);
	sq_getinteger(pVM, -3, &textId);

	if(pNetowkManager->GetTextManager()->GetSlotState(textId))
	{
		pNetowkManager->GetTextManager()->GetAt(textId)->SetPosition(x, y);
	}

	sq_pushbool(pVM, false);
	return 1;		
}
Пример #25
0
SQInteger CCheckpointNatives::SetDimension(SQVM * pVM)
{
	SQInteger iDimension;
	EntityId checkpointId;

	sq_getinteger(pVM, -1, &iDimension);
	sq_getentity(pVM, -2, &checkpointId);
	CCheckpoint* pCheckpoint = g_pCheckpointManager->Get(checkpointId);
	if(pCheckpoint) {
		pCheckpoint->SetDimension(iDimension);
		sq_pushbool(pVM, true);
		return 1;
	}
	sq_pushbool(pVM, false);

	return 1;
}
Пример #26
0
SQInteger SFMouseRelease(HSQUIRRELVM v) /* 1 - left; 2 - middle; 3 - right; */
{
    int button;
    sq_getinteger(Scripts.vm, 2, &button);
    switch (button)
    {
        case 1: /* left */
        {
            if (Input.previousMouseLeft && !(Input.currentMouseLeft))
            {
                sq_pushbool(Scripts.vm, SQTrue);
            }
            else
            {
                sq_pushbool(Scripts.vm, SQFalse);
            }
            break;
        }
        case 2: /* middle */
        {
            if (Input.previousMouseMiddle && !(Input.currentMouseMiddle))
            {
                sq_pushbool(Scripts.vm, SQTrue);
            }
            else
            {
                sq_pushbool(Scripts.vm, SQFalse);
            }
            break;
        }
        case 3: /* right */
        {
            if (Input.previousMouseRight && !(Input.currentMouseRight))
            {
                sq_pushbool(Scripts.vm, SQTrue);
            }
            else
            {
                sq_pushbool(Scripts.vm, SQFalse);
            }
            break;
        }
    }
    return 1;
}
Пример #27
0
//   bool ViCbIsFocused(VApiHandle hWnd)
SQInteger ViCbIsFocused(HSQUIRRELVM v)
{
	SQInteger      nargs         = sq_gettop(v);
	SQInteger      Handle        = 0;
	CControlUI*    pCtrl         = NULL;
	SQBool         bRet          = FALSE;
	if (!v || 1 + 1 != nargs) {goto _Exit_;}
	if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;}
	
	sq_getinteger(v, 2, &Handle);
	pCtrl = QiHwHandleToCtrl(Handle);
	if (!pCtrl) {goto _Exit_;}
	bRet = pCtrl->IsFocused();
	
_Exit_:
	sq_pushbool(v, bRet);
	return 1;
}
Пример #28
0
//   BOOL ViCbSetFocus(VApiHandle hWnd)
SQInteger ViCbSetFocus(HSQUIRRELVM v)
{
	SQInteger      nargs         = sq_gettop(v);
	SQInteger      Handle        = 0;
	CControlUI*    pCtrl         = NULL;
	LPCTSTR        pstrName      = NULL;
	if (!v || 1 + 1 != nargs) {goto _Exit_;}
	if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;}
	
	sq_getinteger(v, 2, &Handle);
	pCtrl = QiHwHandleToCtrl(Handle);
	if (!pCtrl) {goto _Exit_;}
	pCtrl->SetFocus();
	
_Exit_:
	sq_pushbool(v, TRUE);
	return 1;
}
Пример #29
0
// wchar* ViCbGetToolTip(VApiHandle hWnd)
SQInteger ViCbGetToolTip(HSQUIRRELVM v)
{
	SQInteger      nargs         = sq_gettop(v);
	SQInteger      Handle        = 0;
	CControlUI*    pCtrl         = NULL;
	CStdString     sName;
	if (!v || 1 + 1 != nargs) {goto _Exit_;}
	if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;}
	
	sq_getinteger(v, 2, &Handle);
	pCtrl = QiHwHandleToCtrl(Handle);
	if (!pCtrl) {goto _Exit_;}
	sName = pCtrl->GetToolTip();
	
_Exit_:
	sq_pushstring(v, sName.GetData(), sName.GetLength());
	return 1;
}
Пример #30
0
// VApiHandle ViCbGetParent(VApiHandle hWnd)
SQInteger ViCbGetParent(HSQUIRRELVM v)
{
	SQInteger      nargs         = sq_gettop(v);
	SQInteger      Handle        = 0;
	CControlUI*    pCtrl         = NULL;
	CControlUI*    pParent       = NULL;
	if (!v || 1 + 1 != nargs) {goto _Exit_;}
	if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;}
	
	sq_getinteger(v, 2, &Handle);
	pCtrl = QiHwHandleToCtrl(Handle);
	if (!pCtrl) {goto _Exit_;}
	pParent = pCtrl->GetParent();
	
_Exit_:
	sq_pushinteger(v, (SQInteger)QiHwCtrlToHandle(pParent));
	return 1;
}