亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? worldspawn.cpp

?? this keik game source
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "console.h"
#include "deadbody.h"
#include "gravpath.h"
#include "earthquake.h"

extern void CreateMissionComputer( void );

WorldPtr  world;

/*****************************************************************************/
/*SINED worldspawn (0 0 0) ? CINEMATIC

Only used for the world.
"sky"			environment map name
"skyaxis"	vector axis for rotating sky
"skyrotate"	speed of rotation in degrees/second
"cdtrack"	music cd track number
"gravity"	800 is default gravity
"message"	text to print at user logon
"skipthread" thread that is activated to skip this level (if cinematic)

/*****************************************************************************/

#define CINEMATIC 1

CLASS_DECLARATION( Entity, World, "worldspawn" );

ResponseDef World::Responses[] =
	{
		{ NULL, NULL }
	};

World::World()
	{
	const char		*text;
	str            mapname;
	int				i;
   Vector         water_color;
   Vector         lightvolume_color;
   Vector         lava_color;

	world = this;

	setMoveType( MOVETYPE_NONE );
	setSolidType( SOLID_BSP );

	// world model is always index 1
	edict->s.modelindex = 1;
   model = "*1";

   // Anything that modifies configstrings, or spawns things is ignored when loading savegames
   if ( LoadingSavegame )
      {
      return;
      }

   // inform the client that this is deathmatch, and we should
   // draw deathmatch stats.  This goes around what the CS_STATUSBAR
   // used to be used for since we moved all HUDS to the client.
   if ( deathmatch->value )
		{
		gi.configstring( CS_STATUSBAR, "DEATHMATCH" );
		}
	else
		{
		gi.configstring( CS_STATUSBAR, "SINGLE_PLAYER" );
		}

   //
   // see if the level has a soundtrack associated withit
	//
	text = G_GetSpawnArg( "soundtrack" );
	if ( text )
		{
		gi.configstring( CS_SOUNDTRACK, text );
		}

	text = G_GetSpawnArg( "sky" );
	if ( text )
		{
		gi.configstring( CS_SKY, text );
		}
	else
		{
		gi.configstring( CS_SKY, "sky_" );
		}

   text = G_GetSpawnArg( "skyrotate" );
	gi.configstring( CS_SKYROTATE, text ? text : "0" );

	text = G_GetSpawnArg( "skyaxis" );
	gi.configstring( CS_SKYAXIS, text ? text : "0 0 0" );

	text = G_GetSpawnArg( "cdtrack" );
	gi.configstring( CS_CDTRACK, text ? text : "0" );

	gi.configstring (CS_MAXCLIENTS, va("%i", (int)(maxclients->value) ) );

	text = G_GetSpawnArg( "gravity" );
	if ( !text )
		{
		gi.cvar_set( "sv_gravity", "800" );
		}
	else
		{
		gi.cvar_set( "sv_gravity", text );
		}
	
   // get skipthread
	skipthread = G_GetStringArg( "skipthread" );

   // the world takes blast marks and sparks by default
   flags |= FL_BLASTMARK;
   flags |= FL_SPARKS;

   // Reserve some space for dead bodies
   InitializeBodyQueue();

   //
   // see if this is a cinematic level
	//
   if ( spawnflags & CINEMATIC )
      {
      level.cinematic = true;
      }
   else
      {
      level.cinematic = false;
      }

   level.nextmap = G_GetStringArg( "nextmap" );

	// make some data visible to the server
	text = G_GetSpawnArg( "message" );
	if ( text )
		{
		gi.configstring( CS_NAME, text );
		level.level_name = text;
		}
	else
		{
		level.level_name = level.mapname;
		}

	// Set up script
	text = G_GetSpawnArg( "script" );
	if ( !text )
		{
		// No script specified.  Try using the mapname as the script name
      mapname = "maps/";
		mapname += level.mapname;
		for( i = mapname.length() - 1; i >= 0; i-- )
			{
			if ( mapname[ i ] == '.' )
				{
				mapname[ i ] = 0;
				break;
				}
			}

		mapname += ".scr";

		text = &mapname[ 5 ];

		// If there isn't a script with the same name as the map, then don't try to load script
		if ( gi.LoadFile( mapname.c_str(), NULL, 0 ) == -1 )
			{
			text = NULL;
			}
		}

	if ( text )
		{
		gi.dprintf( "Adding script: '%s'\n", text );
		mapname = va( "maps/%s", text );

      // just set the script, we will start it in G_Spawn
      ScriptLib.SetGameScript( mapname.c_str() );
		}

   // Set the color for the blends.
   water_color       = G_GetVectorArg("watercolor",Vector(0,0,1));
   level.water_alpha = G_GetFloatArg("wateralpha",0.1);

   lightvolume_color = G_GetVectorArg("lightcolor",Vector(1,1,1));
   level.lightvolume_alpha = G_GetFloatArg("lightalpha",0.5);

   lava_color        = G_GetVectorArg("lavacolor",Vector(1.0,0.3,0));
   level.lava_alpha  = G_GetFloatArg("lavaalpha",0.6);

   level.water_color = water_color;
   level.lightvolume_color = lightvolume_color;
   level.lava_color = lava_color;

   //
   // reset the earthquake
   //
   level.earthquake = 0;
	}

