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

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

?? p_inter.c

?? 游戲類程序源代碼---WinDoom 3D源程序.zip
?? C
?? 第 1 頁 / 共 2 頁
字號:
      case SPR_RSKU:
	if (!player->cards[it_redskull])
	    player->message = GOTREDSKULL;
	P_GiveCard (player, it_redskull);
	if (!netgame)
	    break;
	return;
	
	// medikits, heals
      case SPR_STIM:
	if (!P_GiveBody (player, 10))
	    return;
	player->message = GOTSTIM;
	break;
	
      case SPR_MEDI:
	if (!P_GiveBody (player, 25))
	    return;

	if (player->health < 25)
	    player->message = GOTMEDINEED;
	else
	    player->message = GOTMEDIKIT;
	break;

	
	// power ups
      case SPR_PINV:
	if (!P_GivePower (player, pw_invulnerability))
	    return;
	player->message = GOTINVUL;
	sound = sfx_getpow;
	break;
	
      case SPR_PSTR:
	if (!P_GivePower (player, pw_strength))
	    return;
	player->message = GOTBERSERK;
	if (player->readyweapon != wp_fist)
	    player->pendingweapon = wp_fist;
	sound = sfx_getpow;
	break;
	
      case SPR_PINS:
	if (!P_GivePower (player, pw_invisibility))
	    return;
	player->message = GOTINVIS;
	sound = sfx_getpow;
	break;
	
      case SPR_SUIT:
	if (!P_GivePower (player, pw_ironfeet))
	    return;
	player->message = GOTSUIT;
	sound = sfx_getpow;
	break;
	
      case SPR_PMAP:
	if (!P_GivePower (player, pw_allmap))
	    return;
	player->message = GOTMAP;
	sound = sfx_getpow;
	break;
	
      case SPR_PVIS:
	if (!P_GivePower (player, pw_infrared))
	    return;
	player->message = GOTVISOR;
	sound = sfx_getpow;
	break;
	
	// ammo
      case SPR_CLIP:
	if (special->flags & MF_DROPPED)
	{
	    if (!P_GiveAmmo (player,am_clip,0))
		return;
	}
	else
	{
	    if (!P_GiveAmmo (player,am_clip,1))
		return;
	}
	player->message = GOTCLIP;
	break;
	
      case SPR_AMMO:
	if (!P_GiveAmmo (player, am_clip,5))
	    return;
	player->message = GOTCLIPBOX;
	break;
	
      case SPR_ROCK:
	if (!P_GiveAmmo (player, am_misl,1))
	    return;
	player->message = GOTROCKET;
	break;
	
      case SPR_BROK:
	if (!P_GiveAmmo (player, am_misl,5))
	    return;
	player->message = GOTROCKBOX;
	break;
	
      case SPR_CELL:
	if (!P_GiveAmmo (player, am_cell,1))
	    return;
	player->message = GOTCELL;
	break;
	
      case SPR_CELP:
	if (!P_GiveAmmo (player, am_cell,5))
	    return;
	player->message = GOTCELLBOX;
	break;
	
      case SPR_SHEL:
	if (!P_GiveAmmo (player, am_shell,1))
	    return;
	player->message = GOTSHELLS;
	break;
	
      case SPR_SBOX:
	if (!P_GiveAmmo (player, am_shell,5))
	    return;
	player->message = GOTSHELLBOX;
	break;
	
      case SPR_BPAK:
	if (!player->backpack)
	{
	    for (i=0 ; i<NUMAMMO ; i++)
		player->maxammo[i] *= 2;
	    player->backpack = true;
	}
	for (i=0 ; i<NUMAMMO ; i++)
	    P_GiveAmmo (player, i, 1);
	player->message = GOTBACKPACK;
	break;
	
	// weapons
      case SPR_BFUG:
	if (!P_GiveWeapon (player, wp_bfg, false) )
	    return;
	player->message = GOTBFG9000;
	sound = sfx_wpnup;	
	break;
	
      case SPR_MGUN:
	if (!P_GiveWeapon (player, wp_chaingun, special->flags&MF_DROPPED) )
	    return;
	player->message = GOTCHAINGUN;
	sound = sfx_wpnup;	
	break;
	
      case SPR_CSAW:
	if (!P_GiveWeapon (player, wp_chainsaw, false) )
	    return;
	player->message = GOTCHAINSAW;
	sound = sfx_wpnup;	
	break;
	
      case SPR_LAUN:
	if (!P_GiveWeapon (player, wp_missile, false) )
	    return;
	player->message = GOTLAUNCHER;
	sound = sfx_wpnup;	
	break;
	
      case SPR_PLAS:
	if (!P_GiveWeapon (player, wp_plasma, false) )
	    return;
	player->message = GOTPLASMA;
	sound = sfx_wpnup;	
	break;
	
      case SPR_SHOT:
	if (!P_GiveWeapon (player, wp_shotgun, special->flags&MF_DROPPED ) )
	    return;
	player->message = GOTSHOTGUN;
	sound = sfx_wpnup;	
	break;
		
      case SPR_SGN2:
	if (!P_GiveWeapon (player, wp_supershotgun, special->flags&MF_DROPPED ) )
	    return;
	player->message = GOTSHOTGUN2;
	sound = sfx_wpnup;	
	break;
		
      default:
	I_Error ("P_SpecialThing: Unknown gettable thing");
    }
	
    if (special->flags & MF_COUNTITEM)
	player->itemcount++;
    P_RemoveMobj (special);
    player->bonuscount += BONUSADD;
    if (player == &players[consoleplayer])
	S_StartSound (NULL, sound);
}


