О немО себе[code]/maps/
[code] | 4D | Modules | Quest | Actors.cpp
kMaps
4D
  Core
  PlugIns
  Modules
    AI
    Terrain
    GUI
    Quest
      Debug
        Actors.cpp
        QuestTalker.cpp
        StdAfx.cpp
        lua_functions.h
        SceneLogic.cpp
        StdAfx.h
        QuestQUI.cpp
        QuestStock.cpp
        QuestPlugIn.cpp
        QuestGUI.h
        InitLayer.cpp
        QuestScene.h
        DepthInit.h
        lua_functions.cpp
        QuestTalker.h
        QuestScene.cpp
        DepthInit.cpp
    TokaPH
    Sound
  codeZ.php
  SparseTileLayer.js
  array-speed.php
  ed_line.c
  ed_line.cc.c
  auto_registrator_cc.c
  time.php
  auto_registrator.c
 
#include "stdafx.h"

CQuestActor::CQuestActor()
{
    
Mesh=NULL;
    
Clear();
}
CQuestActor::~CQuestActor()

{
    
Clear();

}
void CQuestActor::Clear ()
{
    
ClearScriptStack();
    
Mesh          0;
    
Position      .SetZero();
    
Orientation   .SetZero();
    
Scale         .SetOne ();
    
Tag           0;
    
Drived        0;
    
CurState      0;
    
CurAutomate   0;
    
ScriptDrive   .Empty();

    
ScriptStack.clear();
    
VectorStackID =0;
    if(
Mesh
    {
      
delete Mesh;
      
Mesh=NULL;
    }
}

void CQuestActor::ClearScriptStack()
{
    for(
CQuestScriptPack::iterator it=ScriptStack.begin();it!=ScriptStack.end();++it)
    if(*
it)
    {
        
delete *it;
        *
it=NULL;
    }
    
ScriptStack.SetSize(0);
}
bool CQuestActor::Define(LPCSTR _ActorName)
{
    
GString ActorName=_ActorName;
    
//read actor dirrectory
    //get model name and actor drive script
    
GString FilePath=("Quest/Actors/")+ActorName+"/";
    
GString ModelFile=FilePath+"model.fsm";
    
GString ACModel="QA_";ACModel+=ActorName;
    
Mesh=new Draw::Skin::SkinnedMesh();
    if(!
Mesh->Load(ModelFile,ACModel))
    {
        
delete Mesh;
        return 
false;
    }
    return 
true;
    
}

void CQuestActor::SetStackID(DWORD SID)
{
    
VectorStackID=SID;
}

bool CQuestActor::RenderFront(DWORD Path)
{
    if(
Mesh)
    {
        
RENDER->PushMatrix();
        
Draw::CTransformer TR;
        
TR.SetTRS(this->Position,0xFFFF,this->Orientation,this->Scale);
        
RENDER->ApplyTransform(TR);
        
Mesh->render();
        
RENDER->PopMatrix();
    }
    return 
true;
}

void CQuestActor::Drive()
{
}
void CQuestActor::Undrive()
{
}


[CODE]/4D/Modules/Quest/Actors.cpp

для скорости Кащей пилил не цепи а собственные конечности ту же вырастающие заново
Царь, царевич, король, королевич..