You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
auto& flow(*outArena.templateallocConstruct<flow_t>(outArena, OnGrid, startPoint, searchDistance));//Should map a Point to a Point (x/y direction) -> Flowfield
auto& visited(*outArena.templateallocConstruct<visited_t>(outArena, OnGrid, startPoint, searchDistance));//Should map a Point to a distance -> Distance Matrix
template<typename WorkingArenaType, typename OutputArenaType, typename Grid_t, bool queensCase = true, const SG_Grid::u_coordinate_t maxOutputNodes = 256, bool useSTD = false> //TODO make a default number for maxOutputNodes in a config file
template<std::uint8_t type, typename WorkingArenaType, typename Grid_t, bool queensCase = true, bool useSTD = false> //TODO make a default number for maxOutputNodes in a config file
auto& visited(*outArena.templateallocConstruct<visited_t>(outArena, OnGrid, startPoint, searchDistance)); //Should map a Point to a Point (x/y direction) -> Flowfield
template<typename WorkingArenaType, typename Grid_t, bool queensCase = true, const SG_Grid::u_coordinate_t maxOutputNodes = 256, bool useSTD = false> //TODO make a default number for maxOutputNodes in a config file
auto& visited(*outArena.templateallocConstruct<visited_t>(outArena, OnGrid, startPoint, searchDistance)); //Should map a Point to a distance -> Distance Matrix
template<typename WorkingArenaType, typename OutputArenaType, typename Grid_t, bool queensCase = true, const SG_Grid::u_coordinate_t maxOutputNodes = 256, bool useSTD = false> //TODO make a default number for maxOutputNodes in a config file
auto& out(*outArena.templateallocConstruct<Utils::Dmat_t<OutputArenaType, useSTD>>(outArena, OnGrid, startPoint, searchDistance)); //Should map a Point to a distance -> Distance Matrix
//TODO make new function that uses an std::pair of u_coordinate_t (distance) AND Point (flow) -> make it so you only need one call instead of 2
104
-
105
124
//TODO add 'inRange' variants -> Takes additional grid specifying 'ignorable' tiles for the 'withinRange' check (e.g. walls block shots, but rivers don't) -> Add options for 'ignoreAll', and make default just use all walls of the base map
106
-
107
125
//TODO add variants that somehow work the same but use a pre-allocated output matrix/stack -> reduce need to copy and also reduce chance of OutputArena fragmentation
126
+
127
+
128
+
//TODO templates are getting too much!!!
129
+
//TODO 'almost always use auto!'
130
+
// Use 'auto' with 'concepts' and clean up all the templates in this project!!
//TODO add a 'threatMatrix' function based on a min/max distancematrix and a 'blocker' matrix -> return a new grid showing distance to put tiles within that range without hitting a 'blocker' -> e.g. calculating Fire Emblem archer movement
57
+
//TODO add a 'threatMatrix' function based on a min/max distance, a distance matrix and a 'blocker' matrix -> return a new grid showing distance to put tiles within that range without hitting a 'blocker' -> e.g. showing Fire Emblem archer attackable squares
0 commit comments