623 lines
20 KiB
C++
623 lines
20 KiB
C++
/*
|
|
* $Header: /H2 Mission Pack/HCode/spawn.hc 21 3/03/98 7:34p Mgummelt $
|
|
*/
|
|
float ENT_WORLD = 0;
|
|
float ENT_CHAIR = 1;
|
|
float ENT_BARSTOOL = 2;
|
|
float ENT_BOOKOPEN = 3;
|
|
float ENT_BOOKCLOSED = 4;
|
|
float ENT_TREEDEAD = 5;
|
|
float ENT_TREE = 6;
|
|
float ENT_TREETOP = 7;
|
|
float ENT_CART = 8;
|
|
float ENT_CHEST1 = 9;
|
|
float ENT_CHEST2 = 10;
|
|
float ENT_BOULDER = 11;
|
|
float ENT_SWORD = 12;
|
|
float ENT_BALLISTA = 13;
|
|
float ENT_BELL = 14;
|
|
float ENT_STATUE_MUMMYHEAD = 15;
|
|
float ENT_POT1 = 16;
|
|
float ENT_POT2 = 17;
|
|
float ENT_POT3 = 18;
|
|
float ENT_STATUE_TUT = 19;
|
|
float ENT_FLAG = 20;
|
|
float ENT_STATUE_SNAKE = 21;
|
|
float ENT_HEDGE1 = 22;
|
|
float ENT_HEDGE2 = 23;
|
|
float ENT_HEDGE3 = 24;
|
|
float ENT_FOUNTAIN = 25;
|
|
float ENT_BUSH1 = 26;
|
|
float ENT_TOMBSTONE1 = 27;
|
|
float ENT_TOMBSTONE2 = 28;
|
|
float ENT_CAULDRON = 29;
|
|
float ENT_SKULLSTICK = 30;
|
|
float ENT_BEEFSLAB = 31;
|
|
float ENT_SEAWEED = 32;
|
|
float ENT_MUMMY = 33;
|
|
float ENT_ARCHER = 34;
|
|
float ENT_MUMMY_ARM = 35;
|
|
float ENT_MUMMY_LEG = 36;
|
|
float ENT_MUMMY_FIRE = 37;
|
|
float ENT_MUMMY_MISSILE = 38;
|
|
float ENT_WEAPON42_ART = 39;
|
|
float ENT_WEAPON41_ART = 40;
|
|
float ENT_WEAPON3_ART = 41;
|
|
float ENT_WEAPON2_ART = 42;
|
|
float ENT_SWIPE = 43;
|
|
float ENT_VORP_MISSILE = 44;
|
|
float ENT_AXE_BLADE = 45;
|
|
float ENT_STATUE_LION = 46;
|
|
float ENT_CORPSE2 = 47;
|
|
float ENT_CORPSE1 = 48;
|
|
float ENT_BENCH = 49;
|
|
float ENT_FENCE = 50;
|
|
float ENT_STATUE_ANGEL = 51;
|
|
float ENT_SHEEP = 52;
|
|
float ENT_BARREL = 53;
|
|
float ENT_WEB = 54;
|
|
float ENT_STATUE_MUMMY_HEAD = 55;
|
|
float ENT_STATUE_MUMMY_BODY = 56;
|
|
float ENT_GLYPH = 57;
|
|
float ENT_FANGEL = 58;
|
|
float ENT_STATUE_ATHENA = 59;
|
|
float ENT_STATUE_NEPTUNE = 60;
|
|
float ENT_BONEPILE = 61;
|
|
float ENT_CHEST3 = 62;
|
|
float ENT_STATUE_CAESAR = 63;
|
|
float ENT_TELEPORT = 64;
|
|
float ENT_STATUE_SNAKE_COIL = 65;
|
|
float ENT_SKULL = 66;
|
|
float ENT_PEW = 67;
|
|
float ENT_STATUE_OLMEC = 68;
|
|
float ENT_STATUE_MARS = 69;
|
|
float ENT_PLAYERHEAD = 70;
|
|
float ENT_STATUE_KING = 71;
|
|
float ENT_PLANT_GENERIC = 72;
|
|
float ENT_PLANT_MESO = 73;
|
|
float ENT_PLANT_ROME = 74;
|
|
float ENT_FANGEL_HEAD = 75;
|
|
float ENT_CANDLE = 76;
|
|
float ENT_SKELETON = 77;
|
|
float ENT_STALAG1 = 78;
|
|
float ENT_STALAG2 = 79;
|
|
float ENT_SNOW_CORNER = 80;
|
|
float ENT_SNOW_PILE = 81;
|
|
float ENT_SNOW_WALL = 82;
|
|
float ENT_CH_KITE = 83;
|
|
float ENT_CH_HANG = 84;
|
|
float ENT_BUDDHA = 85;
|
|
float ENT_SKELTHRN = 86;
|
|
float ENT_DEMSTAT = 87;
|
|
float ENT_SHIVA = 88;
|
|
float ENT_BOTD = 89;
|
|
float ENT_SAMURAI = 90;
|
|
float ENT_DRAGLION = 91;
|
|
|
|
//float ENT_LASTENT = 91;
|
|
|
|
|
|
|
|
|
|
float SPAWNVALU_SIZE = 6; // Number of fields for each entity in entity_spawnvalues array
|
|
|
|
float MASS_OFS = 1;
|
|
float MOVETYPE_OFS = 2;
|
|
float SOLIDTYPE_OFS = 3;
|
|
float THINGTYPE_OFS = 4;
|
|
float DAMAGETYPE_OFS = 5;
|
|
|
|
//SPAWNVALU_SIZE * ENT_LASTENT
|
|
float entity_spawnvalues[552] =//6 per entity
|
|
{ // Health Mass Movetype Solid Thingtype DamageType
|
|
25, 3, 0, 0, 2, 1, // ENT_WORLD
|
|
25, 3, 13, 3, 2, 1, // ENT_CHAIR
|
|
25, 3, 13, 3, 2, 1, // ENT_BARSTOOL
|
|
20, 0, 0, 3, 1, 1, // ENT_BOOKOPEN
|
|
20, 0, 0, 3, 1, 1, // ENT_BOOKCLOSED
|
|
1000, 99999, 0, 2, 2, 1, // ENT_TREEDEAD
|
|
1000, 99999, 0, 2, 11, 1, // ENT_TREE
|
|
1000, 99999, 0, 2, 7, 1, // ENT_TREETOP
|
|
25, 7, 4, 3, 2, 1, // ENT_CART
|
|
25, 10, 4, 3, 2, 1, // ENT_CHEST1
|
|
25, 10, 4, 3, 2, 1, // ENT_CHEST2
|
|
75, 200, 10, 2, 1, 1, // ENT_BOULDER
|
|
50, 1, 4, 3, 3, 1, // ENT_SWORD
|
|
0, 99999, 4, 3, 2, 1, // ENT_BALLISTA
|
|
250, 1000, 0, 3, 3, 1, // ENT_BELL
|
|
200, 15, 4, 3, 9, 1, // ENT_STATUE_MUMMYHEAD
|
|
10, 100, 4, 3, 6, 1, // ENT_POT1
|
|
10, 100, 4, 3, 6, 1, // ENT_POT2
|
|
10, 100, 4, 3, 6, 1, // ENT_POT3
|
|
1000, 2000, 4, 3, 9, 1, // ENT_STATUE_TUT
|
|
50, 1000, 0, 3, 15, 1, // ENT_FLAG
|
|
100, 200, 0, 3, 9, 1, // ENT_STATUE_SNAKE
|
|
20, 200, 0, 3, 11, 1, // ENT_HEDGE1
|
|
20, 200, 0, 3, 11, 1, // ENT_HEDGE2
|
|
20, 200, 0, 3, 11, 1, // ENT_HEDGE3
|
|
20, 200, 0, 3, 1, 1, // ENT_FOUNTAIN
|
|
20, 200, 0, 3, 11, 1, // ENT_BUSH1
|
|
20, 200, 0, 3, 1, 1, // ENT_TOMBSTONE1
|
|
20, 200, 0, 3, 1, 1, // ENT_TOMBSTONE1
|
|
50, 15, 4, 3, 3, 1, // ENT_CAULDRON
|
|
20, 15, 0, 3, 2, 1, // ENT_SKULLSTICK
|
|
50, 15, 0, 3, 4, 1, // ENT_BEEFSLAB
|
|
0, 0, 0, 0, 7, 1, // ENT_SEAWEED
|
|
150, 8, 4, 3, 4, 1, // ENT_MUMMY
|
|
80, 12, 4, 3, 4, 1, // ENT_ARCHER
|
|
0, 8, 10, 0, 4, 1, // ENT_MUMMY_ARM
|
|
0, 8, 10, 0, 4, 1, // ENT_MUMMY_LEG
|
|
0, 0, 0, 1, 5, 0, // ENT_MUMMY_FIRE
|
|
0, 0, 9, 2, 5, 0, // ENT_MUMMY_MISSILE
|
|
0, 0, 0, 1, 3, 0, // ENT_WEAPON42_ART
|
|
0, 0, 0, 1, 3, 0, // ENT_WEAPON41_ART
|
|
0, 0, 0, 1, 3, 0, // ENT_WEAPON43_ART
|
|
0, 0, 0, 1, 3, 0, // ENT_WEAPON42_ART
|
|
0, 0, 0, 0, 1, 0, // ENT_SWIPE
|
|
0, 0, 9, 2, 1, 0, // ENT_VORP_MISSILE
|
|
0, 0, 11, 5, 1, 0, // ENT_AXE_BLADE
|
|
100, 200, 0, 3, 1, 1, // ENT_STATUE_LION
|
|
20, 200, 4, 2, 4, 1, // ENT_CORPSE2
|
|
20, 200, 4, 2, 4, 1, // ENT_CORPSE1
|
|
25, 8, 4, 3, 2, 1, // ENT_BENCH
|
|
20, 0, 0, 3, 3, 1, // ENT_FENCE
|
|
150, 500, 0, 3, 1, 1, // ENT_STATUE_ANGEL
|
|
25, 3, 4, 3, 4, 1, // ENT_SHEEP
|
|
24, 20, 13, 3, 12, 1, // ENT_BARREL
|
|
0, 0, 0, 0, 16, 0, // ENT_WEB
|
|
200, 150, 0, 3, 9, 1, // ENT_STATUE_MUMMY_HEAD
|
|
200, 150, 0, 3, 9, 1, // ENT_STATUE_MUMMY_BODY
|
|
0, 0, 9, 2, 1, 0, // ENT_GLYPH
|
|
100, 10, 5, 3, 4, 1, // ENT_FANGEL
|
|
200, 0, 0, 3, 1, 1, // ENT_STATUE_ATHENA
|
|
200, 0, 0, 3, 1, 1, // ENT_STATUE_NEPTUNE
|
|
50, 0, 0, 3, 24, 1, // ENT_BONEPILE
|
|
25, 10, 4, 3, 2, 1, // ENT_CHEST3
|
|
200, 0, 0, 3, 1, 1, // ENT_STATUE_CAESAR
|
|
0, 0, 4, 0, 1, 0, // ENT_TELEPORT
|
|
200, 9999, 0, 3, 1, 1, // ENT_STATUE_SNAKE_COIL
|
|
10, 3, 0, 3, 24, 1, // ENT_SKULL
|
|
50, 8, 4, 3, 2, 1, // ENT_PEW
|
|
200, 0, 0, 3, 1, 1, // ENT_STATUE_OLMEC
|
|
200, 0, 0, 3, 1, 1, // ENT_STATUE_MARS
|
|
20, 0, 4, 3, 4, 1, // ENT_PLAYERHEAD
|
|
200, 0, 0, 3, 1, 1, // ENT_STATUE_KING
|
|
10, 9999, 0, 3, 7, 1, // ENT_PLANT_GENERIC
|
|
10, 20, 4, 3, 6, 1, // ENT_PLANT_MESO
|
|
10, 50, 4, 3, 6, 1, // ENT_PLANT_ROME
|
|
10, 3, 10, 3, 4, 1, // ENT_FANGEL_HEAD
|
|
10, 100, 4, 3, 6, 1, // ENT_CANDLE
|
|
20, 200, 4, 2, 24, 1, // ENT_SKELETON
|
|
20, 50, 4, 2, 16, 1, // ENT_STALAG1
|
|
40, 100, 4, 2, 16, 1, // ENT_STALAG2
|
|
0, 100, 0, 0, 16, 0, // ENT_SNOW_CORNER
|
|
0, 100, 0, 0, 16, 0, // ENT_SNOW_PILE
|
|
0, 100, 0, 0, 16, 0, // ENT_SNOW_WALL
|
|
25, 8, 0, 3, 10, 1, // ENT_CH_KITE
|
|
25, 8, 0, 3, 2, 1, // ENT_CH_HANG
|
|
9999, 100, 4, 3, 2, 1, // ENT_BUDDHA
|
|
0, 100, 0, 3, 2, 0, // ENT_SKELTHRN
|
|
100, 0, 0, 3, 1, 1, // ENT_DEMSTAT
|
|
100, 0, 0, 3, 1, 0, // ENT_SHIVA
|
|
20, 0, 0, 3, 1, 1, // ENT_BOTD
|
|
100, 0, 0, 3, 1, 1, // ENT_SAMURAI
|
|
100, 200, 0, 3, 1, 1 // ENT_DRAGLION
|
|
};//Health Mass Movetype Solid Thingtype DamageType
|
|
|
|
|
|
float BOX_SIZE = 2; // Number of fields for each entity in entity_box array
|
|
float BMAX_OFS = 1;
|
|
|
|
//BOX_SIZE* ENT_LASTENT
|
|
vector entity_box[184] =
|
|
{ // Min Maxs
|
|
' 0 0 0', ' 0 0 0', // ENT_WORLD
|
|
' -10 -10 0', ' 10 10 40', // ENT_CHAIR
|
|
' -10 -10 0', ' 10 10 32', // ENT_BARSTOOL
|
|
' -8 -8 0', ' 8 8 10', // ENT_BOOKOPEN
|
|
' -8 -8 0', ' 8 8 10', // ENT_BOOKCLOSED
|
|
' -42 -42 0', ' 42 42 160', // ENT_TREEDEAD
|
|
' -32 -32 -16', ' 32 32 210', // ENT_TREE
|
|
'-140 -140 -16', '140 140 120', // ENT_TREETOP
|
|
' -36 -32 -10', ' 36 75 64', // ENT_CART
|
|
' -16 -16 -0', ' 16 16 32', // ENT_CHEST1
|
|
' -16 -16 -0', ' 16 16 32', // ENT_CHEST2
|
|
' -24 -24 -16', ' 24 24 16', // ENT_BOULDER
|
|
' -16 -16 -8', ' 16 16 8', // ENT_SWORD
|
|
' -45 -45 0', ' 45 45 60', // ENT_BALLISTA
|
|
'-100 -100 -205', '100 100 8', // ENT_BELL
|
|
' -24 -24 0', ' 24 24 50', // ENT_STATUE_MUMMYHEAD
|
|
' -24 -24 0', ' 24 24 60', // ENT_POT1
|
|
' -16 -16 0', ' 16 16 40', // ENT_POT2
|
|
' -16 -16 0', ' 16 16 40', // ENT_POT3
|
|
' -36 -36 0', ' 36 36 248', // ENT_STATUE_TUT
|
|
' -16 -16 0', ' 16 16 160', // ENT_FLAG
|
|
' -16 -16 0', ' 16 16 80', // ENT_STATUE_SNAKE
|
|
' -24 -24 0', ' 24 24 80', // ENT_HEDGE1
|
|
' -24 -24 0', ' 24 24 80', // ENT_HEDGE2
|
|
' -24 -24 0', ' 24 24 120', // ENT_HEDGE3
|
|
' -24 -24 0', ' 24 24 80', // ENT_FOUNTAIN
|
|
' -16 -16 0', ' 16 16 40', // ENT_BUSH1
|
|
' -24 -24 0', ' 24 24 60', // ENT_TOMBSTONE1
|
|
' -16 -16 0', ' 16 16 40', // ENT_TOMBSTONE2
|
|
' -16 -16 0', ' 16 16 40', // ENT_CAULDRON
|
|
' -16 -16 0', ' 16 16 40', // ENT_SKULLSTICK
|
|
' -16 -16 0', ' 16 16 40', // ENT_BEEFSLAB
|
|
' -8 -8 0', ' 8 8 32', // ENT_SEAWEED
|
|
' -16 -16 0', ' 16 16 50', // ENT_MUMMY
|
|
' -16 -16 0', ' 16 16 50', // ENT_ARCHER
|
|
' 0 0 0', ' 0 0 0', // ENT_MUMMY_ARM
|
|
' 0 0 0', ' 0 0 0', // ENT_MUMMY_LEG
|
|
' -8 -8 0', ' 8 8 16', // ENT_MUMMY_FIRE
|
|
' 0 0 0', ' 0 0 0', // ENT_MUMMY_MISSILE
|
|
' -8 -8 -44', ' 8 8 20', // ENT_WEAPON42_ART
|
|
' -8 -8 -44', ' 8 8 20', // ENT_WEAPON41_ART
|
|
' -8 -8 -44', ' 8 8 20', // ENT_WEAPON3_ART
|
|
' -8 -8 -44', ' 8 8 20', // ENT_WEAPON2_ART
|
|
' 0 0 0', ' 0 0 0', // ENT_SWIPE
|
|
' 0 0 0', ' 0 0 0', // ENT_VORP_MISSILE
|
|
' 0 0 0', ' 0 0 0', // ENT_AXE_BLADE
|
|
' -56 -14 0', ' 56 14 60', // ENT_STATUE_LION
|
|
' -32 -16 0', ' 32 16 10', // ENT_CORPSE2
|
|
' -32 -16 0', ' 32 16 10', // ENT_CORPSE1
|
|
' -10 -30 0', ' 10 30 40', // ENT_BENCH
|
|
' -10 -26 0', ' 10 26 70', // ENT_FENCE
|
|
' -60 -40 0', ' 60 40 120', // ENT_STATUE_ANGEL
|
|
' -16 -16 0', ' 16 16 32', // ENT_SHEEP
|
|
' -13 -13 0', ' 13 13 36', // ENT_BARREL
|
|
' -25 -25 -25', ' 25 25 25', // ENT_WEB
|
|
' -26 -26 0', ' 26 26 30', // ENT_STATUE_MUMMY_HEAD
|
|
' -26 -26 0', ' 26 26 130', // ENT_STATUE_MUMMY_BODY
|
|
' 0 0 0', ' 0 0 0', // ENT_GLYPH
|
|
' -14 -14 -41', ' 14 14 23', // ENT_FANGEL
|
|
' -30 -30 0', ' 30 30 90', // ENT_STATUE_ATHENA
|
|
' -30 -30 0', ' 30 30 100', // ENT_STATUE_NEPTUNE
|
|
' -10 -10 0', ' 10 10 10', // ENT_BONEPILE
|
|
' -16 -16 0', ' 16 16 32', // ENT_CHEST3
|
|
' -16 -16 0', ' 16 16 90', // ENT_STATUE_CAESAR
|
|
' 0 0 0', ' 0 0 0', // ENT_TELEPORT
|
|
' -44 -44 0', ' 44 44 90', // ENT_STATUE_SNAKE_COIL
|
|
' -8 -8 0', ' 8 8 16', // ENT_SKULL
|
|
' -16 -40 0', ' 16 40 50', // ENT_PEW
|
|
' -40 -40 0', ' 40 40 130', // ENT_STATUE_OLMEC
|
|
' -30 -30 0', ' 30 30 80', // ENT_STATUE_MARS
|
|
' -8 -8 0', ' 8 8 16', // ENT_PLAYERHEAD_PALADIN
|
|
' -30 -30 0', ' 30 30 120', // ENT_STATUE_KING
|
|
' -10 -10 0', ' 10 10 20', // ENT_PLANT_GENERIC
|
|
' -10 -10 0', ' 10 10 40', // ENT_PLANT_MESO
|
|
' -24 -24 0', ' 24 24 90', // ENT_PLANT_ROME
|
|
' -8 -8 0', ' 8 8 16', // ENT_FANGEL_SKULL
|
|
' -8 -8 0', ' 8 8 16', // ENT_CANDLE
|
|
' -37 -12 0', ' 37 12 11', // ENT_SKELETON
|
|
' -10 -10 -17', ' 10 10 17', // ENT_STALAG1
|
|
' -24 -24 21', ' 24 24 21', // ENT_STALAG2
|
|
' -41 -55 0', ' 41 55 65', // ENT_SNOW_CORNER
|
|
' -52 -52 0', ' 52 52 16', // ENT_SNOW_PILE
|
|
' -83 -83 0', ' 83 83 45', // ENT_SNOW_WALL
|
|
' -22 -22 -120', ' 22 22 0', // ENT_CH_KITE
|
|
' -48 -48 -66', ' 48 48 0', // ENT_CH_HANG
|
|
' -48 -48 -66', ' 48 48 0', // ENT_BUDDHA
|
|
' -33 -33 0', ' 33 33 5', // ENT_SKELTHRN
|
|
' -64 -64 0', ' 64 64 102', // ENT_DEMSTAT
|
|
' -16 -16 0', ' 16 16 72', // ENT_SHIVA
|
|
' -10 -10 0', ' 10 10 4', // ENT_BOTD
|
|
' -25 -25 0', ' 25 25 106', // ENT_SAMURAI
|
|
' -25 -25 0', ' 25 25 62' // ENT_DRAGLION
|
|
};
|
|
|
|
void(vector org) spawn_tfog;
|
|
|
|
void ScaleBoundingBox(float newscale, entity subject,float mass_flag)
|
|
{
|
|
|
|
if (!newscale)
|
|
return;
|
|
|
|
if (newscale > 2.5)
|
|
{
|
|
dprint("Scale can't be bigger than 2.5");
|
|
newscale = subject.scale;
|
|
}
|
|
else if (newscale < 0.01)
|
|
{
|
|
dprint("Scale can't be less than .01");
|
|
newscale = subject.scale;
|
|
}
|
|
|
|
// FIXME: need to add a change in hulls too
|
|
|
|
self.mins=self.orgnl_mins;
|
|
self.maxs=self.orgnl_maxs;
|
|
|
|
self.mins = self.mins * newscale;
|
|
self.maxs = self.maxs * newscale;
|
|
setsize (subject, self.mins, self.maxs);
|
|
|
|
if (!mass_flag) // User didn't specify mass so scale mass
|
|
self.mass = self.mass * newscale;
|
|
}
|
|
|
|
void CreateEntityNew(entity subject,float entity_id,string modelname,void() death_func)
|
|
{
|
|
float index1,index2;
|
|
vector hold_vect;
|
|
float mass_flag;
|
|
|
|
setmodel(subject, modelname);
|
|
|
|
index1 = SPAWNVALU_SIZE * entity_id;
|
|
|
|
if (!subject.health)
|
|
subject.health = entity_spawnvalues[index1];
|
|
|
|
if(!subject.max_health)
|
|
subject.max_health=subject.health;
|
|
|
|
if (!subject.mass)
|
|
{
|
|
mass_flag = 0;
|
|
subject.mass = entity_spawnvalues[index1 + MASS_OFS];
|
|
}
|
|
else
|
|
mass_flag = 1;
|
|
|
|
subject.movetype = entity_spawnvalues[index1 + MOVETYPE_OFS];
|
|
subject.solid = entity_spawnvalues[index1 + SOLIDTYPE_OFS];
|
|
subject.thingtype = entity_spawnvalues[index1 + THINGTYPE_OFS];
|
|
subject.takedamage = entity_spawnvalues[index1 + DAMAGETYPE_OFS];
|
|
|
|
|
|
index2 = BOX_SIZE * entity_id;
|
|
|
|
|
|
if ((self.angles_y == 0) || (self.angles_y == 180)) // Facing East/West
|
|
{
|
|
subject.orgnl_mins = entity_box[index2];
|
|
subject.orgnl_maxs = entity_box[index2 + BMAX_OFS];
|
|
}
|
|
else
|
|
{
|
|
hold_vect = entity_box[index2];
|
|
subject.orgnl_mins_x = hold_vect_y;
|
|
subject.orgnl_mins_y = hold_vect_x;
|
|
subject.orgnl_mins_z = hold_vect_z;
|
|
|
|
hold_vect = entity_box[index2 + BMAX_OFS];
|
|
subject.orgnl_maxs_x = hold_vect_y;
|
|
subject.orgnl_maxs_y = hold_vect_x;
|
|
subject.orgnl_maxs_z = hold_vect_z;
|
|
}
|
|
|
|
setsize (subject, subject.orgnl_mins, subject.orgnl_maxs);
|
|
|
|
if (subject.scale)
|
|
ScaleBoundingBox(subject.scale, subject,mass_flag);
|
|
|
|
if ((subject.maxs_x - subject.mins_x ) >= 32)
|
|
subject.hull = 2;
|
|
|
|
if (self.abslight)
|
|
self.drawflags(+)MLS_ABSLIGHT;
|
|
|
|
subject.th_die = death_func;
|
|
|
|
if(subject.proj_ofs=='0 0 0')
|
|
subject.proj_ofs='0 0 24';
|
|
}
|
|
|
|
void Create_Missile (entity spawner, vector spot1,vector spot2,string missilemodel,
|
|
string missilename,float missileskin,float missilespeed,void() touchfunct)
|
|
{
|
|
vector diff;
|
|
|
|
newmis = spawn ();
|
|
newmis.owner = spawner;
|
|
newmis.movetype = MOVETYPE_FLYMISSILE;
|
|
newmis.solid = SOLID_BBOX;
|
|
newmis.skin = missileskin;
|
|
|
|
makevectors (spawner.angles);
|
|
|
|
diff = normalize(spot2 - spot1);
|
|
diff+=aim_adjust(self.enemy);
|
|
|
|
newmis.velocity = diff * missilespeed;
|
|
newmis.classname = missilename;
|
|
newmis.angles = vectoangles(newmis.velocity);
|
|
|
|
newmis.touch = touchfunct;
|
|
|
|
setmodel (newmis,missilemodel);
|
|
setsize (newmis, '0 0 0', '0 0 0');
|
|
setorigin (newmis, spot1);
|
|
|
|
newmis.think = SUB_Remove;
|
|
newmis.nextthink = time + 2.5;
|
|
}
|
|
|
|
/*
|
|
* $Log: /H2 Mission Pack/HCode/spawn.hc $
|
|
*
|
|
* 21 3/03/98 7:34p Mgummelt
|
|
*
|
|
* 20 2/27/98 11:52a Mgummelt
|
|
*
|
|
* 19 2/26/98 12:10p Mgummelt
|
|
*
|
|
* 18 2/26/98 1:11a Jweier
|
|
*
|
|
* 17 2/23/98 3:13p Mgummelt
|
|
*
|
|
* 16 2/20/98 1:44p Mgummelt
|
|
*
|
|
* 15 2/20/98 1:06p Jmonroe
|
|
* changed obj_skeleton to thingtype_bone
|
|
*
|
|
* 14 2/18/98 11:56a Jmonroe
|
|
* Added ent type for samurai
|
|
*
|
|
* 13 2/13/98 3:27p Mgummelt
|
|
*
|
|
* 12 2/10/98 5:08p Mgummelt
|
|
*
|
|
* 11 2/08/98 6:22p Mgummelt
|
|
*
|
|
* 10 2/02/98 10:38a Mgummelt
|
|
*
|
|
* 9 2/02/98 10:28a Plipo
|
|
*
|
|
* 8 1/27/98 4:18p Mgummelt
|
|
*
|
|
* 7 1/23/98 2:58p Plipo
|
|
*
|
|
* 6 1/19/98 4:47p Mgummelt
|
|
*
|
|
* 68 10/28/97 1:01p Mgummelt
|
|
* Massive replacement, rewrote entire code... just kidding. Added
|
|
* support for 5th class.
|
|
*
|
|
* 66 9/11/97 8:59a Mgummelt
|
|
*
|
|
* 65 9/04/97 3:08p Mgummelt
|
|
*
|
|
* 64 9/04/97 3:08p Mgummelt
|
|
*
|
|
* 63 9/04/97 3:01p Mgummelt
|
|
*
|
|
* 62 9/04/97 3:01p Mgummelt
|
|
*
|
|
* 61 9/03/97 7:50p Mgummelt
|
|
*
|
|
* 60 9/03/97 7:55a Mgummelt
|
|
*
|
|
* 59 9/02/97 3:34p Mgummelt
|
|
*
|
|
* 58 9/02/97 2:52p Mgummelt
|
|
*
|
|
* 57 8/29/97 3:04a Mgummelt
|
|
*
|
|
* 56 8/29/97 1:38a Mgummelt
|
|
*
|
|
* 55 8/28/97 5:41p Mgummelt
|
|
*
|
|
* 54 8/27/97 10:52p Mgummelt
|
|
*
|
|
* 53 8/26/97 9:00a Mgummelt
|
|
*
|
|
* 52 8/26/97 8:53a Mgummelt
|
|
*
|
|
* 51 8/23/97 1:39p Rlove
|
|
*
|
|
* 50 8/23/97 9:59a Rlove
|
|
*
|
|
* 49 8/21/97 12:18p Mgummelt
|
|
*
|
|
* 48 8/20/97 2:34p Rjohnson
|
|
* Change for precache of fireball
|
|
*
|
|
* 47 8/19/97 9:21p Mgummelt
|
|
*
|
|
* 46 8/19/97 2:09p Mgummelt
|
|
*
|
|
* 45 8/19/97 10:46a Rlove
|
|
*
|
|
* 44 8/15/97 10:30a Rlove
|
|
* Changed cart bounding box
|
|
*
|
|
* 43 8/15/97 9:09a Rlove
|
|
*
|
|
* 42 8/14/97 7:34a Rlove
|
|
* Added plants, corpses
|
|
*
|
|
* 41 8/14/97 6:42a Rlove
|
|
*
|
|
* 40 8/09/97 12:17p Rlove
|
|
*
|
|
* 39 8/07/97 3:34p Rlove
|
|
*
|
|
* 38 8/02/97 10:11a Rlove
|
|
* Added Olmec Statue (whatever the heck that is)
|
|
*
|
|
* 37 7/31/97 2:22p Rlove
|
|
* Added the pew
|
|
*
|
|
* 36 7/30/97 6:46a Rlove
|
|
* Added skull
|
|
*
|
|
* 35 7/29/97 8:35a Rlove
|
|
*
|
|
* 34 7/21/97 4:04p Mgummelt
|
|
*
|
|
* 33 7/21/97 4:02p Mgummelt
|
|
*
|
|
* 32 7/21/97 3:03p Rlove
|
|
*
|
|
* 31 7/21/97 10:25a Rlove
|
|
*
|
|
* 30 7/17/97 11:46a Rlove
|
|
*
|
|
* 29 7/15/97 5:23p Mgummelt
|
|
*
|
|
* 28 7/15/97 4:05p Rlove
|
|
* Added hull consideration when bounding box is being scaled.
|
|
*
|
|
* 27 7/10/97 1:45p Rlove
|
|
*
|
|
* 26 7/10/97 11:19a Rlove
|
|
*
|
|
* 25 7/07/97 5:23p Mgummelt
|
|
*
|
|
* 24 7/01/97 2:36p Rlove
|
|
* Fixed solid_phase problem
|
|
*
|
|
* 23 6/27/97 4:55p Rlove
|
|
*
|
|
* 22 6/25/97 2:25p Rlove
|
|
*
|
|
* 21 6/21/97 1:23p Rlove
|
|
*
|
|
* 20 6/21/97 10:09a Rlove
|
|
*
|
|
* 19 6/21/97 9:52a Rlove
|
|
*
|
|
* 18 6/21/97 9:11a Rlove
|
|
*
|
|
* 17 6/20/97 5:09p Rlove
|
|
* Pulling out references to old CreateEntity function
|
|
*
|
|
* 15 6/20/97 8:25a Rlove
|
|
* Tightened up the code a bit.
|
|
*
|
|
* 14 6/19/97 9:15a Rlove
|
|
*
|
|
* 13 6/18/97 7:37p Mgummelt
|
|
*
|
|
* 12 6/18/97 4:58p Rlove
|
|
*
|
|
* 11 6/18/97 4:30p Rlove
|
|
* Rewrote entity spawning code
|
|
*
|
|
* 10 5/27/97 8:22p Mgummelt
|
|
*
|
|
* 9 5/23/97 3:44p Mgummelt
|
|
*
|
|
* 8 5/22/97 6:30p Mgummelt
|
|
*
|
|
* 7 5/15/97 6:34p Rjohnson
|
|
* Code cleanup
|
|
*
|
|
* 6 5/10/97 12:07p Mgummelt
|
|
*
|
|
* 5 5/08/97 9:47p Mgummelt
|
|
*
|
|
* 4 5/08/97 3:58p Jweier
|
|
*
|
|
* 3 4/25/97 4:20p Rlove
|
|
* Fixed Scaling bounding box, added more pots, fixed mummy statue.
|
|
*
|
|
* 2 3/25/97 4:25p Rjohnson
|
|
* Fixed caching problem
|
|
*
|
|
* 1 3/19/97 11:33a Rlove
|
|
*/
|
|
|