#ifndef _AOI_H #define _AOI_H #include "utils.h" typedef struct aoi_event { char e; //"A","U","D" int id; int x; int y; } Event; typedef struct aoi_cache { char e; int id; int x; int y; } Cache; typedef struct aoi_obj { int id; int x; int y; int is_maker; int is_watcher; } Obj; typedef struct aoi_grid { int idx; HashTable *watchers; HashTable *makers; HashTable *caches; } Grid; typedef struct aoi_world { int row; int col; Grid **grids; HashTable *where_is; //id在哪个格子 实时的 HashTable *pre_where_is; HashTable *watcher_grids; } World; World *aoi_create_world(int row, int col); int aoi_add_obj(World *w, int id, int x, int y, int is_maker, int is_watcher); int aoi_del_obj(World *w, int id); int aoi_set_obj(World *w, int id, int x, int y); void aoi_update_aoi(World *w, void *lua_state); void aoi_get_cost_time(void *lua_state); #endif