56 lines
2.2 KiB
C
56 lines
2.2 KiB
C
#pragma once
|
|
|
|
// 4J-PB added to avoid string compares on adding particles
|
|
enum ePARTICLE_TYPE
|
|
{
|
|
eParticleType_bubble,
|
|
eParticleType_smoke,
|
|
eParticleType_note,
|
|
eParticleType_netherportal, // 4J - This particle should only be used by the Nether portal. Everything else should use eParticleType_end
|
|
eParticleType_endportal, // 4J - Seperated this from torches and fires
|
|
eParticleType_explode,
|
|
eParticleType_flame,
|
|
eParticleType_lava,
|
|
eParticleType_footstep,
|
|
eParticleType_splash,
|
|
eParticleType_largesmoke,
|
|
eParticleType_reddust,
|
|
eParticleType_snowballpoof,
|
|
eParticleType_snowshovel,
|
|
eParticleType_slime,
|
|
eParticleType_heart,
|
|
eParticleType_suspended,
|
|
eParticleType_depthsuspend,
|
|
eParticleType_crit,
|
|
eParticleType_hugeexplosion,
|
|
eParticleType_largeexplode,
|
|
eParticleType_townaura,
|
|
eParticleType_spell,
|
|
eParticleType_mobSpell,
|
|
eParticleType_instantSpell,
|
|
eParticleType_magicCrit,
|
|
eParticleType_dripWater,
|
|
eParticleType_dripLava,
|
|
eParticleType_enchantmenttable,
|
|
eParticleType_dragonbreath,
|
|
eParticleType_ender, // 4J Added - These are things that used the "portal" particle but are actually end related entities
|
|
eParticleType_angryVillager,
|
|
eParticleType_happyVillager,
|
|
|
|
// 4J-JEV: In the java, the particle name was used to sneak parameters in for the Terrain and IconCrack particle constructors.
|
|
|
|
eParticleType_iconcrack_base = 0x100000, // There's range of iconcrack particle types based on item id and data.
|
|
eParticleType_iconcrack_last = 0x1FFFFF,
|
|
eParticleType_tilecrack_base = 0x200000, // There's a range of tilecrack particle types based on tile id and data.
|
|
eParticleType_tilecrack_last = 0x2FFFFF,
|
|
// 0x0000FF, <- these bits are for storing the data value.
|
|
// 0x0FFF00, <- these bits are for encoding tile/item id.
|
|
// 0x300000, <- these bits show if its an icon/tile or not.
|
|
|
|
};
|
|
|
|
#define PARTICLE_TILECRACK(id,data) ( (ePARTICLE_TYPE) ( ((int) eParticleType_tilecrack_base) | ((0x0FFF & id) << 8) | (0x0FF & data)) )
|
|
#define PARTICLE_ICONCRACK(id,data) ( (ePARTICLE_TYPE) ( ((int) eParticleType_iconcrack_base) | ((0x0FFF & id) << 8) | (0x0FF & data)) )
|
|
|
|
#define PARTICLE_CRACK_ID(ePType) ((0x0FFF00 & (int)ePType) >> 8)
|
|
#define PARTICLE_CRACK_DATA(ePType) (0x0FF & (int)ePType) |