@ -39,20 +39,12 @@ MonsterData monsterdata[] = {
{ 128 , 575 , " Monsters \\ SkelSd \\ SklSr%c.CL2 " , TRUE , " Monsters \\ SkelSd \\ SklSr%c%i.WAV " , FALSE , TRUE , " Monsters \\ SkelSd \\ Skelt.TRN " , { 13 , 8 , 12 , 7 , 15 , 16 } , { 4 , 0 , 0 , 0 , 0 , 0 } , " Corpse Captain " , 2 , 6 , 4 , 12 , 20 , AI_SKELSD , 0 , 1 , 30 , 8 , 3 , 9 , 0 , 0 , 0 , 0 , 5 , MC_UNDEAD , IMMUNE_MAGIC | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_NULL_40 , 0 , 3 , 200 } ,
{ 128 , 575 , " Monsters \\ SkelSd \\ SklSr%c.CL2 " , TRUE , " Monsters \\ SkelSd \\ SklSr%c%i.WAV " , FALSE , FALSE , NULL , { 13 , 8 , 12 , 7 , 15 , 16 } , { 4 , 0 , 0 , 0 , 0 , 0 } , " Burning Dead Captain " , 4 , 8 , 6 , 16 , 30 , AI_SKELSD , 0 , 2 , 35 , 8 , 4 , 10 , 0 , 0 , 0 , 0 , 15 , MC_UNDEAD , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_NULL_40 , 0 , 3 , 393 } ,
{ 128 , 575 , " Monsters \\ SkelSd \\ SklSr%c.CL2 " , TRUE , " Monsters \\ SkelSd \\ SklSr%c%i.WAV " , FALSE , TRUE , " Monsters \\ SkelSd \\ Black.TRN " , { 13 , 8 , 12 , 7 , 15 , 16 } , { 4 , 0 , 0 , 0 , 0 , 0 } , " Horror Captain " , 6 , 10 , 8 , 35 , 50 , AI_SKELSD , MFLAG_SEARCH , 3 , 40 , 8 , 5 , 14 , 0 , 0 , 0 , 0 , 30 , MC_UNDEAD , IMMUNE_MAGIC | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 604 } ,
# ifdef HELLFIRE
{ 128 , 800 , " Monsters \\ TSneak \\ TSneak%c.CL2 " , FALSE , " Monsters \\ TSneak \\ Sneakl%c%i.WAV " , FALSE , FALSE , NULL , { 13 , 13 , 15 , 11 , 16 , 0 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Invisible Lord " , 36 , 39 , 14 , 278 , 278 , AI_SKELSD , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 3 , 65 , 8 , 16 , 30 , 0 , 0 , 0 , 0 , 60 , MC_DEMON , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 2000 } ,
# else
{ 128 , 2000 , " Monsters \\ TSneak \\ TSneak%c.CL2 " , FALSE , " Monsters \\ TSneak \\ Sneakl%c%i.WAV " , FALSE , FALSE , NULL , { 13 , 13 , 15 , 11 , 16 , 0 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Invisible Lord " , 14 , 14 , 14 , 278 , 278 , AI_SKELSD , MFLAG_SEARCH , 3 , 65 , 8 , 16 , 30 , 0 , 0 , 0 , 0 , 60 , MC_DEMON , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 2000 } ,
# endif
{ 128 , 992 , " Monsters \\ Sneak \\ Sneak%c.CL2 " , TRUE , " Monsters \\ Sneak \\ Sneak%c%i.WAV " , FALSE , FALSE , NULL , { 16 , 8 , 12 , 8 , 24 , 15 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Hidden " , 3 , 8 , 5 , 8 , 24 , AI_SNEAK , MFLAG_HIDDEN , 0 , 35 , 8 , 3 , 6 , 0 , 0 , 0 , 0 , 25 , MC_DEMON , 0 , IMMUNE_NULL_40 , 0 , 3 , 278 } ,
{ 128 , 992 , " Monsters \\ Sneak \\ Sneak%c.CL2 " , TRUE , " Monsters \\ Sneak \\ Sneak%c%i.WAV " , FALSE , TRUE , " Monsters \\ Sneak \\ Sneakv2.TRN " , { 16 , 8 , 12 , 8 , 24 , 15 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Stalker " , 8 , 12 , 9 , 30 , 45 , AI_SNEAK , MFLAG_HIDDEN | MFLAG_SEARCH , 1 , 40 , 8 , 8 , 16 , 0 , 0 , 0 , 0 , 30 , MC_DEMON , 0 , IMMUNE_NULL_40 , 0 , 3 , 630 } ,
{ 128 , 992 , " Monsters \\ Sneak \\ Sneak%c.CL2 " , TRUE , " Monsters \\ Sneak \\ Sneak%c%i.WAV " , FALSE , TRUE , " Monsters \\ Sneak \\ Sneakv3.TRN " , { 16 , 8 , 12 , 8 , 24 , 15 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Unseen " , 10 , 14 , 11 , 35 , 50 , AI_SNEAK , MFLAG_HIDDEN | MFLAG_SEARCH , 2 , 45 , 8 , 12 , 20 , 0 , 0 , 0 , 0 , 30 , MC_DEMON , RESIST_MAGIC | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_NULL_40 , 0 , 3 , 935 } ,
{ 128 , 992 , " Monsters \\ Sneak \\ Sneak%c.CL2 " , TRUE , " Monsters \\ Sneak \\ Sneak%c%i.WAV " , FALSE , TRUE , " Monsters \\ Sneak \\ Sneakv1.TRN " , { 16 , 8 , 12 , 8 , 24 , 15 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Illusion Weaver " , 14 , 18 , 13 , 40 , 60 , AI_SNEAK , MFLAG_HIDDEN | MFLAG_SEARCH , 3 , 60 , 8 , 16 , 24 , 0 , 0 , 0 , 0 , 30 , MC_DEMON , RESIST_MAGIC | RESIST_FIRE , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_NULL_40 , 0 , 3 , 1500 } ,
# ifdef HELLFIRE
{ 160 , 800 , " Monsters \\ GoatLord \\ GoatL%c.CL2 " , FALSE , " Monsters \\ newsfx \\ Satyr%c%i.WAV " , FALSE , FALSE , NULL , { 13 , 13 , 14 , 9 , 16 , 0 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Satyr Lord " , 40 , 43 , 28 , 160 , 200 , AI_SKELSD , MFLAG_SEARCH , 3 , 90 , 8 , 20 , 30 , 0 , 0 , 0 , 0 , 70 , MC_ANIMAL , RESIST_FIRE | RESIST_LIGHTNING , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING , 0 , 3 , 2800 } ,
# else
{ 160 , 2000 , " Monsters \\ GoatLord \\ GoatL%c.CL2 " , FALSE , " Monsters \\ GoatLord \\ Goatl%c%i.WAV " , FALSE , FALSE , NULL , { 13 , 13 , 14 , 9 , 16 , 0 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Lord Sayter " , 13 , 13 , 12 , 351 , 351 , AI_SKELSD , MFLAG_SEARCH , 3 , 80 , 8 , 14 , 24 , 0 , 0 , 0 , 0 , 60 , MC_DEMON , RESIST_MAGIC | RESIST_FIRE | IMMUNE_NULL_40 , RESIST_MAGIC | RESIST_FIRE | IMMUNE_NULL_40 , 0 , 3 , 1500 } ,
# endif
{ 128 , 1030 , " Monsters \\ GoatMace \\ Goat%c.CL2 " , TRUE , " Monsters \\ GoatMace \\ Goat%c%i.WAV " , FALSE , FALSE , NULL , { 12 , 8 , 12 , 6 , 20 , 12 } , { 2 , 0 , 0 , 0 , 1 , 0 } , " Flesh Clan " , 6 , 10 , 8 , 30 , 45 , AI_GOATMC , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 0 , 50 , 8 , 4 , 10 , 0 , 0 , 0 , 0 , 40 , MC_DEMON , 0 , 0 , 0 , 3 , 460 } ,
{ 128 , 1030 , " Monsters \\ GoatMace \\ Goat%c.CL2 " , TRUE , " Monsters \\ GoatMace \\ Goat%c%i.WAV " , FALSE , TRUE , " Monsters \\ GoatMace \\ Beige.TRN " , { 12 , 8 , 12 , 6 , 20 , 12 } , { 2 , 0 , 0 , 0 , 1 , 0 } , " Stone Clan " , 8 , 12 , 10 , 40 , 55 , AI_GOATMC , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 1 , 60 , 8 , 6 , 12 , 0 , 0 , 0 , 0 , 40 , MC_DEMON , RESIST_MAGIC | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_NULL_40 , 0 , 3 , 685 } ,
{ 128 , 1030 , " Monsters \\ GoatMace \\ Goat%c.CL2 " , TRUE , " Monsters \\ GoatMace \\ Goat%c%i.WAV " , FALSE , TRUE , " Monsters \\ GoatMace \\ Red.TRN " , { 12 , 8 , 12 , 6 , 20 , 12 } , { 2 , 0 , 0 , 0 , 1 , 0 } , " Fire Clan " , 10 , 14 , 12 , 50 , 65 , AI_GOATMC , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 2 , 70 , 8 , 8 , 16 , 0 , 0 , 0 , 0 , 45 , MC_DEMON , RESIST_FIRE , IMMUNE_FIRE , 0 , 3 , 906 } ,
@ -87,34 +79,19 @@ MonsterData monsterdata[] = {
{ 160 , 1630 , " Monsters \\ Rhino \\ Rhino%c.CL2 " , TRUE , " Monsters \\ Rhino \\ Rhino%c%i.WAV " , TRUE , TRUE , " Monsters \\ Rhino \\ Orange.TRN " , { 8 , 8 , 14 , 6 , 16 , 6 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Mud Runner " , 14 , 18 , 15 , 50 , 90 , AI_RHINO , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 1 , 70 , 7 , 6 , 18 , 100 , 0 , 12 , 36 , 45 , MC_ANIMAL , 0 , RESIST_FIRE , 0 , 7 , 1404 } ,
{ 160 , 1630 , " Monsters \\ Rhino \\ Rhino%c.CL2 " , TRUE , " Monsters \\ Rhino \\ Rhino%c%i.WAV " , TRUE , TRUE , " Monsters \\ Rhino \\ Blue.TRN " , { 8 , 8 , 14 , 6 , 16 , 6 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Frost Charger " , 16 , 20 , 17 , 60 , 100 , AI_RHINO , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 2 , 80 , 7 , 8 , 20 , 100 , 0 , 20 , 40 , 50 , MC_ANIMAL , IMMUNE_MAGIC | RESIST_LIGHTNING , IMMUNE_MAGIC | RESIST_LIGHTNING , 0 , 7 , 1720 } ,
{ 160 , 1630 , " Monsters \\ Rhino \\ Rhino%c.CL2 " , TRUE , " Monsters \\ Rhino \\ Rhino%c%i.WAV " , TRUE , TRUE , " Monsters \\ Rhino \\ RhinoB.TRN " , { 8 , 8 , 14 , 6 , 16 , 6 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Obsidian Lord " , 18 , 22 , 19 , 70 , 110 , AI_RHINO , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 3 , 90 , 7 , 10 , 22 , 100 , 0 , 20 , 50 , 55 , MC_ANIMAL , IMMUNE_MAGIC | RESIST_LIGHTNING , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING , 0 , 7 , 1809 } ,
# ifdef HELLFIRE
{ 128 , 1740 , " Monsters \\ Demskel \\ Demskl%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , FALSE , " Monsters \\ Thin \\ Thinv3.TRN " , { 10 , 8 , 20 , 6 , 24 , 16 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " oldboned " , 46 , 47 , 12 , 70 , 70 , AI_STORM , 0 , 0 , 60 , 8 , 6 , 14 , 12 , 0 , 0 , 0 , 50 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_NULL_40 , 0 , 7 , 1344 } ,
# else
{ 128 , 1740 , " Monsters \\ Demskel \\ Demskl%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , FALSE , " Monsters \\ Thin \\ Thinv3.TRN " , { 10 , 8 , 20 , 6 , 24 , 16 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Bone Demon " , 10 , 14 , 12 , 70 , 70 , AI_STORM , 0 , 0 , 60 , 8 , 6 , 14 , 12 , 0 , 0 , 0 , 50 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_NULL_40 , 0 , 7 , 1344 } ,
# endif
{ 160 , 1740 , " Monsters \\ Thin \\ Thin%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , TRUE , " Monsters \\ Thin \\ Thinv3.TRN " , { 8 , 8 , 18 , 4 , 17 , 14 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Red Death " , 14 , 18 , 16 , 96 , 96 , AI_STORM , 0 , 1 , 75 , 5 , 10 , 20 , 0 , 0 , 0 , 0 , 60 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE , IMMUNE_MAGIC | IMMUNE_FIRE , 0 , 7 , 2168 } ,
{ 160 , 1740 , " Monsters \\ Thin \\ Thin%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , TRUE , " Monsters \\ Thin \\ Thinv3.TRN " , { 8 , 8 , 18 , 4 , 17 , 14 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Litch Demon " , 16 , 20 , 18 , 110 , 110 , AI_STORM , 0 , 2 , 80 , 5 , 10 , 24 , 0 , 0 , 0 , 0 , 45 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 0 , 7 , 2736 } ,
{ 160 , 1740 , " Monsters \\ Thin \\ Thin%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , TRUE , " Monsters \\ Thin \\ Thinv3.TRN " , { 8 , 8 , 18 , 4 , 17 , 14 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Undead Balrog " , 20 , 24 , 22 , 130 , 130 , AI_STORM , 0 , 3 , 85 , 5 , 12 , 30 , 0 , 0 , 0 , 0 , 65 , MC_DEMON , IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 7 , 3575 } ,
# ifdef HELLFIRE
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Incinerator " , 40 , 43 , 16 , 30 , 45 , AI_FIREMAN , 0 , 0 , 75 , 8 , 8 , 16 , 0 , 0 , 0 , 0 , 25 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE , IMMUNE_MAGIC | IMMUNE_FIRE , 0 , 3 , 1888 } ,
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Flame Lord " , 42 , 45 , 18 , 40 , 55 , AI_FIREMAN , 0 , 1 , 75 , 8 , 10 , 20 , 0 , 0 , 0 , 0 , 25 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE , IMMUNE_MAGIC | IMMUNE_FIRE , 0 , 3 , 2250 } ,
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Doom Fire " , 44 , 47 , 20 , 50 , 65 , AI_FIREMAN , 0 , 2 , 80 , 8 , 12 , 24 , 0 , 0 , 0 , 0 , 30 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , 0 , 3 , 2740 } ,
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Hell Burner " , 46 , 47 , 22 , 60 , 80 , AI_FIREMAN , 0 , 3 , 85 , 8 , 15 , 30 , 0 , 0 , 0 , 0 , 30 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , 0 , 3 , 3355 } ,
# else
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Incinerator " , 14 , 18 , 16 , 30 , 45 , AI_FIREMAN , 0 , 0 , 75 , 8 , 8 , 16 , 0 , 0 , 0 , 0 , 25 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE , IMMUNE_MAGIC | IMMUNE_FIRE , 0 , 3 , 1888 } ,
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Flame Lord " , 16 , 20 , 18 , 40 , 55 , AI_FIREMAN , 0 , 1 , 75 , 8 , 10 , 20 , 0 , 0 , 0 , 0 , 25 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE , IMMUNE_MAGIC | IMMUNE_FIRE , 0 , 3 , 2250 } ,
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Doom Fire " , 18 , 22 , 20 , 50 , 65 , AI_FIREMAN , 0 , 2 , 80 , 8 , 12 , 24 , 0 , 0 , 0 , 0 , 30 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , 0 , 3 , 2740 } ,
{ 128 , 1460 , " Monsters \\ Fireman \\ FireM%c.CL2 " , TRUE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 19 , 20 , 8 , 14 , 23 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Hell Burner " , 20 , 24 , 22 , 60 , 80 , AI_FIREMAN , 0 , 3 , 85 , 8 , 15 , 30 , 0 , 0 , 0 , 0 , 30 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING , 0 , 3 , 3355 } ,
# endif
{ 160 , 1740 , " Monsters \\ Thin \\ Thin%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , TRUE , " Monsters \\ Thin \\ Thinv3.TRN " , { 8 , 8 , 18 , 4 , 17 , 14 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Red Storm " , 17 , 21 , 18 , 55 , 110 , AI_STORM , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 0 , 80 , 5 , 8 , 18 , 75 , 8 , 4 , 16 , 30 , MC_DEMON , IMMUNE_MAGIC | RESIST_LIGHTNING , IMMUNE_MAGIC | IMMUNE_LIGHTNING , 0 , 7 , 2160 } ,
{ 160 , 1740 , " Monsters \\ Thin \\ Thin%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , FALSE , NULL , { 8 , 8 , 18 , 4 , 17 , 14 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Storm Rider " , 19 , 23 , 20 , 60 , 120 , AI_STORM , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 1 , 80 , 5 , 8 , 18 , 80 , 8 , 4 , 16 , 30 , MC_DEMON , RESIST_MAGIC | IMMUNE_LIGHTNING , IMMUNE_MAGIC | IMMUNE_LIGHTNING , 0 , 7 , 2391 } ,
{ 160 , 1740 , " Monsters \\ Thin \\ Thin%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , TRUE , " Monsters \\ Thin \\ Thinv2.TRN " , { 8 , 8 , 18 , 4 , 17 , 14 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Storm Lord " , 21 , 25 , 22 , 75 , 135 , AI_STORM , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 2 , 85 , 5 , 12 , 24 , 75 , 8 , 4 , 16 , 35 , MC_DEMON , RESIST_MAGIC | IMMUNE_LIGHTNING , IMMUNE_MAGIC | IMMUNE_LIGHTNING , 0 , 7 , 2775 } ,
{ 160 , 1740 , " Monsters \\ Thin \\ Thin%c.CL2 " , TRUE , " Monsters \\ Thin \\ Thin%c%i.WAV " , TRUE , TRUE , " Monsters \\ Thin \\ Thinv1.TRN " , { 8 , 8 , 18 , 4 , 17 , 14 } , { 3 , 0 , 0 , 0 , 0 , 0 } , " Maelstorm " , 23 , 27 , 24 , 90 , 150 , AI_STORM , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 3 , 90 , 5 , 12 , 28 , 75 , 8 , 4 , 16 , 40 , MC_DEMON , RESIST_MAGIC | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 0 , 7 , 3177 } ,
# ifdef HELLFIRE
{ 128 , 800 , " Monsters \\ BigFall \\ Fallg%c.CL2 " , TRUE , " Monsters \\ newsfx \\ KBrute%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 8 , 11 , 8 , 17 , 0 } , { 0 , 0 , 0 , 0 , 2 , 2 } , " Devil Kin Brute " , 40 , 43 , 27 , 120 , 160 , AI_SKELSD , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 3 , 100 , 6 , 18 , 24 , 0 , 0 , 0 , 0 , 70 , MC_ANIMAL , RESIST_FIRE | RESIST_LIGHTNING , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING , 0 , 3 , 2400 } ,
# else
{ 128 , 1650 , " Monsters \\ BigFall \\ Fallg%c.CL2 " , TRUE , " Monsters \\ BigFall \\ Bfal%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 8 , 11 , 8 , 17 , 0 } , { 0 , 0 , 0 , 0 , 2 , 2 } , " Devil Kin Brute " , 20 , 20 , 24 , 160 , 220 , AI_SKELSD , MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR , 3 , 100 , 6 , 18 , 24 , 0 , 0 , 0 , 0 , 75 , MC_ANIMAL , 0 , 0 , 0 , 6 , 2000 } ,
# endif
{ 160 , 1650 , " Monsters \\ Gargoyle \\ Gargo%c.CL2 " , TRUE , " Monsters \\ Gargoyle \\ Gargo%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 14 , 14 , 10 , 18 , 14 } , { 0 , 0 , 0 , 0 , 0 , 2 } , " Winged-Demon " , 8 , 12 , 9 , 45 , 60 , AI_GARG , MFLAG_CAN_OPEN_DOOR , 0 , 50 , 7 , 10 , 16 , 0 , 0 , 0 , 0 , 45 , MC_DEMON , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_NULL_40 , 0 , 6 , 662 } ,
{ 160 , 1650 , " Monsters \\ Gargoyle \\ Gargo%c.CL2 " , TRUE , " Monsters \\ Gargoyle \\ Gargo%c%i.WAV " , FALSE , TRUE , " Monsters \\ Gargoyle \\ GarE.TRN " , { 14 , 14 , 14 , 10 , 18 , 14 } , { 0 , 0 , 0 , 0 , 0 , 2 } , " Gargoyle " , 12 , 16 , 13 , 60 , 90 , AI_GARG , MFLAG_CAN_OPEN_DOOR , 1 , 65 , 7 , 10 , 16 , 0 , 0 , 0 , 0 , 45 , MC_DEMON , IMMUNE_MAGIC | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 0 , 6 , 1205 } ,
{ 160 , 1650 , " Monsters \\ Gargoyle \\ Gargo%c.CL2 " , TRUE , " Monsters \\ Gargoyle \\ Gargo%c%i.WAV " , FALSE , TRUE , " Monsters \\ Gargoyle \\ GargBr.TRN " , { 14 , 14 , 14 , 10 , 18 , 14 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Blood Claw " , 16 , 20 , 19 , 75 , 125 , AI_GARG , MFLAG_CAN_OPEN_DOOR , 2 , 80 , 7 , 14 , 22 , 0 , 0 , 0 , 0 , 50 , MC_DEMON , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 6 , 1873 } ,
@ -131,17 +108,10 @@ MonsterData monsterdata[] = {
{ 160 , 2120 , " Monsters \\ Black \\ Black%c.CL2 " , FALSE , " Monsters \\ Black \\ Black%c%i.WAV " , FALSE , TRUE , " Monsters \\ Black \\ BlkKntRT.TRN " , { 8 , 8 , 16 , 4 , 24 , 0 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Doom Guard " , 25 , 29 , 26 , 165 , 165 , AI_SKELSD , MFLAG_SEARCH , 0 , 130 , 8 , 18 , 25 , 0 , 0 , 0 , 0 , 75 , MC_DEMON , RESIST_MAGIC | RESIST_FIRE | IMMUNE_NULL_40 , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_NULL_40 , 0 , 7 , 3650 } ,
{ 160 , 2120 , " Monsters \\ Black \\ Black%c.CL2 " , FALSE , " Monsters \\ Black \\ Black%c%i.WAV " , FALSE , TRUE , " Monsters \\ Black \\ BlkKntBT.TRN " , { 8 , 8 , 16 , 4 , 24 , 0 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Steel Lord " , 27 , 30 , 28 , 180 , 180 , AI_SKELSD , MFLAG_SEARCH , 1 , 120 , 8 , 20 , 30 , 0 , 0 , 0 , 0 , 80 , MC_DEMON , RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 7 , 4252 } ,
{ 160 , 2120 , " Monsters \\ Black \\ Black%c.CL2 " , FALSE , " Monsters \\ Black \\ Black%c%i.WAV " , FALSE , TRUE , " Monsters \\ Black \\ BlkKntBe.TRN " , { 8 , 8 , 16 , 4 , 24 , 0 } , { 2 , 0 , 0 , 0 , 0 , 0 } , " Blood Knight " , 24 , 26 , 30 , 200 , 200 , AI_SKELSD , MFLAG_SEARCH , 1 , 130 , 8 , 25 , 35 , 0 , 0 , 0 , 0 , 85 , MC_DEMON , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 0 , 7 , 5130 } ,
# ifdef HELLFIRE
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ newsfx \\ Shred%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " The Shredded " , 32 , 35 , 23 , 70 , 90 , AI_SKELSD , 0 , 0 , 75 , 7 , 4 , 12 , 0 , 0 , 0 , 0 , 65 , MC_UNDEAD , RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 900 } ,
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Hollow One " , 34 , 37 , 27 , 135 , 240 , AI_SKELSD , 0 , 1 , 75 , 7 , 12 , 24 , 0 , 0 , 0 , 0 , 75 , MC_UNDEAD , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 4374 } ,
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Pain Master " , 36 , 39 , 29 , 110 , 200 , AI_SKELSD , 0 , 2 , 80 , 7 , 16 , 30 , 0 , 0 , 0 , 0 , 80 , MC_UNDEAD , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 5147 } ,
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Reality Weaver " , 38 , 39 , 30 , 135 , 240 , AI_SKELSD , 0 , 3 , 85 , 7 , 20 , 35 , 0 , 0 , 0 , 0 , 85 , MC_UNDEAD , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 5925 } ,
# else
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Unraveler " , 26 , 28 , 25 , 70 , 150 , AI_SKELSD , 0 , 0 , 75 , 7 , 10 , 20 , 0 , 0 , 0 , 0 , 70 , MC_UNDEAD , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 3812 } ,
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Hollow One " , 28 , 30 , 27 , 135 , 240 , AI_SKELSD , 0 , 1 , 75 , 7 , 12 , 24 , 0 , 0 , 0 , 0 , 75 , MC_UNDEAD , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 4374 } ,
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Pain Master " , 27 , 30 , 29 , 110 , 200 , AI_SKELSD , 0 , 2 , 80 , 7 , 16 , 30 , 0 , 0 , 0 , 0 , 80 , MC_UNDEAD , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 5147 } ,
{ 96 , 484 , " Monsters \\ Unrav \\ Unrav%c.CL2 " , FALSE , " Monsters \\ Acid \\ Acid%c%i.WAV " , FALSE , FALSE , NULL , { 10 , 10 , 12 , 5 , 16 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Reality Weaver " , 28 , 30 , 30 , 135 , 240 , AI_SKELSD , 0 , 3 , 85 , 7 , 20 , 35 , 0 , 0 , 0 , 0 , 85 , MC_UNDEAD , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 5925 } ,
# endif
{ 128 , 980 , " Monsters \\ Succ \\ Scbs%c.CL2 " , FALSE , " Monsters \\ Succ \\ Scbs%c%i.WAV " , FALSE , FALSE , NULL , { 14 , 8 , 16 , 7 , 24 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Succubus " , 22 , 26 , 24 , 120 , 150 , AI_SUCC , MFLAG_CAN_OPEN_DOOR , 0 , 100 , 10 , 1 , 20 , 0 , 0 , 0 , 0 , 60 , MC_DEMON , RESIST_MAGIC , IMMUNE_MAGIC | RESIST_FIRE , 0 , 3 , 3696 } ,
{ 128 , 980 , " Monsters \\ Succ \\ Scbs%c.CL2 " , FALSE , " Monsters \\ Succ \\ Scbs%c%i.WAV " , FALSE , TRUE , " Monsters \\ Succ \\ Succb.TRN " , { 14 , 8 , 16 , 7 , 24 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 } , " Snow Witch " , 25 , 28 , 26 , 135 , 175 , AI_SUCC , MFLAG_CAN_OPEN_DOOR , 1 , 110 , 10 , 1 , 24 , 0 , 0 , 0 , 0 , 65 , MC_DEMON , RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | RESIST_LIGHTNING | IMMUNE_NULL_40 , 0 , 3 , 4084 } ,
# ifdef HELLFIRE
@ -194,11 +164,7 @@ MonsterData monsterdata[] = {
/**
* Map between . DUN file value and monster type enum
*/
# ifdef HELLFIRE
int MonstConvTbl [ ] = {
# else
char MonstConvTbl [ ] = {
# endif
MT_NZOMBIE ,
MT_BZOMBIE ,
MT_GZOMBIE ,
@ -364,11 +330,7 @@ char MonstConvTbl[] = {
/**
* Define what version a monster type is available in
*/
# ifdef HELLFIRE
int MonstAvailTbl [ ] = {
# else
char MonstAvailTbl [ ] = {
# endif
MAT_ALWAYS , // Zombie
MAT_ALWAYS , // Ghoul
MAT_ALWAYS , // Rotting Carcass
@ -402,11 +364,7 @@ char MonstAvailTbl[] = {
MAT_RETAIL , // Stalker
MAT_RETAIL , // Unseen
MAT_RETAIL , // Illusion Weaver
# ifdef HELLFIRE
MAT_RETAIL , // Satyr Lord
# else
MAT_NEVER , // Lord Sayter
# endif
MAT_RETAIL , // Flesh Clan
MAT_RETAIL , // Stone Clan
MAT_RETAIL , // Fire Clan
@ -453,11 +411,7 @@ char MonstAvailTbl[] = {
MAT_RETAIL , // Storm Rider
MAT_RETAIL , // Storm Lord
MAT_RETAIL , // Maelstorm
# ifdef HELLFIRE
MAT_RETAIL , // Devil Kin Brute
# else
MAT_NEVER , // Devil Kin Brute
# endif
MAT_RETAIL , // Winged-Demon
MAT_RETAIL , // Gargoyle
MAT_RETAIL , // Blood Claw
@ -474,11 +428,7 @@ char MonstAvailTbl[] = {
MAT_RETAIL , // Doom Guard
MAT_RETAIL , // Steel Lord
MAT_RETAIL , // Blood Knight
# ifdef HELLFIRE
MAT_RETAIL , // The Shredded
# else
MAT_NEVER , // Unraveler
# endif
MAT_NEVER , // Hollow One
MAT_NEVER , // Pain Master
MAT_NEVER , // Reality Weaver
@ -493,7 +443,6 @@ char MonstAvailTbl[] = {
MAT_NEVER , // Golem
MAT_NEVER , // The Dark Lord
MAT_NEVER , // The Arch-Litch Malignus
# ifdef HELLFIRE
MAT_RETAIL , // Hellboar
MAT_RETAIL , // Stinger
MAT_RETAIL , // Psychorb
@ -520,7 +469,6 @@ char MonstAvailTbl[] = {
MAT_RETAIL , // Flesh Thing
MAT_RETAIL , // Reaper
MAT_NEVER , // Na-Krul
# endif
} ;
/** Contains the data related to each unique monster ID. */
UniqMonstStruct UniqMonst [ ] = {