mirror of
https://github.com/doldecomp/sms.git
synced 2026-11-09 17:11:05 -10:00
* Initial pass on koopa and limitkoopa * Mark limitkoopa as an object only in jp and ntsc * PR cleanup * PR cleanup * Fix formatting
520 lines
21 KiB
C++
520 lines
21 KiB
C++
#ifndef SYSTEM_PARTICLES_HPP
|
|
#define SYSTEM_PARTICLES_HPP
|
|
|
|
#include <JSystem/JParticle/JPAResourceManager.hpp>
|
|
#include <System/EmitterViewObj.hpp>
|
|
|
|
// Header fabricated
|
|
|
|
extern bool gParticleFlagLoaded[0x201];
|
|
extern JPAResourceManager* gpResourceManager;
|
|
|
|
// fabricated
|
|
inline static void SMS_LoadParticle(const char* path, u16 id)
|
|
{
|
|
if (!gParticleFlagLoaded[id]) {
|
|
gpResourceManager->load(path, id);
|
|
gParticleFlagLoaded[id] = true;
|
|
}
|
|
}
|
|
|
|
// Actual, real funcs!!!!!!!!
|
|
|
|
// TODO: fill in the enums with particle IDs
|
|
enum E_SMS_EFFECT_ONETIME_NORMAL /* 0 */ {
|
|
PARTICLE_MS_M_ROCKET_A = 0x1,
|
|
PARTICLE_MS_M_ROCKET_B = 0x2,
|
|
PARTICLE_MS_M_ROCKET_B2 = 0x3,
|
|
PARTICLE_MS_M_ROCKET_C = 0x4,
|
|
PARTICLE_MS_M_ROCKET_D = 0x5,
|
|
|
|
PARTICLE_MS_FUMI_A = 0x7,
|
|
PARTICLE_MS_FUMI_B = 0x8,
|
|
PARTICLE_MS_FUMI_C = 0x9,
|
|
|
|
PARTICLE_MS_DMG_A = 0xA,
|
|
PARTICLE_MS_DMG_B = 0xB,
|
|
PARTICLE_MS_DMG_C = 0xC,
|
|
PARTICLE_MS_ASE = 0xD,
|
|
PARTICLE_MS_ITEMGET1_A = 0xE,
|
|
PARTICLE_MS_ITEMGET1_B = 0xF,
|
|
|
|
PARTICLE_MS_JUMP_ED_A = 0x10,
|
|
PARTICLE_MS_JUMP_ED_B = 0x11,
|
|
|
|
PARTICLE_MS_HIPDROP_A = 0x12,
|
|
PARTICLE_MS_HIPDROP_B = 0x13,
|
|
PARTICLE_MS_HIPDROP_C = 0x14,
|
|
|
|
PARTICLE_MS_MARIWALK1_A = 0x15,
|
|
PARTICLE_MS_MARIWALK1_B = 0x16,
|
|
PARTICLE_MS_MARIWALK1_C = 0x17,
|
|
|
|
PARTICLE_MS_WALLKICK_A = 0x18,
|
|
PARTICLE_MS_WALLKICK_B = 0x19,
|
|
|
|
MAP_MAP_GATE_MS_MARIOWP_BODY = 0x1A,
|
|
MAP_MAP_GATE_MS_MARIOWP_HEAD = 0x1B,
|
|
MAP_MAP_GATE_MS_MARIOWP_CAP = 0x1C,
|
|
MAP_MAP_GATE_MS_MARIOWP_RHAND = 0x1D,
|
|
MAP_MAP_GATE_MS_MARIOWP_LHAND = 0x1E,
|
|
MAP_MAP_GATE_MS_MARIOWP_RLEG = 0x1F,
|
|
MAP_MAP_GATE_MS_MARIOWP_RFOOT = 0x20,
|
|
MAP_MAP_GATE_MS_MARIOWP_LLEG = 0x21,
|
|
MAP_MAP_GATE_MS_MARIOWP_LFOOT = 0x22,
|
|
MAP_MAP_GATE_MS_MARIOWP_WATGUN = 0x23,
|
|
|
|
PARTICLE_MS_MARIOAP_BODY = 0x24,
|
|
PARTICLE_MS_MARIOAP_HEAD = 0x25,
|
|
PARTICLE_MS_MARIOAP_CAP = 0x26,
|
|
PARTICLE_MS_MARIOAP_RHAND = 0x27,
|
|
PARTICLE_MS_MARIOAP_LHAND = 0x28,
|
|
PARTICLE_MS_MARIOAP_RLEG = 0x29,
|
|
PARTICLE_MS_MARIOAP_RFOOT = 0x2A,
|
|
PARTICLE_MS_MARIOAP_LLEG = 0x2B,
|
|
PARTICLE_MS_MARIOAP_LFOOT = 0x2C,
|
|
PARTICLE_MS_MARIOAP_WATGUN = 0x2D,
|
|
|
|
PARTICLE_MS_M_TOBIKOMI_A = 0x2F,
|
|
PARTICLE_MS_M_TOBIKOMI_B = 0x30,
|
|
PARTICLE_MS_M_TOBIKOMI_S_A = 0x31,
|
|
PARTICLE_MS_M_TOBIKOMI_S_B = 0x32,
|
|
PARTICLE_MS_M_AWAHAMON = 0x33,
|
|
|
|
PARTICLE_MS_M_WATRUN_A = 0x34,
|
|
PARTICLE_MS_M_WATRUN_B = 0x35,
|
|
PARTICLE_MS_M_WATRUN_C = 0x36,
|
|
PARTICLE_MS_COINGET_A = 0x37,
|
|
PARTICLE_MS_COINGET_B = 0x38,
|
|
PARTICLE_MS_M_AMIATTACK = 0x39,
|
|
PARTICLE_MS_M_WALKSAND_B = 0x3B,
|
|
MAP_MAP_GATE_MS_MARIOWP_DUST = 0x3C,
|
|
PARTICLE_MS_M_GOUT_GATE = 0x40,
|
|
PARTICLE_MS_M_GOUT_DOKAN = 0x41,
|
|
|
|
PARTICLE_MS_M_SPHIPD_HIT_A = 0x43,
|
|
PARTICLE_MS_M_SPHIPD_HIT_B = 0x44,
|
|
PARTICLE_MS_M_SPHIPD_HIT_C = 0x45,
|
|
PARTICLE_MS_M_SPHIPD_HIT_D = 0x46,
|
|
|
|
MAP_POLLUTION_MS_M_ASHIOS = 0x50,
|
|
MAP_MAP_GATE_MS_MARIOWP_SENKO = 0x51,
|
|
PARTICLE_MS_OSENDAN = 0x52,
|
|
PARTICLE_MS_POI_SAND = 0x53,
|
|
PARTICLE_MS_CHU_JUMP = 0x54,
|
|
MAPOBJ_SANDBOMB = 0x55,
|
|
MAPOBJ_SHININGSTONEF = 0x56,
|
|
MAPOBJ_MS_WATCOIN_HIT = 0x57,
|
|
MAPOBJ_MS_WATCOIN_KIRA = 0x58,
|
|
MAP_MAP_MS_OBJUP_SLOPE_A = 0x59,
|
|
MAPOBJ_BALLOONKOOPAJR = 0x5A,
|
|
MAPOBJ_BALLOONKOOPAJRA = 0x5B,
|
|
MAPOBJ_BALLOONKOOPAJRB = 0x5C,
|
|
MAPOBJ_WATERMELON_BOMB = 0x5D,
|
|
MAPOBJ_WATERMELON_BOMB_A = 0x5E,
|
|
MAPOBJ_WATERMELON_BOMB_B = 0x5F,
|
|
MAPOBJ_MS_EX_HAHEN = 0x63,
|
|
MAP_POLLUTION_MS_NEWFIRE_A = 0x65,
|
|
MAP_MAP_MS_OBJUP_MANIYA_A = 0x66,
|
|
MAP_MAP_MS_OBJUP_TOUDAI_A = 0x67,
|
|
MAP_MAP_MS_OBJUP_HOTEL_A = 0x68,
|
|
MAP_MAP_MS_MARE_OBJUP_A = 0x69,
|
|
MAPOBJ_SANDSTEAM = 0x6A,
|
|
MAPOBJ_WATERMELON_SHRINK_A = 0x6B,
|
|
MAPOBJ_WATERMELON_SHRINK_B = 0x6C,
|
|
PARTICLE_MS_EX_CUBE_DISA = 0x6D,
|
|
MAP_MAP_MS_M_FILEBLOCK = 0x6E,
|
|
MAP_POLLUTION_MS_THUNDER_S = 0x6F,
|
|
PARTICLE_MS_MNT_KIRA = 0x70,
|
|
PARTICLE_MS_MARE_KIRA = 0x71,
|
|
PARTICLE_MS_MNT_YOGORE_B = 0x72,
|
|
PARTICLE_MS_MNT_YOGORE_F = 0x73,
|
|
PARTICLE_MS_MARE_YOGORE = 0x74,
|
|
PARTICLE_MS_KINO_YOGORE = 0x75,
|
|
PARTICLE_MS_BOHA_SANDSMO = 0x76,
|
|
PARTICLE_MS_BOHA_SAND = 0x77,
|
|
PARTICLE_MS_BOHA_JOUKI_R_A = 0x78,
|
|
PARTICLE_MS_BOHA_JOUKI_R_B = 0x79,
|
|
PARTICLE_MS_BOHA_JOUKI_L_A = 0x7A,
|
|
PARTICLE_MS_BOHA_JOUKI_L_B = 0x7B,
|
|
PARTICLE_MS_BOHA_HAMON_A = 0x7C,
|
|
PARTICLE_MS_BOHA_HAMON_B = 0x7D,
|
|
COLUMSAND_JPA_MS_BOHA_CRASH_A = 0x7E,
|
|
PARTICLE_MS_DEADNAMEKLI_N = 0x83,
|
|
PARTICLE_MS_DEADNAMEKLI_O = 0x84,
|
|
COLUMWATER_JPA_MS_ENEHAMON_A = 0x89,
|
|
COLUMWATER_JPA_MS_ENEHAMON_B = 0x8A,
|
|
PARTICLE_MS_MOE_FIRE_OFF = 0x8B,
|
|
BGESO_JPA_MS_BOGE_ATTACK_A = 0x8C,
|
|
BGESO_JPA_MS_BOGE_ATTACK_B = 0x8D,
|
|
BGESO_JPA_MS_BOGE_ATTACK_C = 0x8E,
|
|
BGESO_JPA_MS_BOGE_ATTACK_D = 0x8F,
|
|
BGESO_JPA_MS_BOGE_CANON_A = 0x93,
|
|
BGESO_JPA_MS_BOGE_CANON_B = 0x94,
|
|
BGESO_JPA_MS_BOGE_HIT_A = 0x97,
|
|
BGESO_JPA_MS_BOGE_HIT_B = 0x98,
|
|
BGESO_JPA_MS_BOGE_HIT_C = 0x99,
|
|
BGESO_JPA_MS_BOGE_HITDOWN = 0x9A,
|
|
BGESO_JPA_MS_BOGE_JUMP = 0x9B,
|
|
BGESO_JPA_MS_BOGE_KIZETSU = 0x9C,
|
|
BGESO_JPA_MS_BOGE_KIZETSU_R = 0x9D,
|
|
BGESO_JPA_MS_BOGE_ODANHIT_A = 0x9E,
|
|
BGESO_JPA_MS_BOGE_ODANHIT_B = 0x9F,
|
|
BGESO_JPA_MS_BOGE_OSEN = 0xA0,
|
|
PARTICLE_MS_POPO_BOMB_A = 0xA1,
|
|
PARTICLE_MS_POPO_BOMB_B = 0xA2,
|
|
GATEKEEPER_JPA_MS_GKPA_DEAD = 0xA7,
|
|
GATEKEEPER_JPA_MS_GKPA_DEADSMOKE = 0xA8,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_BLUR1 = 0xA9,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_DOWN = 0xAA,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_SWING1 = 0xAB,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_SWING2 = 0xAC,
|
|
BWAN_JPA_JUMP_ROCK = 0xAD,
|
|
BWAN_JPA_JUMP_SMOKE = 0xAE,
|
|
BWAN_JPA_MS_HIBANA = 0xAF,
|
|
BWAN_JPA_MS_DOWNYUGE = 0xB0,
|
|
PARTICLE_MS_SMB_KAFUN_OW = 0xB2,
|
|
PARTICLE_MS_SMB_KAFUN_OA = 0xB3,
|
|
PARTICLE_MS_SMB_AP_ROCK = 0xB6,
|
|
PARTICLE_MS_SMB_AP_SMOKE = 0xB7,
|
|
PARTICLE_MS_SMB_HD_ROCK = 0xB8,
|
|
PARTICLE_MS_SMB_HD_SMOKE = 0xB9,
|
|
PARTICLE_MS_GESO_OSENHIT_A = 0xBC,
|
|
PARTICLE_MS_GESO_OSENHIT_B = 0xBD,
|
|
PARTICLE_MS_PKH_TOKE = 0xBE,
|
|
PARTICLE_MS_PKH_FUMI = 0xBF,
|
|
PARTICLE_MS_POI_DEAD = 0xC0,
|
|
PARTICLE_MS_PETBTL_BOMB_A = 0xC1,
|
|
PARTICLE_MS_PETBTL_BOMB_B = 0xC2,
|
|
EXPLOSION_JPA_MS_BOMB_SMOKE = 0xC4,
|
|
EXPLOSION_JPA_MS_BOMB_BOMB = 0xC5,
|
|
EXPLOSION_JPA_MS_BOMB_HAHEN = 0xC6,
|
|
PARTICLE_MS_CHO_MOKU_A = 0xC7,
|
|
PARTICLE_MS_CHO_MOKU_B = 0xC8,
|
|
PARTICLE_MS_CHO_ASE = 0xC9,
|
|
PARTICLE_MS_DNK_SHIBIRE_B = 0xCA,
|
|
PARTICLE_MS_IGA_FUMI_AIR = 0xCB,
|
|
PARTICLE_MS_TAMA_FLOWER = 0xCC,
|
|
PARTICLE_MS_TLS_CHANGE = 0xCD,
|
|
KAZEKUN_JPA_MS_KAZE_APPEAR = 0xCF,
|
|
PARTICLE_MS_GENE_DEAD = 0xD0,
|
|
PARTICLE_MS_SL_OR_MELT1 = 0xD1,
|
|
PARTICLE_MS_SL_OR_MELT2 = 0xD2,
|
|
BOSSEEL_JPA_MS_MEO_AWA_TOOTH = 0xD3,
|
|
BOSSEEL_JPA_MS_MEO_AWA_MOUTH = 0xD4,
|
|
BOSSEELTEARS_MS_MEO_TEAR_BOMB = 0xD5,
|
|
BOSSEELTEARS_MS_MEO_TEAR_AWAGET = 0xD6,
|
|
SCENE_BTELESA_JPA_MS_BTLS_FHIT = 0xD7,
|
|
SCENE_BTELESA_JPA_MS_BTLS_FHIT_PE = 0xD8,
|
|
SCENE_BTELESA_JPA_MS_BTLS_FHIT_GR = 0xD9,
|
|
SCENE_BTELESA_JPA_MS_BTLS_FHIT_OR = 0xDA,
|
|
SCENE_BTELESA_JPA_MS_BTLS_DAMAGE = 0xDB,
|
|
SCENE_BTELESA_JPA_MS_BTLS_DOWN = 0xDC,
|
|
SCENE_BTELESA_JPA_MS_BTLS_DOWN_PE = 0xDD,
|
|
SCENE_BTELESA_JPA_MS_BTLS_DOWN_GR = 0xDE,
|
|
SCENE_BTELESA_JPA_MS_BTLS_DOWN_OR = 0xDF,
|
|
SCENE_BTELESA_JPA_MS_BTLS_SPICY_HIT = 0xE0,
|
|
SCENE_BTELESA_JPA_MS_BTLS_FUBUKI = 0xE1,
|
|
PARTICLE_MS_ENM_WALLHIT = 0xE2,
|
|
PARTICLE_MS_ENM_WALLHIT_O = 0xE3,
|
|
PARTICLE_MS_ENM_DISAP_A = 0xE4,
|
|
PARTICLE_MS_ENM_DISAP_A_W = 0xE5,
|
|
PARTICLE_MS_ENM_DISAP_B = 0xE6,
|
|
PARTICLE_MS_ENM_WATHIT = 0xE7,
|
|
CANNON_JPA_MS_CANNON_A = 0xE8,
|
|
CANNON_JPA_MS_CANNON_B = 0xE9,
|
|
CANNON_JPA_MS_CANNON_C = 0xEA,
|
|
CANNON_JPA_MS_CANNON_D = 0xEB,
|
|
CANNON_JPA_MS_CANNON_E = 0xEC,
|
|
SCENE_KAGEMARIO_JPA_MS_KGM_CHANGE = 0xED,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_HIBANA_D1HE = 0xEE,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KILLER = 0xEF,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_SMOKE1 = 0xF0,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_PARGE_B14 = 0xF1,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_PARGE_B23 = 0xF2,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_FLAME_YUGE = 0xF3,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KEMU_PARTS = 0xF4,
|
|
MAP_MAP_MS_KP_BREAK_A = 0xF6,
|
|
MAP_MAP_MS_KP_BREAK_B = 0xF7,
|
|
SCENE_MANTA_JPA_MS_MAN_DEAD = 0xF8,
|
|
SCENE_MANTA_JPA_MS_MAN_DIV1 = 0xF9,
|
|
SCENE_MANTA_JPA_MS_MAN_DIV2 = 0xFA,
|
|
SCENE_MANTA_JPA_MS_MAN_DIV3 = 0xFB,
|
|
SCENE_MANTA_JPA_MS_MAN_DIV4 = 0xFC,
|
|
};
|
|
|
|
enum E_SMS_EFFECT_LOOP_NORMAL /* 1 */ {
|
|
PARTICLE_MS_HIKAGE1_A = 0x100,
|
|
PARTICLE_MS_HIKAGE1_B = 0x101,
|
|
PARTICLE_MS_MARIWALLSL1 = 0x102,
|
|
PARTICLE_MS_M_SLIPSMOKE = 0x103,
|
|
PARTICLE_MS_M_BLUR3 = 0x104,
|
|
PARTICLE_MS_M_BLUR2 = 0x105,
|
|
PARTICLE_MS_M_BLUR2SP = 0x106,
|
|
PARTICLE_MS_M_HAMON_A = 0x107,
|
|
PARTICLE_MS_M_HAMON_C = 0x108,
|
|
PARTICLE_MS_M_HAMON_D = 0x109,
|
|
PARTICLE_MS_M_MZBHAMON_A = 0x10A,
|
|
PARTICLE_MS_M_MZBHAMON_C = 0x10B,
|
|
PARTICLE_MS_M_AWA = 0x10C,
|
|
PARTICLE_MS_NOZZLESMOKE = 0x10D,
|
|
PARTICLE_MS_M_BLUR1 = 0x10E,
|
|
PARTICLE_MS_M_SLIDESAND_A = 0x10F,
|
|
PARTICLE_MS_M_SLIDESAND_B = 0x110,
|
|
PARTICLE_MS_M_AWA_S = 0x111,
|
|
PARTICLE_MS_M_WATSLIDE_B = 0x112,
|
|
PARTICLE_MS_M_WATSLIDE_C = 0x113,
|
|
PARTICLE_MS_M_SPINSHOT_A = 0x114,
|
|
PARTICLE_MS_M_SPINSHOT_B = 0x115,
|
|
PARTICLE_MS_M_BIRI_A = 0x116,
|
|
PARTICLE_MS_M_BIRI_B = 0x117,
|
|
PARTICLE_MS_M_BIRI_C = 0x118,
|
|
PARTICLE_MS_M_SPHIPD_A = 0x11A,
|
|
PARTICLE_MS_M_SPHIPD_B = 0x11B,
|
|
PARTICLE_MS_M_SPHIPD_C = 0x11C,
|
|
PARTICLE_MS_M_SPHIPD_D = 0x11D,
|
|
PARTICLE_MS_M_SEASMOKE = 0x11E,
|
|
PARTICLE_MS_TORO_WIND = 0x11F,
|
|
PARTICLE_MS_TORO_HIBANA = 0x120,
|
|
PARTICLE_MS_GESOSURF_B = 0x121,
|
|
PARTICLE_MS_GESOSURF_C = 0x122,
|
|
PARTICLE_MS_GESOSURF_D = 0x123,
|
|
PARTICLE_MS_POI_ZZZ = 0x124,
|
|
MAP_POLLUTION_MS_M_SPINOS = 0x126,
|
|
PARTICLE_MS_SHINE_PROMI = 0x127,
|
|
PARTICLE_MS_SHINE_SENKO = 0x128,
|
|
PARTICLE_MS_SHINE_KIRA = 0x129,
|
|
PARTICLE_MS_SHINE_BOW = 0x12A,
|
|
MAP_POLLUTION_MS_M_TOKEOS = 0x12B,
|
|
PARTICLE_MS_TEPPANFIRE_A = 0x12C,
|
|
PARTICLE_MS_GENE_HIT = 0x12D,
|
|
PARTICLE_MS_POI_KIZETSU = 0x12F,
|
|
PARTICLE_MS_CHU_ASE = 0x130,
|
|
MAP_MAP_GATE_MS_GATEWIND_A = 0x131,
|
|
MAP_MAP_GATE_MS_GATEWIND_A2 = 0x132,
|
|
MAP_MAP_GATE_MS_GATEWIND_A3 = 0x133,
|
|
MAP_MAP_GATE_MS_GATEWIND_B = 0x134,
|
|
PARTICLE_MS_MOE_FIRE_A = 0x135,
|
|
PARTICLE_MS_MOE_FIRE_B = 0x136,
|
|
PARTICLE_MS_MOE_FIRE_D = 0x137,
|
|
BGESO_JPA_MS_BOGE_ASE = 0x138,
|
|
BGESO_JPA_MS_BOGE_NAMIDA = 0x139,
|
|
BGESO_JPA_MS_BOGE_WASH = 0x13B,
|
|
PARTICLE_MS_POPO_SHUWA_A = 0x13C,
|
|
PARTICLE_MS_POPO_SHUWA_B = 0x13D,
|
|
PARTICLE_MS_PACKN_HD_ROCK = 0x13E,
|
|
PARTICLE_MS_PACKN_HD_SMOKE = 0x13F,
|
|
GATEKEEPER_JPA_MS_GKPA_BOTA = 0x140,
|
|
GATEKEEPER_JPA_MS_GKPA_YODARE_S = 0x141,
|
|
GATEKEEPER_JPA_MS_GKPA_YODARE_L = 0x142,
|
|
MAPOBJ_SHININGSTONE1 = 0x143,
|
|
MAPOBJ_SHININGSTONE2 = 0x144,
|
|
MAPOBJ_SHININGSTONE3 = 0x145,
|
|
MAPOBJ_MAREFALLSPLASH = 0x149,
|
|
MAPOBJ_MAREFALLSMOKE = 0x14A,
|
|
OTHERS_MARINESNOW_MS_MARE_MARINSNOW = 0x14B,
|
|
MAP_MAP_MS_MARE_GUNWAT_A = 0x14C,
|
|
MAP_MAP_MS_MARE_GUNWAT_B = 0x14D,
|
|
MAP_MAP_MS_MARE_GUNWAT_C = 0x14E,
|
|
SCENE_MAPOBJ_MS_SHIB_CYL1 = 0x154,
|
|
SCENE_MAPOBJ_MS_SHIB_CUB1 = 0x155,
|
|
MAP_MAP_MS_MONTE_YUGE = 0x156,
|
|
MAPOBJ_ICEBLOCKA = 0x157,
|
|
MAPOBJ_ICEBLOCKB = 0x158,
|
|
MAP_MAP_MS_SUNADORI_A = 0x159,
|
|
MAP_MAP_MS_SUNADORI_B = 0x15A,
|
|
MAP_MAP_MS_MARE_BLOCKUP = 0x15B,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_WATHIT = 0x15D,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_WATHIT_W = 0x15E,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_ASE = 0x15F,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_BLUR2 = 0x160,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_JITA = 0x161,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_TR_ROCK = 0x162,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_TR_SMOKE = 0x163,
|
|
SCENE_BOSSPAKKUN_JPA_MS_BOPA_TR_WEED = 0x164,
|
|
PARTICLE_MS_GESO_KISEKI = 0x165,
|
|
CANNON_JPA_MS_CANNON_SMOKE = 0x166,
|
|
BWANWAN_JPA_MS_BWAN_HITYUGE = 0x167,
|
|
BWANWAN_JPA_MS_BWAN_KIRA = 0x168,
|
|
PARTICLE_MS_BOHA_JOUKI2_R_A = 0x169,
|
|
PARTICLE_MS_BOHA_JOUKI2_R_B = 0x16A,
|
|
PARTICLE_MS_BOHA_JOUKI2_L_A = 0x16B,
|
|
PARTICLE_MS_BOHA_JOUKI2_L_B = 0x16C,
|
|
PARTICLE_MS_BOHA_SANDSMO_SL = 0x16D,
|
|
PARTICLE_MS_BOHA_SAND_SL = 0x16E,
|
|
PARTICLE_MS_BOHA_KIZETSU = 0x16F,
|
|
PARTICLE_MS_NPC_KOKUEN = 0x170,
|
|
PARTICLE_MS_NPC_HAMON_A = 0x171,
|
|
PARTICLE_MS_MNT_WASH = 0x172,
|
|
PARTICLE_MS_MARE_WASH = 0x173,
|
|
PARTICLE_MS_KIL_SMOKE = 0x174,
|
|
PARTICLE_MS_PKH_DORO = 0x175,
|
|
PARTICLE_MS_PKH_WASH = 0x176,
|
|
PARTICLE_MS_PUKU_PICHI = 0x177,
|
|
PARTICLE_MS_PUKU_AWA = 0x178,
|
|
PARTICLE_MS_PETBTL_SMOKE = 0x179,
|
|
PARTICLE_MS_DNK_BIRI = 0x17A,
|
|
PARTICLE_MS_DNK_SPARK_L = 0x17B,
|
|
PARTICLE_MS_DNK_SPARK_R = 0x17C,
|
|
PARTICLE_MS_DNK_SHIBIRE_A = 0x17D,
|
|
PARTICLE_MS_DNK_HIBANA = 0x17E,
|
|
PARTICLE_MS_BOMB_LIMIT = 0x17F,
|
|
PARTICLE_MS_AMN_BIRI = 0x180,
|
|
PARTICLE_MS_AMN_SPARK_L = 0x181,
|
|
PARTICLE_MS_AMN_SPARK_R = 0x182,
|
|
PARTICLE_MS_AMN_SPARK_M = 0x183,
|
|
MAPOBJ_AMIKING = 0x184,
|
|
PARTICLE_MS_TAMA_HIT = 0x185,
|
|
PARTICLE_MS_TAMA_BLUR = 0x186,
|
|
PARTICLE_MS_TLS_YODARE_L = 0x187,
|
|
PARTICLE_MS_TLS_YODARE_S = 0x188,
|
|
KAZEKUN_JPA_MS_KAZE_WIND = 0x189,
|
|
KAZEKUN_JPA_MS_KAZE_BLUR = 0x18A,
|
|
PARTICLE_MS_YNB_ONPU = 0x18B,
|
|
COOC_JPA_MS_ASE = 0x18C,
|
|
COOC_JPA_MS_HANE = 0x18D,
|
|
AMENBO_JPA_MS_AME_HAMON = 0x18E,
|
|
FIREWANWAN_JPA_MS_CAN_HITYUGE = 0x18F,
|
|
WIRETRAP_JPA_NS_WRT_BIRI_A = 0x190,
|
|
WIRETRAP_JPA_NS_WRT_BIRI_B = 0x191,
|
|
BOSSEEL_JPA_MS_MEO_EYEBLUR = 0x192,
|
|
BOSSEEL_JPA_MS_MEO_SPIN_SMOKE = 0x193,
|
|
BOSSEEL_JPA_MS_MEO_SPIN_SMOKE_L = 0x194,
|
|
BOSSEEL_JPA_MS_MEO_SPIN_AWA = 0x195,
|
|
BOSSEEL_JPA_MS_MEO_SPIN_AWA_L = 0x196,
|
|
BOSSEEL_JPA_MS_MEO_AWA_BODY = 0x197,
|
|
BOSSEEL_JPA_MS_MEO_AWA_DEAD = 0x198,
|
|
BOSSEEL_JPA_MS_MEO_SUIKOMI = 0x199,
|
|
BOSSEEL_JPA_MS_MEO_TOOTH_WASH = 0x19A,
|
|
BOSSEEL_JPA_MS_MEO_TOOTH_KIRA = 0x19B,
|
|
BOSSEEL_JPA_MS_MEO_TOOTH_ALWAYS = 0x19C,
|
|
BOSSEELTEARS_MS_MEO_TEAR_AWA = 0x19D,
|
|
SCENE_BTELESA_JPA_MS_BTLS_YODARE1 = 0x19E,
|
|
SCENE_BTELESA_JPA_MS_BTLS_YODARE2 = 0x19F,
|
|
SCENE_BTELESA_JPA_MS_BTLS_YODARE3 = 0x1A0,
|
|
SCENE_BTELESA_JPA_MS_BTLS_ASE = 0x1A1,
|
|
SCENE_BTELESA_JPA_MS_BTLS_SPICY_A = 0x1A2,
|
|
SCENE_BTELESA_JPA_MS_BTLS_SPICY_B = 0x1A3,
|
|
SCENE_BTELESA_JPA_MS_BTLS_SPICY_D = 0x1A4,
|
|
SCENE_BTELESA_JPA_MS_BTLS_CHIKA_A = 0x1A5,
|
|
SCENE_BTELESA_JPA_MS_BTLS_CHIKA_B = 0x1A6,
|
|
SCENE_BTELESA_JPA_MS_BTLS_GLOW = 0x1A7,
|
|
SCENE_KAGEMARIO_JPA_MS_KGM_MOVE_A = 0x1AA,
|
|
SCENE_KAGEMARIO_JPA_MS_KGM_MOVE_B = 0x1AB,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_HIBANA_W1BR = 0x1AC,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_HIBANA_W3AR = 0x1AD,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_HIBANA_W4AR = 0x1AE,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_BIRI_W1ST = 0x1AF,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_BIRI_W1AR = 0x1B0,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_BIRI_W1FE = 0x1B1,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_BIRI_W1HE = 0x1B2,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_BIRI_D1BR_A = 0x1B3,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_BIRI_D1BR_B = 0x1B4,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KEMU_B1AR = 0x1B5,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KEMU_W2BR_A = 0x1B6,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KEMU_W2BR_B = 0x1B7,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KEMU_B1HE = 0x1B8,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KEMU_B1FE_L = 0x1B9,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_KEMU_B1FE_R = 0x1BA,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_FIRE_A = 0x1BB,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_FIRE_B = 0x1BC,
|
|
MAP_MAP_MS_LKP_YUGE1 = 0x1BE,
|
|
MAP_MAP_MS_KP_FUNSUI = 0x1BF,
|
|
KOOPA_JPA_MS_KP_FIRE_A = 0x1C0,
|
|
KOOPA_JPA_MS_KP_FIRE_B = 0x1C1,
|
|
KOOPA_JPA_MS_KP_FIRE_C = 0x1C2,
|
|
KOOPA_JPA_MS_KP_FIRE_D = 0x1C3,
|
|
PARTICLE_MS_MAP_FIRE_A = 0x1C4,
|
|
PARTICLE_MS_MAP_FIRE_B = 0x1C5,
|
|
SCENE_MAPOBJ_MS_OBJ_HAMON_A = 0x1C6,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT1_A = 0x1C7,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT1_B = 0x1C8,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT2_A = 0x1C9,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT2_B = 0x1CA,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT3_A1 = 0x1CB,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT3_A2 = 0x1CC,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT3_B = 0x1CD,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT4_A1 = 0x1CE,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT4_A2 = 0x1CF,
|
|
SCENE_MANTA_JPA_MS_MAN_HIT4_B = 0x1D0,
|
|
PARTICLE_MS_MPK_FIRE_A = 0x1D1,
|
|
PARTICLE_MS_MPK_FIRE_B = 0x1D2,
|
|
};
|
|
|
|
// NOTE: name fabricated, the map has no instantiation for this type.
|
|
enum E_SMS_EFFECT_ONETIME_INDIRECT /* 2 */ {
|
|
PARTICLE_MS_M_TOBIKOMI_C = 0x1D4,
|
|
PARTICLE_MS_M_TOBIKOMI_S_C = 0x1D5,
|
|
PARTICLE_MS_MARI_RAKUBALL = 0x1D8,
|
|
PARTICLE_MS_MARI_RAKUHAMON = 0x1D9,
|
|
MAP_POLLUTION_MS_NEWFIRE_B = 0x1DC,
|
|
PARTICLE_MS_RAKU_INDAWA = 0x1DA,
|
|
PARTICLE_MS_RAKU_KIE = 0x1DB,
|
|
MAP_MAP_GATE_MS_GATEHIT_A = 0x1DD,
|
|
MAP_MAP_GATE_MS_GATEHIT_B = 0x1DE,
|
|
GATEKEEPER_JPA_MS_GKPA_KEMURI = 0x1DF,
|
|
GATEKEEPER_JPA_MS_GKPA_KEMURI_W = 0x1E0,
|
|
MAP_MAP_MS_OBJUP_SLOPE_B = 0x1E1,
|
|
MAP_MAP_MS_OBJUP_MANIYA_B = 0x1E2,
|
|
MAP_MAP_MS_OBJUP_TOUDAI_B = 0x1E3,
|
|
MAP_MAP_MS_OBJUP_HOTEL_B = 0x1E4,
|
|
MAP_MAP_MS_MARE_OBJUP_B = 0x1E5,
|
|
};
|
|
|
|
enum E_SMS_EFFECT_LOOP_INDIRECT /* 3 */ {
|
|
PARTICLE_MS_M_HAMON_B = 0x1E8,
|
|
PARTICLE_MS_M_MZBHAMON_B = 0x1E9,
|
|
SCENE_BTELESA_JPA_MS_BTLS_SPICY_C = 0x1F0,
|
|
PARTICLE_MS_TEPPANFIRE_B = 0x1F1,
|
|
SCENE_TINKOOPA_JPA_MS_MKP_FIRE_C = 0x1F2,
|
|
KOOPA_JPA_MS_KP_FIRE_E = 0x1F3,
|
|
FIREWANWAN_JPA_MS_CAN_YUGAMI = 0x1F4,
|
|
PARTICLE_MS_MAP_FIRE_C = 0x1F5,
|
|
SCENE_MAPOBJ_MS_OBJ_HAMON_B = 0x1F6,
|
|
PARTICLE_MS_NPC_HAMON_B = 0x1F7,
|
|
PARTICLE_MS_MPK_FIRE_C = 0x1F8,
|
|
PARTICLE_MS_GESOSURF_A = 0x1E7,
|
|
PARTICLE_MS_M_WATSLIDE_A = 0x1EA,
|
|
PARTICLE_MS_MOE_FIRE_C = 0x1ED,
|
|
BWAN_JPA_MS_YUGAMI = 0x1EE,
|
|
};
|
|
|
|
// NOTE: doing this makes inlining work out, specializations DON'T.
|
|
template <class T> struct FabricatedParticleTypeToFlag;
|
|
template <> struct FabricatedParticleTypeToFlag<E_SMS_EFFECT_ONETIME_NORMAL> {
|
|
enum { value = TMarioParticleManager::EFFECT_ONETIME_NORMAL };
|
|
};
|
|
template <> struct FabricatedParticleTypeToFlag<E_SMS_EFFECT_LOOP_NORMAL> {
|
|
enum { value = TMarioParticleManager::EFFECT_LOOP_NORMAL };
|
|
};
|
|
template <> struct FabricatedParticleTypeToFlag<E_SMS_EFFECT_LOOP_INDIRECT> {
|
|
enum { value = TMarioParticleManager::EFFECT_LOOP_INDIRECT };
|
|
};
|
|
|
|
// TODO: the fabricated setScale inline is most likely incorrect.
|
|
|
|
template <class T>
|
|
JPABaseEmitter* SMS_EasyEmitParticle(T id, const JGeometry::TVec3<f32>* pos_ptr,
|
|
const void* identity,
|
|
const JGeometry::TVec3<f32>& scale)
|
|
{
|
|
JPABaseEmitter* emitter = gpMarioParticleManager->emitAndBindToPosPtr(
|
|
id, pos_ptr, FabricatedParticleTypeToFlag<T>::value, identity);
|
|
if (emitter)
|
|
emitter->setGlobalScale(scale);
|
|
return emitter;
|
|
}
|
|
|
|
template <class T>
|
|
JPABaseEmitter* SMS_EasyEmitParticle(T id, MtxPtr mtx_ptr, const void* identity,
|
|
const JGeometry::TVec3<f32>& scale)
|
|
{
|
|
JPABaseEmitter* emitter = gpMarioParticleManager->emitAndBindToMtxPtr(
|
|
id, mtx_ptr, FabricatedParticleTypeToFlag<T>::value, identity);
|
|
if (emitter)
|
|
emitter->setGlobalScale(scale);
|
|
return emitter;
|
|
}
|
|
|
|
#endif
|