add grid
This commit is contained in:
parent
405f603def
commit
0d1e52076b
75
server/gameserver/grid.cc
Normal file
75
server/gameserver/grid.cc
Normal file
@ -0,0 +1,75 @@
|
||||
#include "precompile.h"
|
||||
|
||||
#include "grid.h"
|
||||
|
||||
Grid::Grid()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Grid::~Grid()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Grid::Init(int width, int height, int cell_width)
|
||||
{
|
||||
map_width_ = width;
|
||||
map_height_ = height;
|
||||
cell_width_ = cell_width;
|
||||
|
||||
cell_count_per_row_ = (map_height_ / cell_width + 1) + 2;
|
||||
cell_count_per_col_ = (map_width_ / cell_width + 1) + 2;
|
||||
max_grid_id_ = cell_count_per_row_ * cell_count_per_col_;
|
||||
cells_ = new GridCell[max_grid_id_ + 1];
|
||||
}
|
||||
|
||||
void Grid::UnInit()
|
||||
{
|
||||
if (cells_) {
|
||||
delete[] cells_;
|
||||
cells_ = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Grid::Get123456789(int grid_id, std::vector<GridCell>& grid_list)
|
||||
{
|
||||
if (grid_id <= 0 || grid_id >= max_grid_id_) {
|
||||
return;
|
||||
}
|
||||
int tmp_grid_id = 0;
|
||||
tmp_grid_id = grid_id - (cell_count_per_row_ + 1);
|
||||
if (tmp_grid_id > 0) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void Grid::Get123(int grid_id, std::vector<GridCell>& grid_list)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Grid::Get456(int grid_id, std::vector<GridCell>& grid_list)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Grid::Get789(int grid_id, std::vector<GridCell>& grid_list)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Grid::Get147(int grid_id, std::vector<GridCell>& grid_list)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Grid::Get258(int grid_id, std::vector<GridCell>& grid_list)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Grid::Get369(int grid_id, std::vector<GridCell>& grid_list)
|
||||
{
|
||||
|
||||
}
|
43
server/gameserver/grid.h
Normal file
43
server/gameserver/grid.h
Normal file
@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
class Human;
|
||||
|
||||
struct GridCell
|
||||
{
|
||||
std::set<Human*> human_list;
|
||||
};
|
||||
|
||||
/*
|
||||
1 2 3
|
||||
4 5 6
|
||||
7 8 9
|
||||
*/
|
||||
class Room;
|
||||
class Grid
|
||||
{
|
||||
public:
|
||||
Grid();
|
||||
~Grid();
|
||||
|
||||
void Init(int width, int height, int cell_width);
|
||||
void UnInit();
|
||||
void Get123456789(int grid_id, std::vector<GridCell>& grid_list);
|
||||
void Get123(int grid_id, std::vector<GridCell>& grid_list);
|
||||
void Get456(int grid_id, std::vector<GridCell>& grid_list);
|
||||
void Get789(int grid_id, std::vector<GridCell>& grid_list);
|
||||
void Get147(int grid_id, std::vector<GridCell>& grid_list);
|
||||
void Get258(int grid_id, std::vector<GridCell>& grid_list);
|
||||
void Get369(int grid_id, std::vector<GridCell>& grid_list);
|
||||
|
||||
private:
|
||||
Room* room_ = nullptr;
|
||||
GridCell* cells_ = nullptr;
|
||||
int max_grid_id_ = 0;
|
||||
int map_width_ = 0;
|
||||
int map_height_ = 0;
|
||||
int cell_width_ = 0;
|
||||
int cell_count_per_row_ = 0;
|
||||
int cell_count_per_col_ = 0;
|
||||
Vector2D min_;
|
||||
Vector2D max_;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user