TargetList * World::GetTargetList( str &targetname )
	{
   TargetList * targetlist;
   int i;

   for( i = 1; i <= targetList.NumObjects(); i++ )
      {
      targetlist = targetList.ObjectAt( i );
      if ( targetname == targetlist->targetname)
         return targetlist;
      }
   targetlist = new TargetList( targetname );
   targetList.AddObject( targetlist );
   return targetlist;
	}

void World::AddTargetEntity( str &targetname, Entity * ent )
   {
   TargetList * targetlist;

   targetlist = GetTargetList( targetname );
   targetlist->AddEntity( ent );
   }

void World::RemoveTargetEntity( str &targetname, Entity * ent )
   {
   TargetList * targetlist;

   targetlist = GetTargetList( targetname );
   targetlist->RemoveEntity( ent );
   }

Entity * World::GetNextEntity( str &targetname, Entity * ent )
   {
   TargetList * targetlist;

   targetlist = GetTargetList( targetname );
   return targetlist->GetNextEntity( ent );
   }

World::~World()
	{
   FreeTargetList();
	}

void World::FreeTargetList
   (
   void
   )

   {
   int i;
   int num;

   num = targetList.NumObjects();
   for( i = 1; i <= num; i++ )
      {
      delete targetList.ObjectAt( i );
      }

   targetList.FreeObjectList();
   }

//
// List stuff for targets
//

CLASS_DECLARATION( Class, TargetList, NULL );

ResponseDef TargetList::Responses[] =
	{
		{ NULL, NULL }
	};

TargetList::TargetList()
   {
   }

TargetList::TargetList( str &tname )
   {
   targetname = tname;
   }

TargetList::~TargetList()
   {
   }

void TargetList::AddEntity( Entity * ent )
   {
	if ( !list.ObjectInList( ent ) )
		{
		list.AddObject( ent );
      }
   }

void TargetList::RemoveEntity( Entity * ent )
   {
	if ( list.ObjectInList( ent ) )
		{
		list.RemoveObject( ent );
      }
   }

