OSDN Git Service

fix cmake/Macros.cmake
[moflib/moflib.git] / saisei-1.0 / src / oldcode / DungeonBuilder.cpp
1 #include "DungeonBuilder.h"
2 #include "mof/SoftVertexBufferImpl.h"
3 #include "mof/HardVertexBufferImpl.h"
4
5
6 et::DungeonBuilder::DungeonBuilder(mof::PixelMap& map , mof::TextureManager* pTextureManager , float scale)
7 : MapBuilder(pTextureManager , scale , map.getWidth() , map.getHeight() ) , m_map(map) 
8 {
9         m_blockWidth = map.getWidth();
10         m_blockHeight = map.getHeight();
11 }
12
13 et::DungeonBuilder::~DungeonBuilder(void)
14 {
15 }
16
17 void et::DungeonBuilder::setBlockSize(int width , int height){
18         m_blockWidth = width;
19         m_blockHeight = height;
20 }
21
22
23
24 et::DungeonBuffer* et::DungeonBuilder::createBlock(int _x , int _y){
25
26         int beginX = _x * m_blockWidth;
27         int endX = (_x+1) * m_blockWidth;
28         if(endX > m_map.getWidth())endX = m_map.getWidth();
29         int beginY = _y * m_blockHeight;
30         int endY = (_y+1) * m_blockHeight;
31         if(endY > m_map.getHeight())endY = m_map.getHeight();
32
33         std::vector<et::VertexTypeDungeon> vertices;
34         
35         for(int x = beginX ; x < endX ; x++){
36                 for(int y = beginY ; y < endY ; y++){
37                         addParts(vertices , x , y);
38                 }
39         }
40
41         return new mof::SoftVertexBuffer<et::VertexTypeDungeon>(et::DungeonBuffer::PRIMITIVE_TYPE_TRIANGLELIST , vertices);
42 }
43
44