Files
Client/GameTools/Zallad3D SceneClass/HouseObjectScene.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
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>
2025-11-29 20:17:20 +09:00

134 lines
3.7 KiB
C++

// HouseObjectNode.cpp: implementation of the CHouseObjectNode class.
//
//////////////////////////////////////////////////////////////////////
#include "HouseObjectScene.h"
#include "SceneManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CHouseObjectScene::CHouseObjectScene()
{
m_bMedCull = true;
}
CHouseObjectScene::~CHouseObjectScene()
{
/*
if(strcmp(m_strBSPName,"")!=0)
{
if(m_HouseObject->m_pBspObject)
delete m_HouseObject->m_pBspObject;
}
else
*/
{
CSceneManager::m_HouseObjectContainer.DeleteHouseObject(m_strOutName,
m_strMedName,
m_strInName,
m_strBSPName);
}
}
void CHouseObjectScene::Render(LPDIRECT3DDEVICE8 pd3dDevice)
{
if(m_HouseObject->m_pBspObject)
{
pd3dDevice->SetTransform(D3DTS_WORLD,(D3DMATRIX*)&m_AccumulateTM);
m_HouseObject->Render(pd3dDevice);
return;
}
if(isCulling()==false)
return;
pd3dDevice->SetTransform(D3DTS_WORLD,(D3DMATRIX*)&m_AccumulateTM);
m_HouseObject->Render(pd3dDevice);
}
void CHouseObjectScene::UpdateBspPosition()
{
for(int i=CSceneManager::m_pBspConvertList.num-1;i>=0;i--)
{
if(CSceneManager::m_pBspConvertList[i]==this)
{
CSceneManager::m_pBspConvertList.DelIndex(i);
CSceneManager::m_vecBspConvertList.DelIndex(i);
}
}
if(m_HouseObject->m_pBspObject && m_HouseObject->m_pInHouseMap)
{
matrix matBspEnterPos;
for(int cEnterBsp=0;cEnterBsp<m_HouseObject->m_pInHouseMap->m_matObjectList.num;cEnterBsp+=4)
{
matBspEnterPos=m_HouseObject->m_pInHouseMap->m_matObjectList[cEnterBsp]*m_AccumulateTM;
CSceneManager::m_vecBspConvertList.Add(matBspEnterPos.GetLoc());
CSceneManager::m_pBspConvertList.Add(this);
}
}
/*
if(CSceneManager::m_PickHouseScene->m_HouseObject->m_pBspObject && CSceneManager::m_PickHouseScene->m_HouseObject->m_pInHouseMap)
{
if(CSceneManager::m_PickHouseScene->m_HouseObject->m_pInHouseMap->m_matObjectList.num%4==1)
{
CSceneManager::m_PickHouseScene->m_HouseObject->m_pInHouseMap->m_matObjectList[
CSceneManager::m_PickHouseScene->m_HouseObject->m_pInHouseMap->m_matObjectList.num-1]*
CSceneManager::m_PickHouseScene->m_
}
matrix matBspEnterPos;
for(int cEnterBsp=0;cEnterBsp<HouseObjectScene->m_HouseObject->m_pInHouseMap->m_matObjectList.num;cEnterBsp+=4)
{
matBspEnterPos=HouseObjectScene->m_HouseObject->m_pInHouseMap->m_matObjectList[cEnterBsp]*HouseObjectScene->m_AccumulateTM;
CSceneManager::m_vecBspConvertList.Add(matBspEnterPos.GetLoc());
CSceneManager::m_pBspConvertList.Add(HouseObjectScene);
}
//List<vector3> CSceneManager::m_vecBspConvertList;
//List<CHouseObjectScene*> CSceneManager::m_pBspConvertList;
}
*/
}
void CHouseObjectScene::DeleteBspPosition()
{
for(int i=CSceneManager::m_pBspConvertList.num-1;i>=0;i--)
{
if(CSceneManager::m_pBspConvertList[i]==this)
{
CSceneManager::m_pBspConvertList.DelIndex(i);
CSceneManager::m_vecBspConvertList.DelIndex(i);
}
}
}
void CHouseObjectScene::RenderGlare(LPDIRECT3DDEVICE8 pd3dDevice)
{
if(m_HouseObject->m_pBspObject)
{
return;
}
if(isCulling()==false)
return;
pd3dDevice->SetTransform(D3DTS_WORLD,(D3DMATRIX*)&m_AccumulateTM);
m_HouseObject->RenderGlare(pd3dDevice);
}
void CHouseObjectScene::RenderBlack( LPDIRECT3DDEVICE8 pd3dDevice )
{
if(m_HouseObject->m_pBspObject)
{
pd3dDevice->SetTransform(D3DTS_WORLD,(D3DMATRIX*)&m_AccumulateTM);
m_HouseObject->RenderBlack(pd3dDevice);
return;
}
if(isCulling()==false)
return;
pd3dDevice->SetTransform(D3DTS_WORLD,(D3DMATRIX*)&m_AccumulateTM);
m_HouseObject->RenderBlack(pd3dDevice);
}