the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at master 56 lines 2.8 kB view raw
1#pragma once 2 3// 4J-JEV: 4// All functional potions need bit-13 set. 5 6#define MASK_REGENERATION 0x2001 7#define MASK_SPEED 0x2002 8#define MASK_FIRE_RESISTANCE 0x2003 9#define MASK_POISON 0x2004 10#define MASK_INSTANTHEALTH 0x2005 11#define MASK_NIGHTVISION 0x2006 12#define MASK_INVISIBILITY 0x200E 13#define MASK_WEAKNESS 0x2008 14#define MASK_STRENGTH 0x2009 15#define MASK_SLOWNESS 0x200A 16#define MASK_INSTANTDAMAGE 0x200C 17 18#define MASK_TYPE_AWKWARD 0x0010 19 20#define MASK_SPLASH 0x4000 21#define MASK_BIT13 0x2000 22 23#define MASK_LEVEL2 0x0020 24#define MASK_EXTENDED 0x0040 25#define MASK_LEVEL2EXTENDED 0x0060 26 27#define MACRO_POTION_IS_REGENERATION(aux) ((aux & 0x200F) == MASK_REGENERATION) 28#define MACRO_POTION_IS_SPEED(aux) ((aux & 0x200F) == MASK_SPEED) 29#define MACRO_POTION_IS_FIRE_RESISTANCE(aux) ((aux & 0x200F) == MASK_FIRE_RESISTANCE) 30#define MACRO_POTION_IS_INSTANTHEALTH(aux) ((aux & 0x200F) == MASK_INSTANTHEALTH) 31#define MACRO_POTION_IS_NIGHTVISION(aux) ((aux & 0x200F) == MASK_NIGHTVISION) 32#define MACRO_POTION_IS_INVISIBILITY(aux) ((aux & 0x200F) == MASK_INVISIBILITY) 33#define MACRO_POTION_IS_WEAKNESS(aux) ((aux & 0x200F) == MASK_WEAKNESS) 34#define MACRO_POTION_IS_STRENGTH(aux) ((aux & 0x200F) == MASK_STRENGTH) 35#define MACRO_POTION_IS_SLOWNESS(aux) ((aux & 0x200F) == MASK_SLOWNESS) 36#define MACRO_POTION_IS_POISON(aux) ((aux & 0x200F) == MASK_POISON) 37#define MACRO_POTION_IS_INSTANTDAMAGE(aux) ((aux & 0x200F) == MASK_INSTANTDAMAGE) 38#define MACRO_POTION_IS_NIGHTVISION(aux) ((aux & 0x200F) == MASK_NIGHTVISION) 39#define MACRO_POTION_IS_INVISIBILITY(aux) ((aux & 0x200F) == MASK_INVISIBILITY) 40 41#define MACRO_POTION_IS_SPLASH(aux) ((aux & MASK_SPLASH) == MASK_SPLASH) 42#define MACRO_POTION_IS_BOTTLE(aux) ((aux & MASK_SPLASH) == 0) 43 44#define MACRO_POTION_IS_AKWARD(aux) ((aux & MASK_TYPE_AWKWARD) == MASK_TYPE_AWKWARD) 45 46#define MACRO_POTION_IS_REGULAR(aux) ((aux & (MASK_LEVEL2EXTENDED)) == 0) 47#define MACRO_POTION_IS_LEVEL2(aux) ((aux & (MASK_LEVEL2 )) == MASK_LEVEL2) 48#define MACRO_POTION_IS_EXTENDED(aux) ((aux & (MASK_EXTENDED)) == (MASK_EXTENDED)) 49#define MACRO_POTION_IS_LEVEL2EXTENDED(aux) ((aux & (MASK_LEVEL2EXTENDED)) == (MASK_LEVEL2EXTENDED)) 50 51 52#define MACRO_MAKEPOTION_AUXVAL(potion_type, potion_strength, potion_effect) (potion_type | potion_strength | potion_effect) 53 54// The potion brewing creates high aux values with redundant high bits, so use this to bring the aux val into ranges that match our macros 55// 4J-JEV: 0x2000 == bit-13; Used to stop netherwart "resetting" functional potions. 56#define NORMALISE_POTION_AUXVAL(aux) (aux & (MASK_BIT13 | MASK_SPLASH | 0xFF))