Esempio n. 1
0
HRESULT
JITManager::ConnectRpcServer(__in HANDLE jitProcessHandle, __in_opt void* serverSecurityDescriptor, __in UUID connectionUuid)
{
    Assert(IsOOPJITEnabled());

    HRESULT hr;
    RPC_BINDING_HANDLE localBindingHandle;

    if (IsConnected() && (connectionUuid != m_jitConnectionId))
    {
        return E_FAIL;
    }

    hr = CreateBinding(jitProcessHandle, serverSecurityDescriptor, &connectionUuid, &localBindingHandle);

    HANDLE targetHandle;
    BOOL succeeded = DuplicateHandle(
        GetCurrentProcess(), GetCurrentProcess(),
        jitProcessHandle, &targetHandle,
        NULL, FALSE, DUPLICATE_SAME_ACCESS);

    if (!succeeded)
    {
        return HRESULT_FROM_WIN32(GetLastError());
    }

    m_targetHandle = targetHandle;
    m_rpcBindingHandle = localBindingHandle;
    m_jitConnectionId = connectionUuid;

    return hr;
}
Esempio n. 2
0
void cSoundStreamRenderer::Render(vRenderable *object)
{
    if(!IsValid())
        return;

    if(!object || !object->IsValid())
        return;

    if(object->GetRenderableType() != ERenderableType::SoundStream)
        return;

    if(!object->GetRenderingProperties())
        return;

    int binding = FindStreamBinding(*object);
    if(binding < 0)
        binding = CreateBinding(*object);   
    
    if(binding >= 0)
        m_DataBindings[binding].m_Marked = true;
};
Esempio n. 3
0
void RegisterNativeBindings(VMState &state) {
  
  void(*logger)(VMValue) = [](VMValue value) -> void
  {
    LoggerManager::GetLog(VM_LOG).AddLine(LogLevel::INFO, "Debug print: " + value.ToString());
  };


  int(*rand_ptr)(int, int) = [](int low, int high) -> int
  { 
    auto val = (rand() % (high - low)) + low;
    return val;
  };

  auto randBinding = CreateBinding(rand_ptr);

  state.AddNativeBinding("log", CreateBinding(logger));
  state.AddNativeBinding("RegisterMessageHandler", CreateBinding(&Entity::RegisterScriptMessageHandler));
  state.AddNativeBinding("SendSpawnEntityMessage", CreateBinding(&ScriptMessageInterface::SendSpawnMessage));
  state.AddNativeBinding("SendBlinkMessage", CreateBinding(&ScriptMessageInterface::SendBlinkingMessage));
  state.AddNativeBinding("SendAddHealthMessage", CreateBinding(&ScriptMessageInterface::SendAddHealthMessage));
  state.AddNativeBinding("SendTakeDamageMessage", CreateBinding(&ScriptMessageInterface::SendTakeDamageMessage));
  state.AddNativeBinding("SendTerminateEntityMessage", CreateBinding(&ScriptMessageInterface::SendTerminateEntityMessage));
  state.AddNativeBinding("SendPlaySoundEffectMessage", CreateBinding(&ScriptMessageInterface::SendPlaySoundEffectMessage));
  state.AddNativeBinding("SendVisibilityMessage", CreateBinding(&ScriptMessageInterface::SendVisibilityMessage));
  state.AddNativeBinding("SendImportantCharacterDeathMessage", CreateBinding(&ScriptMessageInterface::SendImportantCharacterDeathMessage));
  state.AddNativeBinding("SendEndLevelMessage", CreateBinding(&ScriptMessageInterface::SendEndLevelMessage));
  state.AddNativeBinding("SendMessageUpwards", CreateBinding(&Entity::SendMessageUpwards));
  
  state.AddNativeBinding("GetEntityFaction", CreateBinding(&ScriptMessageInterface::GetFaction));

  state.AddNativeBinding("CollisionMessageGetEntities", CreateBinding(&ScriptMessageInterface::CollisionMessageGetFactions));
  state.AddNativeBinding("BlinkMessageGetDuration", CreateBinding(&ScriptMessageInterface::BlinkMessageGetDuration));
  state.AddNativeBinding("GetHitType", CreateBinding(&ScriptMessageInterface::GetHitType));

  state.AddNativeBinding("Rand", randBinding);
}