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