Serious-Engine/Sources/EntitiesMP/WeaponItem.cpp
2016-03-11 15:57:17 +02:00

502 lines
28 KiB
C++

/*
* This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
*/
#line 4 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
#include "StdH.h"
#include "Models/Items/ItemHolder/ItemHolder.h"
#include "Models/Weapons/Colt/ColtItem.h"
#include "Models/Weapons/SingleShotgun/SingleShotgunItem.h"
#include "Models/Weapons/DoubleShotgun/DoubleShotgunItem.h"
#include "Models/Weapons/TommyGun/TommyGunItem.h"
#include "Models/Weapons/MiniGun/MiniGunItem.h"
#include "Models/Weapons/GrenadeLauncher/GrenadeLauncherItem.h"
#include "Models/Weapons/RocketLauncher/RocketLauncherItem.h"
#include "ModelsMP/Weapons/Sniper/SniperItem.h"
#include "ModelsMP/Weapons/Sniper/Body.h"
#include "ModelsMP/Weapons/Flamer/FlamerItem.h"
#include "ModelsMP/Weapons/Chainsaw/ChainsawItem.h"
#include "ModelsMP/Weapons/Chainsaw/BladeForPlayer.h"
#include "Models/Weapons/Laser/LaserItem.h"
#include "Models/Weapons/Cannon/Cannon.h"
#include "EntitiesMP/PlayerWeapons.h"
#include <EntitiesMP/WeaponItem.h>
#include <EntitiesMP/WeaponItem_tables.h>
CEntityEvent *EWeaponItem::MakeCopy(void) { CEntityEvent *peeCopy = new EWeaponItem(*this); return peeCopy;}
EWeaponItem::EWeaponItem() : CEntityEvent(EVENTCODE_EWeaponItem) {;
ClearToDefault(iWeapon);
ClearToDefault(iAmmo);
ClearToDefault(bDropped);
};
#line 52 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
extern void CPlayerWeapons_Precache(ULONG ulAvailable);
void CWeaponItem::SetDefaultProperties(void) {
m_EwitType = WIT_COLT ;
CItem::SetDefaultProperties();
}
#line 180 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
void CWeaponItem::Precache(void) {
#line 181 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
PrecacheSound (SOUND_PICK );
#line 182 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
switch(m_EwitType ){
#line 183 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_COLT : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_COLT ) - 1));break ;
#line 184 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_SINGLESHOTGUN : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_SINGLESHOTGUN ) - 1));break ;
#line 185 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_DOUBLESHOTGUN : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_DOUBLESHOTGUN ) - 1));break ;
#line 186 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_TOMMYGUN : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_TOMMYGUN ) - 1));break ;
#line 187 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_MINIGUN : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_MINIGUN ) - 1));break ;
#line 188 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_ROCKETLAUNCHER : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_ROCKETLAUNCHER ) - 1));break ;
#line 189 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_GRENADELAUNCHER : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_GRENADELAUNCHER ) - 1));break ;
#line 190 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_SNIPER : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_SNIPER ) - 1));break ;
#line 191 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_FLAMER : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_FLAMER ) - 1));break ;
#line 192 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_CHAINSAW : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_CHAINSAW ) - 1));break ;
#line 193 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_LASER : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_LASER ) - 1));break ;
#line 194 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_CANNON : CPlayerWeapons_Precache (1 << (INDEX (WEAPON_IRONCANNON ) - 1));break ;
#line 195 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 196 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 198 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
BOOL CWeaponItem::FillEntityStatistics(EntityStats * pes)
#line 199 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
{
#line 200 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
pes -> es_strName = m_strDescription ;
#line 201 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
pes -> es_ctCount = 1;
#line 202 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
pes -> es_ctAmmount = 1;
#line 203 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
pes -> es_fValue = 1;
#line 204 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
pes -> es_iScore = 0;
#line 205 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
return TRUE ;
#line 206 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 209 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
void CWeaponItem::RenderParticles(void) {
#line 211 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(GetRenderType () != CEntity :: RT_MODEL || GetSP () -> sp_gmGameMode > CSessionProperties :: GM_COOPERATIVE
#line 212 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
|| ! ShowItemParticles ())
#line 213 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
{
#line 214 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
return ;
#line 215 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 216 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
switch(m_EwitType ){
#line 217 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_COLT : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 218 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_SINGLESHOTGUN : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 219 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_DOUBLESHOTGUN : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 220 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_TOMMYGUN : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 221 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_MINIGUN : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 222 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_ROCKETLAUNCHER : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 223 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_GRENADELAUNCHER : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 224 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_SNIPER : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 225 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_FLAMER : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 226 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_CHAINSAW : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 227 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_LASER : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 228 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_GHOSTBUSTER : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 229 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_CANNON : Particles_Atomic (this , 1.5f , 1.5f , PT_STAR07 , 12);break ;
#line 230 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 231 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 235 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
void CWeaponItem::SetProperties(void)
#line 236 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
{
#line 237 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
BOOL bDM = FALSE ;
#line 238 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
FLOAT3D vDMStretch = FLOAT3D (2.0f , 2.0f , 2.0f);
#line 240 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
switch(m_EwitType ){
#line 242 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_COLT :
#line 243 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 244 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Colt");
#line 245 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_COLT , TEXTURE_COLTMAIN , 0 , 0 , 0);
#line 246 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (COLTITEM_ATTACHMENT_BULLETS , MODEL_COLTBULLETS , TEXTURE_COLTBULLETS , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 247 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (COLTITEM_ATTACHMENT_COCK , MODEL_COLTCOCK , TEXTURE_COLTCOCK , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 248 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (COLTITEM_ATTACHMENT_BODY , MODEL_COLTMAIN , TEXTURE_COLTMAIN , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 249 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : FLOAT3D (4.5f , 4.5f , 4.5f));
#line 250 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 253 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_SINGLESHOTGUN :
#line 254 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 255 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Single Shotgun");
#line 256 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_SINGLESHOTGUN , TEXTURE_SS_HANDLE , 0 , 0 , 0);
#line 257 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (SINGLESHOTGUNITEM_ATTACHMENT_BARRELS , MODEL_SS_BARRELS , TEXTURE_SS_BARRELS , TEX_REFL_DARKMETAL , TEX_SPEC_WEAK , 0);
#line 258 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (SINGLESHOTGUNITEM_ATTACHMENT_HANDLE , MODEL_SS_HANDLE , TEXTURE_SS_HANDLE , TEX_REFL_DARKMETAL , TEX_SPEC_MEDIUM , 0);
#line 259 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (SINGLESHOTGUNITEM_ATTACHMENT_SLIDER , MODEL_SS_SLIDER , TEXTURE_SS_BARRELS , TEX_REFL_DARKMETAL , TEX_SPEC_MEDIUM , 0);
#line 260 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (3.5f , 3.5f , 3.5f)));
#line 261 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 264 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_DOUBLESHOTGUN :
#line 265 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 266 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Double Shotgun");
#line 267 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_DOUBLESHOTGUN , TEXTURE_DS_HANDLE , 0 , 0 , 0);
#line 268 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (DOUBLESHOTGUNITEM_ATTACHMENT_BARRELS , MODEL_DS_BARRELS , TEXTURE_DS_BARRELS , TEX_REFL_BWRIPLES01 , TEX_SPEC_MEDIUM , 0);
#line 269 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (DOUBLESHOTGUNITEM_ATTACHMENT_HANDLE , MODEL_DS_HANDLE , TEXTURE_DS_HANDLE , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 270 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (DOUBLESHOTGUNITEM_ATTACHMENT_SWITCH , MODEL_DS_SWITCH , TEXTURE_DS_SWITCH , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 271 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (3.0f , 3.0f , 3.0f)));
#line 272 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 276 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_TOMMYGUN :
#line 277 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 278 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Tommygun");
#line 279 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_TOMMYGUN , TEXTURE_TG_BODY , 0 , 0 , 0);
#line 280 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (TOMMYGUNITEM_ATTACHMENT_BODY , MODEL_TG_BODY , TEXTURE_TG_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 281 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (TOMMYGUNITEM_ATTACHMENT_SLIDER , MODEL_TG_SLIDER , TEXTURE_TG_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 282 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (3.0f , 3.0f , 3.0f)));
#line 283 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 286 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_MINIGUN :
#line 287 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 288 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Minigun");
#line 289 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_MINIGUN , TEXTURE_MG_BODY , 0 , 0 , 0);
#line 290 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (MINIGUNITEM_ATTACHMENT_BARRELS , MODEL_MG_BARRELS , TEXTURE_MG_BARRELS , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 291 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (MINIGUNITEM_ATTACHMENT_BODY , MODEL_MG_BODY , TEXTURE_MG_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 292 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (MINIGUNITEM_ATTACHMENT_ENGINE , MODEL_MG_ENGINE , TEXTURE_MG_BARRELS , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 293 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (1.75f , 1.75f , 1.75f)));
#line 294 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 297 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_ROCKETLAUNCHER :
#line 298 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 299 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Rocket launcher");
#line 300 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_ROCKETLAUNCHER , TEXTURE_RL_BODY , 0 , 0 , 0);
#line 301 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (ROCKETLAUNCHERITEM_ATTACHMENT_BODY , MODEL_RL_BODY , TEXTURE_RL_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 302 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (ROCKETLAUNCHERITEM_ATTACHMENT_ROTATINGPART , MODEL_RL_ROTATINGPART , TEXTURE_RL_ROTATINGPART , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 303 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (ROCKETLAUNCHERITEM_ATTACHMENT_ROCKET1 , MODEL_RL_ROCKET , TEXTURE_RL_ROCKET , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 304 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (ROCKETLAUNCHERITEM_ATTACHMENT_ROCKET2 , MODEL_RL_ROCKET , TEXTURE_RL_ROCKET , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 305 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (ROCKETLAUNCHERITEM_ATTACHMENT_ROCKET3 , MODEL_RL_ROCKET , TEXTURE_RL_ROCKET , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 306 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (ROCKETLAUNCHERITEM_ATTACHMENT_ROCKET4 , MODEL_RL_ROCKET , TEXTURE_RL_ROCKET , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 307 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (2.5f , 2.5f , 2.5f)));
#line 308 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 311 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_GRENADELAUNCHER :
#line 312 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 313 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Grenade launcher");
#line 314 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_GRENADELAUNCHER , TEXTURE_GL_BODY , 0 , 0 , 0);
#line 315 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (GRENADELAUNCHERITEM_ATTACHMENT_BODY , MODEL_GL_BODY , TEXTURE_GL_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 316 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (GRENADELAUNCHERITEM_ATTACHMENT_MOVING_PART , MODEL_GL_MOVINGPART , TEXTURE_GL_MOVINGPART , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 317 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (GRENADELAUNCHERITEM_ATTACHMENT_GRENADE , MODEL_GL_GRENADE , TEXTURE_GL_MOVINGPART , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 318 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (2.5f , 2.5f , 2.5f)));
#line 319 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 322 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_SNIPER :
#line 323 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 324 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Sniper");
#line 325 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_SNIPER , TEXTURE_SNIPER_BODY , 0 , 0 , 0);
#line 326 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (SNIPERITEM_ATTACHMENT_BODY , MODEL_SNIPER_BODY , TEXTURE_SNIPER_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 327 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
SetItemAttachmentAnim (SNIPERITEM_ATTACHMENT_BODY , BODY_ANIM_FORITEM1 );
#line 328 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (3.0f , 3.0f , 3.0f)));
#line 329 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 332 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_FLAMER :
#line 333 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 334 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Flamer");
#line 335 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_FLAMER , TEXTURE_FL_BODY , 0 , 0 , 0);
#line 336 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (FLAMERITEM_ATTACHMENT_BODY , MODEL_FL_BODY ,
#line 337 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
TEXTURE_FL_BODY , TEX_REFL_BWRIPLES02 , TEX_SPEC_MEDIUM , 0);
#line 338 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (FLAMERITEM_ATTACHMENT_FUEL , MODEL_FL_RESERVOIR ,
#line 339 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
TEXTURE_FL_FUELRESERVOIR , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 340 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (FLAMERITEM_ATTACHMENT_FLAME , MODEL_FL_FLAME ,
#line 341 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
TEXTURE_FL_FLAME , 0 , 0 , 0);
#line 342 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (2.5f , 2.5f , 2.5f)));
#line 343 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 346 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_CHAINSAW : {
#line 347 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 348 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Chainsaw");
#line 349 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_CHAINSAW , TEXTURE_CS_BODY , 0 , 0 , 0);
#line 350 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (CHAINSAWITEM_ATTACHMENT_CHAINSAW , MODEL_CS_BODY , TEXTURE_CS_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 351 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (CHAINSAWITEM_ATTACHMENT_BLADE , MODEL_CS_BLADE , TEXTURE_CS_BLADE , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 352 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
CModelObject * pmoMain , * pmo ;
#line 353 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
pmoMain = & (GetModelObject () -> GetAttachmentModel (ITEMHOLDER_ATTACHMENT_ITEM ) -> amo_moModelObject );
#line 354 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
pmo = & (pmoMain -> GetAttachmentModel (CHAINSAWITEM_ATTACHMENT_BLADE ) -> amo_moModelObject );
#line 355 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddAttachmentToModel (this , * pmo , BLADEFORPLAYER_ATTACHMENT_TEETH , MODEL_CS_TEETH , TEXTURE_CS_TEETH , 0 , 0 , 0);
#line 357 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (2.0f , 2.0f , 2.0f)));
#line 358 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;}
#line 361 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_LASER :
#line 362 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 10.0f;
#line 363 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Laser");
#line 364 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_LASER , TEXTURE_LS_BODY , 0 , 0 , 0);
#line 365 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (LASERITEM_ATTACHMENT_BODY , MODEL_LS_BODY , TEXTURE_LS_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 366 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (LASERITEM_ATTACHMENT_LEFTUP , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 367 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (LASERITEM_ATTACHMENT_LEFTDOWN , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 368 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (LASERITEM_ATTACHMENT_RIGHTUP , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 369 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (LASERITEM_ATTACHMENT_RIGHTDOWN , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 370 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (2.5f , 2.5f , 2.5f)));
#line 371 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 374 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
case WIT_CANNON :
#line 375 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fRespawnTime = (m_fCustomRespawnTime > 0) ? m_fCustomRespawnTime : 30.0f;
#line 376 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_strDescription . PrintF ("Cannon");
#line 377 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItem (MODEL_CANNON , TEXTURE_CANNON , 0 , 0 , 0);
#line 378 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddItemAttachment (CANNON_ATTACHMENT_BODY , MODEL_CN_BODY , TEXTURE_CANNON , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0);
#line 381 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StretchItem (bDM ? vDMStretch : (FLOAT3D (3.0f , 3.0f , 3.0f)));
#line 382 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
break ;
#line 383 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 385 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
AddFlare (MODEL_FLARE , TEXTURE_FLARE , FLOAT3D (0 , 0.6f , 0) , FLOAT3D (3 , 3 , 0.3f));
#line 386 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
BOOL CWeaponItem::
#line 389 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
ItemCollected(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CWeaponItem_ItemCollected
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EPass, "CWeaponItem::ItemCollected expects 'EPass' as input!"); const EPass &epass = (const EPass &)__eeInput;
#line 390 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
ASSERT (epass . penOther != NULL );
#line 393 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(GetSP () -> sp_bWeaponsStay && ! (m_bPickupOnce || m_bRespawn )){
#line 395 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
BOOL bWasPicked = MarkPickedBy (epass . penOther );
#line 396 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(bWasPicked ){
#line 398 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
Return(STATE_CURRENT,EVoid());
#line 398 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
return TRUE;
#line 399 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 400 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 403 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
EWeaponItem eWeapon ;
#line 404 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
eWeapon . iWeapon = m_EwitType ;
#line 405 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
eWeapon . iAmmo = - 1;
#line 406 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
eWeapon . bDropped = m_bDropped ;
#line 408 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(epass . penOther -> ReceiveItem (eWeapon )){
#line 409 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(_pNetwork -> IsPlayerLocal (epass . penOther )){IFeel_PlayEffect ("PU_Weapon");}
#line 411 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_soPick . Set3DParameters (50.0f , 1.0f , 1.0f , 1.0f);
#line 412 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
PlaySound (m_soPick , SOUND_PICK , SOF_3D );
#line 413 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_fPickSoundLen = GetSoundLength (SOUND_PICK );
#line 414 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(! GetSP () -> sp_bWeaponsStay || m_bDropped || (m_bPickupOnce || m_bRespawn )){
#line 415 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
Jump(STATE_CURRENT, STATE_CItem_ItemReceived, FALSE, EVoid());return TRUE;
#line 416 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 417 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 418 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
Return(STATE_CURRENT,EVoid());
#line 418 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
return TRUE; ASSERT(FALSE); return TRUE;};BOOL CWeaponItem::
#line 421 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
Main(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT STATE_CWeaponItem_Main
ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CWeaponItem::Main expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput;
#line 423 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(m_EwitType == WIT_GHOSTBUSTER ){
#line 424 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
m_EwitType = WIT_LASER ;
#line 425 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}
#line 427 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
Initialize ();
#line 428 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
StartModelAnim (ITEMHOLDER_ANIM_BIGOSCILATION , AOF_LOOPING | AOF_NORESTART );
#line 429 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
ForceCollisionBoxIndexChange (ITEMHOLDER_COLLISION_BOX_BIG );
#line 430 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
SetProperties ();
#line 432 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
if(!(! m_bDropped )){ Jump(STATE_CURRENT,0x03220006, FALSE, EInternal());return TRUE;}
#line 433 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
Jump(STATE_CURRENT, STATE_CItem_ItemLoop, FALSE, EVoid());return TRUE;Jump(STATE_CURRENT,0x03220005, FALSE, EInternal());return TRUE;}BOOL CWeaponItem::H0x03220006_Main_05(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x03220006
if(!(TRUE )){ Jump(STATE_CURRENT,0x03220004, FALSE, EInternal());return TRUE;}
#line 435 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
SetTimerAt(THINKTIME_NEVER);
Jump(STATE_CURRENT, 0x03220002, FALSE, EBegin());return TRUE;}BOOL CWeaponItem::H0x03220002_Main_01(const CEntityEvent &__eeInput) {
#undef STATE_CURRENT
#define STATE_CURRENT 0x03220002
switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput;
#line 437 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
SpawnReminder (this , m_fRespawnTime , 0);
#line 438 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
Call(STATE_CURRENT, STATE_CItem_ItemLoop, FALSE, EVoid());return TRUE;
#line 439 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}ASSERT(FALSE);break;case(EVENTCODE_EReminder):{const EReminder&e= (EReminder&)__eeInput;
#line 441 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
SendEvent (EEnd ());
#line 442 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
return TRUE;
#line 443 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}ASSERT(FALSE);break;default: return FALSE; break;
#line 444 "D:/SE1_GPL/Sources/EntitiesMP/WeaponItem.es"
}return TRUE;}BOOL CWeaponItem::H0x03220003_Main_02(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x03220003
Jump(STATE_CURRENT,0x03220004, FALSE, EInternal());return TRUE;}BOOL CWeaponItem::H0x03220004_Main_03(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x03220004
Jump(STATE_CURRENT,0x03220005, FALSE, EInternal());return TRUE;}
BOOL CWeaponItem::H0x03220005_Main_04(const CEntityEvent &__eeInput){
ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal);
#undef STATE_CURRENT
#define STATE_CURRENT 0x03220005
ASSERT(FALSE); return TRUE;};