Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
68 lines
1.7 KiB
C++
68 lines
1.7 KiB
C++
// OctreeContainer.cpp: implementation of the COctreeContainer class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "OctreeContainer.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
COctreeContainer::COctreeContainer()
|
|
{
|
|
strcpy(m_OctreePath,OCTREEPATH);
|
|
}
|
|
|
|
COctreeContainer::~COctreeContainer()
|
|
{
|
|
DeleteAllObject();
|
|
}
|
|
|
|
COctreeScene* COctreeContainer::GetOctree(char *strOctreeName)
|
|
{
|
|
for(int cOctree=0;cOctree<m_OctreeContainer.num;cOctree++)
|
|
{
|
|
if(strcmp(m_OctreeContainer[cOctree]->m_strOctreeName,strOctreeName)==0)
|
|
{
|
|
m_OctreeContainer[cOctree]->m_Used++;
|
|
return m_OctreeContainer[cOctree]->m_pOctree;
|
|
}
|
|
}
|
|
|
|
char strPathFile[MAX_NAMEBUFFER];
|
|
sprintf(strPathFile,"%s\\%s",OCTREEPATH,strOctreeName);
|
|
FILE *fp=fopen(strPathFile,"rb");
|
|
if(fp==NULL)
|
|
return NULL;
|
|
COctreeScene *pOctree=new COctreeScene();
|
|
pOctree->Load(fp);
|
|
fclose(fp);
|
|
OctreeNode *AddNode=new OctreeNode(strOctreeName,pOctree);
|
|
m_OctreeContainer.Add(AddNode);
|
|
return pOctree;
|
|
}
|
|
|
|
void COctreeContainer::DeleteOctree(char *strOctreeName)
|
|
{
|
|
for(int cOctree=0;cOctree<m_OctreeContainer.num;cOctree++)
|
|
{
|
|
if( strcmp(m_OctreeContainer[cOctree]->m_strOctreeName,strOctreeName)==0 &&
|
|
--m_OctreeContainer[cOctree]->m_Used==0)
|
|
{
|
|
//delete m_OctreeContainer[cOctree]->m_pOctree;
|
|
delete m_OctreeContainer[cOctree];
|
|
m_OctreeContainer.DelIndex(cOctree);
|
|
}
|
|
}
|
|
}
|
|
|
|
void COctreeContainer::DeleteAllObject()
|
|
{
|
|
for(int cOctree=0;cOctree<m_OctreeContainer.num;cOctree++)
|
|
{
|
|
//delete m_OctreeContainer[cOctree]->m_pOctree;
|
|
delete m_OctreeContainer[cOctree];
|
|
}
|
|
m_OctreeContainer.num=0;
|
|
}
|