displayelementtendency.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. class DisplayElementTendency extends DisplayElementBase
  2. {
  3. protected int TENDENCY_MASK = 7;// first x bits
  4. protected int SERIOUSNESS_BIT_MASK = 7;// second x bits
  5. protected int SERIOUSNESS_BIT_OFFSET = 3;//bit offset - points to where seriousness bit starts(TODO: get as log from mask)
  6. void DisplayElementTendency(PlayerBase player)
  7. {
  8. NUM_OF_BITS = 6;//the overall num of bits this element occupies(can be calculated from masks, better leave it explicit)
  9. }
  10. void SetSeriousnessLevel( DSLevels level )
  11. {
  12. m_Value = (~(SERIOUSNESS_BIT_MASK << SERIOUSNESS_BIT_OFFSET)) & m_Value;//clear the last value
  13. m_Value = (level << SERIOUSNESS_BIT_OFFSET) | m_Value;
  14. }
  15. override void UpdateHUD()
  16. {
  17. super.UpdateHUD();
  18. int seriousness = m_Value >> SERIOUSNESS_BIT_OFFSET;
  19. int tendency = TENDENCY_MASK & m_Value;
  20. //PrintString(tendency.ToString());
  21. if(tendency > 3)
  22. {
  23. tendency = -(tendency - 3);
  24. }
  25. /*
  26. PrintString(this.ToString());
  27. PrintString("ser:"+ seriousness.ToString());
  28. PrintString("tnd:"+ tendency.ToString());
  29. */
  30. m_ModulePlayerStatus.DisplayTendency(m_Key, tendency, TranslateLevelToStatus(seriousness));
  31. }
  32. void SetTendency(int tendency)
  33. {
  34. m_Value = (~TENDENCY_MASK) & m_Value;//clear the last value
  35. m_Value = tendency | m_Value;//insert the new one
  36. //PrintString(m_Value.ToString());
  37. }
  38. }