hexen2-data1-hc/world.hc

290 lines
7.7 KiB
C++

/*
* $Header: /H3/game/hcode/WORLD.hc 71 10/03/97 4:06p Rjohnson $
*/
//void() InitBodyQue;
void() main =
{
// these are just commands the the prog compiler to copy these files
// precache_file ("progs.dat");
// precache_file2 ("progs2.dat");
precache_file ("gfx.wad");
// precache_file ("hexen.rc");
precache_file ("default.cfg");
// precache_file ("end1.bin");
// precache_file2 ("end2.bin");
// precache_file ("demo1.dem");
// precache_file ("demo2.dem");
// precache_file ("demo3.dem");
Precache_lmp();
// sounds loaded by C code
precache_sound ("raven/menu1.wav");
precache_sound ("raven/menu2.wav");
precache_sound ("raven/menu3.wav");
precache_sound("misc/barmovup.wav");
precache_sound("misc/barmovdn.wav");
precache_sound("misc/invmove.wav");
precache_sound("misc/invuse.wav");
precache_sound ("ambience/water1.wav");
precache_sound ("ambience/wind2.wav");
// demo
precache_file("maps/demo1.bsp");
precache_file("maps/demo2.bsp");
precache_file("maps/demo3.bsp");
precache_file("maps/ravdm1.bsp");
//demo midi
precache_file("midi/casa1.mid"); //Demo1
precache_file("midi/casa2.mid"); //Demo2
precache_file("midi/egyp3.mid"); //Ravdm1
// registered
precache_file2 ("gfx/pop.lmp");
precache_file2("maps/castle4.bsp");
precache_file2("maps/castle5.bsp");
precache_file2("maps/cath.bsp");
precache_file2("maps/egypt1.bsp");
precache_file2("maps/egypt2.bsp");
precache_file2("maps/egypt3.bsp");
precache_file2("maps/egypt4.bsp");
precache_file2("maps/egypt5.bsp");
precache_file2("maps/egypt6.bsp");
precache_file2("maps/egypt7.bsp");
precache_file2("maps/meso1.bsp");
precache_file2("maps/meso2.bsp");
precache_file2("maps/meso3.bsp");
precache_file2("maps/meso4.bsp");
precache_file2("maps/meso5.bsp");
precache_file2("maps/meso6.bsp");
precache_file2("maps/meso8.bsp");
precache_file2("maps/meso9.bsp"); // death rider
precache_file3("maps/rider1a.bsp"); // famine rider
precache_file2("maps/rider2c.bsp"); // pestilence rider
precache_file2("maps/eidolon.bsp");
precache_file2("maps/romeric1.bsp");
precache_file2("maps/romeric2.bsp");
precache_file2("maps/romeric3.bsp");
precache_file2("maps/romeric4.bsp");
precache_file2("maps/romeric5.bsp");
precache_file2("maps/romeric6.bsp"); // war rider
precache_file2("maps/romeric7.bsp");
precache_file2("maps/tower.bsp");
precache_file3("maps/village1.bsp");
precache_file3("maps/village2.bsp");
precache_file3("maps/village3.bsp");
precache_file3("maps/village4.bsp");
precache_file3("maps/village5.bsp");
precache_file2("maps/ravdm2.bsp");
precache_file2("maps/ravdm3.bsp");
precache_file2("maps/ravdm4.bsp");
precache_file2("maps/ravdm5.bsp");
precache_file3("midi/casa1.mid");
precache_file3("midi/casa2.mid");
precache_file3("midi/casa3.mid");
precache_file3("midi/casa4.mid");
precache_file2("midi/casb1.mid");
precache_file2("midi/casb2.mid");
precache_file2("midi/casb3.mid");
precache_file2("midi/egyp1.mid");
precache_file2("midi/egyp2.mid");
precache_file2("midi/egyp3.mid");
precache_file2("midi/meso1.mid");
precache_file2("midi/meso2.mid");
precache_file2("midi/meso3.mid");
precache_file2("midi/roma1.mid");
precache_file2("midi/roma2.mid");
precache_file2("midi/roma3.mid");
};
entity lastspawn;
//=======================
/*QUAKED worldspawn (0 0 0) ?
Only used for the world entity.
Set message to the level name.
Set sounds to the cd track to play.
-------------------------FIELDS-------------------------
worldtype - determines different models to use (pots, torches)
0 - castle
1 - egypt
2 - meso
3 - roman
--------------------------------------------------------
*/
//=======================
void() worldspawn =
{
lastspawn = world;
// InitBodyQue ();
// custom map attributes
if (self.model == "maps/eidolon.bsp"||
self.model == "maps/rider1a.bsp"||
self.model == "maps/meso9.bsp"||
self.model == "maps/rider2c.bsp"||
self.model == "maps/romeric6.bsp"||
self.model == "maps/mgtowers.bsp")
cvar_set ("sv_sound_distance", "0");//Small levels, don't cut sounds
else
cvar_set ("sv_sound_distance", "800");
if (self.model == "maps/mgtowers.bsp")
{
cvar_set ("sv_gravity", "100");
cvar_set ("r_ambient", "36");
}
else
cvar_set ("sv_gravity", "800");
// the area based ambient sounds MUST be the first precache_sounds
// player precaches
W_Precache (); // get weapon precaches
Precache_wav (); // Precache Raven wavs
Precache_Id_mdl (); // Precache Id models
Precache_mdl (); // Precache Raven models
// FIXME: these need to be added to Precache_mdl
precache_model("models/schunk1.mdl");
precache_model("models/schunk2.mdl");
precache_model("models/schunk3.mdl");
precache_model("models/schunk4.mdl");
Precache_spr (); // Precache Raven sprites
//
// Setup light animation tables. 'a' is total darkness, 'z' is maxbright.
//
// 0 normal
lightstyle(0, "m");
// 1 FLICKER (first variety)
lightstyle(1, "mmnmmommommnonmmonqnmmo");
// 2 SLOW STRONG PULSE
lightstyle(2, "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba");
// 3 CANDLE (first variety)
lightstyle(3, "mmmmmaaaaammmmmaaaaaabcdefgabcdefg");
// 4 FAST STROBE
//lightstyle(4, "mamamamamama");
lightstyle(4, "zzzzzzzzzzzz");
// 5 GENTLE PULSE 1
lightstyle(5,"jklmnopqrstuvwxyzyxwvutsrqponmlkj");
// 6 TORCHLIGHT (second variety)
lightstyle(EF_TORCHLIGHT, "knmonqnmolm");
// 7 CANDLE (second variety)
lightstyle(7, "mmmaaaabcdefgmmmmaaaammmaamm");
// 8 CANDLE (third variety)
lightstyle(8, "mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa");
// 9 SLOW STROBE (fourth variety)
lightstyle(9, "aaaaaaaazzzzzzzz");
// 10 FLUORESCENT FLICKER
lightstyle(10, "mmamammmmammamamaaamammma");
// 11 SLOW PULSE NOT FADE TO BLACK
lightstyle(11, "abcdefghijklmnopqrrqponmlkjihgfedcba");
// Light styles 25-30 are Model Light Styles
// 25: MLS_FULLBRIGHT(1)
lightstyle(25, "z");
// 26: MLS_POWERMODE(2)
lightstyle(26, "2jklmnooppqqrrrrqqppoonmlkj");
// 27: MLS_TORCH(3)
lightstyle(27, "wvtwyzxvtxwyzwv");
// 28: MLS_FIREFLICKER(4)
lightstyle(28, "jilghmnohjljhfpjnjgpohkjhioomh");
// 29: MLS_CRYSTALGOLEM(5)
lightstyle(29, "2jklmnooppqqrrrrqqppoonmlkj");
// styles 32-62 are assigned by the light program for switchable lights
// 63 testing
lightstyle(63, "a");
StringsInit(); // Initialize strings -- temporary
};
void() StartFrame =
{
teamplay = cvar("teamplay");
skill = cvar("skill");
framecount = framecount + 1;
};
/*
==============================================================================
BODY QUE
==============================================================================
*/
/*
entity bodyque_head;
void() bodyque =
{ // just here so spawn functions don't complain after the world
// creates bodyques
};
void() InitBodyQue =
{
local entity e;
bodyque_head = spawn();
bodyque_head.classname = "bodyque";
bodyque_head.owner = spawn();
bodyque_head.owner.classname = "bodyque";
bodyque_head.owner.owner = spawn();
bodyque_head.owner.owner.classname = "bodyque";
bodyque_head.owner.owner.owner = spawn();
bodyque_head.owner.owner.owner.classname = "bodyque";
bodyque_head.owner.owner.owner.owner = bodyque_head;
};
// make a body que entry for the given ent so the ent can be
// respawned elsewhere
void(entity ent) CopyToBodyQue =
{
bodyque_head.angles = ent.angles;
bodyque_head.model = ent.model;
bodyque_head.modelindex = ent.modelindex;
bodyque_head.frame = ent.frame;
bodyque_head.colormap = ent.colormap;
bodyque_head.movetype = ent.movetype;
bodyque_head.velocity = ent.velocity;
bodyque_head.flags = 0;
setorigin (bodyque_head, ent.origin);
setsize (bodyque_head, ent.mins, ent.maxs);
bodyque_head = bodyque_head.owner;
};*/