Advertisement
Guest User

Untitled

a guest
May 26th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1.  
  2. bool CFlyingData::LoadScriptFile(const char* c_szFilename)
  3. {
  4. NANOBEGIN
  5. Destroy();
  6.  
  7. m_strFilename = c_szFilename;
  8. StringPath(m_strFilename);
  9. CTextFileLoader TextFileLoader;
  10. if (!TextFileLoader.Load(m_strFilename.c_str()))
  11. return false;
  12.  
  13. TextFileLoader.SetTop();
  14. int temp;
  15.  
  16. if (!TextFileLoader.GetTokenInteger("spreadingflag",&temp))
  17. {
  18. m_bSpreading = false;
  19. }
  20. else
  21. {
  22. m_bSpreading = temp?true:false;
  23. }
  24.  
  25. if (!TextFileLoader.GetTokenInteger("maintainparallelflag", &temp))
  26. {
  27. m_bMaintainParallel = false;
  28. }
  29. else
  30. {
  31. m_bMaintainParallel = temp?true:false;
  32. }
  33.  
  34. if (!TextFileLoader.GetTokenFloat("initialvelocity",&m_fInitVel))
  35. {
  36. return false;
  37. }
  38.  
  39. TextFileLoader.GetTokenFloat("coneangle", &m_fConeAngle);
  40. //if (!TextFileLoader.GetTokenFloat("coneangle", &m_fConeAngle))
  41. // m_fConeAngle = 0.0f;
  42.  
  43. TextFileLoader.GetTokenFloat("rollangle", &m_fRollAngle);
  44. //if (!TextFileLoader.GetTokenFloat("rollangle", &m_fRollAngle))
  45. // m_fRollAngle = 0.0f;
  46.  
  47. TextFileLoader.GetTokenVector3("angularvelocity",&m_v3AngVel);
  48. //if (!TextFileLoader.GetTokenVector3("angularvelocity",&m_v3AngVel))
  49. // m_v3AngVel = D3DXVECTOR3(0.0f,0.0f,0.0f);
  50.  
  51. TextFileLoader.GetTokenFloat("gravity",&m_fGravity);
  52. //if (!TextFileLoader.GetTokenFloat("gravity",&m_fGravity))
  53. //m_fGravity = 0.0f;
  54.  
  55. if (TextFileLoader.GetTokenInteger("hitonbackground",&temp))
  56. m_bHitOnBackground = temp?true:false;
  57. else
  58. m_bHitOnBackground = false;
  59.  
  60. if (TextFileLoader.GetTokenInteger("hitonanothermonster",&temp))
  61. m_bHitOnAnotherMonster = temp?true:false;
  62. else
  63. m_bHitOnAnotherMonster = false;
  64.  
  65. if (!TextFileLoader.GetTokenInteger("piercecount",&m_iPierceCount))
  66. m_iPierceCount = 0;
  67.  
  68. // if (!TextFileLoader.GetTokenFloat("collisionsphereradius",&m_fCollisionSphereRadius))
  69. // m_fCollisionSphereRadius = 0.0f;
  70.  
  71. TextFileLoader.GetTokenFloat("bombrange",&m_fBombRange);
  72. //if (!TextFileLoader.GetTokenFloat("bombrange",&m_fBombRange))
  73. // m_fBombRange = 10.0f;
  74.  
  75. if (!TextFileLoader.GetTokenString("bombeffect",&m_strBombEffectName))
  76. {
  77. m_strBombEffectName = "";
  78. }
  79. else if (!m_strBombEffectName.empty())
  80. {
  81. if (!IsGlobalFileName(m_strBombEffectName.c_str()))
  82. m_strBombEffectName = GetOnlyPathName(TextFileLoader.GetFileName()) + m_strBombEffectName;
  83. CEffectManager::Instance().RegisterEffect2(m_strBombEffectName.c_str(),&m_dwBombEffectID);
  84. }
  85.  
  86. if (!TextFileLoader.GetTokenInteger("homingflag", &temp))
  87. m_bIsHoming = false;
  88. else
  89. m_bIsHoming = temp?true:false;
  90.  
  91. if (!TextFileLoader.GetTokenFloat("homingstarttime",&m_fHomingStartTime))
  92. m_fHomingStartTime = 0.0f;
  93.  
  94. if (!TextFileLoader.GetTokenFloat("homingmaxangle",&m_fHomingMaxAngle))
  95. m_fHomingMaxAngle = 0.0f;
  96.  
  97. if (!TextFileLoader.GetTokenFloat("range",&m_fRange))
  98. return false;
  99.  
  100. if (!TextFileLoader.GetTokenVector3("acceleration",&m_v3Accel))
  101. m_v3Accel = D3DXVECTOR3(0.0f,0.0f,0.0f);
  102.  
  103. DWORD i;
  104. for(i=0;i<TextFileLoader.GetChildNodeCount();i++)
  105. {
  106. CTextFileLoader::CGotoChild GotoChild(&TextFileLoader, i);
  107.  
  108. std::string strNodeName;
  109.  
  110. TextFileLoader.GetCurrentNodeName(&strNodeName);
  111.  
  112. if (strNodeName=="attachdata")
  113. {
  114. TFlyingAttachData fad;
  115.  
  116. if (!TextFileLoader.GetTokenInteger("type",&fad.iType))
  117. continue;
  118. TextFileLoader.GetTokenInteger("flytype",&fad.iFlyType);
  119. if (!TextFileLoader.GetTokenString("attachfile",&fad.strFilename))
  120. {
  121. fad.strFilename = "";
  122. }
  123. else if (!fad.strFilename.empty())
  124. {
  125. if (!IsGlobalFileName(fad.strFilename.c_str()))
  126. fad.strFilename = GetOnlyPathName(TextFileLoader.GetFileName()) + fad.strFilename;
  127. CEffectManager::Instance().RegisterEffect(fad.strFilename.c_str());
  128. }
  129.  
  130. TextFileLoader.GetTokenInteger("tailflag",&temp);
  131. if (temp)
  132. {
  133. fad.bHasTail = true;
  134. TextFileLoader.GetTokenDoubleWord("tailcolor",&fad.dwTailColor);
  135. TextFileLoader.GetTokenFloat("taillength",&fad.fTailLength);
  136. TextFileLoader.GetTokenFloat("tailsize",&fad.fTailSize);
  137. TextFileLoader.GetTokenInteger("tailshaperect",&temp);
  138. fad.bRectShape = temp?true:false;
  139. }
  140. else
  141. {
  142. fad.bHasTail = false;
  143. }
  144.  
  145. TextFileLoader.GetTokenFloat("roll",&fad.fRoll);
  146. TextFileLoader.GetTokenFloat("distance",&fad.fDistance);
  147. TextFileLoader.GetTokenFloat("period",&fad.fPeriod);
  148. TextFileLoader.GetTokenFloat("amplitude",&fad.fAmplitude);
  149.  
  150. m_AttachDataVector.push_back(fad);
  151. }
  152. else
  153. {
  154. TraceError("CFlyingData::LoadScriptFile Wrong Data : %s", m_strFilename.c_str());
  155. }
  156. }
  157.  
  158. NANOEND
  159. return true;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement