extern "C" Oop __stdcall PrimCompileForEval(Oop compilerOop, const char* szSource, Oop aClass, Oop aWorkspacePool, int flags, Oop notifier) { ICompilerPtr piCompiler = NewCompiler(); if (piCompiler == NULL) return Oop(GetVM()->NilPointer()); #ifdef _AFX flags |= Boot; #endif return (Oop)piCompiler->CompileForEval(GetVM(), compilerOop, szSource, (POTE)aClass, (POTE)aWorkspacePool, FLAGS(flags), notifier); }
BOOL RunItemScript( CMover* pMover, DWORD dwItemID, ITEM_OP operation, int* pResult ) { #if !defined(__LUASCRIPT060908) return TRUE; #endif char szFunction[64]; if( operation == ITEM_OP_USE ) sprintf( szFunction, "F%d_use", dwItemID ); else if( operation == ITEM_OP_EQUIP ) sprintf( szFunction, "F%d_equip", dwItemID ); else if( operation == ITEM_OP_UNEQUIP ) sprintf( szFunction, "F%d_unequip", dwItemID ); lua_State* pVM = GetVM(); lua_pushstring( pVM, szFunction ); lua_gettable( pVM, LUA_GLOBALSINDEX ); if ( lua_isfunction( pVM, -1 ) ) { lua_pushlightuserdata( pVM, pMover ); // 1st arg lua_call( pVM, 1, 1 ); if( pResult ) *pResult = (int)lua_tonumber( pVM, -1 ); // return value lua_pop( pVM, 1); return TRUE; } lua_pop( pVM, 1); return FALSE; }
BOOL CompileItemScript( LPCTSTR szFile ) { #if !defined(__LUASCRIPT060908) return TRUE; #endif lua_State* pVM = GetVM(); lua_register( pVM, "Trace", Trace ); lua_register( pVM, "SetDestParam", _SetDestParam ); lua_register( pVM, "ResetDestParam", _ResetDestParam ); if( luaL_dofile( pVM, szFile ) !=0 ) { OutputDebugString( lua_tostring( pVM, -1) ); return FALSE; } return TRUE; }
void JStaticField::SetObjectValue(JReference* object, JReference* value) { GetVM()->GetEnv()->SetStaticObjectField((jclass)object->GetReference(), GetField(), value->GetReference()); }
ReturnPointer<JObject> JStaticField::GetObjectValue(JReference* object) { return autonew JObject(GetVM(), GetVM()->GetEnv()->GetStaticObjectField((jclass)object->GetReference(), GetField())); }
ReturnPointer<JObject> JStaticField::GetReflection() { return autonew JObject(GetVM(), GetVM()->GetEnv()->ToReflectedField(GetClass()->GetClass(), GetField(), true)); }
void JField::SetObjectValue(JReference* object, JReference* value) { GetVM()->GetEnv()->SetObjectField(object->GetReference(), GetField(), value->GetReference()); }
ReturnPointer<JObject> JField::GetObjectValue(JReference* object) { return autonew JObject(GetVM(), GetVM()->GetEnv()->GetObjectField(object->GetReference(), GetField())); }