Esempio n. 1
0
ScriptVariant *ScriptVariant_Mod(ScriptVariant * svar, ScriptVariant * rightChild) {
	static ScriptVariant retvar;
	LONG l1, l2;
	if(ScriptVariant_IntegerValue(svar, &l1) == S_OK && ScriptVariant_IntegerValue(rightChild, &l2) == S_OK) {
		retvar.vt = VT_INTEGER;
		retvar.lVal = l1 % l2;
	} else {
		ScriptVariant_Init(&retvar);
	}
	return &retvar;
}
Esempio n. 2
0
HRESULT math_cos(ScriptVariant **varlist , ScriptVariant **pretvar, int paramCount)
{
    LONG ltemp;
    if(SUCCEEDED(ScriptVariant_IntegerValue(varlist[0], &ltemp)))
    {
        ScriptVariant_ChangeType(*pretvar, VT_DECIMAL);
        (*pretvar)->dblVal = cos_table[(ltemp % 360 + 360) % 360];
        return S_OK;
    }
    *pretvar = NULL;
    return E_FAIL;
}
Esempio n. 3
0
//strwidth(char string, int font);
HRESULT openbor_strwidth(ScriptVariant **varlist , ScriptVariant **pretvar, int paramCount)
{
    LONG ltemp;
    if(paramCount < 2 || varlist[0]->vt != VT_STR ||
            FAILED(ScriptVariant_IntegerValue(varlist[1], &ltemp)))
    {
        goto strwidth_error;
    }

    ScriptVariant_ChangeType(*pretvar, VT_INTEGER);
    (*pretvar)->lVal = font_string_width((int)ltemp, (char *)StrCache_Get(varlist[0]->strVal));
    return S_OK;

strwidth_error:
    printf("Error, strwidth({string}, {font}): Invalid or missing parameter.\n");
    *pretvar = NULL;
    return E_FAIL;
}