71 lines
1.8 KiB
C++
71 lines
1.8 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#include "ui/ui.h"
|
|
#include "ui/ui_camera.h"
|
|
#include "ui/ui_sprite.h"
|
|
#include "ui/ui_ace_manager.h"
|
|
#include "ui/ui_scene_script_event.h"
|
|
#include "ui/ui_scene_scripted_object.h"
|
|
#include "ui/ui_item_script_event.h"
|
|
#include "ui/ui_item_scripted_object.h"
|
|
#include "script/script_engine_types.h"
|
|
#include "script/script_variant.h"
|
|
#include "log/log.h"
|
|
|
|
using namespace GS::S2D;
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
void Scene::SetAsScriptGlobalScene(GS::Script::IVM *_vm)
|
|
{
|
|
if (!_vm)
|
|
_vm = vm;
|
|
if (!_vm || !_vm->IsOpen())
|
|
return;
|
|
|
|
_vm->Set("g_scene", GS::Script::Variant(this, GS::Script::typetag_Scene2d));
|
|
_vm->Set("g_clock_fq", GS::Platform::Get().GetClockFrequency());
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
|
|
//------------------------------------------------------------------------------
|
|
void Scene::Update()
|
|
{
|
|
if (clock->GetRefCount() == 1)
|
|
clock->Update();
|
|
float dt = clock->GetDeltaf();
|
|
|
|
// ACE update.
|
|
ACEManager::Get()->UpdateACEUnit(this, dt);
|
|
|
|
ListForeachPtr(Item *, i, item_list)
|
|
{
|
|
i->automation_player->Evaluate(Time::fromSec(dt));
|
|
|
|
switch (i->GetItemType())
|
|
{
|
|
case Item::Type_Sprite:
|
|
case Item::Type_Window:
|
|
{
|
|
Sprite *s = (Sprite *)i;
|
|
ACEManager::Get()->UpdateACEUnit(s, dt);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
//
|
|
// Script events.
|
|
// if (eval_flag & SceneUpdateEvent)
|
|
{
|
|
scene_event->OnUpdate(this);
|
|
ListForeachPtr(Item *, i, item_list)
|
|
i->item_event->OnUpdate(i);
|
|
}
|
|
}
|
|
//------------------------------------------------------------------------------
|