note/程序开发/游戏开发/冰风网络/Engine.md
2023-07-05 09:34:06 +08:00

1.8 KiB

World

Class

SceneObject

  • SceneObjectLocation ==> SceneObjectBase
    • SceneObject
      • World
        • EditWorld
        • PVSWorld
      • SceneZoneManagerObject
        • SceneRoot
        • InteriorInstance
      • ShapeBase
        • ModelShapeBase ==> StaticModelShape
          • OutdoorStaticShape
      • AudioEmitter
        • LightningSound

Resource

  • Resource
    • Interior

other

  • TerrTile
    • TerrTileEdit
  • SceneInstance

Object

World

  • SKies mSky
  • SceneInstance* m_SceneInstance
  • WorldLoader* mTileLoader
    • Vector<Tile> mTiles
      • WorldAreaHeader mFileHeader
      • Vector<stModelResInfo> mModels
        • ResourcePtr res
      • Vector<ModelInstanceInfo> mModelis
        • std::map<U32,stObject>::iterator it
        • stObject ==> ShapeBase
      • Vector<InteriorPtr> mInteriors
        • Interior pRep
      • Vector<InteriorInstanceInfo> mInteriorInsts
        • std::map<U32,stObject>::iterator it
        • stObject ==> InteriorInstance
    • World* mWorld
  • XMapObjectMgr<XMapInteriorObj> mInteriorInsts
    • XMapInteriorObj obj
    • InteriorInstance* obj.inst
  • XMapObjectMgr<XMapShapeObj> mStaticShape
    • XMapShapeObj obj
    • ShapeBase* obj.inst

SceneInstance

  • SceneRoot* m_ClientSceneRoot
  • SceneGraph* m_ClientSceneGraph
  • rcPathWorld* mRcWorld

Flow

Wolrd

  • World::setHotPos
  • World::updateHotArea
    • World::updateTile
    • World::updateChunk
  • World::updateTile
    • WorldLoader::update
      • TerrTile::addToScene
        • TerrTile::initObjects
          • TerrTile::setDoodads
            • TerrTile::createADoodad
          • TerrTile::setMapObjs
            • TerrTile::createAInterior
          • TerrTile::setDynamicDoodads
    • SceneInstance::updatePathDataHotPos

SceneInstance

  • SceneInstance::drawPathData
    • rcPathWorld::drawDbg