diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/effects.cpp | 67 | ||||
-rw-r--r-- | src/effects.h | 5 |
2 files changed, 55 insertions, 17 deletions
diff --git a/src/effects.cpp b/src/effects.cpp index 68294a1..8d0e565 100644 --- a/src/effects.cpp +++ b/src/effects.cpp @@ -1,7 +1,7 @@ #include "effects.h" const char* effects_name_list [] = { - "Wm_mr_2dlandsmoke", + "Wm_mr_2dlandsmoke", // 0000 "Wm_mr_cmnsndlandsmk", "Wm_mr_cmnlandsmoke", "Wm_en_landsmoke", @@ -11,7 +11,7 @@ const char* effects_name_list [] = { "Wm_en_burst_big", "Wm_en_burst_m", "Wm_en_burst_s", - "Wm_en_burst_ss", + "Wm_en_burst_ss", // 0010 "Wm_en_burst_water01", "Wm_en_burst_water02", "Wm_en_cmnwatertail", @@ -21,7 +21,7 @@ const char* effects_name_list [] = { "Wm_en_waterwave_in", "Wm_en_waterwave_in_a", "Wm_en_waterwave_in_b", - "Wm_en_firevanish", + "Wm_en_firevanish", // 0020 "Wm_en_watersplash", "Wm_en_watersplash_cld", "Wm_mr_watersplash", @@ -31,7 +31,7 @@ const char* effects_name_list [] = { "Wm_en_poisonwave_a", "Wm_en_poisonwave_b", "Wm_en_cmnmagmawave", - "Wm_en_magmawave", + "Wm_en_magmawave", // 0030 "Wm_en_magmawave_a", "Wm_en_magmawave_b", "Wm_en_vshit", @@ -41,7 +41,7 @@ const char* effects_name_list [] = { "Wm_en_vshit_ring", "Wm_en_comattack", "Wm_ob_cmnshotstar", - "Wm_ob_cmnshothit", + "Wm_ob_cmnshothit", // 0040 "Wm_ob_cmnshotspark", "Wm_ob_cmnsparkloop", "Wm_ob_cmnspark", @@ -51,7 +51,7 @@ const char* effects_name_list [] = { "Wm_ob_cmnboxsmoke", "Wm_ob_cmnboxgrain", "Wm_en_hit", - "Wm_en_hit_ring", + "Wm_en_hit_ring", // 0050 "Wm_mr_misshit", "Wm_mr_misshit_ring", "Wm_en_quicksand", @@ -61,7 +61,7 @@ const char* effects_name_list [] = { "Wm_mr_landsmoke", "Wm_mr_landsmoke_s", "Wm_mr_landsmoke_ss", - "Wm_mr_sealandsmk", + "Wm_mr_sealandsmk", // 0060 "Wm_mr_sealandsmk_s", "Wm_mr_sealandsmk_ss", "Wm_mr_sndlandsmk", @@ -71,7 +71,7 @@ const char* effects_name_list [] = { "Wm_mr_beachlandsmk_s", "Wm_mr_beachlandsmk_ss", "Wm_mr_slipsmoke", - "Wm_mr_slipsmoke_ss", + "Wm_mr_slipsmoke_ss", // 0070 "Wm_mr_slipsmoke_big", "Wm_mr_sndslipsmk", "Wm_mr_sndslipsmk_ss", @@ -81,7 +81,7 @@ const char* effects_name_list [] = { "Wm_mr_iceslipsmk_ss", "Wm_mr_brakesmoke", "Wm_mr_brakesmoke_ss", - "Wm_mr_sndbrakesmk", + "Wm_mr_sndbrakesmk", // 0080 "Wm_mr_sndbrakesmk_ss", "Wm_mr_beachbrakesmk", "Wm_mr_beachbrakesmk_ss", @@ -91,7 +91,7 @@ const char* effects_name_list [] = { "Wm_mr_quicksand", "Wm_mr_swimpaddle", "Wm_mr_flutterkick", - "Wm_mr_ivy", + "Wm_mr_ivy", // 0090 "Wm_en_firebar_fire", "Wm_en_firebar_ind", "Wm_en_firebar", @@ -101,7 +101,7 @@ const char* effects_name_list [] = { "Wm_mr_iceball_a", "Wm_mr_iceball_b", "Wm_mr_iceball", - "Wm_ob_icemisshit", + "Wm_ob_icemisshit", // 0100 "Wm_ob_icemisshit_smk", "Wm_mr_fireball_hit", "Wm_mr_fireball_hit01", @@ -112,7 +112,7 @@ const char* effects_name_list [] = { "Wm_mr_movecliff", "Wm_mr_cliffcatch", "Wm_mr_cliffcatch_cd", - "Wm_en_iron", + "Wm_en_iron", // 0110 "Wm_mr_wallkick_r", "Wm_mr_wallkick_up_r", "Wm_mr_wallkick_cld_r", @@ -122,7 +122,7 @@ const char* effects_name_list [] = { "Wm_mr_wallkick_l", "Wm_mr_wallkick_up_l", "Wm_mr_wallkick_cld_l", - "Wm_mr_wallkick_dn_l", + "Wm_mr_wallkick_dn_l", // 0120 "Wm_mr_wallkick_c_l", "Wm_mr_wallkick_b_l", "Wm_mr_wallkick_s_r", @@ -132,7 +132,7 @@ const char* effects_name_list [] = { "Wm_mr_wallkick_c_s_r", "Wm_mr_wallkick_b_s_r", "Wm_mr_wallkick_s_l", - "Wm_mr_wallkick_up_s_l", + "Wm_mr_wallkick_up_s_l", // 0130 "Wm_mr_wallkick_cld_s_l", "Wm_mr_wallkick_dn_s_l", "Wm_mr_wallkick_c_s_l", @@ -1010,11 +1010,44 @@ extern "C" void SpawnEffect(const char*, int, Vec*, int, int); bool CreateEffect(dEn_c* enemy, int effect_num) { if (effect_num > 1000) return false; - if (effect_num < 1000) + if (effect_num < 0) return false; Vec tempVec = (Vec){ enemy->pos.x, enemy->pos.y, 5500.0 }; const char* effect_name = effects_name_list[effect_num]; - SpawnEffect(effect_name, 0, &tempVec, 0, 0); - return true; + return SpawnEffect(effect_name, 0, &tempVec, 0, 0); +} + +bool CreateEffect(Vec* pos, S16Vec* rot, Vec* scale, int effect_num) { + if (effect_num > 1000) + return false; + if (effect_num < 0) + return false; + Vec tempVec = (Vec){ pos.x, pos.y, 5500.0 }; + const char* effect_name = effects_name_list[effect_num]; + return SpawnEffect(effect_name, 0, &tempVec, rot, scale); +} + +bool CreateEffect(const char* name, Vec* pos) { + //check effects name list + bool exists = false; + for( int ii = 0; ii < sizeof(effect_name_list); ii++) { + if (strncmp(name, effects_name_list[ii], strlen(effects_name_list) ) ) { + exists = true; + break; + } + } + if (!exists) + return false; + return SpawnEffect(name, 0, pos, 0, 0); +} + +/* +void* CustomEffectSpawn(const char* name) { + // FILL ME IN + + //EGG::Effect* effect = new EGG::Effect(); + + // SKIP THE DTOR } +*/ diff --git a/src/effects.h b/src/effects.h index f3dad62..ea4ba2a 100644 --- a/src/effects.h +++ b/src/effects.h @@ -5,5 +5,10 @@ #include <game.h> bool CreateEffect(dEn_c* enemy, int effect_num); +bool CreateEffect(Vec* pos, S16Vec* rot, Vec* scale, int effect_num); +bool CreateEffect(const char* name, Vec* pos); + +// Actually will return an EGG::Effect instance +//void* CustomEffectSpawn(const char* name); #endif |