TDW Flags

#include "tdw_flags\tdw_flags"

DECLARE_FLAGS<point_state1>(E_P1NONE,E_P1IN_POINT,OUT_OF_POINT);
DECLARE_FLAGS<point_state2>(E_P2NONE,E_P2IN_POINT);
DECLARE_FLAGS<point_state3>(NONE,NONE1,NONE2,NONE3,NONE4,NONE5,NONE6,NONE7,NONE8,NONE9,NONE10,NONE11,NONE12,NONE13,NONE14,NONE15,NONE16,NONE17,NONE18,NONE19,NONE20,NONE21,NONE22,NONE23,NONE24,NONE25,NONE26,NONE27,NONE28,NONE29,NONE30);
DECLARE_FLAGS<point_stateN>();

#if !IS_VALID_ENUM_FLAG(point_state1)
	#error not valid
#endif

main()
{
	new point_statea:abc;
	printf("%d", GET_NUM_ITEMS(point_state1));
	printf("%d", GET_NUM_ITEMS(point_state2));
	printf("%d", GET_NUM_ITEMS(point_state3));
}