How to have operations with character/items in binary with concrete operations?

Posted by Piperoman on Game Development See other posts from Game Development or by Piperoman
Published on 2012-11-11T11:44:51Z Indexed on 2012/11/12 23:15 UTC
Read the original article Hit count: 323

Filed under:
|
|
|

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.

© Game Development or respective owner

Related posts about c++

Related posts about rpg