Entity * TargetList::GetNextEntity( Entity * ent )
   {
   int index;

   index = 0;
   if ( ent )
      index = list.IndexOfObject( ent );
   index++;
   if ( index > list.NumObjects() )
      return NULL;
   else
      return list.ObjectAt( index );
   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性色生活片免费看爆迷你毛片| 蜜桃视频免费观看一区| 欧美麻豆精品久久久久久| 日本少妇一区二区| 国产亚洲一本大道中文在线| av动漫一区二区| 亚洲午夜精品久久久久久久久| 91久久人澡人人添人人爽欧美| 丝袜亚洲精品中文字幕一区| 久久九九国产精品| 国产91在线观看丝袜| 亚洲国产精品嫩草影院| 精品国产麻豆免费人成网站| 95精品视频在线| 蜜桃av一区二区| 亚洲精品自拍动漫在线| 欧美成人aa大片| 91麻豆国产在线观看| 亚洲免费色视频| 久久久久亚洲蜜桃| 欧美久久久久久蜜桃| 国产成人一区在线| 香蕉成人伊视频在线观看| 欧美国产欧美综合| 777精品伊人久久久久大香线蕉| 成人精品视频一区| 老司机精品视频导航| 亚洲一区影音先锋| 国产日韩欧美麻豆| 这里是久久伊人| 色吧成人激情小说| 盗摄精品av一区二区三区| 午夜精品久久久久久久蜜桃app| 国产精品家庭影院| 精品福利av导航| 欧美久久久久久久久中文字幕| 懂色av一区二区三区免费观看 | 成人sese在线| 国产真实乱子伦精品视频| 亚洲一区免费视频| 亚洲欧美日韩小说| 一区二区三区国产精华| 亚洲一区日韩精品中文字幕| 亚洲午夜免费电影| 日日夜夜精品免费视频| 蜜桃免费网站一区二区三区 | 9久草视频在线视频精品| 成人蜜臀av电影| 成人av在线看| 色哟哟日韩精品| 欧美日韩国产综合久久 | 《视频一区视频二区| 亚洲国产高清在线观看视频| 国产精品伦一区| 亚洲免费观看高清在线观看| 亚洲国产综合91精品麻豆| 日韩精品一级中文字幕精品视频免费观看 | 国产精品一区二区免费不卡| 国产米奇在线777精品观看| 国产成人在线视频网站| 成人高清视频在线| 在线一区二区三区四区五区| 欧美色偷偷大香| 制服丝袜亚洲播放| 久久综合九色综合欧美亚洲| 国产欧美日韩三级| 亚洲欧美日韩精品久久久久| 午夜在线电影亚洲一区| 蜜桃传媒麻豆第一区在线观看| 国产酒店精品激情| 99亚偷拍自图区亚洲| 在线观看av一区二区| 91精品免费在线观看| 久久久国产一区二区三区四区小说 | 欧美成人一区二区三区在线观看| 久久久一区二区三区捆绑**| 亚洲天堂精品在线观看| 男人的天堂亚洲一区| 成人一区二区三区在线观看 | 欧美一级xxx| 中文字幕中文字幕一区| 日韩精品电影一区亚洲| 粉嫩av亚洲一区二区图片| 欧美日韩你懂的| 久久久久9999亚洲精品| 亚洲第一福利一区| 成人午夜激情影院| 欧美日韩一二三| 欧美国产欧美综合| 日本视频中文字幕一区二区三区| 成人免费观看视频| 6080日韩午夜伦伦午夜伦| 中文字幕免费不卡| 蜜臀av一区二区在线观看| 99精品视频在线播放观看| 日韩一级大片在线观看| 亚洲精品乱码久久久久久久久| 狠狠色丁香久久婷婷综| 欧美偷拍一区二区| 国产精品毛片久久久久久久| 美女脱光内衣内裤视频久久网站| 91麻豆国产精品久久| 国产日本一区二区| 青青草成人在线观看| 色视频一区二区| 中文成人综合网| 国产一区亚洲一区| 日韩一二三区不卡| 亚洲第一久久影院| 日本精品视频一区二区三区| 国产三级精品视频| 精品一区二区日韩| 欧美另类videos死尸| 亚洲乱码国产乱码精品精的特点 | 一区二区免费在线播放| 激情亚洲综合在线| 欧美少妇bbb| 洋洋av久久久久久久一区| 高清在线观看日韩| 久久久久久免费毛片精品| 久久精品免费观看| 欧美一区二区三区免费| 亚洲午夜激情网页| 91福利视频久久久久| 亚洲人成亚洲人成在线观看图片| 国产成都精品91一区二区三| 精品国精品自拍自在线| 美女在线视频一区| 日韩午夜中文字幕| 日日摸夜夜添夜夜添亚洲女人| 欧美性生活影院| 亚洲在线一区二区三区| 色哟哟在线观看一区二区三区| 国产精品久久久久久久岛一牛影视| 国产一区二区成人久久免费影院 | 亚洲图片欧美综合| 色偷偷久久人人79超碰人人澡| 国产精品国产自产拍在线| 波多野结衣亚洲一区| 国产片一区二区| 成年人网站91| 亚洲欧美自拍偷拍色图| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品精品国产色婷婷| 99这里只有精品| 亚洲手机成人高清视频| 色综合天天综合色综合av| 亚洲国产高清在线观看视频| av午夜精品一区二区三区| 亚洲欧洲99久久| 在线观看亚洲a| 天堂蜜桃一区二区三区| 日韩女同互慰一区二区| 国内偷窥港台综合视频在线播放| 精品对白一区国产伦| 国产91丝袜在线播放0| 1024精品合集| 欧洲精品在线观看| 日韩国产高清影视| 日韩三级在线观看| 国产aⅴ精品一区二区三区色成熟| 国产精品伦一区| 欧美人成免费网站| 国产一区二区三区日韩| 欧美国产精品v| 91高清在线观看| 美国三级日本三级久久99| 久久久国产午夜精品 | 欧美在线观看一区二区| 日韩国产欧美在线播放| 久久亚洲私人国产精品va媚药| 99re热这里只有精品免费视频| 伊人性伊人情综合网| 日韩小视频在线观看专区| 成人午夜视频福利| 亚洲一区二区免费视频| 久久影视一区二区| 色爱区综合激月婷婷| 麻豆精品在线播放| 亚洲人快播电影网| 欧美电影免费观看高清完整版在线观看| 国产成人av在线影院| 亚洲一区二区三区在线看| 久久一区二区三区四区| 在线亚洲一区二区| 国产精一区二区三区| 亚洲国产日韩综合久久精品| 久久综合丝袜日本网| 欧美性猛交xxxxxxxx| 国产专区欧美精品| 亚洲高清免费视频| 中文字幕欧美日韩一区| 777xxx欧美| 色综合天天综合狠狠| 久久99蜜桃精品| 五月婷婷久久综合| 亚洲毛片av在线| 欧美国产禁国产网站cc| 欧美大胆一级视频| 欧美系列日韩一区|