//
// KillMobj
//
void
P_KillMobj
( mobj_t*	source,
  mobj_t*	target )
{
    mobjtype_t	item;
    mobj_t*	mo;
	
    target->flags &= ~(MF_SHOOTABLE|MF_FLOAT|MF_SKULLFLY);

    if (target->type != MT_SKULL)
	target->flags &= ~MF_NOGRAVITY;

    target->flags |= MF_CORPSE|MF_DROPOFF;
    target->height >>= 2;

    if (source && source->player)
    {
	// count for intermission
	if (target->flags & MF_COUNTKILL)
	    source->player->killcount++;	

	if (target->player)
	    source->player->frags[target->player-players]++;
    }
    else if (!netgame && (target->flags & MF_COUNTKILL) )
    {
	// count all monster deaths,
	// even those caused by other monsters
	players[0].killcount++;
    }
    
    if (target->player)
    {
	// count environment kills against you
	if (!source)	
	    target->player->frags[target->player-players]++;
			
	target->flags &= ~MF_SOLID;
	target->player->playerstate = PST_DEAD;
	P_DropWeapon (target->player);

	if (target->player == &players[consoleplayer]
	    && automapactive)
	{
	    // don't die in auto map,
	    // switch view prior to dying
	    AM_Stop ();
	}
	
    }

    if (target->health < -target->info->spawnhealth 
	&& target->info->xdeathstate)
    {
	P_SetMobjState (target, target->info->xdeathstate);
    }
    else
	P_SetMobjState (target, target->info->deathstate);
    target->tics -= P_Random()&3;

    if (target->tics < 1)
	target->tics = 1;
		
    //	I_StartSound (&actor->r, actor->info->deathsound);


    // Drop stuff.
    // This determines the kind of object spawned
    // during the death frame of a thing.
    switch (target->type)
    {
      case MT_WOLFSS:
      case MT_POSSESSED:
	item = MT_CLIP;
	break;
	
      case MT_SHOTGUY:
	item = MT_SHOTGUN;
	break;
	
      case MT_CHAINGUY:
	item = MT_CHAINGUN;
	break;
	
      default:
	return;
    }

    mo = P_SpawnMobj (target->x,target->y,ONFLOORZ, item);
    mo->flags |= MF_DROPPED;	// special versions of items
}




