How to have operations with character/items on binary with concrete operations on C++?
- by Piperoman
I have the next problem.
A item can have a lot of states:
NORMAL = 0000000
DRY = 0000001
HOT = 0000010
BURNING = 0000100
WET = 0001000
COLD = 0010000
FROZEN = 0100000
POISONED= 1000000
A item can have some states at same time but not all of them
Is impossible to be dry and wet at same time.
If you COLD a WET item, it turns into FROZEN.
If you HOT a WET item, it turns into NORMAL
A item can be BURNING and POISON
Etc.
I have tried to set binary flags to states, and use AND to combine different states, checking before if it is possible or not to do it, or change to another status.
Does there exist a concrete approach to solve this problem efficiently without having an interminable switch that checks every state with every new state?
It is relatively easy to check 2 different states, but if there exists a third state it is not trivial to do.