diff --git a/server/gameserver/grid.cc b/server/gameserver/grid.cc new file mode 100644 index 0000000..5bad192 --- /dev/null +++ b/server/gameserver/grid.cc @@ -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& 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& grid_list) +{ + +} + +void Grid::Get456(int grid_id, std::vector& grid_list) +{ + +} + +void Grid::Get789(int grid_id, std::vector& grid_list) +{ + +} + +void Grid::Get147(int grid_id, std::vector& grid_list) +{ + +} + +void Grid::Get258(int grid_id, std::vector& grid_list) +{ + +} + +void Grid::Get369(int grid_id, std::vector& grid_list) +{ + +} diff --git a/server/gameserver/grid.h b/server/gameserver/grid.h new file mode 100644 index 0000000..85f31d8 --- /dev/null +++ b/server/gameserver/grid.h @@ -0,0 +1,43 @@ +#pragma once + +class Human; + +struct GridCell +{ + std::set 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& grid_list); + void Get123(int grid_id, std::vector& grid_list); + void Get456(int grid_id, std::vector& grid_list); + void Get789(int grid_id, std::vector& grid_list); + void Get147(int grid_id, std::vector& grid_list); + void Get258(int grid_id, std::vector& grid_list); + void Get369(int grid_id, std::vector& 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_; +};