Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool CFlyingData::LoadScriptFile(const char* c_szFilename)
- {
- NANOBEGIN
- Destroy();
- m_strFilename = c_szFilename;
- StringPath(m_strFilename);
- CTextFileLoader TextFileLoader;
- if (!TextFileLoader.Load(m_strFilename.c_str()))
- return false;
- TextFileLoader.SetTop();
- int temp;
- if (!TextFileLoader.GetTokenInteger("spreadingflag",&temp))
- {
- m_bSpreading = false;
- }
- else
- {
- m_bSpreading = temp?true:false;
- }
- if (!TextFileLoader.GetTokenInteger("maintainparallelflag", &temp))
- {
- m_bMaintainParallel = false;
- }
- else
- {
- m_bMaintainParallel = temp?true:false;
- }
- if (!TextFileLoader.GetTokenFloat("initialvelocity",&m_fInitVel))
- {
- return false;
- }
- TextFileLoader.GetTokenFloat("coneangle", &m_fConeAngle);
- //if (!TextFileLoader.GetTokenFloat("coneangle", &m_fConeAngle))
- // m_fConeAngle = 0.0f;
- TextFileLoader.GetTokenFloat("rollangle", &m_fRollAngle);
- //if (!TextFileLoader.GetTokenFloat("rollangle", &m_fRollAngle))
- // m_fRollAngle = 0.0f;
- TextFileLoader.GetTokenVector3("angularvelocity",&m_v3AngVel);
- //if (!TextFileLoader.GetTokenVector3("angularvelocity",&m_v3AngVel))
- // m_v3AngVel = D3DXVECTOR3(0.0f,0.0f,0.0f);
- TextFileLoader.GetTokenFloat("gravity",&m_fGravity);
- //if (!TextFileLoader.GetTokenFloat("gravity",&m_fGravity))
- //m_fGravity = 0.0f;
- if (TextFileLoader.GetTokenInteger("hitonbackground",&temp))
- m_bHitOnBackground = temp?true:false;
- else
- m_bHitOnBackground = false;
- if (TextFileLoader.GetTokenInteger("hitonanothermonster",&temp))
- m_bHitOnAnotherMonster = temp?true:false;
- else
- m_bHitOnAnotherMonster = false;
- if (!TextFileLoader.GetTokenInteger("piercecount",&m_iPierceCount))
- m_iPierceCount = 0;
- // if (!TextFileLoader.GetTokenFloat("collisionsphereradius",&m_fCollisionSphereRadius))
- // m_fCollisionSphereRadius = 0.0f;
- TextFileLoader.GetTokenFloat("bombrange",&m_fBombRange);
- //if (!TextFileLoader.GetTokenFloat("bombrange",&m_fBombRange))
- // m_fBombRange = 10.0f;
- if (!TextFileLoader.GetTokenString("bombeffect",&m_strBombEffectName))
- {
- m_strBombEffectName = "";
- }
- else if (!m_strBombEffectName.empty())
- {
- if (!IsGlobalFileName(m_strBombEffectName.c_str()))
- m_strBombEffectName = GetOnlyPathName(TextFileLoader.GetFileName()) + m_strBombEffectName;
- CEffectManager::Instance().RegisterEffect2(m_strBombEffectName.c_str(),&m_dwBombEffectID);
- }
- if (!TextFileLoader.GetTokenInteger("homingflag", &temp))
- m_bIsHoming = false;
- else
- m_bIsHoming = temp?true:false;
- if (!TextFileLoader.GetTokenFloat("homingstarttime",&m_fHomingStartTime))
- m_fHomingStartTime = 0.0f;
- if (!TextFileLoader.GetTokenFloat("homingmaxangle",&m_fHomingMaxAngle))
- m_fHomingMaxAngle = 0.0f;
- if (!TextFileLoader.GetTokenFloat("range",&m_fRange))
- return false;
- if (!TextFileLoader.GetTokenVector3("acceleration",&m_v3Accel))
- m_v3Accel = D3DXVECTOR3(0.0f,0.0f,0.0f);
- DWORD i;
- for(i=0;i<TextFileLoader.GetChildNodeCount();i++)
- {
- CTextFileLoader::CGotoChild GotoChild(&TextFileLoader, i);
- std::string strNodeName;
- TextFileLoader.GetCurrentNodeName(&strNodeName);
- if (strNodeName=="attachdata")
- {
- TFlyingAttachData fad;
- if (!TextFileLoader.GetTokenInteger("type",&fad.iType))
- continue;
- TextFileLoader.GetTokenInteger("flytype",&fad.iFlyType);
- if (!TextFileLoader.GetTokenString("attachfile",&fad.strFilename))
- {
- fad.strFilename = "";
- }
- else if (!fad.strFilename.empty())
- {
- if (!IsGlobalFileName(fad.strFilename.c_str()))
- fad.strFilename = GetOnlyPathName(TextFileLoader.GetFileName()) + fad.strFilename;
- CEffectManager::Instance().RegisterEffect(fad.strFilename.c_str());
- }
- TextFileLoader.GetTokenInteger("tailflag",&temp);
- if (temp)
- {
- fad.bHasTail = true;
- TextFileLoader.GetTokenDoubleWord("tailcolor",&fad.dwTailColor);
- TextFileLoader.GetTokenFloat("taillength",&fad.fTailLength);
- TextFileLoader.GetTokenFloat("tailsize",&fad.fTailSize);
- TextFileLoader.GetTokenInteger("tailshaperect",&temp);
- fad.bRectShape = temp?true:false;
- }
- else
- {
- fad.bHasTail = false;
- }
- TextFileLoader.GetTokenFloat("roll",&fad.fRoll);
- TextFileLoader.GetTokenFloat("distance",&fad.fDistance);
- TextFileLoader.GetTokenFloat("period",&fad.fPeriod);
- TextFileLoader.GetTokenFloat("amplitude",&fad.fAmplitude);
- m_AttachDataVector.push_back(fad);
- }
- else
- {
- TraceError("CFlyingData::LoadScriptFile Wrong Data : %s", m_strFilename.c_str());
- }
- }
- NANOEND
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement