Commit Graph

1540 Commits

Author SHA1 Message Date
Michele Caini
ffd5defcb6 updated benchmark 2019-03-22 22:17:58 +01:00
Michele Caini
0f73b9e07f clean up 2019-03-22 16:49:19 +01:00
Michele Caini
cc39f9f891 clean up 2019-03-22 15:32:50 +01:00
Michele Caini
70608df843 improved multi component view 2019-03-22 10:12:04 +01:00
Michele Caini
e7f2c6b5ba more on context variables 2019-03-21 22:04:55 +01:00
Michele Caini
420fc9aa24 removed annoying/useless benchmark 2019-03-21 21:39:44 +01:00
Michele Caini
200012fd41 added component-to-entity functionality to the sparse sets + renamed some member functions 2019-03-21 17:25:13 +01:00
Michele Caini
e3c858278b minor changes 2019-03-21 15:06:10 +01:00
Michele Caini
1ec7c3afa4 context variables (aka tags revenge) 2019-03-21 14:52:44 +01:00
Michele Caini
6ab0b60f12 avoid global shadowing to an extent (close #207) 2019-03-20 08:33:26 +01:00
Michele Caini
3b92481133 added utility functions to groups/views 2019-03-17 15:55:54 +01:00
Michele Caini
6b8d24d2f5 shared types -> named types 2019-03-15 14:42:50 +01:00
Michele Caini
2f2b63da4a renaming: label -> tag 2019-03-13 08:54:21 +01:00
Michele Caini
330d553ffb removed potentially ambiguous call (fix #203) 2019-03-12 23:19:17 +01:00
Michele Caini
f1d0895eb1 added forward declaration for what matters (close #178) 2019-03-12 22:21:58 +01:00
Michele Caini
dcbf6e43c7 added get_or_assign (close #202) 2019-03-12 14:50:47 +01:00
Michele Caini
0d22da672d fixed test 2019-03-12 00:09:59 +01:00
Michele Caini
a62471b9b8 added default constructor to resource handle 2019-03-09 15:39:10 +01:00
Michele Caini
f673f2c5bc added each-with-type to multiple component views 2019-03-09 14:41:31 +01:00
Michele Caini
d0deefd0d7 review: registry (fix #199) 2019-03-09 00:35:11 +01:00
Michele Caini
9810da6982 batch add is now available 2019-03-08 22:49:14 +01:00
Michele Caini
cb93a3bee3 minor changes 2019-03-08 22:49:14 +01:00
Michele Caini
78c171e0c2 meta: review 2019-03-01 17:07:08 +01:00
Michele Caini
b0d3a84d1e setters/getters correctly handle references now (#fix 196) 2019-03-01 16:25:46 +01:00
Michele Caini
eeeca3e21c fix #194 2019-02-28 00:06:12 +01:00
Michele Caini
4ee4af7fd4 updated registry::destroy for ranges 2019-02-27 23:56:07 +01:00
Michele Caini
9d65b44ab7 removed pointless extra arguments from dispatcher (close #190) 2019-02-27 15:04:17 +01:00
Michele Caini
350d51a92d const T & = --> std::as_const 2019-02-27 15:03:39 +01:00
Michele Caini
de9886e011 more tests 2019-02-25 22:12:19 +01:00
Michele Caini
770e57c361 emitter works across boundaries now 2019-02-24 23:59:15 +01:00
Michele Caini
d80a00701d dispatcher works across boundaries now 2019-02-24 23:37:08 +01:00
Michele Caini
105598ac8e (maybe) solved issue due to a bug of msvc 2019-02-23 23:47:38 +01:00
Michele Caini
ff93f2220a workaround for msvc that seems not to appreciate much macros 2019-02-23 23:47:35 +01:00
Michele Caini
33fddcb289 added a test that goes across boundaries 2019-02-23 23:47:31 +01:00
Michele Caini
6a09bf2c54 increase code coverage with minimum effort 2019-02-23 23:47:26 +01:00
Michele Caini
e0fd83211b lib support for registry (first draft) 2019-02-23 23:47:03 +01:00
Michele Caini
f7c756d215 wip: make shared traits usable 2019-02-23 23:46:48 +01:00
Michele Caini
617635a989 wip: lib support 2019-02-23 23:46:42 +01:00
Michele Caini
8ef818f581 hashed string: added possibility to use both uint32 and uint64 2019-02-17 16:19:58 +01:00
Michele Caini
ab5837c7c4 sigh: more tests 2019-02-17 16:17:21 +01:00
Michele Caini
9fbdbc1844 review: delegate/sigh 2019-02-17 16:17:13 +01:00
Michele Caini
8ab61637f0 fixed get-or-assign (close #185) 2019-02-12 14:29:15 +01:00
Michele Caini
7e0bd92593 fix #184 - conflicts between partial-owning groups aren't correctly detected 2019-02-10 23:00:59 +01:00
Michele Caini
99d9a9f44e fixed tests 2019-02-10 13:21:45 +01:00
Michele Caini
47e9330646 groups 2019-02-09 14:04:09 +01:00
Michele Caini
faceff620a exclude is now a variable template 2019-02-08 17:20:21 +01:00
Michele Caini
45fdab27c9 meta_any: fixed #180 2019-02-01 23:48:00 +01:00
Michele Caini
7f1abab9ae bug fixing (find on views) 2019-01-29 09:00:34 +01:00
corystegel
9f997fe1fa Fix sparse_set invalid state when component constructor throws (#176)
Fix sparse_set invalid state when component constructor throws

Previously, a component's constructor that throws would cause the sparse
set to think that the entity still exists in the set. This is because the underlying
sparse set that stores the entities will have its entry added before the component
is added to the component set.

This could cause a number of invalid memory access problems such as the following:

1) Exception triggers destructor of enclosing object that then tries to remove
   the component that was just added. SparseSet<entity_t, Component>::has() will
   return true for the entity but when destroy() is called "instances" will be empty
   so instances.back() will be invalid.

2) If the exception is handled then calling get(entity) for the same entity
   identifier that initially threw the exception will give a position for that
   entity even though it was not added. This can cause an invalid memory access
   or accessing the data of a different stored component.
2019-01-25 22:36:30 +01:00
Michele Caini
f558126854 fixed typo + added tests (thanks to Kerndog73) 2019-01-24 08:36:55 +01:00