EditData& TFlyObjectEdit::createActor( char const* name , unsigned modelID ) { EditData data; data.flag |= EF_SAVE_XFORM | EF_CREATE; TCamera& cam = m_game->getCamControl(); Vec3D pos = cam.getCameraPos() + 500 * cam.getViewDir(); XForm trans; trans.setIdentity(); TActor* entity = new TActor( modelID ,trans ); data.type = EOT_TNPC; m_curLevel->addEntity( entity ); data.flag |= EF_LOAD_MODEL; FnObject obj; obj.Object( entity->getFlyActor().GetBaseObject() ); obj.SetPosition( pos ); obj.SetDirection( Vec3D(1,0,0) , Vec3D(0,0,1) ); obj.SetName( (char*) name ); entity->getFlyActor().SetName((char*) name); data.id = obj.Object(); data.entity = entity; g_editDataVec.push_back( data ); return g_editDataVec.back(); }
MiniMap::MiniMap(WORLDid gID, SCENEid sMiniID, Lyubu *lyubu, int x_pos, int y_pos, int width, int height ) { FnWorld gw; FnScene scene; FnViewport vp; FnCamera camera; FnObject camStand; FnTerrain terrain; //adr_turn = this->turn; /* pos_begin[0]=3569.0; pos_begin[1]=-3208.0; pos_begin[2]=1000.0f; */ gw.Object(gID); //miniMap gw.SetObjectPath("Data\\NTU4\\Scenes"); FnScene miniScene; miniScene.Object(sMiniID); miniTerrainID = miniScene.CreateObject(ROOT); FnObject miniTerrain; miniTerrain.Object(miniTerrainID); miniTerrain.Load("terrain"); miniTerrain.SetOpacity(0.8f); // create a camera stand for minimap miniMapStandID = miniScene.CreateObject(ROOT); gw.SetObjectPath("Data\\NTU4\\Characters"); anchorID = miniScene.CreateObject(miniMapStandID); FnObject anchor; anchor.Object(anchorID); anchor.Load("arrowGreen"); float pos[]={0,0,10}; anchor.SetPosition(pos); // create a camera for minimap miniMapCameraID = miniScene.CreateCamera(miniMapStandID); FnCamera miniCamera; miniCamera.Object(miniMapCameraID); miniCamera.Translate(0.0f, 0.0f, 5000.0f, REPLACE); miniCamera.SetNear(5.0f); miniCamera.SetFar(100000.0f); miniCamera.Rotate(Z_AXIS, 180.0f, LOCAL); // create a light for minimap camera FnLight miniLight; miniLight.Object(miniScene.CreateLight(miniMapCameraID)); miniLight.SetIntensity(1.0f); miniLight.SetRange(9500.0f); vpMiniMapID = gw.CreateViewport(x_pos, y_pos, width, height); }