//
// P_DamageMobj
// Damages both enemies and players
// "inflictor" is the thing that caused the damage
//  creature or missile, can be NULL (slime, etc)
// "source" is the thing to target after taking damage
//  creature or NULL
// Source and inflictor are the same for melee attacks.
// Source can be NULL for slime, barrel explosions
// and other environmental stuff.
//
void
P_DamageMobj
( mobj_t*	target,
  mobj_t*	inflictor,
  mobj_t*	source,
  int 		damage )
{
    unsigned	ang;
    int		saved;
    player_t*	player;
    fixed_t	thrust;
    int		temp;
	
    if ( !(target->flags & MF_SHOOTABLE) )
	return;	// shouldn't happen...
		
    if (target->health <= 0)
	return;

    if ( target->flags & MF_SKULLFLY )
    {
	target->momx = target->momy = target->momz = 0;
    }
	
    player = target->player;
    if (player && gameskill == sk_baby)
	damage >>= 1; 	// take half damage in trainer mode
		

    // Some close combat weapons should not
    // inflict thrust and push the victim out of reach,
    // thus kick away unless using the chainsaw.
    if (inflictor
	&& !(target->flags & MF_NOCLIP)
	&& (!source
	    || !source->player
	    || source->player->readyweapon != wp_chainsaw))
    {
	ang = R_PointToAngle2 ( inflictor->x,
				inflictor->y,
				target->x,
				target->y);
		
	thrust = damage*(FRACUNIT>>3)*100/target->info->mass;

	// make fall forwards sometimes
	if ( damage < 40
	     && damage > target->health
	     && target->z - inflictor->z > 64*FRACUNIT
	     && (P_Random ()&1) )
	{
	    ang += ANG180;
	    thrust *= 4;
	}
		
	ang >>= ANGLETOFINESHIFT;
	target->momx += FixedMul (thrust, finecosine[ang]);
	target->momy += FixedMul (thrust, finesine[ang]);
    }
    
    // player specific
    if (player)
    {
	// end of game hell hack
	if (target->subsector->sector->special == 11
	    && damage >= target->health)
	{
	    damage = target->health - 1;
	}
	

	// Below certain threshold,
	// ignore damage in GOD mode, or with INVUL power.
	if ( damage < 1000
	     && ( (player->cheats&CF_GODMODE)
		  || player->powers[pw_invulnerability] ) )
	{
	    return;
	}
	
	if (player->armortype)
	{
	    if (player->armortype == 1)
		saved = damage/3;
	    else
		saved = damage/2;
	    
	    if (player->armorpoints <= saved)
	    {
		// armor is used up
		saved = player->armorpoints;
		player->armortype = 0;
	    }
	    player->armorpoints -= saved;
	    damage -= saved;
	}
	player->health -= damage; 	// mirror mobj health here for Dave
	if (player->health < 0)
	    player->health = 0;
	
	player->attacker = source;
	player->damagecount += damage;	// add damage after armor / invuln

	if (player->damagecount > 100)
	    player->damagecount = 100;	// teleport stomp does 10k points...
	
	temp = damage < 100 ? damage : 100;

	if (player == &players[consoleplayer])
	    I_Tactile (40,10,40+temp*2);
    }
    
    // do the damage	
    target->health -= damage;	
    if (target->health <= 0)
    {
	P_KillMobj (source, target);
	return;
    }

    if ( (P_Random () < target->info->painchance)
	 && !(target->flags&MF_SKULLFLY) )
    {
	target->flags |= MF_JUSTHIT;	// fight back!
	
	P_SetMobjState (target, target->info->painstate);
    }
			
    target->reactiontime = 0;		// we're awake now...	

    if ( (!target->threshold || target->type == MT_VILE)
	 && source && source != target
	 && source->type != MT_VILE)
    {
	// if not intent on another player,
	// chase after this one
	target->target = source;
	target->threshold = BASETHRESHOLD;
	if (target->state == &states[target->info->spawnstate]
	    && target->info->seestate != S_NULL)
	    P_SetMobjState (target, target->info->seestate);
    }
			
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品欧美精品系列| 久久精品亚洲乱码伦伦中文| 日韩欧美国产精品| 中文字幕国产一区| 青青草国产成人av片免费| 99re在线精品| 久久综合九色综合97婷婷| 香蕉久久夜色精品国产使用方法| 国产不卡在线视频| 欧美一卡二卡三卡| 亚洲一区二区三区四区在线免费观看 | 欧美亚洲一区三区| 久久久精品天堂| 蜜桃视频一区二区三区在线观看| 91福利视频网站| 亚洲欧美综合色| 国产成人av电影在线| 欧美精品一区二区三区蜜臀| 午夜精品免费在线| 欧美羞羞免费网站| 亚洲精品一二三| 97国产精品videossex| 欧美国产视频在线| 国产v综合v亚洲欧| 久久看人人爽人人| 国产一区二区三区日韩| 亚洲精品一区二区三区影院| 日本在线播放一区二区三区| 欧美日韩久久一区| 成人免费福利片| 久久久久国产精品麻豆ai换脸| 久久www免费人成看片高清| 6080yy午夜一二三区久久| 亚洲va欧美va天堂v国产综合| 一本久道中文字幕精品亚洲嫩| 国产精品久久久久久妇女6080| 成人v精品蜜桃久久一区| 欧美国产日韩亚洲一区| 成人国产在线观看| 中文字幕日韩精品一区| 99国产精品久| 亚洲一二三四区| 欧美精品日韩综合在线| 蜜桃视频在线观看一区二区| 欧美mv日韩mv亚洲| 国产精品 日产精品 欧美精品| 国产午夜三级一区二区三| www.视频一区| 亚洲综合在线免费观看| 制服丝袜在线91| 精品一区二区三区久久| 国产天堂亚洲国产碰碰| 91小视频在线观看| 亚洲国产成人va在线观看天堂| 欧美理论片在线| 九九国产精品视频| 国产精品精品国产色婷婷| 97精品国产露脸对白| 婷婷成人激情在线网| 精品乱人伦小说| av电影在线观看完整版一区二区| 一区二区三区**美女毛片| 91精品国产91热久久久做人人| 精品亚洲aⅴ乱码一区二区三区| 欧美极品aⅴ影院| 欧美亚洲日本一区| 极品美女销魂一区二区三区免费| 国产精品国产三级国产aⅴ入口 | 国产精品久久久久久妇女6080| 在线这里只有精品| 欧美色窝79yyyycom| 久久99日本精品| 亚洲欧美日韩国产一区二区三区 | 日韩av在线免费观看不卡| 久久久国产精品午夜一区ai换脸| 91在线国产观看| 久久精品免费观看| 一区二区三区在线观看视频| 日韩精品一区二区三区四区 | 九色|91porny| 亚洲精品欧美在线| 久久综合久久综合久久综合| 欧美午夜精品一区二区三区| 岛国一区二区在线观看| 青青草国产精品97视觉盛宴| 综合精品久久久| 国产欧美日韩麻豆91| 欧美精品123区| 99久久99久久久精品齐齐 | 一级女性全黄久久生活片免费| 日韩一二三区视频| 欧美午夜片在线看| 97久久人人超碰| 国产麻豆欧美日韩一区| 蜜臀精品一区二区三区在线观看 | 国产精品国产三级国产三级人妇| 91精品欧美综合在线观看最新| av爱爱亚洲一区| 韩国精品久久久| 日韩经典中文字幕一区| 亚洲综合一区二区三区| 亚洲日韩欧美一区二区在线| 久久综合色鬼综合色| 欧美一二三区精品| 欧美日韩一区二区在线观看 | 国产日产精品一区| 久久综合成人精品亚洲另类欧美 | 一区二区三区国产| 亚洲丝袜自拍清纯另类| 国产精品乱码人人做人人爱| 国产天堂亚洲国产碰碰| 久久久精品综合| 国产视频一区在线观看| 久久久精品天堂| 国产欧美精品一区二区色综合朱莉| 日韩精品在线看片z| 精品久久久久久久久久久久包黑料 | 国产一区二区三区免费看| 久久精品国产77777蜜臀| 轻轻草成人在线| 国产一区三区三区| 国产黑丝在线一区二区三区| 国产在线日韩欧美| 丰满少妇久久久久久久| 国产·精品毛片| 99久久精品国产精品久久| 91伊人久久大香线蕉| 91丨九色丨尤物| 欧美日韩一二三区| 欧美一区二区三区系列电影| 精品日韩欧美在线| 欧美国产精品中文字幕| 亚洲图片激情小说| 午夜视频在线观看一区二区| 日韩成人精品在线观看| 久久99热这里只有精品| 成人精品鲁一区一区二区| 色综合欧美在线视频区| 欧美写真视频网站| 日韩欧美中文字幕一区| 精品精品国产高清a毛片牛牛| 国产欧美va欧美不卡在线| 亚洲欧美日韩国产中文在线| 偷拍亚洲欧洲综合| 国产一区二区视频在线| 91视频国产资源| 欧美疯狂做受xxxx富婆| 国产视频一区不卡| 亚洲精品成人少妇| 久久99精品国产麻豆婷婷| av成人免费在线| 日韩欧美一级在线播放| 国产精品福利一区| 日韩二区在线观看| a美女胸又www黄视频久久| 欧美日韩大陆在线| 欧美激情资源网| 午夜不卡av在线| 豆国产96在线|亚洲| 欧美美女喷水视频| 亚洲国产精品99久久久久久久久 | 欧美巨大另类极品videosbest | 国产福利91精品| 欧美日韩中文字幕一区| 国产天堂亚洲国产碰碰| 日韩国产欧美三级| www.日韩av| 精品久久久久久久久久久院品网| 亚洲免费观看高清完整| 国产激情一区二区三区四区| 欧美日韩不卡在线| 亚洲日本青草视频在线怡红院 | 成人av动漫网站| 日韩欧美亚洲国产精品字幕久久久| 日韩美女精品在线| 国产激情精品久久久第一区二区| 欧美一区二区三区在线看| 亚洲美女精品一区| 懂色一区二区三区免费观看| 日韩一区二区精品| 亚洲国产一区视频| 97久久精品人人做人人爽| 国产亚洲欧洲997久久综合| 天堂一区二区在线| 欧美日韩一区不卡| 一区二区三区**美女毛片| av午夜精品一区二区三区| 中文字幕乱码亚洲精品一区 | 天堂资源在线中文精品| 一本到不卡免费一区二区| 中文一区二区在线观看| 国产精品456露脸| 精品欧美乱码久久久久久1区2区| 五月天激情综合网| 欧美性一区二区| 亚洲一区国产视频| 91福利在线免费观看| 一区二区三区四区精品在线视频 | 亚洲男人天堂一区| 色综合久久99|