WaterSimulationController::WaterSimulationController(void) { #if defined(_VISION_ANDROID) //free camera for android (joystick/finger camera) VisBaseEntity_cl* pCam = Vision::Game.CreateEntity("VFreeCamera", hkvVec3::ZeroVector()); pCam->SetPosition(-290, -220, 680); //spawns with same coordinates as windows pCam->SetOrientation(20, 67, 19); #endif #if defined(WIN32) VisBaseEntity_cl *pCamera = Vision::Game.SearchEntity("tankcamera"); Vision::Camera.AttachToEntity(pCamera, hkvVec3::ZeroVector()); #endif /*#if defined(_VISION_ANDROID) pMod = static_cast<vHavokPhysicsModule*>(vHavokPhysicsModule::GetInstance()); pMotionInput = (VMotionInputAndroid*)(&VInputManager::GetInputDevice(INPUT_DEVICE_MOTION_SENSOR)); pMotionInput->SetEnabled(true); #endif*/ }
/// Creates an entity from a Lua script definition. VisBaseEntity_cl* RPG_GameManager::CreateEntityFromScript(const VString& scriptName, const hkvVec3& position, const hkvVec3& orientation) { VScriptResourceManager* scriptManager = static_cast<VScriptResourceManager*>(Vision::GetScriptManager()); VScriptResource* scriptRes = scriptManager->LoadScriptFile(scriptName); IVScriptInstance* script = scriptRes->CreateScriptInstance(); VASSERT(script); if(script) { // get the entity class type to create char* className = NULL; script->ExecuteFunctionArg("GetEntityClassType", "*>s", &className); // create the entity VisBaseEntity_cl* entity = Vision::Game.CreateEntity(className, position); VASSERT(entity); if(entity) { entity->SetOrientation(orientation); // attach the script scriptManager->SetScriptInstance(entity, script); if(entity->IsOfType(V_RUNTIME_CLASS(RPG_BaseEntity))) { RPG_BaseEntity* rpgEntity = static_cast<RPG_BaseEntity*>(entity); #if (RPG_SERIALIZATION_SCRIPT_PROPERTIES) rpgEntity->InitializeProperties(); #endif rpgEntity->PostInitialize(); } return entity; } } return NULL; }