/* * This file is generated by Entity Class Compiler, (c) CroTeam 1997-98 */ #line 4 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" #include "StdH.h" #include "GameMP/SEColors.h" #include #include "EntitiesMP/Player.h" #include "EntitiesMP/Bullet.h" #include "Models/Weapons/Knife/Knife.h" #include "Models/Weapons/Knife/KnifeItem.h" #include "Models/Weapons/Colt/Colt.h" #include "Models/Weapons/Colt/ColtMain.h" #include "Models/Weapons/SingleShotgun/SingleShotgun.h" #include "Models/Weapons/SingleShotgun/Barrels.h" #include "Models/Weapons/DoubleShotgun/DoubleShotgun.h" #include "Models/Weapons/DoubleShotgun/Dshotgunbarrels.h" #include "Models/Weapons/DoubleShotgun/HandWithAmmo.h" #include "Models/Weapons/TommyGun/TommyGun.h" #include "Models/Weapons/TommyGun/Body.h" #include "Models/Weapons/MiniGun/MiniGun.h" #include "Models/Weapons/MiniGun/Body.h" #include "Models/Weapons/GrenadeLauncher/GrenadeLauncher.h" #include "Models/Weapons/RocketLauncher/RocketLauncher.h" #include "Models/Weapons/Laser/Laser.h" #include "Models/Weapons/Laser/Barrel.h" #include "Models/Weapons/Cannon/Cannon.h" #include "Models/Weapons/Cannon/Body.h" // Mission Pack weapons #include "ModelsMP/Weapons/Sniper/Sniper.h" #include "ModelsMP/Weapons/Sniper/Body.h" #include "ModelsMP/Weapons/Flamer/Flamer.h" #include "ModelsMP/Weapons/Flamer/Body.h" #include "ModelsMP/Weapons/Flamer/FuelReservoir.h" #include "ModelsMP/Weapons/Flamer/Flame.h" #include "ModelsMP/Weapons/Chainsaw/Chainsaw.h" #include "ModelsMP/Weapons/Chainsaw/ChainSawForPlayer.h" #include "ModelsMP/Weapons/Chainsaw/Body.h" #include "ModelsMP/Weapons/Chainsaw/Blade.h" #include "ModelsMP/Weapons/Chainsaw/Teeth.h" // Mission Pack player body instead of the old one #include "ModelsMP/Player/SeriousSam/Body.h" #include "ModelsMP/Player/SeriousSam/Player.h" #include "EntitiesMP/Switch.h" #include "EntitiesMP/PlayerView.h" #include "EntitiesMP/PlayerAnimator.h" #include "EntitiesMP/MovingBrush.h" #include "EntitiesMP/MessageHolder.h" #include "EntitiesMP/EnemyBase.h" extern INDEX hud_bShowWeapon; extern const INDEX aiWeaponsRemap[19] = { 0, 1, 10, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 12, 14, 15, 16, 17, 18 }; #include #include CEntityEvent *EWeaponsInit::MakeCopy(void) { CEntityEvent *peeCopy = new EWeaponsInit(*this); return peeCopy;} EWeaponsInit::EWeaponsInit() : CEntityEvent(EVENTCODE_EWeaponsInit) {; ClearToDefault(penOwner); }; CEntityEvent *ESelectWeapon::MakeCopy(void) { CEntityEvent *peeCopy = new ESelectWeapon(*this); return peeCopy;} ESelectWeapon::ESelectWeapon() : CEntityEvent(EVENTCODE_ESelectWeapon) {; ClearToDefault(iWeapon); }; CEntityEvent *EBoringWeapon::MakeCopy(void) { CEntityEvent *peeCopy = new EBoringWeapon(*this); return peeCopy;} EBoringWeapon::EBoringWeapon() : CEntityEvent(EVENTCODE_EBoringWeapon) {; }; CEntityEvent *EFireWeapon::MakeCopy(void) { CEntityEvent *peeCopy = new EFireWeapon(*this); return peeCopy;} EFireWeapon::EFireWeapon() : CEntityEvent(EVENTCODE_EFireWeapon) {; }; CEntityEvent *EReleaseWeapon::MakeCopy(void) { CEntityEvent *peeCopy = new EReleaseWeapon(*this); return peeCopy;} EReleaseWeapon::EReleaseWeapon() : CEntityEvent(EVENTCODE_EReleaseWeapon) {; }; CEntityEvent *EReloadWeapon::MakeCopy(void) { CEntityEvent *peeCopy = new EReloadWeapon(*this); return peeCopy;} EReloadWeapon::EReloadWeapon() : CEntityEvent(EVENTCODE_EReloadWeapon) {; }; CEntityEvent *EWeaponChanged::MakeCopy(void) { CEntityEvent *peeCopy = new EWeaponChanged(*this); return peeCopy;} EWeaponChanged::EWeaponChanged() : CEntityEvent(EVENTCODE_EWeaponChanged) {; }; #line 117 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" // AVAILABLE WEAPON MASK #define WEAPONS_ALLAVAILABLEMASK 0x3FFF /* #if BUILD_TEST #define WEAPONS_DISABLEDMASK (\ (1<<(WEAPON_TOMMYGUN -1))|\ (1<<(WEAPON_GRENADELAUNCHER-1))|\ (1<<(WEAPON_PIPEBOMB -1))|\ (1<<(WEAPON_FLAMER -1))|\ (1<<(WEAPON_LASER -1))|\ (1<<(WEAPON_GHOSTBUSTER -1))|\ (1<<(WEAPON_IRONCANNON -1))|\ (1<<(WEAPON_NUKECANNON -1))) #else #define WEAPONS_DISABLEDMASK (0) #endif */ #define MAX_WEAPONS 30 // MiniGun specific #define MINIGUN_STATIC 0 #define MINIGUN_FIRE 1 #define MINIGUN_SPINUP 2 #define MINIGUN_SPINDOWN 3 #define MINIGUN_SPINUPTIME 0.5f #define MINIGUN_SPINDNTIME 3.0f #define MINIGUN_SPINUPSOUND 0.5f #define MINIGUN_SPINDNSOUND 1.5f #define MINIGUN_FULLSPEED 500.0f #define MINIGUN_SPINUPACC (MINIGUN_FULLSPEED/MINIGUN_SPINUPTIME) #define MINIGUN_SPINDNACC (MINIGUN_FULLSPEED/MINIGUN_SPINDNTIME) #define MINIGUN_TICKTIME (_pTimer->TickQuantum) // chainsaw specific #define CHAINSAW_UPDATETIME 0.05f // fire flare specific #define FLARE_REMOVE 1 #define FLARE_ADD 2 // animation light specific #define LIGHT_ANIM_MINIGUN 2 #define LIGHT_ANIM_TOMMYGUN 3 #define LIGHT_ANIM_COLT_SHOTGUN 4 #define LIGHT_ANIM_NONE 5 // mana for ammo adjustment (multiplier) #define MANA_AMMO (0.1f) // position of weapon model -- weapon 0 is never used static FLOAT wpn_fH[MAX_WEAPONS+1]; static FLOAT wpn_fP[MAX_WEAPONS+1]; static FLOAT wpn_fB[MAX_WEAPONS+1]; static FLOAT wpn_fX[MAX_WEAPONS+1]; static FLOAT wpn_fY[MAX_WEAPONS+1]; static FLOAT wpn_fZ[MAX_WEAPONS+1]; static FLOAT wpn_fFOV[MAX_WEAPONS+1]; static FLOAT wpn_fClip[MAX_WEAPONS+1]; static FLOAT wpn_fFX[MAX_WEAPONS+1]; // firing source static FLOAT wpn_fFY[MAX_WEAPONS+1]; //static FLOAT wpn_fFZ[MAX_WEAPONS+1]; static INDEX wpn_iCurrent; extern FLOAT hud_tmWeaponsOnScreen; extern FLOAT wpn_fRecoilSpeed[17]; extern FLOAT wpn_fRecoilLimit[17]; extern FLOAT wpn_fRecoilDampUp[17]; extern FLOAT wpn_fRecoilDampDn[17]; extern FLOAT wpn_fRecoilOffset[17]; extern FLOAT wpn_fRecoilFactorP[17]; extern FLOAT wpn_fRecoilFactorZ[17]; // bullet positions static FLOAT afSingleShotgunPellets[] = { -0.3f,+0.1f, +0.0f,+0.1f, +0.3f,+0.1f, -0.4f,-0.1f, -0.1f,-0.1f, +0.1f,-0.1f, +0.4f,-0.1f }; static FLOAT afDoubleShotgunPellets[] = { -0.3f,+0.15f, +0.0f,+0.15f, +0.3f,+0.15f, -0.4f,+0.05f, -0.1f,+0.05f, +0.1f,+0.05f, +0.4f,+0.05f, -0.3f,-0.05f, +0.0f,-0.05f, +0.3f,-0.05f, -0.4f,-0.15f, -0.1f,-0.15f, +0.1f,-0.15f, +0.4f,-0.15f }; // sniper discrete zoom values - 4 (1x,2x,4x,6x) // synchronize this with sniper properties (properties 233-237) static INDEX iSniperDiscreteZoomLevels = 4; static FLOAT afSniperZoom[] = { 90.0f,1.0f, 53.1f, 2.0f, 28.0f,4.0f, 14.2f,6.0f, //7.2f,8.0f, 3.56f,10.0f ,1.8f,12.0f }; // crosshair console variables static INDEX hud_bCrosshairFixed = FALSE; static INDEX hud_bCrosshairColoring = TRUE; static FLOAT hud_fCrosshairScale = 1.0f; static FLOAT hud_fCrosshairOpacity = 1.0f; static FLOAT hud_fCrosshairRatio = 0.5f; // max distance size ratio // misc HUD vars static INDEX hud_bShowPlayerName = TRUE; static INDEX hud_bShowCoords = FALSE; static FLOAT plr_tmSnoopingDelay = 1.0f; // seconds extern FLOAT plr_tmSnoopingTime = 1.0f; // seconds // some static vars static INDEX _iLastCrosshairType=-1; static CTextureObject _toCrosshair; // must do this to keep dependency catcher happy CTFileName fn1 = CTFILENAME("Textures\\Interface\\Crosshairs\\Crosshair1.tex"); CTFileName fn2 = CTFILENAME("Textures\\Interface\\Crosshairs\\Crosshair2.tex"); CTFileName fn3 = CTFILENAME("Textures\\Interface\\Crosshairs\\Crosshair3.tex"); CTFileName fn4 = CTFILENAME("Textures\\Interface\\Crosshairs\\Crosshair4.tex"); CTFileName fn5 = CTFILENAME("Textures\\Interface\\Crosshairs\\Crosshair5.tex"); CTFileName fn6 = CTFILENAME("Textures\\Interface\\Crosshairs\\Crosshair6.tex"); CTFileName fn7 = CTFILENAME("Textures\\Interface\\Crosshairs\\Crosshair7.tex"); void CPlayerWeapons_Precache(ULONG ulAvailable) { CDLLEntityClass *pdec = &CPlayerWeapons_DLLClass; // precache general stuff always pdec->PrecacheTexture(TEX_REFL_BWRIPLES01 ); pdec->PrecacheTexture(TEX_REFL_BWRIPLES02 ); pdec->PrecacheTexture(TEX_REFL_LIGHTMETAL01 ); pdec->PrecacheTexture(TEX_REFL_LIGHTBLUEMETAL01); pdec->PrecacheTexture(TEX_REFL_DARKMETAL ); pdec->PrecacheTexture(TEX_REFL_PURPLE01 ); pdec->PrecacheTexture(TEX_SPEC_WEAK ); pdec->PrecacheTexture(TEX_SPEC_MEDIUM ); pdec->PrecacheTexture(TEX_SPEC_STRONG ); pdec->PrecacheTexture(TEXTURE_HAND ); pdec->PrecacheTexture(TEXTURE_FLARE01 ); pdec->PrecacheModel(MODEL_FLARE01); pdec->PrecacheClass(CLASS_BULLET); pdec->PrecacheSound(SOUND_SILENCE); // precache other weapons if available if ( ulAvailable&(1<<(WEAPON_KNIFE-1)) ) { pdec->PrecacheModel(MODEL_KNIFE ); pdec->PrecacheModel(MODEL_KNIFEITEM ); pdec->PrecacheTexture(TEXTURE_KNIFEITEM ); pdec->PrecacheSound(SOUND_KNIFE_BACK ); pdec->PrecacheSound(SOUND_KNIFE_HIGH ); pdec->PrecacheSound(SOUND_KNIFE_LONG ); pdec->PrecacheSound(SOUND_KNIFE_LOW ); } if ( ulAvailable&(1<<(WEAPON_COLT-1)) ) { pdec->PrecacheModel(MODEL_COLT ); pdec->PrecacheModel(MODEL_COLTCOCK ); pdec->PrecacheModel(MODEL_COLTMAIN ); pdec->PrecacheModel(MODEL_COLTBULLETS ); pdec->PrecacheTexture(TEXTURE_COLTMAIN ); pdec->PrecacheTexture(TEXTURE_COLTCOCK ); pdec->PrecacheTexture(TEXTURE_COLTBULLETS ); pdec->PrecacheSound(SOUND_COLT_FIRE ); pdec->PrecacheSound(SOUND_COLT_RELOAD ); } if ( ulAvailable&(1<<(WEAPON_SINGLESHOTGUN-1)) ) { pdec->PrecacheModel(MODEL_SINGLESHOTGUN ); pdec->PrecacheModel(MODEL_SS_SLIDER ); pdec->PrecacheModel(MODEL_SS_HANDLE ); pdec->PrecacheModel(MODEL_SS_BARRELS ); pdec->PrecacheTexture(TEXTURE_SS_HANDLE ); pdec->PrecacheTexture(TEXTURE_SS_BARRELS ); pdec->PrecacheSound(SOUND_SINGLESHOTGUN_FIRE); } if ( ulAvailable&(1<<(WEAPON_DOUBLESHOTGUN-1)) ) { pdec->PrecacheModel(MODEL_DOUBLESHOTGUN ); pdec->PrecacheModel(MODEL_DS_HANDLE ); pdec->PrecacheModel(MODEL_DS_BARRELS ); pdec->PrecacheModel(MODEL_DS_AMMO ); pdec->PrecacheModel(MODEL_DS_SWITCH ); pdec->PrecacheModel(MODEL_DS_HANDWITHAMMO ); pdec->PrecacheTexture(TEXTURE_DS_HANDLE ); pdec->PrecacheTexture(TEXTURE_DS_BARRELS ); pdec->PrecacheTexture(TEXTURE_DS_AMMO ); pdec->PrecacheTexture(TEXTURE_DS_SWITCH ); pdec->PrecacheSound(SOUND_DOUBLESHOTGUN_FIRE ); pdec->PrecacheSound(SOUND_DOUBLESHOTGUN_RELOAD ); } if ( ulAvailable&(1<<(WEAPON_TOMMYGUN-1)) ) { pdec->PrecacheModel(MODEL_TOMMYGUN ); pdec->PrecacheModel(MODEL_TG_BODY ); pdec->PrecacheModel(MODEL_TG_SLIDER ); pdec->PrecacheTexture(TEXTURE_TG_BODY ); pdec->PrecacheSound(SOUND_TOMMYGUN_FIRE ); } if ( ulAvailable&(1<<(WEAPON_SNIPER-1)) ) { pdec->PrecacheModel(MODEL_SNIPER ); pdec->PrecacheModel(MODEL_SNIPER_BODY ); pdec->PrecacheTexture(TEXTURE_SNIPER_BODY ); pdec->PrecacheSound(SOUND_SNIPER_FIRE ); } if ( ulAvailable&(1<<(WEAPON_MINIGUN-1)) ) { pdec->PrecacheModel(MODEL_MINIGUN ); pdec->PrecacheModel(MODEL_MG_BARRELS ); pdec->PrecacheModel(MODEL_MG_BODY ); pdec->PrecacheModel(MODEL_MG_ENGINE ); pdec->PrecacheTexture(TEXTURE_MG_BODY ); pdec->PrecacheTexture(TEXTURE_MG_BARRELS ); pdec->PrecacheSound(SOUND_MINIGUN_FIRE ); pdec->PrecacheSound(SOUND_MINIGUN_ROTATE ); pdec->PrecacheSound(SOUND_MINIGUN_SPINUP ); pdec->PrecacheSound(SOUND_MINIGUN_SPINDOWN ); pdec->PrecacheSound(SOUND_MINIGUN_CLICK ); } if ( ulAvailable&(1<<(WEAPON_ROCKETLAUNCHER-1)) ) { pdec->PrecacheModel(MODEL_ROCKETLAUNCHER ); pdec->PrecacheModel(MODEL_RL_BODY ); pdec->PrecacheModel(MODEL_RL_ROTATINGPART ); pdec->PrecacheModel(MODEL_RL_ROCKET ); pdec->PrecacheTexture(TEXTURE_RL_BODY ); pdec->PrecacheTexture(TEXTURE_RL_ROCKET ); pdec->PrecacheSound(SOUND_ROCKETLAUNCHER_FIRE); pdec->PrecacheClass(CLASS_PROJECTILE, PRT_ROCKET); } if ( ulAvailable&(1<<(WEAPON_GRENADELAUNCHER-1)) ) { pdec->PrecacheModel(MODEL_GRENADELAUNCHER ); pdec->PrecacheModel(MODEL_GL_BODY ); pdec->PrecacheModel(MODEL_GL_MOVINGPART ); pdec->PrecacheModel(MODEL_GL_GRENADE ); pdec->PrecacheTexture(TEXTURE_GL_BODY ); pdec->PrecacheTexture(TEXTURE_GL_MOVINGPART ); pdec->PrecacheSound(SOUND_GRENADELAUNCHER_FIRE ); pdec->PrecacheClass(CLASS_PROJECTILE, PRT_GRENADE); } /* if ( ulAvailable&(1<<(WEAPON_PIPEBOMB-1)) ) { pdec->PrecacheModel(MODEL_PIPEBOMB_STICK ); pdec->PrecacheModel(MODEL_PIPEBOMB_HAND ); pdec->PrecacheModel(MODEL_PB_BUTTON ); pdec->PrecacheModel(MODEL_PB_SHIELD ); pdec->PrecacheModel(MODEL_PB_STICK ); pdec->PrecacheModel(MODEL_PB_BOMB ); pdec->PrecacheTexture(TEXTURE_PB_STICK ); pdec->PrecacheTexture(TEXTURE_PB_BOMB ); pdec->PrecacheSound(SOUND_PIPEBOMB_FIRE ); pdec->PrecacheSound(SOUND_PIPEBOMB_OPEN ); pdec->PrecacheSound(SOUND_PIPEBOMB_THROW ); pdec->PrecacheClass(CLASS_PIPEBOMB); } */ if ( ulAvailable&(1<<(WEAPON_CHAINSAW-1))) { pdec->PrecacheModel(MODEL_CHAINSAW ); pdec->PrecacheModel(MODEL_CS_BODY ); pdec->PrecacheModel(MODEL_CS_BLADE ); pdec->PrecacheModel(MODEL_CS_TEETH ); pdec->PrecacheTexture(TEXTURE_CS_BODY ); pdec->PrecacheTexture(TEXTURE_CS_BLADE ); pdec->PrecacheTexture(TEXTURE_CS_TEETH ); pdec->PrecacheSound(SOUND_CS_FIRE ); pdec->PrecacheSound(SOUND_CS_BEGINFIRE ); pdec->PrecacheSound(SOUND_CS_ENDFIRE ); pdec->PrecacheSound(SOUND_CS_BRINGUP ); pdec->PrecacheSound(SOUND_CS_BRINGDOWN ); pdec->PrecacheSound(SOUND_CS_IDLE ); } if ( ulAvailable&(1<<(WEAPON_FLAMER-1)) ) { pdec->PrecacheModel(MODEL_FLAMER ); pdec->PrecacheModel(MODEL_FL_BODY ); pdec->PrecacheModel(MODEL_FL_RESERVOIR); pdec->PrecacheModel(MODEL_FL_FLAME ); pdec->PrecacheTexture(TEXTURE_FL_BODY ); pdec->PrecacheTexture(TEXTURE_FL_FLAME); pdec->PrecacheTexture(TEXTURE_FL_FUELRESERVOIR); pdec->PrecacheSound(SOUND_FL_FIRE ); pdec->PrecacheSound(SOUND_FL_START ); pdec->PrecacheSound(SOUND_FL_STOP ); pdec->PrecacheClass(CLASS_PROJECTILE, PRT_FLAME); } if ( ulAvailable&(1<<(WEAPON_LASER-1)) ) { pdec->PrecacheModel(MODEL_LASER ); pdec->PrecacheModel(MODEL_LS_BODY ); pdec->PrecacheModel(MODEL_LS_BARREL ); pdec->PrecacheTexture(TEXTURE_LS_BODY ); pdec->PrecacheTexture(TEXTURE_LS_BARREL); pdec->PrecacheSound(SOUND_LASER_FIRE); pdec->PrecacheClass(CLASS_PROJECTILE, PRT_LASER_RAY); } /* if ( ulAvailable&(1<<(WEAPON_GHOSTBUSTER-1)) ) { pdec->PrecacheModel(MODEL_GHOSTBUSTER ); pdec->PrecacheModel(MODEL_GB_BODY ); pdec->PrecacheModel(MODEL_GB_ROTATOR ); pdec->PrecacheModel(MODEL_GB_EFFECT1 ); pdec->PrecacheModel(MODEL_GB_EFFECT1FLARE ); pdec->PrecacheTexture(TEXTURE_GB_ROTATOR ); pdec->PrecacheTexture(TEXTURE_GB_BODY ); pdec->PrecacheTexture(TEXTURE_GB_LIGHTNING); pdec->PrecacheTexture(TEXTURE_GB_FLARE ); pdec->PrecacheSound(SOUND_GB_FIRE ); pdec->PrecacheClass(CLASS_GHOSTBUSTERRAY); } */ if ( ulAvailable&(1<<(WEAPON_IRONCANNON-1)) /*|| ulAvailable&(1<<(WEAPON_NUKECANNON-1))*/ ) { pdec->PrecacheModel(MODEL_CANNON ); pdec->PrecacheModel(MODEL_CN_BODY ); // pdec->PrecacheModel(MODEL_CN_NUKEBOX); pdec->PrecacheTexture(TEXTURE_CANNON); pdec->PrecacheSound(SOUND_CANNON ); pdec->PrecacheSound(SOUND_CANNON_PREPARE); pdec->PrecacheClass(CLASS_CANNONBALL); } // precache animator too extern void CPlayerAnimator_Precache(ULONG ulAvailable); CPlayerAnimator_Precache(ulAvailable); } void CPlayerWeapons_Init(void) { // declare weapon position controls _pShell->DeclareSymbol("user INDEX wpn_iCurrent;", &wpn_iCurrent); #include "Common/WeaponPositions.h" // declare crosshair and its coordinates _pShell->DeclareSymbol("persistent user INDEX hud_bCrosshairFixed;", &hud_bCrosshairFixed); _pShell->DeclareSymbol("persistent user INDEX hud_bCrosshairColoring;", &hud_bCrosshairColoring); _pShell->DeclareSymbol("persistent user FLOAT hud_fCrosshairScale;", &hud_fCrosshairScale); _pShell->DeclareSymbol("persistent user FLOAT hud_fCrosshairRatio;", &hud_fCrosshairRatio); _pShell->DeclareSymbol("persistent user FLOAT hud_fCrosshairOpacity;", &hud_fCrosshairOpacity); _pShell->DeclareSymbol("persistent user INDEX hud_bShowPlayerName;", &hud_bShowPlayerName); _pShell->DeclareSymbol("persistent user INDEX hud_bShowCoords;", &hud_bShowCoords); _pShell->DeclareSymbol("persistent user FLOAT plr_tmSnoopingTime;", &plr_tmSnoopingTime); _pShell->DeclareSymbol("persistent user FLOAT plr_tmSnoopingDelay;", &plr_tmSnoopingDelay); // precache base weapons CPlayerWeapons_Precache(0x03); } // weapons positions for raycasting and firing /* static FLOAT afKnifePos[4] = { -0.01f, 0.25f, 0.0f}; static FLOAT afColtPos[4] = { -0.01f, 0.1f, 0.0f}; static FLOAT afDoubleColtPos[4] = { -0.01f, 0.1f, 0.0f}; static FLOAT afSingleShotgunPos[4] = { 0.0f, 0.1f, 0.0f}; static FLOAT afDoubleShotgunPos[4] = { 0.0f, 0.1f, 0.0f}; static FLOAT afTommygunPos[4] = { 0.0f, 0.1f, 0.0f}; static FLOAT afMinigunPos[4] = { 0.0f, -0.075f, 0.0f}; static FLOAT afRocketLauncherPos[4] = { -0.175f, 0.19f, -0.23f}; static FLOAT afGrenadeLauncherPos[4] = { 0.0f, 0.16f, -1.42f}; static FLOAT afPipebombPos[4] = { 0.01f, 0.04f, -0.44f}; static FLOAT afFlamerPos[4] = { 0.0f, 0.18f, -0.62f}; static FLOAT afLaserPos[4] = { 0.0f, -0.095f, -0.65f}; static FLOAT afGhostBusterPos[4] = { 0.0f, 0.0f, -0.74f}; static FLOAT afCannonPos[4] = { 0.0f, 0.0f, -0.74f}; */ // extra weapon positions for shells dropout static FLOAT afSingleShotgunShellPos[3] = { 0.2f, 0.0f, -0.31f}; static FLOAT afDoubleShotgunShellPos[3] = { 0.0f, 0.0f, -0.5f}; static FLOAT afTommygunShellPos[3] = { 0.2f, 0.0f, -0.31f}; static FLOAT afMinigunShellPos[3] = { 0.2f, 0.0f, -0.31f}; static FLOAT afMinigunShellPos3rdView[3] = { 0.2f, 0.2f, -0.31f}; static FLOAT afSniperShellPos[3] = { 0.2f, 0.0f, -0.15f}; static FLOAT afRightColtPipe[3] = { 0.07f, -0.05f, -0.26f}; static FLOAT afSingleShotgunPipe[3] = { 0.2f, 0.0f, -1.25f}; static FLOAT afDoubleShotgunPipe[3] = { 0.2f, 0.0f, -1.25f}; static FLOAT afTommygunPipe[3] = { -0.06f, 0.1f, -0.6f}; static FLOAT afMinigunPipe[3] = { -0.06f, 0.0f, -0.6f}; static FLOAT afMinigunPipe3rdView[3] = { 0.25f, 0.3f, -2.5f}; //static FLOAT afLaserPos[4] = { 0.0f, -0.095f, -0.65f}; //static FLOAT afLaser1Pos[4] = { -0.115f, -0.05f, -0.65f}; //static FLOAT afLaser2Pos[4] = { 0.115f, -0.05f, -0.65f}; //static FLOAT afLaser3Pos[4] = { -0.145f, -0.14f, -0.8f}; //static FLOAT afLaser4Pos[4] = { 0.145f, -0.14f, -0.8f}; #define TM_START m_aMiniGun #define F_OFFSET_CHG m_aMiniGunLast #define F_TEMP m_aMiniGunSpeed // decrement ammo taking infinite ammo options in account void DecAmmo(INDEX &ctAmmo, INDEX iDec = 1) { if (!GetSP()->sp_bInfiniteAmmo) { ctAmmo-=iDec; } } void CPlayerWeapons::SetDefaultProperties(void) { m_penPlayer = NULL; m_bFireWeapon = FALSE ; m_bHasAmmo = FALSE ; m_iCurrentWeapon = WEAPON_KNIFE ; m_iWantedWeapon = WEAPON_KNIFE ; m_iPreviousWeapon = WEAPON_KNIFE ; m_iAvailableWeapons = 0x01; m_bChangeWeapon = FALSE ; m_bReloadWeapon = FALSE ; m_bMirrorFire = FALSE ; m_iAnim = 0; m_fAnimWaitTime = 0.0f; m_tmRangeSoundSpawned = 0.0f; m_bSniperZoom = FALSE ; m_fSniperFOV = 90.0f; m_fSniperFOVlast = 90.0f; m_strLastTarget = ""; m_tmTargetingStarted = -99.0f; m_tmLastTarget = -99.0f; m_tmSnoopingStarted = -99.0f; m_penTargeting = NULL; m_moWeapon.SetData(NULL); m_moWeapon.mo_toTexture.SetData(NULL); m_moWeaponSecond.SetData(NULL); m_moWeaponSecond.mo_toTexture.SetData(NULL); m_tmWeaponChangeRequired = 0.0f; m_penRayHit = NULL; m_fRayHitDistance = 100.0f; m_fEnemyHealth = 0.0f; m_vRayHit = FLOAT3D(0 , 0 , 0); m_vRayHitLast = FLOAT3D(0 , 0 , 0); m_vBulletSource = FLOAT3D(0 , 0 , 0); m_vBulletTarget = FLOAT3D(0 , 0 , 0); m_iBullets = 0; m_iMaxBullets = MAX_BULLETS ; m_iShells = 0; m_iMaxShells = MAX_SHELLS ; m_iRockets = 0; m_iMaxRockets = MAX_ROCKETS ; m_iGrenades = 0; m_iMaxGrenades = MAX_GRENADES ; m_iNapalm = 0; m_iMaxNapalm = MAX_NAPALM ; m_iElectricity = 0; m_iMaxElectricity = MAX_ELECTRICITY ; m_iIronBalls = 0; m_iMaxIronBalls = MAX_IRONBALLS ; m_iSniperBullets = 0; m_iMaxSniperBullets = MAX_SNIPERBULLETS ; m_iKnifeStand = 1; m_iColtBullets = 6; m_aMiniGun = 0.0f; m_aMiniGunLast = 0.0f; m_aMiniGunSpeed = 0.0f; m_iLastBulletPosition = FLOAT3D(32000.0f , 32000.0f , 32000.0f); m_iBulletsOnFireStart = 0; m_fSniperMaxFOV = 90.0f; m_fSniperMinFOV = 14.2f; m_fSnipingZoomSpeed = 2.0f; m_bSniping = FALSE ; m_fMinimumZoomFOV = 53.1f; m_tmLastSniperFire = 0.0f; m_penFlame = NULL; m_iLaserBarrel = 0; m_iFlare = FLARE_REMOVE ; m_iSecondFlare = FLARE_REMOVE ; m_fWeaponDrawPowerOld = 0; m_fWeaponDrawPower = 0; m_tmDrawStartTime = 0.0f; m_tmFlamerStart = 1e6; m_tmFlamerStop = 1e9; m_tmLastChainsawSpray = 0.0f; m_penPrediction = NULL; CRationalEntity::SetDefaultProperties(); } #line 830 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::AddDependentsToPrediction(void) #line 831 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 832 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penPlayer -> AddToPrediction (); #line 835 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penFlame -> AddToPrediction (); #line 836 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 837 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::Precache(void) #line 838 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 839 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerWeapons_Precache (m_iAvailableWeapons ); #line 840 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 841 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer * CPlayerWeapons::GetPlayer(void) #line 842 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 843 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (m_penPlayer != NULL ); #line 844 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return (CPlayer *) & * m_penPlayer ; #line 845 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 846 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerAnimator * CPlayerWeapons::GetAnimator(void) #line 847 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 848 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (m_penPlayer != NULL ); #line 849 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return ((CPlayerAnimator *) & * ((CPlayer &) * m_penPlayer ) . m_penAnimator ); #line 850 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 852 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * CPlayerWeapons::GetChainSawTeeth(void) #line 853 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 854 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer * ppl = GetPlayer (); #line 855 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(ppl == NULL ){return NULL ;} #line 856 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmoPlayer = ppl -> GetModelObject (); #line 857 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pmoPlayer == NULL ){return NULL ;} #line 858 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * pamoTorso = pmoPlayer -> GetAttachmentModel (PLAYER_ATTACHMENT_TORSO ); #line 859 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pamoTorso == NULL ){return NULL ;} #line 860 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * pamoChainSaw = pamoTorso -> amo_moModelObject . GetAttachmentModel (BODY_ATTACHMENT_MINIGUN ); #line 861 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pamoChainSaw == NULL ){return NULL ;} #line 862 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * pamoBlade = pamoChainSaw -> amo_moModelObject . GetAttachmentModel (CHAINSAWFORPLAYER_ATTACHMENT_BLADE ); #line 863 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pamoBlade == NULL ){return NULL ;} #line 864 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * pamoTeeth = pamoBlade -> amo_moModelObject . GetAttachmentModel (BLADE_ATTACHMENT_TEETH ); #line 865 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pamoTeeth == NULL ){return NULL ;} #line 866 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return & pamoTeeth -> amo_moModelObject ; #line 867 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 870 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::DoRecoil(void) #line 871 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 874 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 877 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::HoldingFire(void) #line 878 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 879 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_bFireWeapon && ! m_bChangeWeapon ; #line 880 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 884 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::RenderWeaponModel(CPerspectiveProjection3D & prProjection,CDrawPort * pdp, #line 885 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vViewerLightDirection,COLOR colViewerLight,COLOR colViewerAmbient, #line 886 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL bRender,INDEX iEye) #line 887 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 888 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" _mrpModelRenderPrefs . SetRenderType (RT_TEXTURE | RT_SHADING_PHONG ); #line 891 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ControlFlareAttachment (); #line 893 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! bRender || m_iCurrentWeapon == WEAPON_NONE #line 894 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" || GetPlayer () -> GetSettings () -> ps_ulFlags & PSF_HIDEWEAPON ){return ;} #line 897 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iWeaponData = m_iCurrentWeapon ; #line 900 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fFOV = ((CPerspectiveProjection3D &) prProjection ) . FOVL (); #line 901 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plView ; #line 902 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plView = ((CPlayer &) * m_penPlayer ) . en_plViewpoint ; #line 903 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plView . RelativeToAbsolute (m_penPlayer -> GetPlacement ()); #line 906 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plWeapon ; #line 907 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_CHAINSAW ){ #line 908 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer * plPlayer = (CPlayer *) & * m_penPlayer ; #line 909 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plWeapon = CPlacement3D (FLOAT3D (wpn_fX [ iWeaponData ] + plPlayer -> m_fChainsawShakeDX * 0.35f , #line 910 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fY [ iWeaponData ] + plPlayer -> m_fChainsawShakeDY * 0.35f , #line 911 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ iWeaponData ]) , #line 912 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ANGLE3D (AngleDeg (wpn_fH [ iWeaponData ]) , #line 913 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AngleDeg (wpn_fP [ iWeaponData ]) , #line 914 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AngleDeg (wpn_fB [ iWeaponData ]))); #line 915 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 916 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plWeapon = CPlacement3D (FLOAT3D (wpn_fX [ iWeaponData ] , #line 917 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fY [ iWeaponData ] , #line 918 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ iWeaponData ]) , #line 919 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ANGLE3D (AngleDeg (wpn_fH [ iWeaponData ]) , #line 920 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AngleDeg (wpn_fP [ iWeaponData ]) , #line 921 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AngleDeg (wpn_fB [ iWeaponData ]))); #line 922 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 925 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" UBYTE ubLR , ubLG , ubLB , ubAR , ubAG , ubAB ; #line 926 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ColorToRGB (colViewerLight , ubLR , ubLG , ubLB ); #line 927 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ColorToRGB (colViewerAmbient , ubAR , ubAG , ubAB ); #line 928 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iMinDL = Min (Min (ubLR , ubLG ) , ubLB ) - 32; #line 929 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iMinDA = Min (Min (ubAR , ubAG ) , ubAB ) - 32; #line 930 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iMinDL < 0){ #line 931 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ubLR = ClampUp (ubLR - iMinDL , (INDEX) 255); #line 932 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ubLG = ClampUp (ubLG - iMinDL , (INDEX) 255); #line 933 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ubLB = ClampUp (ubLB - iMinDL , (INDEX) 255); #line 934 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 935 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iMinDA < 0){ #line 936 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ubAR = ClampUp (ubAR - iMinDA , (INDEX) 255); #line 937 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ubAG = ClampUp (ubAG - iMinDA , (INDEX) 255); #line 938 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ubAB = ClampUp (ubAB - iMinDA , (INDEX) 255); #line 939 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 940 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const COLOR colLight = RGBToColor (ubLR , ubLG , ubLB ); #line 941 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const COLOR colAmbient = RGBToColor (ubAR , ubAG , ubAB ); #line 942 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT tmNow = _pTimer -> GetLerpedCurrentTick (); #line 944 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" UBYTE ubBlend = INVISIBILITY_ALPHA_LOCAL ; #line 945 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT tmInvisibility = ((CPlayer *) & * m_penPlayer ) -> m_tmInvisibility ; #line 948 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(tmInvisibility > tmNow ){ #line 949 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fIntensity = 0.0f; #line 950 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if((tmInvisibility - tmNow ) < 3.0f) #line 951 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 952 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fIntensity = 0.5f - 0.5f * cos ((tmInvisibility - tmNow ) * (6.0f * 3.1415927f / 3.0f)); #line 953 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ubBlend = (INDEX) (INVISIBILITY_ALPHA_LOCAL + (FLOAT) (254 - INVISIBILITY_ALPHA_LOCAL ) * fIntensity ); #line 954 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 955 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 960 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iWeaponData == WEAPON_DOUBLECOLT || iWeaponData == WEAPON_DOUBLESHOTGUN ) #line 961 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 963 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CRenderModel rmMain ; #line 964 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPerspectiveProjection3D prMirror = prProjection ; #line 965 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prMirror . ViewerPlacementL () = plView ; #line 966 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prMirror . FrontClipDistanceL () = wpn_fClip [ iWeaponData ]; #line 967 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prMirror . DepthBufferNearL () = 0.0f; #line 968 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prMirror . DepthBufferFarL () = 0.1f; #line 969 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plWeaponMirror (FLOAT3D (wpn_fX [ iWeaponData ] , wpn_fY [ iWeaponData ] , wpn_fZ [ iWeaponData ]) , #line 970 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ANGLE3D (AngleDeg (wpn_fH [ iWeaponData ]) , AngleDeg (wpn_fP [ iWeaponData ]) , #line 971 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AngleDeg (wpn_fB [ iWeaponData ]))); #line 972 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iWeaponData == WEAPON_DOUBLECOLT ){ #line 973 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D mRotation ; #line 974 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRotation , plView . pl_OrientationAngle ); #line 975 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plWeaponMirror . pl_PositionVector (1) = - plWeaponMirror . pl_PositionVector (1); #line 976 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plWeaponMirror . pl_OrientationAngle (1) = - plWeaponMirror . pl_OrientationAngle (1); #line 977 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plWeaponMirror . pl_OrientationAngle (3) = - plWeaponMirror . pl_OrientationAngle (3); #line 978 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 979 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPerspectiveProjection3D &) prMirror ) . FOVL () = AngleDeg (wpn_fFOV [ iWeaponData ]); #line 980 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAnyProjection3D apr ; #line 981 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" apr = prMirror ; #line 982 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Stereo_AdjustProjection (* apr , iEye , 0.1f); #line 983 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BeginModelRenderingView (apr , pdp ); #line 985 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponMovingOffset (plWeaponMirror . pl_PositionVector ); #line 986 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plWeaponMirror . RelativeToAbsoluteSmooth (plView ); #line 987 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . SetObjectPlacement (plWeaponMirror ); #line 989 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_colLight = colLight ; #line 990 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_colAmbient = colAmbient ; #line 991 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_vLightDirection = vViewerLightDirection ; #line 992 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_ulFlags |= RMF_WEAPON ; #line 993 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(tmInvisibility > tmNow ){ #line 994 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_colBlend = (rmMain . rm_colBlend & 0xffffff00) | ubBlend ; #line 995 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 997 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . SetupModelRendering (rmMain ); #line 998 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . RenderModel (rmMain ); #line 999 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EndModelRenderingView (); #line 1000 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1003 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iWeaponData == WEAPON_MINIGUN ){RotateMinigun ();} #line 1006 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CRenderModel rmMain ; #line 1007 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . ViewerPlacementL () = plView ; #line 1008 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . FrontClipDistanceL () = wpn_fClip [ iWeaponData ]; #line 1009 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . DepthBufferNearL () = 0.0f; #line 1010 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . DepthBufferFarL () = 0.1f; #line 1011 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPerspectiveProjection3D &) prProjection ) . FOVL () = AngleDeg (wpn_fFOV [ iWeaponData ]); #line 1013 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAnyProjection3D apr ; #line 1014 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" apr = prProjection ; #line 1015 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Stereo_AdjustProjection (* apr , iEye , 0.1f); #line 1016 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BeginModelRenderingView (apr , pdp ); #line 1018 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponMovingOffset (plWeapon . pl_PositionVector ); #line 1019 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plWeapon . RelativeToAbsoluteSmooth (plView ); #line 1020 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . SetObjectPlacement (plWeapon ); #line 1022 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_colLight = colLight ; #line 1023 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_colAmbient = colAmbient ; #line 1024 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_vLightDirection = vViewerLightDirection ; #line 1025 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_ulFlags |= RMF_WEAPON ; #line 1026 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(tmInvisibility > tmNow ){ #line 1027 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" rmMain . rm_colBlend = (rmMain . rm_colBlend & 0xffffff00) | ubBlend ; #line 1028 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1030 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . SetupModelRendering (rmMain ); #line 1031 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . RenderModel (rmMain ); #line 1050 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EndModelRenderingView (); #line 1053 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPerspectiveProjection3D &) prProjection ) . FOVL () = fFOV ; #line 1054 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1058 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::WeaponMovingOffset(FLOAT3D & plPos) #line 1059 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1060 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerAnimator & plan = (CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ; #line 1061 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fXOffset = Lerp (plan . m_fMoveLastBanking , plan . m_fMoveBanking , _pTimer -> GetLerpFactor ()) * - 0.02f; #line 1062 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fYOffset = Lerp (plan . m_fWeaponYLastOffset , plan . m_fWeaponYOffset , _pTimer -> GetLerpFactor ()) * 0.15f; #line 1063 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fYOffset += (fXOffset * fXOffset ) * 30.0f; #line 1064 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (1) += fXOffset ; #line 1065 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (2) += fYOffset ; #line 1067 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_GRENADELAUNCHER ) #line 1068 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1070 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * amo = m_moWeapon . GetAttachmentModel (GRENADELAUNCHER_ATTACHMENT_MOVING_PART ); #line 1071 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fLerpedMovement = Lerp (m_fWeaponDrawPowerOld , m_fWeaponDrawPower , _pTimer -> GetLerpFactor ()); #line 1072 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" amo -> amo_plRelative . pl_PositionVector (3) = fLerpedMovement ; #line 1073 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (3) += fLerpedMovement / 2.0f; #line 1074 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_tmDrawStartTime != 0.0f) #line 1075 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1076 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT tmPassed = _pTimer -> GetLerpedCurrentTick () - m_tmDrawStartTime ; #line 1077 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (1) += Sin (tmPassed * 360.0f * 10) * 0.0125f * tmPassed / 6.0f; #line 1078 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (2) += Sin (tmPassed * 270.0f * 8) * 0.01f * tmPassed / 6.0f; #line 1079 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1080 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1082 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else if((m_iCurrentWeapon == WEAPON_IRONCANNON ) #line 1083 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ) #line 1084 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1085 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fLerpedMovement = Lerp (m_fWeaponDrawPowerOld , m_fWeaponDrawPower , _pTimer -> GetLerpFactor ()); #line 1086 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (3) += fLerpedMovement ; #line 1087 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_tmDrawStartTime != 0.0f) #line 1088 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1089 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT tmPassed = _pTimer -> GetLerpedCurrentTick () - m_tmDrawStartTime ; #line 1090 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (1) += Sin (tmPassed * 360.0f * 10) * 0.0125f * tmPassed / 2.0f; #line 1091 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos (2) += Sin (tmPassed * 270.0f * 8) * 0.01f * tmPassed / 2.0f; #line 1092 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1093 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1094 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1097 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::CheckTargetPrediction(CEntity * penTarget) #line 1098 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1100 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! penTarget -> IsPredictable ()){ #line 1102 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return ; #line 1103 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1105 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" extern FLOAT cli_tmPredictFoe ; #line 1106 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" extern FLOAT cli_tmPredictAlly ; #line 1107 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" extern FLOAT cli_tmPredictEnemy ; #line 1110 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntity * penMe = GetPlayer (); #line 1111 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsPredictor ()){ #line 1112 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penMe = penMe -> GetPredicted (); #line 1113 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1114 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntity * penYou = penTarget ; #line 1115 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(penYou -> IsPredictor ()){ #line 1116 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penYou = penYou -> GetPredicted (); #line 1117 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1120 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (penYou , "Player")){ #line 1122 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetSP () -> sp_bCooperative ){ #line 1124 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(cli_tmPredictAlly > 0 && _pNetwork -> IsPlayerLocal (penMe )){ #line 1126 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penYou -> SetPredictionTime (cli_tmPredictAlly ); #line 1127 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1129 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1131 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(cli_tmPredictFoe > 0){ #line 1133 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (penMe )){ #line 1135 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penYou -> SetPredictionTime (cli_tmPredictFoe ); #line 1136 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1138 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (penYou )){ #line 1140 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penMe -> SetPredictionTime (cli_tmPredictFoe ); #line 1141 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1142 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1143 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1144 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1146 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(cli_tmPredictEnemy > 0 && IsDerivedFromClass (penYou , "Enemy Base")){ #line 1148 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (penMe )){ #line 1150 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penYou -> SetPredictionTime (cli_tmPredictEnemy ); #line 1151 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1152 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1153 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1154 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1157 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::UpdateTargetingInfo(void) #line 1158 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1160 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plCrosshair ; #line 1161 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fFX = wpn_fFX [ m_iCurrentWeapon ]; #line 1162 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fFY = wpn_fFY [ m_iCurrentWeapon ]; #line 1163 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetPlayer () -> m_iViewState == PVT_3RDPERSONVIEW ){ #line 1164 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fFX = fFY = 0; #line 1165 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1166 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fFX , fFY , 0) , plCrosshair , FALSE ); #line 1168 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CCastRay crRay (m_penPlayer , plCrosshair ); #line 1169 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_bHitTranslucentPortals = FALSE ; #line 1170 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_bPhysical = FALSE ; #line 1171 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_ttHitModels = CCastRay :: TT_COLLISIONBOX ; #line 1172 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetWorld () -> CastRay (crRay ); #line 1174 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_vRayHitLast = m_vRayHit ; #line 1175 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_vRayHit = crRay . cr_vHit ; #line 1176 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penRayHit = crRay . cr_penHit ; #line 1177 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fRayHitDistance = crRay . cr_fHitDistance ; #line 1178 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fEnemyHealth = 0.0f; #line 1181 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TIME tmNow = _pTimer -> CurrentTick (); #line 1182 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_penRayHit != NULL ) #line 1183 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1184 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntity * pen = m_penRayHit ; #line 1186 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pen -> GetFlags () & ENF_ALIVE ) #line 1187 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1189 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CheckTargetPrediction (pen ); #line 1192 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (pen , "Player")){ #line 1194 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_tmTargetingStarted == 0){ #line 1195 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penTargeting = pen ; #line 1196 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmTargetingStarted = tmNow ; #line 1197 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1199 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fEnemyHealth = ((CPlayer *) pen ) -> GetHealth () / ((CPlayer *) pen ) -> m_fMaxHealth ; #line 1200 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_strLastTarget . PrintF ("%s" , ((CPlayer *) pen ) -> GetPlayerName ()); #line 1201 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetSP () -> sp_gmGameMode == CSessionProperties :: GM_SCOREMATCH ){ #line 1203 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CTString strMana = ""; #line 1204 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" strMana . PrintF (" (%d)" , ((CPlayer *) pen ) -> m_iMana ); #line 1205 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_strLastTarget += strMana ; #line 1206 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1207 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowPlayerName ){m_tmLastTarget = tmNow + 1.5f;} #line 1208 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1210 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else { #line 1212 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmTargetingStarted = 0; #line 1213 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1215 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsDerivedFromClass (pen , "Enemy Base")){ #line 1216 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fEnemyHealth = ((CEnemyBase *) pen ) -> GetHealth () / ((CEnemyBase *) pen ) -> m_fMaxHealth ; #line 1217 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1219 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bFireWeapon ){m_tmTargetingStarted = 0;} #line 1220 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1222 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 1223 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1225 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmTargetingStarted = 0; #line 1228 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (pen , "Moving Brush") && ((CMovingBrush &) * pen ) . m_penSwitch != NULL ){ #line 1229 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pen = ((CMovingBrush &) * pen ) . m_penSwitch ; #line 1230 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1232 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (pen , "Switch") && m_fRayHitDistance < 2.0f){ #line 1233 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CSwitch & enSwitch = (CSwitch &) * pen ; #line 1235 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(enSwitch . m_bUseable ){ #line 1237 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(enSwitch . m_strMessage != ""){m_strLastTarget = enSwitch . m_strMessage ;} #line 1238 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else {m_strLastTarget = TRANS ("Use");} #line 1239 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmLastTarget = tmNow + 0.5f; #line 1240 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1241 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1243 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (pen , "MessageHolder") #line 1244 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" && m_fRayHitDistance < ((CMessageHolder *) & * pen ) -> m_fDistance #line 1245 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" && ((CMessageHolder *) & * pen ) -> m_bActive ){ #line 1246 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const CTFileName & fnmMessage = ((CMessageHolder *) & * pen ) -> m_fnmMessage ; #line 1248 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 1249 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! pl . HasMessage (fnmMessage )){ #line 1251 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_strLastTarget = TRANS ("Analyze"); #line 1252 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmLastTarget = tmNow + 0.5f; #line 1253 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1254 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1255 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1256 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1258 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else { #line 1260 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmTargetingStarted = 0; #line 1262 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vDir = crRay . cr_vTarget - crRay . cr_vOrigin ; #line 1263 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDir . Normalize (); #line 1264 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_vRayHit = crRay . cr_vOrigin + vDir * 50.0f; #line 1265 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1268 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TIME tmDelta = tmNow - m_tmTargetingStarted ; #line 1269 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_tmTargetingStarted > 0 && plr_tmSnoopingDelay > 0 && tmDelta > plr_tmSnoopingDelay ){ #line 1270 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmSnoopingStarted = tmNow ; #line 1271 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1272 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1277 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::RenderCrosshair(CProjection3D & prProjection,CDrawPort * pdp,CPlacement3D & plViewSource) #line 1278 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1279 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iCrossHair = GetPlayer () -> GetSettings () -> ps_iCrossHairType + 1; #line 1282 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iCrossHair <= 0){ #line 1283 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iCrossHair = 0; #line 1284 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" _iLastCrosshairType = 0; #line 1285 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1288 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_iLastCrosshairType != iCrossHair ){ #line 1289 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" _iLastCrosshairType = iCrossHair ; #line 1290 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CTString fnCrosshair ; #line 1291 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnCrosshair . PrintF ("Textures\\Interface\\Crosshairs\\Crosshair%d.tex" , iCrossHair ); #line 1292 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" try { #line 1294 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" _toCrosshair . SetData_t (fnCrosshair ); #line 1295 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }catch (char * strError ){ #line 1297 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPrintF (strError ); #line 1298 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iCrossHair = 0; #line 1299 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return ; #line 1300 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1301 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1302 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" COLOR colCrosshair = C_WHITE ; #line 1303 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TIME tmNow = _pTimer -> CurrentTick (); #line 1306 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vOnScreen ; #line 1307 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fDistance = m_fRayHitDistance ; #line 1309 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT3D vRayHit = m_vRayHit ; #line 1311 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_penRayHit != NULL ){ #line 1313 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntity * pen = m_penRayHit ; #line 1315 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . ViewerPlacementL () = plViewSource ; #line 1316 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . ObjectPlacementL () = CPlacement3D (FLOAT3D (0.0f , 0.0f , 0.0f) , ANGLE3D (0 , 0 , 0)); #line 1317 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . Prepare (); #line 1318 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" prProjection . ProjectCoordinate (vRayHit , vOnScreen ); #line 1320 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bCrosshairColoring && m_fEnemyHealth > 0){ #line 1321 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_fEnemyHealth < 0.25f){colCrosshair = C_RED ;} #line 1322 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else if(m_fEnemyHealth < 0.60f){colCrosshair = C_YELLOW ;} #line 1323 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else {colCrosshair = C_GREEN ;} #line 1324 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1325 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1327 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 1328 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1330 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vOnScreen (1) = (FLOAT) pdp -> GetWidth () * 0.5f; #line 1331 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vOnScreen (2) = (FLOAT) pdp -> GetHeight () * 0.5f; #line 1332 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fDistance = 100.0f; #line 1333 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1336 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bCrosshairFixed || GetPlayer () -> m_iViewState == PVT_3RDPERSONVIEW ){ #line 1338 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vOnScreen (1) = (FLOAT) pdp -> GetWidth () * 0.5f; #line 1339 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vOnScreen (2) = (FLOAT) pdp -> GetHeight () * 0.5f; #line 1341 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1344 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" hud_fCrosshairScale = Clamp (hud_fCrosshairScale , 0.1f , 2.0f); #line 1345 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" hud_fCrosshairRatio = Clamp (hud_fCrosshairRatio , 0.1f , 1.0f); #line 1346 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" hud_fCrosshairOpacity = Clamp (hud_fCrosshairOpacity , 0.1f , 1.0f); #line 1347 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const ULONG ulAlpha = NormFloatToByte (hud_fCrosshairOpacity ); #line 1349 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iCrossHair > 0){ #line 1351 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fMinD = 1.0f; #line 1352 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fMaxD = 100.0f; #line 1353 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fDistance = Clamp (fDistance , fMinD , fMaxD ); #line 1354 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fRatio = (fDistance - fMinD ) / (fMaxD - fMinD ); #line 1355 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fMaxSize = (FLOAT) pdp -> GetWidth () / 640.0f; #line 1356 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fMinSize = fMaxSize * hud_fCrosshairRatio ; #line 1357 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fSize = 16 * Lerp (fMaxSize , fMinSize , fRatio ) * hud_fCrosshairScale ; #line 1359 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fI0 = + (PIX ) vOnScreen (1) - fSize ; #line 1360 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fI1 = + (PIX ) vOnScreen (1) + fSize ; #line 1361 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fJ0 = - (PIX ) vOnScreen (2) - fSize + pdp -> GetHeight (); #line 1362 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fJ1 = - (PIX ) vOnScreen (2) + fSize + pdp -> GetHeight (); #line 1363 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> InitTexture (& _toCrosshair ); #line 1364 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> AddTexture (fI0 , fJ0 , fI1 , fJ1 , colCrosshair | ulAlpha ); #line 1365 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> FlushRenderingQueue (); #line 1366 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1369 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TIME tmDelta = m_tmLastTarget - tmNow ; #line 1370 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(tmDelta > 0){ #line 1372 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SLONG slDPWidth = pdp -> GetWidth (); #line 1373 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SLONG slDPHeight = pdp -> GetHeight (); #line 1374 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fScaling = (FLOAT) slDPWidth / 640.0f; #line 1376 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> SetFont (_pfdDisplayFont ); #line 1377 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> SetTextScaling (fScaling ); #line 1378 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> SetTextAspect (1.0f); #line 1380 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ULONG ulA = (FLOAT) ulAlpha * Clamp (2 * tmDelta , 0.0f , 1.0f); #line 1381 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> PutTextC (m_strLastTarget , slDPWidth * 0.5f , slDPHeight * 0.75f , SE_COL_BLUE_NEUTRAL | ulA ); #line 1382 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1385 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowCoords ){ #line 1386 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CTString strCoords ; #line 1387 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SLONG slDPWidth = pdp -> GetWidth (); #line 1388 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SLONG slDPHeight = pdp -> GetHeight (); #line 1390 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> SetFont (_pfdDisplayFont ); #line 1391 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> SetTextAspect (1.0f); #line 1392 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> SetTextScaling ((FLOAT) slDPWidth / 640.0f); #line 1394 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fMax = Max (Max (vRayHit (1) , vRayHit (2)) , vRayHit (3)); #line 1395 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fMin = Min (Min (vRayHit (1) , vRayHit (2)) , vRayHit (3)); #line 1396 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(fMax < + 100000 && fMin > - 100000){ #line 1397 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" strCoords . PrintF ("%.0f,%.0f,%.0f" , vRayHit (1) , vRayHit (2) , vRayHit (3)); #line 1398 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pdp -> PutTextC (strCoords , slDPWidth * 0.5f , slDPHeight * 0.10f , C_WHITE | CT_OPAQUE ); #line 1399 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1400 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1401 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1409 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::ShowFlare(CModelObject & moWeapon,INDEX iAttachObject,INDEX iAttachFlare,FLOAT fSize) { #line 1410 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (moWeapon . GetAttachmentModel (iAttachObject ) -> amo_moModelObject ); #line 1411 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * pamo = pmo -> GetAttachmentModel (iAttachFlare ); #line 1412 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pamo -> amo_plRelative . pl_OrientationAngle (3) = (rand () * 360.0f) / RAND_MAX ; #line 1413 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo = & (pamo -> amo_moModelObject ); #line 1414 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> StretchModel (FLOAT3D (fSize , fSize , fSize )); #line 1415 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1419 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::HideFlare(CModelObject & moWeapon,INDEX iAttachObject,INDEX iAttachFlare) { #line 1420 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (moWeapon . GetAttachmentModel (iAttachObject ) -> amo_moModelObject ); #line 1421 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo = & (pmo -> GetAttachmentModel (iAttachFlare ) -> amo_moModelObject ); #line 1422 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> StretchModel (FLOAT3D (0 , 0 , 0)); #line 1423 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1425 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::SetFlare(INDEX iFlare,INDEX iAction) #line 1426 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1428 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! IsPredictionHead ()){ #line 1430 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return ; #line 1431 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1434 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerWeapons * pen = (CPlayerWeapons *) GetPredictionTail (); #line 1435 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iFlare == 0){ #line 1436 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pen -> m_iFlare = iAction ; #line 1437 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pen -> GetPlayer () -> GetPlayerAnimator () -> m_iFlare = iAction ; #line 1438 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1439 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pen -> m_iSecondFlare = iAction ; #line 1440 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pen -> GetPlayer () -> GetPlayerAnimator () -> m_iSecondFlare = iAction ; #line 1441 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1442 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1445 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::ControlFlareAttachment(void) { #line 1454 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerWeapons * pen = (CPlayerWeapons *) GetPredictionTail (); #line 1456 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_DOUBLECOLT ){ #line 1458 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pen -> m_iSecondFlare == FLARE_ADD ){ #line 1459 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pen -> m_iSecondFlare = FLARE_REMOVE ; #line 1460 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShowFlare (m_moWeaponSecond , COLT_ATTACHMENT_COLT , COLTMAIN_ATTACHMENT_FLARE , 1.0f); #line 1462 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(pen -> m_iSecondFlare == FLARE_REMOVE ){ #line 1463 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" HideFlare (m_moWeaponSecond , COLT_ATTACHMENT_COLT , COLTMAIN_ATTACHMENT_FLARE ); #line 1464 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1465 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1468 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pen -> m_iFlare == FLARE_ADD ){ #line 1469 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pen -> m_iFlare = FLARE_REMOVE ; #line 1470 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 1471 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : case WEAPON_COLT : #line 1472 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShowFlare (m_moWeapon , COLT_ATTACHMENT_COLT , COLTMAIN_ATTACHMENT_FLARE , 0.75f); #line 1473 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1474 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : #line 1475 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShowFlare (m_moWeapon , SINGLESHOTGUN_ATTACHMENT_BARRELS , BARRELS_ATTACHMENT_FLARE , 1.0f); #line 1476 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1477 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : #line 1478 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShowFlare (m_moWeapon , DOUBLESHOTGUN_ATTACHMENT_BARRELS , DSHOTGUNBARRELS_ATTACHMENT_FLARE , 1.75f); #line 1479 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1480 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : #line 1481 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShowFlare (m_moWeapon , TOMMYGUN_ATTACHMENT_BODY , BODY_ATTACHMENT_FLARE , 0.5f); #line 1482 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1483 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : #line 1484 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShowFlare (m_moWeapon , SNIPER_ATTACHMENT_BODY , BODY_ATTACHMENT_FLARE , 0.5f); #line 1485 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1486 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : #line 1487 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShowFlare (m_moWeapon , MINIGUN_ATTACHMENT_BODY , BODY_ATTACHMENT_FLARE , 1.25f); #line 1488 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1489 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1491 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(pen -> m_iFlare == FLARE_REMOVE ){ #line 1492 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 1493 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : case WEAPON_COLT : #line 1494 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" HideFlare (m_moWeapon , COLT_ATTACHMENT_COLT , COLTMAIN_ATTACHMENT_FLARE ); #line 1495 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1496 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : #line 1497 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" HideFlare (m_moWeapon , SINGLESHOTGUN_ATTACHMENT_BARRELS , BARRELS_ATTACHMENT_FLARE ); #line 1498 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1499 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : #line 1500 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" HideFlare (m_moWeapon , DOUBLESHOTGUN_ATTACHMENT_BARRELS , DSHOTGUNBARRELS_ATTACHMENT_FLARE ); #line 1501 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1502 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : #line 1503 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" HideFlare (m_moWeapon , TOMMYGUN_ATTACHMENT_BODY , BODY_ATTACHMENT_FLARE ); #line 1504 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1505 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : #line 1506 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" HideFlare (m_moWeapon , SNIPER_ATTACHMENT_BODY , BODY_ATTACHMENT_FLARE ); #line 1507 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1508 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : #line 1509 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" HideFlare (m_moWeapon , MINIGUN_ATTACHMENT_BODY , BODY_ATTACHMENT_FLARE ); #line 1510 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1511 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1512 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1513 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (FALSE ); #line 1514 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1515 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1519 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::PlayLightAnim(INDEX iAnim,ULONG ulFlags) { #line 1520 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 1521 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_aoLightAnimation . GetData () != NULL ){ #line 1522 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_aoLightAnimation . PlayAnim (iAnim , ulFlags ); #line 1523 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1524 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1528 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::SetCurrentWeaponModel(void) { #line 1530 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 1531 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_NONE : #line 1532 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1534 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : #line 1535 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_KNIFE , TEXTURE_HAND , 0 , 0 , 0); #line 1536 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , KNIFE_ATTACHMENT_KNIFEITEM , MODEL_KNIFEITEM , #line 1537 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TEXTURE_KNIFEITEM , TEX_REFL_BWRIPLES02 , TEX_SPEC_WEAK , 0); #line 1538 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (KNIFE_ANIM_WAIT1 , 0); #line 1539 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1541 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : { #line 1542 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeaponSecond , MODEL_COLT , TEXTURE_HAND , 0 , 0 , 0); #line 1543 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeaponSecond , COLT_ATTACHMENT_BULLETS , MODEL_COLTBULLETS , TEXTURE_COLTBULLETS , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1544 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeaponSecond , COLT_ATTACHMENT_COCK , MODEL_COLTCOCK , TEXTURE_COLTCOCK , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1545 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeaponSecond , COLT_ATTACHMENT_COLT , MODEL_COLTMAIN , TEXTURE_COLTMAIN , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1546 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject & mo = m_moWeaponSecond . GetAttachmentModel (COLT_ATTACHMENT_COLT ) -> amo_moModelObject ; #line 1547 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , mo , COLTMAIN_ATTACHMENT_FLARE , MODEL_FLARE01 , TEXTURE_FLARE01 , 0 , 0 , 0);} #line 1548 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . StretchModel (FLOAT3D (- 1 , 1 , 1)); #line 1549 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (COLT_ANIM_WAIT1 , 0); #line 1550 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : { #line 1551 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_COLT , TEXTURE_HAND , 0 , 0 , 0); #line 1552 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , COLT_ATTACHMENT_BULLETS , MODEL_COLTBULLETS , TEXTURE_COLTBULLETS , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1553 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , COLT_ATTACHMENT_COCK , MODEL_COLTCOCK , TEXTURE_COLTCOCK , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1554 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , COLT_ATTACHMENT_COLT , MODEL_COLTMAIN , TEXTURE_COLTMAIN , TEX_REFL_LIGHTBLUEMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1555 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject & mo = m_moWeapon . GetAttachmentModel (COLT_ATTACHMENT_COLT ) -> amo_moModelObject ; #line 1556 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , mo , COLTMAIN_ATTACHMENT_FLARE , MODEL_FLARE01 , TEXTURE_FLARE01 , 0 , 0 , 0); #line 1557 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (COLT_ANIM_WAIT1 , 0); #line 1558 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 1559 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : { #line 1560 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_SINGLESHOTGUN , TEXTURE_HAND , 0 , 0 , 0); #line 1561 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , SINGLESHOTGUN_ATTACHMENT_BARRELS , MODEL_SS_BARRELS , TEXTURE_SS_BARRELS , TEX_REFL_DARKMETAL , TEX_SPEC_WEAK , 0); #line 1562 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , SINGLESHOTGUN_ATTACHMENT_HANDLE , MODEL_SS_HANDLE , TEXTURE_SS_HANDLE , TEX_REFL_DARKMETAL , TEX_SPEC_MEDIUM , 0); #line 1563 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , SINGLESHOTGUN_ATTACHMENT_SLIDER , MODEL_SS_SLIDER , TEXTURE_SS_BARRELS , TEX_REFL_DARKMETAL , TEX_SPEC_MEDIUM , 0); #line 1564 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject & mo = m_moWeapon . GetAttachmentModel (SINGLESHOTGUN_ATTACHMENT_BARRELS ) -> amo_moModelObject ; #line 1565 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , mo , BARRELS_ATTACHMENT_FLARE , MODEL_FLARE01 , TEXTURE_FLARE01 , 0 , 0 , 0); #line 1566 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (SINGLESHOTGUN_ANIM_WAIT1 , 0); #line 1567 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 1568 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : { #line 1569 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_DOUBLESHOTGUN , TEXTURE_HAND , 0 , 0 , 0); #line 1570 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , DOUBLESHOTGUN_ATTACHMENT_BARRELS , MODEL_DS_BARRELS , TEXTURE_DS_BARRELS , TEX_REFL_BWRIPLES01 , TEX_SPEC_MEDIUM , 0); #line 1571 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , DOUBLESHOTGUN_ATTACHMENT_HANDLE , MODEL_DS_HANDLE , TEXTURE_DS_HANDLE , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1572 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , DOUBLESHOTGUN_ATTACHMENT_SWITCH , MODEL_DS_SWITCH , TEXTURE_DS_SWITCH , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1573 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , DOUBLESHOTGUN_ATTACHMENT_AMMO , MODEL_DS_AMMO , TEXTURE_DS_AMMO , 0 , 0 , 0); #line 1574 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeaponSecond , MODEL_DS_HANDWITHAMMO , TEXTURE_HAND , 0 , 0 , 0); #line 1575 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject & mo = m_moWeapon . GetAttachmentModel (DOUBLESHOTGUN_ATTACHMENT_BARRELS ) -> amo_moModelObject ; #line 1576 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , mo , DSHOTGUNBARRELS_ATTACHMENT_FLARE , MODEL_FLARE01 , TEXTURE_FLARE01 , 0 , 0 , 0); #line 1577 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . StretchModel (FLOAT3D (1 , 1 , 1)); #line 1578 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (DOUBLESHOTGUN_ANIM_WAIT1 , 0); #line 1579 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 1580 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : { #line 1581 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_TOMMYGUN , TEXTURE_HAND , 0 , 0 , 0); #line 1582 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , TOMMYGUN_ATTACHMENT_BODY , MODEL_TG_BODY , TEXTURE_TG_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1583 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , TOMMYGUN_ATTACHMENT_SLIDER , MODEL_TG_SLIDER , TEXTURE_TG_BODY , 0 , TEX_SPEC_MEDIUM , 0); #line 1584 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject & mo = m_moWeapon . GetAttachmentModel (TOMMYGUN_ATTACHMENT_BODY ) -> amo_moModelObject ; #line 1585 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , mo , BODY_ATTACHMENT_FLARE , MODEL_FLARE01 , TEXTURE_FLARE01 , 0 , 0 , 0); #line 1586 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 1587 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : { #line 1588 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_SNIPER , TEXTURE_SNIPER_BODY , 0 , 0 , 0); #line 1589 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , SNIPER_ATTACHMENT_BODY , MODEL_SNIPER_BODY , TEXTURE_SNIPER_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1590 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject & mo = m_moWeapon . GetAttachmentModel (SNIPER_ATTACHMENT_BODY ) -> amo_moModelObject ; #line 1591 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , mo , BODY_ATTACHMENT_FLARE , MODEL_FLARE01 , TEXTURE_FLARE01 , 0 , 0 , 0); #line 1592 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 1593 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : { #line 1594 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_MINIGUN , TEXTURE_HAND , 0 , 0 , 0); #line 1595 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , MINIGUN_ATTACHMENT_BARRELS , MODEL_MG_BARRELS , TEXTURE_MG_BARRELS , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1596 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , MINIGUN_ATTACHMENT_BODY , MODEL_MG_BODY , TEXTURE_MG_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1597 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , MINIGUN_ATTACHMENT_ENGINE , MODEL_MG_ENGINE , TEXTURE_MG_BARRELS , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1598 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject & mo = m_moWeapon . GetAttachmentModel (MINIGUN_ATTACHMENT_BODY ) -> amo_moModelObject ; #line 1599 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , mo , BODY_ATTACHMENT_FLARE , MODEL_FLARE01 , TEXTURE_FLARE01 , 0 , 0 , 0); #line 1600 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 1601 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : #line 1602 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_ROCKETLAUNCHER , TEXTURE_RL_BODY , 0 , 0 , 0); #line 1603 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , ROCKETLAUNCHER_ATTACHMENT_BODY , MODEL_RL_BODY , TEXTURE_RL_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1604 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , ROCKETLAUNCHER_ATTACHMENT_ROTATINGPART , MODEL_RL_ROTATINGPART , TEXTURE_RL_ROTATINGPART , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1605 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , ROCKETLAUNCHER_ATTACHMENT_ROCKET1 , MODEL_RL_ROCKET , TEXTURE_RL_ROCKET , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1606 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , ROCKETLAUNCHER_ATTACHMENT_ROCKET2 , MODEL_RL_ROCKET , TEXTURE_RL_ROCKET , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1607 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , ROCKETLAUNCHER_ATTACHMENT_ROCKET3 , MODEL_RL_ROCKET , TEXTURE_RL_ROCKET , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1608 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1609 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : #line 1610 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_GRENADELAUNCHER , TEXTURE_GL_BODY , 0 , 0 , 0); #line 1611 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , GRENADELAUNCHER_ATTACHMENT_BODY , MODEL_GL_BODY , TEXTURE_GL_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1612 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , GRENADELAUNCHER_ATTACHMENT_MOVING_PART , MODEL_GL_MOVINGPART , TEXTURE_GL_MOVINGPART , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1613 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , GRENADELAUNCHER_ATTACHMENT_GRENADE , MODEL_GL_GRENADE , TEXTURE_GL_MOVINGPART , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1614 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1626 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : #line 1627 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_FLAMER , TEXTURE_HAND , 0 , 0 , 0); #line 1628 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , FLAMER_ATTACHMENT_BODY , MODEL_FL_BODY , TEXTURE_FL_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1629 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , FLAMER_ATTACHMENT_FUEL , MODEL_FL_RESERVOIR , TEXTURE_FL_FUELRESERVOIR , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1630 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , FLAMER_ATTACHMENT_FLAME , MODEL_FL_FLAME , TEXTURE_FL_FLAME , 0 , 0 , 0); #line 1631 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1632 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : { #line 1633 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_CHAINSAW , TEXTURE_HAND , 0 , 0 , 0); #line 1634 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , CHAINSAW_ATTACHMENT_CHAINSAW , MODEL_CS_BODY , TEXTURE_CS_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1635 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , CHAINSAW_ATTACHMENT_BLADE , MODEL_CS_BLADE , TEXTURE_CS_BLADE , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1636 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo ; #line 1637 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo = & (m_moWeapon . GetAttachmentModel (CHAINSAW_ATTACHMENT_BLADE ) -> amo_moModelObject ); #line 1638 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , * pmo , BLADE_ATTACHMENT_TEETH , MODEL_CS_TEETH , TEXTURE_CS_TEETH , 0 , 0 , 0); #line 1639 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 1640 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : #line 1641 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_LASER , TEXTURE_HAND , 0 , 0 , 0); #line 1642 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , LASER_ATTACHMENT_BODY , MODEL_LS_BODY , TEXTURE_LS_BODY , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1643 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , LASER_ATTACHMENT_LEFTUP , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1644 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , LASER_ATTACHMENT_LEFTDOWN , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1645 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , LASER_ATTACHMENT_RIGHTUP , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1646 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , LASER_ATTACHMENT_RIGHTDOWN , MODEL_LS_BARREL , TEXTURE_LS_BARREL , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1647 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1668 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : #line 1670 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetComponents (this , m_moWeapon , MODEL_CANNON , TEXTURE_CANNON , 0 , 0 , 0); #line 1671 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddAttachmentToModel (this , m_moWeapon , CANNON_ATTACHMENT_BODY , MODEL_CN_BODY , TEXTURE_CANNON , TEX_REFL_LIGHTMETAL01 , TEX_SPEC_MEDIUM , 0); #line 1674 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1675 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1676 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1683 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::RotateMinigun(void) { #line 1684 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ANGLE aAngle = Lerp (m_aMiniGunLast , m_aMiniGun , _pTimer -> GetLerpFactor ()); #line 1686 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * amo = m_moWeapon . GetAttachmentModel (MINIGUN_ATTACHMENT_BARRELS ); #line 1687 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" amo -> amo_plRelative . pl_OrientationAngle (3) = aAngle ; #line 1688 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1697 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::CalcWeaponPosition3rdPersonView(FLOAT3D vPos,CPlacement3D & plPos,BOOL bResetZ) { #line 1698 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_OrientationAngle = ANGLE3D (0 , 0 , 0); #line 1700 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1701 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1702 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1703 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1704 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (- wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1705 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1706 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1708 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1709 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1710 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1711 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1712 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1713 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (1) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1714 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (2) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1715 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1717 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bResetZ ){ #line 1718 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) = 0.0f; #line 1719 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1722 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plView = ((CPlayer &) * m_penPlayer ) . en_plViewpoint ; #line 1723 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plView . pl_PositionVector (2) = 1.25118f; #line 1724 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (plView ); #line 1725 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (m_penPlayer -> GetPlacement ()); #line 1726 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1729 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::CalcWeaponPosition(FLOAT3D vPos,CPlacement3D & plPos,BOOL bResetZ) { #line 1730 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_OrientationAngle = ANGLE3D (0 , 0 , 0); #line 1732 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1733 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1734 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1735 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bSniping ){ #line 1736 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (0.0f , 0.0f , 0.0f); #line 1737 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1738 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1739 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (- wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1740 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1741 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1743 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1744 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1745 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1746 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1747 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1748 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (1) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1749 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (2) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1750 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1752 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bResetZ ){ #line 1753 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) = 0.0f; #line 1754 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1757 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plView = ((CPlayer &) * m_penPlayer ) . en_plViewpoint ; #line 1758 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plView . pl_PositionVector (2) += ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . #line 1759 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fEyesYOffset ; #line 1760 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (plView ); #line 1761 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (m_penPlayer -> GetPlacement ()); #line 1762 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1765 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::CalcLerpedWeaponPosition(FLOAT3D vPos,CPlacement3D & plPos,BOOL bResetZ) #line 1766 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1767 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_OrientationAngle = ANGLE3D (0 , 0 , 0); #line 1769 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1770 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1771 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1772 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bSniping ){ #line 1773 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (0.0f , 0.0f , 0.0f); #line 1774 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1775 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1776 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (- wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1777 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1778 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1780 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1781 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1782 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1783 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1784 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1785 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (1) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1786 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (2) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1787 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1789 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bResetZ ){ #line 1790 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) = 0.0f; #line 1791 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1794 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plRes ; #line 1795 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetPlayer () -> GetLerpedWeaponPosition (plPos . pl_PositionVector , plRes ); #line 1796 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos = plRes ; #line 1797 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1800 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::CalcWeaponPositionImprecise(FLOAT3D vPos,CPlacement3D & plPos,BOOL bResetZ,FLOAT fImprecissionAngle) { #line 1801 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_OrientationAngle = ANGLE3D ((FRnd () - 0.5f) * fImprecissionAngle , (FRnd () - 0.5f) * fImprecissionAngle , 0); #line 1803 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1804 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1805 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1806 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bSniping ){ #line 1807 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (0.0f , 0.0f , 0.0f); #line 1808 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1809 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1810 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector = FLOAT3D (- wpn_fX [ m_iCurrentWeapon ] , wpn_fY [ m_iCurrentWeapon ] , #line 1811 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_fZ [ m_iCurrentWeapon ]); #line 1812 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1814 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bMirrorFire ){ #line 1815 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1816 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 1817 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (CPlacement3D (vPos , ANGLE3D (0 , 0 , 0))); #line 1818 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1819 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (1) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1820 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (2) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1821 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) *= SinFast (wpn_fFOV [ m_iCurrentWeapon ] / 2) / SinFast (90.0f / 2); #line 1823 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bResetZ ){ #line 1824 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . pl_PositionVector (3) = 0.0f; #line 1825 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1828 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plView = ((CPlayer &) * m_penPlayer ) . en_plViewpoint ; #line 1829 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plView . pl_PositionVector (2) += ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . #line 1830 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fEyesYOffset ; #line 1831 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (plView ); #line 1832 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plPos . RelativeToAbsoluteSmooth (m_penPlayer -> GetPlacement ()); #line 1833 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1836 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::Setup3DSoundParameters(void) { #line 1837 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 1840 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 1.0f , 1.0f); #line 1841 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon1 . Set3DParameters (50.0f , 5.0f , 1.0f , 1.0f); #line 1842 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon2 . Set3DParameters (50.0f , 5.0f , 1.0f , 1.0f); #line 1843 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon3 . Set3DParameters (50.0f , 5.0f , 1.0f , 1.0f); #line 1844 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeaponAmbient . Set3DParameters (30.0f , 3.0f , 0.0f , 1.0f); #line 1845 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1853 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::CutWithKnife(FLOAT fX,FLOAT fY,FLOAT fRange,FLOAT fWide,FLOAT fThickness,FLOAT fDamage) #line 1854 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1856 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plKnife ; #line 1857 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fX , fY , 0) , plKnife , TRUE ); #line 1860 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT3D & vBase = plKnife . pl_PositionVector ; #line 1861 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 1862 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plKnife . pl_OrientationAngle ); #line 1863 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vRight = m . GetColumn (1) * fWide ; #line 1864 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp = m . GetColumn (2) * fWide ; #line 1865 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vFront = - m . GetColumn (3) * fRange ; #line 1867 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vDest [ 5 ]; #line 1868 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 0 ] = vBase + vFront ; #line 1869 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 1 ] = vBase + vFront + vUp ; #line 1870 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 2 ] = vBase + vFront - vUp ; #line 1871 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 3 ] = vBase + vFront + vRight ; #line 1872 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 4 ] = vBase + vFront - vRight ; #line 1874 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntity * penClosest = NULL ; #line 1875 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fDistance = UpperLimit (0.0f); #line 1876 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vHit ; #line 1877 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vDir ; #line 1879 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX i = 0;i < 5;i ++){ #line 1881 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CCastRay crRay (m_penPlayer , vBase , vDest [ i ]); #line 1882 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_bHitTranslucentPortals = FALSE ; #line 1883 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_fTestR = fThickness ; #line 1884 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_ttHitModels = CCastRay :: TT_COLLISIONBOX ; #line 1885 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetWorld () -> CastRay (crRay ); #line 1888 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(crRay . cr_penHit != NULL && crRay . cr_fHitDistance < fDistance ){ #line 1889 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penClosest = crRay . cr_penHit ; #line 1890 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fDistance = crRay . cr_fHitDistance ; #line 1891 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDir = vDest [ i ] - vBase ; #line 1892 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vHit = crRay . cr_vHit ; #line 1894 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(i == 0){ #line 1895 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(crRay . cr_penHit -> GetRenderType () == RT_BRUSH ) #line 1896 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1897 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iSurfaceType = crRay . cr_pbpoBrushPolygon -> bpo_bppProperties . bpp_ubSurfaceType ; #line 1898 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EffectParticlesType eptType = GetParticleEffectTypeForSurface (iSurfaceType ); #line 1900 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vNormal = crRay . cr_pbpoBrushPolygon -> bpo_pbplPlane -> bpl_plAbsolute ; #line 1901 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vReflected = vDir - vNormal * (2.0f * (vNormal % vDir )); #line 1902 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . AddBulletSpray (vBase + vFront , eptType , vReflected ); #line 1903 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1904 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else if(crRay . cr_penHit -> GetRenderType () == RT_MODEL ) #line 1905 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1906 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL bRender = TRUE ; #line 1907 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpillDir = - ((CPlayer &) * m_penPlayer ) . en_vGravityDir * 0.5f; #line 1908 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SprayParticlesType sptType = SPT_NONE ; #line 1909 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" COLOR colParticles = C_WHITE | CT_OPAQUE ; #line 1910 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fPower = 4.0f; #line 1911 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "ModelHolder2")) #line 1912 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1913 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bRender = FALSE ; #line 1914 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelDestruction * penDestruction = ((CModelHolder2 &) * crRay . cr_penHit ) . GetDestruction (); #line 1915 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(penDestruction != NULL ) #line 1916 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1917 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bRender = TRUE ; #line 1918 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sptType = penDestruction -> m_sptType ; #line 1919 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1920 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelHolder2 * pmh2 = (CModelHolder2 *) crRay . cr_penHit ; #line 1921 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" colParticles = pmh2 -> m_colBurning ; #line 1922 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1923 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATaabbox3D boxCutted = FLOATaabbox3D (FLOAT3D (0 , 0 , 0) , FLOAT3D (1 , 1 , 1)); #line 1924 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bRender ) #line 1925 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1926 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_penHit -> en_pmoModelObject -> GetCurrentFrameBBox (boxCutted ); #line 1927 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . AddGoreSpray (vBase + vFront , vHit , sptType , #line 1928 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vSpillDir , boxCutted , fPower , colParticles ); #line 1929 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1930 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1932 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 1933 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1934 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1935 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1937 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(penClosest != NULL ){ #line 1939 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! (GetSP () -> sp_bCooperative ) && IsOfClass (penClosest , "Player")){ #line 1940 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vToTarget = penClosest -> GetPlacement () . pl_PositionVector - m_penPlayer -> GetPlacement () . pl_PositionVector ; #line 1941 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vTargetHeading = FLOAT3D (0.0 , 0.0 , - 1.0f) * penClosest -> GetRotationMatrix (); #line 1942 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vToTarget . Normalize ();vTargetHeading . Normalize (); #line 1943 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(vToTarget % vTargetHeading > 0.64279) #line 1944 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1945 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PrintCenterMessage (this , m_penPlayer , TRANS ("Backstab!") , 4.0f , MSS_NONE ); #line 1946 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fDamage *= 4.0f; #line 1947 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1948 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1949 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT fDamageMul = GetSeriousDamageMultiplier (m_penPlayer ); #line 1950 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" InflictDirectDamage (penClosest , m_penPlayer , DMT_CLOSERANGE , fDamage * fDamageMul , vHit , vDir ); #line 1951 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 1952 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1953 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return FALSE ; #line 1954 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 1958 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::CutWithChainsaw(FLOAT fX,FLOAT fY,FLOAT fRange,FLOAT fWide,FLOAT fThickness,FLOAT fDamage) #line 1959 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1961 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plKnife ; #line 1962 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fX , fY , 0) , plKnife , TRUE ); #line 1965 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOAT3D & vBase = plKnife . pl_PositionVector ; #line 1966 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 1967 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plKnife . pl_OrientationAngle ); #line 1968 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vRight = m . GetColumn (1) * fWide ; #line 1969 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp = m . GetColumn (2) * fWide ; #line 1970 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vFront = - m . GetColumn (3) * fRange ; #line 1972 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vDest [ 3 ]; #line 1973 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 0 ] = vBase + vFront ; #line 1974 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 1 ] = vBase + vFront + vRight ; #line 1975 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDest [ 2 ] = vBase + vFront - vRight ; #line 1977 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntity * penClosest = NULL ; #line 1978 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fDistance = UpperLimit (0.0f); #line 1979 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vHit ; #line 1980 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vDir ; #line 1982 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX i = 0;i < 3;i ++){ #line 1984 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CCastRay crRay (m_penPlayer , vBase , vDest [ i ]); #line 1985 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_bHitTranslucentPortals = FALSE ; #line 1986 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_fTestR = fThickness ; #line 1987 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_ttHitModels = CCastRay :: TT_COLLISIONBOX ; #line 1988 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetWorld () -> CastRay (crRay ); #line 1991 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(crRay . cr_penHit != NULL ) #line 1992 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 1993 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penClosest = crRay . cr_penHit ; #line 1994 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fDistance = crRay . cr_fHitDistance ; #line 1995 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDir = vDest [ i ] - vBase ; #line 1996 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vDir . Normalize (); #line 1997 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vHit = crRay . cr_vHit ; #line 1999 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(i == 0) #line 2000 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2001 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(crRay . cr_penHit -> GetRenderType () == RT_BRUSH ) #line 2002 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2003 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iSurfaceType = crRay . cr_pbpoBrushPolygon -> bpo_bppProperties . bpp_ubSurfaceType ; #line 2004 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EffectParticlesType eptType = GetParticleEffectTypeForSurface (iSurfaceType ); #line 2006 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vNormal = crRay . cr_pbpoBrushPolygon -> bpo_pbplPlane -> bpl_plAbsolute ; #line 2007 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vReflected = vDir - vNormal * (2.0f * (vNormal % vDir )); #line 2008 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . AddBulletSpray (vBase + vFront , eptType , vReflected ); #line 2011 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_fChainShakeStrength = 0.85f; #line 2012 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_fChainShakeFreqMod = 1.0f; #line 2013 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_tmChainShakeEnd = _pTimer -> CurrentTick () + CHAINSAW_UPDATETIME * 1.5f; #line 2015 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2016 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else if(crRay . cr_penHit -> GetRenderType () == RT_MODEL ) #line 2017 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2018 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL bRender = TRUE ; #line 2019 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpillDir = - ((CPlayer &) * m_penPlayer ) . en_vGravityDir * 0.5f; #line 2020 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SprayParticlesType sptType = SPT_BLOOD ; #line 2021 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" COLOR colParticles = C_WHITE | CT_OPAQUE ; #line 2022 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! IsDerivedFromClass (crRay . cr_penHit , "Enemy Base")){ #line 2023 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sptType = SPT_NONE ; #line 2024 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2025 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fPower = 4.0f; #line 2026 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "Boneman")){sptType = SPT_BONES ;fPower = 6.0f;} #line 2027 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "Gizmo") || #line 2028 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" IsOfClass (crRay . cr_penHit , "Beast")){sptType = SPT_SLIME ;fPower = 4.0f;} #line 2029 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "Woman")){sptType = SPT_FEATHER ;fPower = 3.0f;} #line 2030 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "Elemental")){sptType = SPT_LAVA_STONES ;fPower = 3.0f;} #line 2031 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "Walker")){sptType = SPT_ELECTRICITY_SPARKS ;fPower = 30.0f;} #line 2032 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "AirElemental")){sptType = SPT_AIRSPOUTS ;fPower = 6.0f;} #line 2033 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "CannonRotating") || #line 2034 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" IsOfClass (crRay . cr_penHit , "CannonStatic")){sptType = SPT_WOOD ;} #line 2035 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (crRay . cr_penHit , "ModelHolder2")) #line 2036 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2037 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bRender = FALSE ; #line 2038 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelDestruction * penDestruction = ((CModelHolder2 &) * crRay . cr_penHit ) . GetDestruction (); #line 2039 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelHolder2 * pmh2 = (CModelHolder2 *) crRay . cr_penHit ; #line 2040 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" colParticles = pmh2 -> m_colBurning ; #line 2041 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(penDestruction != NULL ) #line 2042 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2043 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bRender = TRUE ; #line 2044 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sptType = penDestruction -> m_sptType ; #line 2045 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(sptType == SPT_COLOREDSTONE ) #line 2046 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2047 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" colParticles = MulColors (colParticles , penDestruction -> m_colParticles ); #line 2048 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2049 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2050 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2051 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATaabbox3D boxCutted = FLOATaabbox3D (FLOAT3D (0 , 0 , 0) , FLOAT3D (1 , 1 , 1)); #line 2052 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bRender && m_tmLastChainsawSpray + 0.2f < _pTimer -> CurrentTick ()) #line 2053 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2054 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" crRay . cr_penHit -> en_pmoModelObject -> GetCurrentFrameBBox (boxCutted ); #line 2055 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . AddGoreSpray (vBase + vFront , vHit , sptType , #line 2056 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vSpillDir , boxCutted , fPower , colParticles ); #line 2057 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmLastChainsawSpray = _pTimer -> CurrentTick (); #line 2058 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2061 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_fChainShakeStrength = 1.1f; #line 2062 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_fChainShakeFreqMod = 1.0f; #line 2063 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_tmChainShakeEnd = _pTimer -> CurrentTick () + CHAINSAW_UPDATETIME * 1.5f; #line 2065 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2066 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2068 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(crRay . cr_penHit -> GetRenderType () == RT_MODEL && crRay . cr_fHitDistance <= fDistance ) #line 2069 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2071 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(i == 0) #line 2072 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2074 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2075 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2076 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2077 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 2079 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_fChainShakeStrength = 0.1f; #line 2080 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_fChainShakeFreqMod = 1.0f; #line 2081 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_tmChainShakeEnd = _pTimer -> CurrentTick () + CHAINSAW_UPDATETIME * 1.5f; #line 2082 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2083 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2085 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(penClosest != NULL ){ #line 2086 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" InflictDirectDamage (penClosest , m_penPlayer , DMT_CHAINSAW , fDamage , vHit , vDir ); #line 2087 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 2088 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2089 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return FALSE ; #line 2090 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2093 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::PrepareSniperBullet(FLOAT fX,FLOAT fY,FLOAT fDamage,FLOAT fImprecission) { #line 2095 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPositionImprecise (FLOAT3D (fX , fY , 0) , plBullet , TRUE , fImprecission ); #line 2097 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penBullet = CreateEntity (plBullet , CLASS_BULLET ); #line 2098 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_vBulletSource = plBullet . pl_PositionVector ; #line 2100 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EBulletInit eInit ; #line 2101 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eInit . penOwner = m_penPlayer ; #line 2102 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eInit . fDamage = fDamage ; #line 2103 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penBullet -> Initialize (eInit ); #line 2104 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2107 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::PrepareBullet(FLOAT fX,FLOAT fY,FLOAT fDamage) { #line 2109 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fX , fY , 0) , plBullet , TRUE ); #line 2111 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penBullet = CreateEntity (plBullet , CLASS_BULLET ); #line 2113 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EBulletInit eInit ; #line 2114 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eInit . penOwner = m_penPlayer ; #line 2115 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eInit . fDamage = fDamage ; #line 2116 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penBullet -> Initialize (eInit ); #line 2117 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2120 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireSniperBullet(FLOAT fX,FLOAT fY,FLOAT fRange,FLOAT fDamage,FLOAT fImprecission) { #line 2121 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PrepareSniperBullet (fX , fY , fDamage , fImprecission ); #line 2122 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . CalcTarget (fRange ); #line 2123 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . m_fBulletSize = 0.1f; #line 2125 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . LaunchBullet (TRUE , FALSE , TRUE ); #line 2127 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(((CBullet &) * penBullet ) . m_vHitPoint != FLOAT3D (0.0f , 0.0f , 0.0f)){ #line 2128 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_vBulletTarget = ((CBullet &) * penBullet ) . m_vHitPoint ; #line 2129 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(TRUE ){ #line 2130 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_vBulletTarget = m_vBulletSource + FLOAT3D (0.0f , 0.0f , - 500.0f) * ((CBullet &) * penBullet ) . GetRotationMatrix (); #line 2132 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2146 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . DestroyBullet (); #line 2147 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2150 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireOneBullet(FLOAT fX,FLOAT fY,FLOAT fRange,FLOAT fDamage) { #line 2151 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PrepareBullet (fX , fY , fDamage ); #line 2152 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . CalcTarget (fRange ); #line 2153 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . m_fBulletSize = 0.1f; #line 2155 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . LaunchBullet (TRUE , FALSE , TRUE ); #line 2156 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . DestroyBullet (); #line 2157 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2160 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireBullets(FLOAT fX,FLOAT fY,FLOAT fRange,FLOAT fDamage,INDEX iBullets, #line 2161 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT * afPositions,FLOAT fStretch,FLOAT fJitter) { #line 2162 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PrepareBullet (fX , fY , fDamage ); #line 2163 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . CalcTarget (fRange ); #line 2164 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . m_fBulletSize = GetSP () -> sp_bCooperative ? 0.1f : 0.3f; #line 2166 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iSlug ; #line 2167 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(iSlug = 0;iSlug < iBullets ;iSlug ++){ #line 2169 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . CalcJitterTargetFixed ( #line 2170 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" afPositions [ iSlug * 2 + 0 ] * fRange * fStretch , afPositions [ iSlug * 2 + 1 ] * fRange * fStretch , #line 2171 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fJitter * fRange * fStretch ); #line 2172 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . LaunchBullet (iSlug < 2 , FALSE , TRUE ); #line 2173 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2174 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . DestroyBullet (); #line 2175 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2178 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireMachineBullet(FLOAT fX,FLOAT fY,FLOAT fRange,FLOAT fDamage, #line 2179 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fJitter,FLOAT fBulletSize) #line 2180 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2181 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fJitter *= fRange ; #line 2182 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PrepareBullet (fX , fY , fDamage ); #line 2183 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . CalcTarget (fRange ); #line 2184 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . m_fBulletSize = fBulletSize ; #line 2185 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . CalcJitterTarget (fJitter ); #line 2186 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . LaunchBullet (TRUE , FALSE , TRUE ); #line 2187 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CBullet &) * penBullet ) . DestroyBullet (); #line 2188 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2191 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireGrenade(INDEX iPower) { #line 2193 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plGrenade ; #line 2194 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition ( #line 2195 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D (wpn_fFX [ WEAPON_GRENADELAUNCHER ] , wpn_fFY [ WEAPON_GRENADELAUNCHER ] , 0) , #line 2196 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plGrenade , TRUE ); #line 2198 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntityPointer penGrenade = CreateEntity (plGrenade , CLASS_PROJECTILE ); #line 2200 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ELaunchProjectile eLaunch ; #line 2201 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . penLauncher = m_penPlayer ; #line 2202 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . prtType = PRT_GRENADE ; #line 2203 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . fSpeed = 20.0f + iPower * 5.0f; #line 2204 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penGrenade -> Initialize (eLaunch ); #line 2205 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2208 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireRocket(void) { #line 2210 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plRocket ; #line 2211 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition ( #line 2212 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D (wpn_fFX [ WEAPON_ROCKETLAUNCHER ] , wpn_fFY [ WEAPON_ROCKETLAUNCHER ] , 0) , #line 2213 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plRocket , TRUE ); #line 2215 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntityPointer penRocket = CreateEntity (plRocket , CLASS_PROJECTILE ); #line 2217 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ELaunchProjectile eLaunch ; #line 2218 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . penLauncher = m_penPlayer ; #line 2219 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . prtType = PRT_ROCKET ; #line 2220 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penRocket -> Initialize (eLaunch ); #line 2221 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2248 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::GetFlamerSourcePlacement(CPlacement3D & plSource,CPlacement3D & plInFrontOfPipe) { #line 2249 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcLerpedWeaponPosition ( #line 2250 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D (wpn_fFX [ WEAPON_FLAMER ] , wpn_fFY [ WEAPON_FLAMER ] , - 0.15f) , #line 2251 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plSource , FALSE ); #line 2252 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plInFrontOfPipe = plSource ; #line 2253 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vFront ; #line 2254 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AnglesToDirectionVector (plSource . pl_OrientationAngle , vFront ); #line 2255 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plInFrontOfPipe . pl_PositionVector = plSource . pl_PositionVector + vFront * 1.0f; #line 2256 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2259 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireFlame(void) { #line 2261 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plFlame ; #line 2263 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (wpn_fFX [ WEAPON_FLAMER ] , wpn_fFY [ WEAPON_FLAMER ] , - 0.15f) , plFlame , TRUE ); #line 2266 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntityPointer penFlame = CreateEntity (plFlame , CLASS_PROJECTILE ); #line 2268 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ELaunchProjectile eLaunch ; #line 2269 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . penLauncher = m_penPlayer ; #line 2270 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . prtType = PRT_FLAME ; #line 2271 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penFlame -> Initialize (eLaunch ); #line 2273 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_penFlame != NULL && ! (m_penFlame -> GetFlags () & ENF_DELETED )){ #line 2274 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CProjectile &) * m_penFlame ) . m_penParticles = penFlame ; #line 2275 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2277 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CProjectile &) * penFlame ) . m_penParticles = this ; #line 2279 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penFlame = penFlame ; #line 2280 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2283 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireLaserRay(void) { #line 2285 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plLaserRay ; #line 2286 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fFX = wpn_fFX [ WEAPON_LASER ]; #line 2287 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fFY = wpn_fFY [ WEAPON_LASER ]; #line 2288 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fLUX = 0.0f; #line 2289 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fRUX = 0.8f; #line 2290 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fLUY = 0.0f; #line 2291 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fRUY = 0.0f; #line 2292 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fLDX = - 0.1f; #line 2293 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fRDX = 0.9f; #line 2294 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fLDY = - 0.3f; #line 2295 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fRDY = - 0.3f; #line 2296 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(((CPlayer *) & * m_penPlayer ) -> m_pstState == PST_CROUCH ){ #line 2297 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fLDY = - 0.1f; #line 2298 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fRDY = - 0.1f; #line 2299 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2301 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iLaserBarrel ){ #line 2302 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: #line 2303 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fFX + fLUX , fFY + fLUY , 0) , plLaserRay , TRUE ); #line 2304 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2305 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: #line 2306 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fFX + fLDX , fFY + fLDY , 0) , plLaserRay , TRUE ); #line 2307 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2308 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: #line 2309 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fFX + fRUX , fFY + fRUY , 0) , plLaserRay , TRUE ); #line 2310 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2311 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 3: #line 2312 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (fFX + fRDX , fFY + fRDY , 0) , plLaserRay , TRUE ); #line 2313 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2314 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2316 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntityPointer penLaser = CreateEntity (plLaserRay , CLASS_PROJECTILE ); #line 2318 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ELaunchProjectile eLaunch ; #line 2319 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . penLauncher = m_penPlayer ; #line 2320 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . prtType = PRT_LASER_RAY ; #line 2321 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penLaser -> Initialize (eLaunch ); #line 2322 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2343 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::FireCannonBall(INDEX iPower) #line 2344 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2346 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plBall ; #line 2347 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition ( #line 2348 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D (wpn_fFX [ WEAPON_IRONCANNON ] , wpn_fFY [ WEAPON_IRONCANNON ] , 0) , #line 2349 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plBall , TRUE ); #line 2351 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntityPointer penBall = CreateEntity (plBall , CLASS_CANNONBALL ); #line 2353 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ELaunchCannonBall eLaunch ; #line 2354 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . penLauncher = m_penPlayer ; #line 2355 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . fLaunchPower = 60.0f + iPower * 4.0f; #line 2356 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . fSize = 3.0f; #line 2364 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eLaunch . cbtType = CBT_IRON ; #line 2366 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penBall -> Initialize (eLaunch ); #line 2367 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2370 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::SpawnRangeSound(FLOAT fRange) #line 2371 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2372 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pTimer -> CurrentTick () > m_tmRangeSoundSpawned + 0.5f){ #line 2373 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmRangeSoundSpawned = _pTimer -> CurrentTick (); #line 2374 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" :: SpawnRangeSound (m_penPlayer , m_penPlayer , SNDT_PLAYER , fRange ); #line 2375 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2376 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2383 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::ClearWeapons(void) { #line 2385 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAvailableWeapons = 0x03; #line 2386 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iColtBullets = 6; #line 2387 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets = 0; #line 2388 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells = 0; #line 2389 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets = 0; #line 2390 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iGrenades = 0; #line 2391 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iNapalm = 0; #line 2392 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iElectricity = 0; #line 2393 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iIronBalls = 0; #line 2395 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iSniperBullets = 0; #line 2396 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2398 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::ResetWeaponMovingOffset(void) #line 2399 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2401 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPowerOld = m_fWeaponDrawPower = m_tmDrawStartTime = 0; #line 2402 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2405 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::InitializeWeapons(INDEX iGiveWeapons,INDEX iTakeWeapons,INDEX iTakeAmmo,FLOAT fMaxAmmoRatio) #line 2406 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2407 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ResetWeaponMovingOffset (); #line 2409 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ULONG ulOldWeapons = m_iAvailableWeapons ; #line 2411 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAvailableWeapons &= ~ iTakeWeapons ; #line 2412 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAvailableWeapons |= 0x03 | iGiveWeapons ; #line 2413 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAvailableWeapons &= WEAPONS_ALLAVAILABLEMASK ; #line 2416 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ULONG ulNewWeapons = m_iAvailableWeapons & ~ ulOldWeapons ; #line 2418 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX iWeapon = WEAPON_KNIFE ;iWeapon < WEAPON_LAST ;iWeapon ++){ #line 2419 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(ulNewWeapons & (1 << (iWeapon - 1))){ #line 2421 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddDefaultAmmoForWeapon (iWeapon , fMaxAmmoRatio ); #line 2422 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2423 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2426 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fModifier = ClampDn (GetSP () -> sp_fAmmoQuantity , 1.0f); #line 2427 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxBullets = ClampUp ((INDEX) ceil (MAX_BULLETS * fModifier ) , INDEX (999)); #line 2428 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxShells = ClampUp ((INDEX) ceil (MAX_SHELLS * fModifier ) , INDEX (999)); #line 2429 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxRockets = ClampUp ((INDEX) ceil (MAX_ROCKETS * fModifier ) , INDEX (999)); #line 2430 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxGrenades = ClampUp ((INDEX) ceil (MAX_GRENADES * fModifier ) , INDEX (999)); #line 2431 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxNapalm = ClampUp ((INDEX) ceil (MAX_NAPALM * fModifier ) , INDEX (999)); #line 2432 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxElectricity = ClampUp ((INDEX) ceil (MAX_ELECTRICITY * fModifier ) , INDEX (999)); #line 2434 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxIronBalls = ClampUp ((INDEX) ceil (MAX_IRONBALLS * fModifier ) , INDEX (999)); #line 2435 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iMaxSniperBullets = ClampUp ((INDEX) ceil (MAX_SNIPERBULLETS * fModifier ) , INDEX (999)); #line 2438 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_BULLETS )){m_iBullets = 0;} #line 2439 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_SHELLS )){m_iShells = 0;} #line 2440 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_ROCKETS )){m_iRockets = 0;} #line 2441 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_GRENADES )){m_iGrenades = 0;} #line 2442 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_NAPALM )){m_iNapalm = 0;} #line 2443 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_ELECTRICITY )){m_iElectricity = 0;} #line 2445 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_IRONBALLS )){m_iIronBalls = 0;} #line 2446 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iTakeAmmo & (1 << AMMO_SNIPERBULLETS )){m_iSniperBullets = 0;} #line 2449 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Precache (); #line 2452 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGun = 0; #line 2453 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunLast = 0; #line 2454 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunSpeed = 0; #line 2457 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon (); #line 2458 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iCurrentWeapon = m_iWantedWeapon ; #line 2459 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_iCurrent = m_iCurrentWeapon ; #line 2460 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bChangeWeapon = FALSE ; #line 2462 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetCurrentWeaponModel (); #line 2463 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayDefaultAnim (); #line 2465 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . RemoveWeapon (); #line 2467 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . SetWeapon (); #line 2468 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2471 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX CPlayerWeapons::GetAmmo(void) #line 2472 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2473 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 2474 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : return 0; #line 2475 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : return m_iColtBullets ; #line 2476 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : return m_iColtBullets ; #line 2477 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : return m_iShells ; #line 2478 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : return m_iShells ; #line 2479 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : return m_iBullets ; #line 2480 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : return m_iBullets ; #line 2481 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : return m_iRockets ; #line 2482 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : return m_iGrenades ; #line 2483 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : return m_iSniperBullets ; #line 2484 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : return m_iNapalm ; #line 2485 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : return 0; #line 2486 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : return m_iElectricity ; #line 2487 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : return m_iIronBalls ; #line 2488 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2489 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return 0; #line 2490 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2493 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX CPlayerWeapons::GetMaxAmmo(void) #line 2494 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2495 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 2496 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : return 0; #line 2497 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : return 6; #line 2498 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : return 6; #line 2499 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : return m_iMaxShells ; #line 2500 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : return m_iMaxShells ; #line 2501 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : return m_iMaxBullets ; #line 2502 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : return m_iMaxBullets ; #line 2503 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : return m_iMaxRockets ; #line 2504 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : return m_iMaxGrenades ; #line 2505 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : return m_iMaxSniperBullets ; #line 2506 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : return m_iMaxNapalm ; #line 2507 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : return m_iMaxNapalm ; #line 2508 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : return m_iMaxElectricity ; #line 2509 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : return m_iMaxIronBalls ; #line 2510 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2511 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return 0; #line 2512 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2514 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::CheatOpen(void) #line 2515 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2516 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IsOfClass (m_penRayHit , "Moving Brush")){ #line 2517 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penRayHit -> SendEvent (ETrigger ()); #line 2518 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2519 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2522 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::CheatGiveAll(void) { #line 2524 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAvailableWeapons = WEAPONS_ALLAVAILABLEMASK ; #line 2527 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets = m_iMaxBullets ; #line 2528 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells = m_iMaxShells ; #line 2529 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets = m_iMaxRockets ; #line 2530 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iGrenades = m_iMaxGrenades ; #line 2531 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iNapalm = m_iMaxNapalm ; #line 2532 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iElectricity = m_iMaxElectricity ; #line 2533 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iIronBalls = m_iMaxIronBalls ; #line 2536 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iSniperBullets = m_iMaxSniperBullets ; #line 2537 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Precache (); #line 2538 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2541 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::AddManaToPlayer(INDEX iMana) #line 2542 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2543 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_iMana += iMana ; #line 2544 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . m_fPickedMana += iMana ; #line 2545 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2553 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::ClampAllAmmo(void) #line 2554 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2555 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets = ClampUp (m_iBullets , m_iMaxBullets ); #line 2556 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells = ClampUp (m_iShells , m_iMaxShells ); #line 2557 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets = ClampUp (m_iRockets , m_iMaxRockets ); #line 2558 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iGrenades = ClampUp (m_iGrenades , m_iMaxGrenades ); #line 2559 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iNapalm = ClampUp (m_iNapalm , m_iMaxNapalm ); #line 2560 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iElectricity = ClampUp (m_iElectricity , m_iMaxElectricity ); #line 2561 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iIronBalls = ClampUp (m_iIronBalls , m_iMaxIronBalls ); #line 2563 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iSniperBullets = ClampUp (m_iSniperBullets , m_iMaxSniperBullets ); #line 2564 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2567 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::AddDefaultAmmoForWeapon(INDEX iWeapon,FLOAT fMaxAmmoRatio) #line 2568 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2569 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAmmoPicked ; #line 2571 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(iWeapon ){ #line 2573 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : #line 2574 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : #line 2575 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : #line 2576 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2578 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : #line 2579 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (10.0f , m_iMaxShells * fMaxAmmoRatio ); #line 2580 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells += iAmmoPicked ; #line 2581 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 70.0f * MANA_AMMO ); #line 2582 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2583 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : #line 2584 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (20.0f , m_iMaxShells * fMaxAmmoRatio ); #line 2585 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells += iAmmoPicked ; #line 2586 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 70.0f * MANA_AMMO ); #line 2587 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2589 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : #line 2590 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (50.0f , m_iMaxBullets * fMaxAmmoRatio ); #line 2591 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets += iAmmoPicked ; #line 2592 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 10.0f * MANA_AMMO ); #line 2593 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2594 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : #line 2595 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (15.0f , m_iMaxSniperBullets * fMaxAmmoRatio ); #line 2596 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iSniperBullets += iAmmoPicked ; #line 2597 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 10.0f * MANA_AMMO ); #line 2598 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2599 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : #line 2600 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (100.0f , m_iMaxBullets * fMaxAmmoRatio ); #line 2601 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets += iAmmoPicked ; #line 2602 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 10.0f * MANA_AMMO ); #line 2603 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2605 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : #line 2606 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (5.0f , m_iMaxRockets * fMaxAmmoRatio ); #line 2607 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets += iAmmoPicked ; #line 2608 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 150.0f * MANA_AMMO ); #line 2609 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2611 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : #line 2612 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (5.0f , m_iMaxGrenades * fMaxAmmoRatio ); #line 2613 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iGrenades += iAmmoPicked ; #line 2614 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 100.0f * MANA_AMMO ); #line 2615 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2629 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : #line 2630 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (50.0f , m_iMaxElectricity * fMaxAmmoRatio ); #line 2631 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iElectricity += iAmmoPicked ; #line 2632 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 15.0f * MANA_AMMO ); #line 2633 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2635 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : #line 2637 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (1.0f , m_iMaxIronBalls * fMaxAmmoRatio ); #line 2638 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iIronBalls += iAmmoPicked ; #line 2639 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 700.0f * MANA_AMMO ); #line 2640 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2648 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : #line 2649 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAmmoPicked = Max (50.0f , m_iMaxNapalm * fMaxAmmoRatio ); #line 2650 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iNapalm += iAmmoPicked ; #line 2651 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (iAmmoPicked * 15.0f * MANA_AMMO ); #line 2652 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2653 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : #line 2657 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2659 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : #line 2660 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Uknown weapon type"); #line 2661 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2662 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2665 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ClampAllAmmo (); #line 2666 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2669 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::DropWeapon(void) #line 2670 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2671 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CEntityPointer penWeapon = CreateEntity (GetPlayer () -> GetPlacement () , CLASS_WEAPONITEM ); #line 2672 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CWeaponItem * pwi = (CWeaponItem *) & * penWeapon ; #line 2674 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponItemType wit = WIT_COLT ; #line 2675 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 2676 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : #line 2677 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (FALSE ); #line 2678 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : #line 2679 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : #line 2680 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : #line 2681 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" NOTHING ;break ; #line 2682 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : wit = WIT_SINGLESHOTGUN ;break ; #line 2683 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : wit = WIT_DOUBLESHOTGUN ;break ; #line 2684 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : wit = WIT_TOMMYGUN ;break ; #line 2685 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : wit = WIT_SNIPER ;break ; #line 2686 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : wit = WIT_MINIGUN ;break ; #line 2687 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : wit = WIT_ROCKETLAUNCHER ;break ; #line 2688 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : wit = WIT_GRENADELAUNCHER ;break ; #line 2689 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : wit = WIT_FLAMER ;break ; #line 2690 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : wit = WIT_CHAINSAW ;break ; #line 2691 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : wit = WIT_LASER ;break ; #line 2692 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : wit = WIT_CANNON ;break ; #line 2693 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2695 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pwi -> m_EwitType = wit ; #line 2696 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pwi -> m_bDropped = TRUE ; #line 2697 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pwi -> CEntity :: Initialize (); #line 2699 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOATmatrix3D & m = GetPlayer () -> GetRotationMatrix (); #line 2700 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeed = FLOAT3D (5.0f , 10.0f , - 7.5f); #line 2701 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pwi -> GiveImpulseTranslationAbsolute (vSpeed * m ); #line 2702 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2705 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::ReceiveWeapon(const CEntityEvent & ee) { #line 2706 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (ee . ee_slEvent == EVENTCODE_EWeaponItem ); #line 2708 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EWeaponItem & Ewi = (EWeaponItem &) ee ; #line 2709 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX wit = Ewi . iWeapon ; #line 2710 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(Ewi . iWeapon ){ #line 2711 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_COLT : Ewi . iWeapon = WEAPON_COLT ;break ; #line 2712 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_SINGLESHOTGUN : Ewi . iWeapon = WEAPON_SINGLESHOTGUN ;break ; #line 2713 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_DOUBLESHOTGUN : Ewi . iWeapon = WEAPON_DOUBLESHOTGUN ;break ; #line 2714 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_TOMMYGUN : Ewi . iWeapon = WEAPON_TOMMYGUN ;break ; #line 2715 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_SNIPER : Ewi . iWeapon = WEAPON_SNIPER ;break ; #line 2716 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_MINIGUN : Ewi . iWeapon = WEAPON_MINIGUN ;break ; #line 2717 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_ROCKETLAUNCHER : Ewi . iWeapon = WEAPON_ROCKETLAUNCHER ;break ; #line 2718 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_GRENADELAUNCHER : Ewi . iWeapon = WEAPON_GRENADELAUNCHER ;break ; #line 2719 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_FLAMER : Ewi . iWeapon = WEAPON_FLAMER ;break ; #line 2720 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_CHAINSAW : Ewi . iWeapon = WEAPON_CHAINSAW ;break ; #line 2721 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_LASER : Ewi . iWeapon = WEAPON_LASER ;break ; #line 2722 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_CANNON : Ewi . iWeapon = WEAPON_IRONCANNON ;break ; #line 2723 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : #line 2724 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Uknown weapon type"); #line 2725 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2728 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(Ewi . iWeapon == WEAPON_COLT && (m_iAvailableWeapons & (1 << (WEAPON_COLT - 1)))){ #line 2729 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Ewi . iWeapon = WEAPON_DOUBLECOLT ; #line 2730 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2732 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ULONG ulOldWeapons = m_iAvailableWeapons ; #line 2733 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAvailableWeapons |= 1 << (Ewi . iWeapon - 1); #line 2745 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Precache (); #line 2747 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CTFileName fnmMsg ; #line 2748 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(wit ){ #line 2749 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_COLT : #line 2750 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Shofield .45 w/ TMAR") , 0); #line 2751 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\colt.txt"); #line 2752 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2753 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_SINGLESHOTGUN : #line 2754 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("12 Gauge Pump Action Shotgun") , 0); #line 2755 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\singleshotgun.txt"); #line 2756 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2757 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_DOUBLESHOTGUN : #line 2758 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Double Barrel Coach Gun") , 0); #line 2759 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\doubleshotgun.txt"); #line 2760 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2761 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_TOMMYGUN : #line 2762 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("M1-A2 Tommygun") , 0); #line 2763 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\tommygun.txt"); #line 2764 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2765 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_SNIPER : #line 2766 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("RAPTOR 16mm Sniper") , 0); #line 2767 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("DataMP\\Messages\\Weapons\\sniper.txt"); #line 2768 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2769 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_MINIGUN : #line 2770 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("XM214-A Minigun") , 0); #line 2771 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\minigun.txt"); #line 2772 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2773 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_ROCKETLAUNCHER : #line 2774 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("XPML21 Rocket Launcher") , 0); #line 2775 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\rocketlauncher.txt"); #line 2776 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2777 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_GRENADELAUNCHER : #line 2778 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("MKIII Grenade Launcher") , 0); #line 2779 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\grenadelauncher.txt"); #line 2780 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2784 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_FLAMER : #line 2785 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("XOP Flamethrower") , 0); #line 2786 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("DataMP\\Messages\\Weapons\\flamer.txt"); #line 2787 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2788 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_CHAINSAW : #line 2789 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("'Bonecracker' P-LAH Chainsaw") , 0); #line 2790 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("DataMP\\Messages\\Weapons\\chainsaw.txt"); #line 2791 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2792 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_LASER : #line 2793 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("XL2 Lasergun") , 0); #line 2794 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\laser.txt"); #line 2795 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2799 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WIT_CANNON : #line 2800 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("SBC Cannon") , 0); #line 2801 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fnmMsg = CTFILENAME ("Data\\Messages\\Weapons\\cannon.txt"); #line 2802 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2803 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : #line 2804 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Uknown weapon type"); #line 2805 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2807 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetSP () -> sp_bCooperative ){ #line 2808 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EComputerMessage eMsg ; #line 2809 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" eMsg . fnmMessage = fnmMsg ; #line 2810 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penPlayer -> SendEvent (eMsg ); #line 2811 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2814 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (Ewi . iAmmo == - 1); #line 2816 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddDefaultAmmoForWeapon (Ewi . iWeapon , 0); #line 2819 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL bAutoSelect = FALSE ; #line 2820 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iSelectionSetting = GetPlayer () -> GetSettings () -> ps_iWeaponAutoSelect ; #line 2821 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iSelectionSetting == PS_WAS_ALL ){ #line 2822 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bAutoSelect = TRUE ; #line 2823 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(iSelectionSetting == PS_WAS_ONLYNEW ){ #line 2824 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iAvailableWeapons & ~ ulOldWeapons ){ #line 2825 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bAutoSelect = TRUE ; #line 2826 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2827 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(iSelectionSetting == PS_WAS_BETTER ){ #line 2828 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(FindRemapedPos (m_iCurrentWeapon ) < FindRemapedPos ((WeaponType ) Ewi . iWeapon )){ #line 2829 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bAutoSelect = TRUE ; #line 2830 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2831 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2832 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bAutoSelect ){ #line 2834 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(WeaponSelectOk ((WeaponType ) Ewi . iWeapon )){ #line 2835 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SendEvent (EBegin ()); #line 2836 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2837 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2839 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 2840 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2843 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::ReceiveAmmo(const CEntityEvent & ee) { #line 2844 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (ee . ee_slEvent == EVENTCODE_EAmmoItem ); #line 2847 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetSP () -> sp_bInfiniteAmmo ){ #line 2850 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 2851 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2854 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EAmmoItem & Eai = (EAmmoItem &) ee ; #line 2856 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(Eai . EaitType ){ #line 2858 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_SHELLS : #line 2859 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iShells >= m_iMaxShells ){m_iShells = m_iMaxShells ;return FALSE ;} #line 2860 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells += Eai . iQuantity ; #line 2861 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Shells") , Eai . iQuantity ); #line 2862 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_SHELLS * MANA_AMMO ); #line 2863 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2865 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_BULLETS : #line 2866 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iBullets >= m_iMaxBullets ){m_iBullets = m_iMaxBullets ;return FALSE ;} #line 2867 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets += Eai . iQuantity ; #line 2868 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Bullets") , Eai . iQuantity ); #line 2869 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_BULLETS * MANA_AMMO ); #line 2870 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2872 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_ROCKETS : #line 2873 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iRockets >= m_iMaxRockets ){m_iRockets = m_iMaxRockets ;return FALSE ;} #line 2874 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets += Eai . iQuantity ; #line 2875 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Rockets") , Eai . iQuantity ); #line 2876 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_ROCKETS * MANA_AMMO ); #line 2877 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2879 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_GRENADES : #line 2880 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iGrenades >= m_iMaxGrenades ){m_iGrenades = m_iMaxGrenades ;return FALSE ;} #line 2881 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iGrenades += Eai . iQuantity ; #line 2882 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Grenades") , Eai . iQuantity ); #line 2883 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_GRENADES * MANA_AMMO ); #line 2884 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2886 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_ELECTRICITY : #line 2887 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iElectricity >= m_iMaxElectricity ){m_iElectricity = m_iMaxElectricity ;return FALSE ;} #line 2888 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iElectricity += Eai . iQuantity ; #line 2889 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Cells") , Eai . iQuantity ); #line 2890 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_ELECTRICITY * MANA_AMMO ); #line 2891 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2899 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_IRONBALLS : #line 2900 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iIronBalls >= m_iMaxIronBalls ){m_iIronBalls = m_iMaxIronBalls ;return FALSE ;} #line 2901 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iIronBalls += Eai . iQuantity ; #line 2902 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Cannonballs") , Eai . iQuantity ); #line 2903 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_IRONBALLS * MANA_AMMO ); #line 2904 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2905 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_NAPALM : #line 2906 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iNapalm >= m_iMaxNapalm ){m_iNapalm = m_iMaxNapalm ;return FALSE ;} #line 2907 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iNapalm += Eai . iQuantity ; #line 2908 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Napalm") , Eai . iQuantity ); #line 2909 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_NAPALM * MANA_AMMO ); #line 2910 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2911 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_BACKPACK : #line 2912 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells += 20 * GetSP () -> sp_fAmmoQuantity ; #line 2913 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets += 200 * GetSP () -> sp_fAmmoQuantity ; #line 2914 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets += 5 * GetSP () -> sp_fAmmoQuantity ; #line 2915 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Ammo pack") , 0); #line 2916 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (100000000.0f * MANA_AMMO ); #line 2917 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2918 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_SERIOUSPACK : #line 2919 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells += MAX_SHELLS * GetSP () -> sp_fAmmoQuantity ; #line 2920 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets += MAX_BULLETS * GetSP () -> sp_fAmmoQuantity ; #line 2921 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iGrenades += MAX_GRENADES * GetSP () -> sp_fAmmoQuantity ; #line 2922 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets += MAX_ROCKETS * GetSP () -> sp_fAmmoQuantity ; #line 2923 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iElectricity += MAX_ELECTRICITY * GetSP () -> sp_fAmmoQuantity ; #line 2924 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iIronBalls += MAX_IRONBALLS * GetSP () -> sp_fAmmoQuantity ; #line 2926 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case AIT_SNIPERBULLETS : #line 2927 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iSniperBullets >= m_iMaxSniperBullets ){m_iSniperBullets = m_iMaxSniperBullets ;return FALSE ;} #line 2928 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iSniperBullets += Eai . iQuantity ; #line 2929 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("Sniper bullets") , Eai . iQuantity ); #line 2930 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (Eai . iQuantity * AV_SNIPERBULLETS * MANA_AMMO ); #line 2931 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2934 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (TRANS ("All Ammo") , 0); #line 2935 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" AddManaToPlayer (100000000.0f * MANA_AMMO ); #line 2936 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 2938 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : #line 2939 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Uknown ammo type"); #line 2940 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2943 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ClampAllAmmo (); #line 2944 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 2945 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2948 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::ReceivePackAmmo(const CEntityEvent & ee) #line 2949 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2951 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetSP () -> sp_bInfiniteAmmo ){ #line 2954 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 2955 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 2957 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (ee . ee_slEvent == EVENTCODE_EAmmoPackItem ); #line 2958 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EAmmoPackItem & eapi = (EAmmoPackItem &) ee ; #line 2959 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if((eapi . iShells > 0 && m_iShells < m_iMaxShells ) || #line 2960 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (eapi . iBullets > 0 && m_iBullets < m_iMaxBullets ) || #line 2961 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (eapi . iRockets > 0 && m_iRockets < m_iMaxRockets ) || #line 2962 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (eapi . iGrenades > 0 && m_iGrenades < m_iMaxGrenades ) || #line 2963 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (eapi . iNapalm > 0 && m_iNapalm < m_iMaxNapalm ) || #line 2964 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (eapi . iElectricity > 0 && m_iElectricity < m_iMaxElectricity ) || #line 2965 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (eapi . iIronBalls > 0 && m_iIronBalls < m_iMaxIronBalls ) || #line 2966 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (eapi . iSniperBullets > 0 && m_iSniperBullets < m_iMaxSniperBullets )) #line 2967 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2969 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iShells += eapi . iShells ; #line 2970 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBullets += eapi . iBullets ; #line 2971 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iRockets += eapi . iRockets ; #line 2972 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iGrenades += eapi . iGrenades ; #line 2973 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iNapalm += eapi . iNapalm ; #line 2974 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iElectricity += eapi . iElectricity ; #line 2975 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iIronBalls += eapi . iIronBalls ; #line 2976 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iSniperBullets += eapi . iSniperBullets ; #line 2978 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ClampAllAmmo (); #line 2981 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAmmoTypes = 0; #line 2982 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CTString strMessage ; #line 2983 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iShells != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iShells , TRANS ("Shells"));iAmmoTypes ++;} #line 2984 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iBullets != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iBullets , TRANS ("Bullets"));iAmmoTypes ++;} #line 2985 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iRockets != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iRockets , TRANS ("Rockets"));iAmmoTypes ++;} #line 2986 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iGrenades != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iGrenades , TRANS ("Grenades"));iAmmoTypes ++;} #line 2987 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iNapalm != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iNapalm , TRANS ("Napalm"));iAmmoTypes ++;} #line 2988 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iElectricity != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iElectricity , TRANS ("Cells"));iAmmoTypes ++;} #line 2989 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iIronBalls != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iIronBalls , TRANS ("Cannonballs"));iAmmoTypes ++;} #line 2990 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(eapi . iSniperBullets != 0){strMessage . PrintF ("%s %d %s," , strMessage , eapi . iSniperBullets , TRANS ("Sniper bullets"));iAmmoTypes ++;} #line 2992 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iLen = strlen (strMessage ); #line 2993 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iLen > 0 && strMessage [ iLen - 1 ] == ',') #line 2994 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 2995 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" strMessage . DeleteChar (iLen - 1); #line 2996 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }; #line 2997 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iAmmoTypes > 4){ #line 2998 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" strMessage . PrintF (TRANS ("Ammo pack")); #line 2999 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }; #line 3001 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayer &) * m_penPlayer ) . ItemPicked (strMessage , 0); #line 3002 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 3003 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3004 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return FALSE ; #line 3005 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3011 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType CPlayerWeapons::GetStrongerWeapon(INDEX iWeapon) { #line 3012 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(iWeapon ){ #line 3013 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: return WEAPON_CHAINSAW ; #line 3014 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: return WEAPON_DOUBLECOLT ; #line 3015 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 3: return WEAPON_DOUBLESHOTGUN ; #line 3016 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 4: return WEAPON_MINIGUN ; #line 3017 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 5: return WEAPON_ROCKETLAUNCHER ; #line 3018 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 6: return WEAPON_FLAMER ; #line 3019 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 7: return WEAPON_LASER ; #line 3020 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 8: return WEAPON_IRONCANNON ; #line 3021 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3022 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_NONE ; #line 3023 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3026 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX CPlayerWeapons::GetSelectedWeapon(WeaponType EwtSelectedWeapon) { #line 3027 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(EwtSelectedWeapon ){ #line 3028 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : case WEAPON_CHAINSAW : return 1; #line 3029 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : case WEAPON_DOUBLECOLT : return 2; #line 3030 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : case WEAPON_DOUBLESHOTGUN : return 3; #line 3031 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : case WEAPON_MINIGUN : return 4; #line 3032 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : case WEAPON_GRENADELAUNCHER : return 5; #line 3033 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : case WEAPON_SNIPER : return 6; #line 3034 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : return 7; #line 3035 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : return 8; #line 3036 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3037 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return 0; #line 3038 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3041 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType CPlayerWeapons::GetAltWeapon(WeaponType EwtWeapon) { #line 3042 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(EwtWeapon ){ #line 3043 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : return WEAPON_CHAINSAW ; #line 3044 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : return WEAPON_KNIFE ; #line 3045 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : return WEAPON_DOUBLECOLT ; #line 3046 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : return WEAPON_COLT ; #line 3047 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : return WEAPON_DOUBLESHOTGUN ; #line 3048 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : return WEAPON_SINGLESHOTGUN ; #line 3049 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : return WEAPON_MINIGUN ; #line 3050 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : return WEAPON_TOMMYGUN ; #line 3051 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : return WEAPON_GRENADELAUNCHER ; #line 3052 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : return WEAPON_ROCKETLAUNCHER ; #line 3053 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : return WEAPON_SNIPER ; #line 3054 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : return WEAPON_FLAMER ; #line 3055 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : return WEAPON_LASER ; #line 3056 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : return WEAPON_IRONCANNON ; #line 3057 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3058 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_NONE ; #line 3059 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3062 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::WeaponSelectOk(WeaponType wtToTry) #line 3063 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3065 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(((1 << (INDEX (wtToTry ) - 1)) & m_iAvailableWeapons ) #line 3066 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" && HasAmmo (wtToTry )){ #line 3068 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(wtToTry != m_iCurrentWeapon ){ #line 3071 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iWantedWeapon = wtToTry ; #line 3072 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bChangeWeapon = TRUE ; #line 3073 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3075 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE ; #line 3077 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 3079 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return FALSE ; #line 3080 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3081 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3083 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::SelectNewWeapon() #line 3084 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3085 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 3086 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_NONE : #line 3087 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : case WEAPON_COLT : case WEAPON_DOUBLECOLT : #line 3088 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : case WEAPON_DOUBLESHOTGUN : #line 3089 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : case WEAPON_MINIGUN : case WEAPON_SNIPER : #line 3090 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_MINIGUN ) || #line 3091 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_TOMMYGUN ) || #line 3092 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLESHOTGUN ) || #line 3093 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_SINGLESHOTGUN ) || #line 3094 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLECOLT ) || #line 3095 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_COLT ) || #line 3096 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_KNIFE ); #line 3097 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3098 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : #line 3099 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_ROCKETLAUNCHER ) || #line 3100 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_GRENADELAUNCHER ) || #line 3101 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_MINIGUN ) || #line 3102 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_TOMMYGUN ) || #line 3103 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLESHOTGUN ) || #line 3104 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_SINGLESHOTGUN ) || #line 3105 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLECOLT ) || #line 3106 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_COLT ) || #line 3107 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_KNIFE ); #line 3108 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3109 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : #line 3110 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : #line 3111 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_ROCKETLAUNCHER ) || #line 3112 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_GRENADELAUNCHER ) || #line 3113 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_MINIGUN ) || #line 3114 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_TOMMYGUN ) || #line 3115 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLESHOTGUN ) || #line 3116 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_SINGLESHOTGUN ) || #line 3117 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLECOLT ) || #line 3118 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_COLT ) || #line 3119 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_KNIFE ); #line 3120 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3121 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : case WEAPON_FLAMER : case WEAPON_CHAINSAW : #line 3122 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_LASER ) || #line 3123 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_FLAMER ) || #line 3124 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_MINIGUN ) || #line 3125 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_TOMMYGUN ) || #line 3126 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLESHOTGUN ) || #line 3127 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_SINGLESHOTGUN ) || #line 3128 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_DOUBLECOLT ) || #line 3129 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_COLT ) || #line 3130 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_KNIFE ); #line 3131 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3132 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : #line 3133 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponSelectOk (WEAPON_KNIFE ); #line 3134 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (FALSE ); #line 3135 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3136 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3139 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::HasAmmo(WeaponType EwtWeapon) { #line 3140 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(EwtWeapon ){ #line 3141 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : case WEAPON_COLT : case WEAPON_DOUBLECOLT : return TRUE ; #line 3142 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : return (m_iShells > 0); #line 3143 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : return (m_iShells > 1); #line 3144 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : return (m_iBullets > 0); #line 3145 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : return (m_iSniperBullets > 0); #line 3146 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : return (m_iBullets > 0); #line 3147 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : return (m_iRockets > 0); #line 3148 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : return (m_iGrenades > 0); #line 3149 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : return (m_iNapalm > 0); #line 3150 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : return TRUE ; #line 3151 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : return (m_iElectricity > 0); #line 3152 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : return (m_iIronBalls > 0); #line 3153 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3154 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return FALSE ; #line 3155 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3160 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::PlayDefaultAnim(void) { #line 3161 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 3162 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_NONE : #line 3163 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3164 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : #line 3165 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iKnifeStand ){ #line 3166 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: m_moWeapon . PlayAnim (KNIFE_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3167 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 3: m_moWeapon . PlayAnim (KNIFE_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3168 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : ASSERTALWAYS ("Unknown knife stand."); #line 3169 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3170 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3171 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : #line 3172 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (COLT_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE ); #line 3173 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : #line 3174 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (COLT_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3175 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : #line 3176 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (SINGLESHOTGUN_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3177 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : #line 3178 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (DOUBLESHOTGUN_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3179 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : #line 3180 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (TOMMYGUN_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3181 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : #line 3182 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (SNIPER_ANIM_WAIT01 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3183 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : #line 3184 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (MINIGUN_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3185 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : #line 3186 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (ROCKETLAUNCHER_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3187 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : #line 3188 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (GRENADELAUNCHER_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3197 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : #line 3198 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (FLAMER_ANIM_WAIT01 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3199 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : #line 3200 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (CHAINSAW_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3201 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : #line 3202 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (LASER_ANIM_WAIT01 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3207 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : #line 3209 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (CANNON_ANIM_WAIT01 , AOF_LOOPING | AOF_NORESTART | AOF_SMOOTHCHANGE );break ; #line 3210 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : #line 3211 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Unknown weapon."); #line 3212 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3213 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3218 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::KnifeBoring(void) { #line 3220 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3221 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iKnifeStand ){ #line 3222 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = KNIFE_ANIM_WAIT1 ;break ; #line 3223 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 3: iAnim = KNIFE_ANIM_WAIT1 ;break ; #line 3224 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3225 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3226 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3227 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3229 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::ColtBoring(void) { #line 3231 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3232 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 2){ #line 3233 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = COLT_ANIM_WAIT3 ;break ; #line 3234 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = COLT_ANIM_WAIT4 ;break ; #line 3235 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3236 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3237 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3238 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3240 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::DoubleColtBoring(void) { #line 3242 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3243 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 2){ #line 3244 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = COLT_ANIM_WAIT3 ;break ; #line 3245 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = COLT_ANIM_WAIT4 ;break ; #line 3246 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3247 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(IRnd () & 1){ #line 3248 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3249 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3250 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 3251 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3252 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeaponSecond . GetAnimLength (iAnim ); #line 3253 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3254 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3256 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::SingleShotgunBoring(void) { #line 3258 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3259 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 2){ #line 3260 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = SINGLESHOTGUN_ANIM_WAIT2 ;break ; #line 3261 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = SINGLESHOTGUN_ANIM_WAIT3 ;break ; #line 3262 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3263 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3264 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3265 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3267 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::DoubleShotgunBoring(void) { #line 3269 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3270 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 3){ #line 3271 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = DOUBLESHOTGUN_ANIM_WAIT2 ;break ; #line 3272 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = DOUBLESHOTGUN_ANIM_WAIT3 ;break ; #line 3273 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: iAnim = DOUBLESHOTGUN_ANIM_WAIT4 ;break ; #line 3274 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3275 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3276 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3277 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3279 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::TommyGunBoring(void) { #line 3281 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3282 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 2){ #line 3283 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = TOMMYGUN_ANIM_WAIT2 ;break ; #line 3284 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = TOMMYGUN_ANIM_WAIT3 ;break ; #line 3285 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3286 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3287 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3288 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3290 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::SniperBoring(void) { #line 3292 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3293 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAnim = SNIPER_ANIM_WAIT01 ; #line 3294 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3295 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3296 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3298 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::MiniGunBoring(void) { #line 3300 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3301 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 3){ #line 3302 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = MINIGUN_ANIM_WAIT2 ;break ; #line 3303 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = MINIGUN_ANIM_WAIT3 ;break ; #line 3304 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: iAnim = MINIGUN_ANIM_WAIT4 ;break ; #line 3305 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3306 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3307 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3308 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3310 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::RocketLauncherBoring(void) { #line 3312 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (ROCKETLAUNCHER_ANIM_WAIT2 , AOF_SMOOTHCHANGE ); #line 3313 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (ROCKETLAUNCHER_ANIM_WAIT2 ); #line 3314 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3316 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::GrenadeLauncherBoring(void) { #line 3318 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (GRENADELAUNCHER_ANIM_WAIT2 , AOF_SMOOTHCHANGE ); #line 3319 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (GRENADELAUNCHER_ANIM_WAIT2 ); #line 3320 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3355 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::FlamerBoring(void) { #line 3357 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3358 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 4){ #line 3359 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = FLAMER_ANIM_WAIT02 ;break ; #line 3360 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = FLAMER_ANIM_WAIT03 ;break ; #line 3361 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: iAnim = FLAMER_ANIM_WAIT04 ;break ; #line 3362 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 3: iAnim = FLAMER_ANIM_WAIT05 ;break ; #line 3363 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3364 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3365 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3366 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3368 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::ChainsawBoring(void) { #line 3370 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3371 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 3){ #line 3372 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = CHAINSAW_ANIM_WAIT2 ;break ; #line 3373 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = CHAINSAW_ANIM_WAIT3 ;break ; #line 3374 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: iAnim = CHAINSAW_ANIM_WAIT4 ;break ; #line 3375 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3376 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3377 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3378 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3380 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::LaserBoring(void) { #line 3382 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3383 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iAnim = LASER_ANIM_WAIT02 ; #line 3384 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3385 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3386 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3402 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT CPlayerWeapons::CannonBoring(void) { #line 3404 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 3405 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 3){ #line 3406 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = CANNON_ANIM_WAIT02 ;break ; #line 3407 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = CANNON_ANIM_WAIT03 ;break ; #line 3408 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: iAnim = CANNON_ANIM_WAIT04 ;break ; #line 3409 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3410 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , AOF_SMOOTHCHANGE ); #line 3411 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_moWeapon . GetAnimLength (iAnim ); #line 3412 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3415 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType CPlayerWeapons::FindRemapedPos(WeaponType wt) #line 3416 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3417 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX i = 0;i < 18;i ++) #line 3418 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3419 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(aiWeaponsRemap [ i ] == wt ){ #line 3420 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return (WeaponType ) i ; #line 3421 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3422 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3423 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT ("Non-existant weapon in remap array!"); #line 3424 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return (WeaponType ) 0; #line 3425 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3428 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType CPlayerWeapons::PrimaryToSecondary(WeaponType wt) #line 3429 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3430 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(wt == WEAPON_CHAINSAW ){ #line 3431 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_KNIFE ; #line 3432 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_DOUBLECOLT ){ #line 3433 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_COLT ; #line 3434 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_DOUBLESHOTGUN ){ #line 3435 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_SINGLESHOTGUN ; #line 3436 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_MINIGUN ){ #line 3437 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_TOMMYGUN ; #line 3438 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_ROCKETLAUNCHER ){ #line 3439 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_GRENADELAUNCHER ; #line 3440 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_SNIPER ){ #line 3441 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_FLAMER ; #line 3442 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 3443 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return wt ; #line 3444 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3445 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3447 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType CPlayerWeapons::SecondaryToPrimary(WeaponType wt) #line 3448 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3449 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(wt == WEAPON_KNIFE ){ #line 3450 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_CHAINSAW ; #line 3451 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_COLT ){ #line 3452 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_DOUBLECOLT ; #line 3453 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_SINGLESHOTGUN ){ #line 3454 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_DOUBLESHOTGUN ; #line 3455 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_TOMMYGUN ){ #line 3456 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_MINIGUN ; #line 3457 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_GRENADELAUNCHER ){ #line 3458 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_ROCKETLAUNCHER ; #line 3459 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(wt == WEAPON_FLAMER ){ #line 3460 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return WEAPON_SNIPER ; #line 3461 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 3462 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return wt ; #line 3463 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3464 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3494 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType CPlayerWeapons::FindWeaponInDirection(INDEX iDir) #line 3495 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3496 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX wtOrg = FindRemapedPos (m_iWantedWeapon ); #line 3497 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX wti = wtOrg ; #line 3498 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FOREVER { #line 3499 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (INDEX &) wti += iDir ; #line 3500 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(wti < 1){ #line 3501 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wti = WEAPON_IRONCANNON ; #line 3502 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3503 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(wti > 14){ #line 3504 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wti = WEAPON_KNIFE ; #line 3505 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3506 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(wti == wtOrg ){ #line 3507 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3508 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3509 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType wt = (WeaponType ) aiWeaponsRemap [ wti ]; #line 3510 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if((((1 << (wt - 1)) & m_iAvailableWeapons ) && HasAmmo (wt ))){ #line 3511 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return wt ; #line 3512 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3513 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3514 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_iWantedWeapon ; #line 3515 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3518 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::SelectWeaponChange(INDEX iSelect) #line 3519 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3520 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" WeaponType EwtTemp ; #line 3522 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmWeaponChangeRequired = _pTimer -> CurrentTick (); #line 3525 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iSelect == 0){ #line 3526 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bChangeWeapon = TRUE ; #line 3527 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iWantedWeapon = WEAPON_NONE ; #line 3528 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return ; #line 3529 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3532 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iSelect == - 4){ #line 3533 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon (); #line 3534 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return ; #line 3535 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3538 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iSelect == - 3){ #line 3539 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EwtTemp = GetAltWeapon (m_iWantedWeapon ); #line 3542 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(iSelect == - 2){ #line 3543 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EwtTemp = FindWeaponInDirection (- 1); #line 3546 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(iSelect == - 1){ #line 3547 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EwtTemp = FindWeaponInDirection (+ 1); #line 3550 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 3552 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iSelect == GetSelectedWeapon (m_iWantedWeapon )){ #line 3553 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EwtTemp = GetAltWeapon (m_iWantedWeapon ); #line 3556 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 3557 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EwtTemp = GetStrongerWeapon (iSelect ); #line 3560 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! ((1 << (EwtTemp - 1)) & m_iAvailableWeapons ) || ! HasAmmo (EwtTemp )){ #line 3561 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" EwtTemp = GetAltWeapon (EwtTemp ); #line 3562 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3563 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3564 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3567 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL bChange = (((1 << (EwtTemp - 1)) & m_iAvailableWeapons ) && HasAmmo (EwtTemp )); #line 3568 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bChange ){ #line 3569 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iWantedWeapon = EwtTemp ; #line 3570 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bChangeWeapon = TRUE ; #line 3571 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3572 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3576 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" void CPlayerWeapons::MinigunSmoke() #line 3577 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3578 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! hud_bShowWeapon ) #line 3579 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3580 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return ; #line 3581 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3583 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 3584 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_pstState != PST_DIVE ) #line 3585 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3586 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL b3rdPersonView = TRUE ; #line 3587 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_penCamera == NULL && pl . m_pen3rdPersonView == NULL ) #line 3588 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3589 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" b3rdPersonView = FALSE ; #line 3590 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3592 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX ctBulletsFired = ClampUp (m_iBulletsOnFireStart - m_iBullets , INDEX (200)); #line 3593 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX iSmoke = 0;iSmoke < ctBulletsFired / 10;iSmoke ++) #line 3594 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3595 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData * psldSmoke = & pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 3596 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plPipe ; #line 3597 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(b3rdPersonView ) #line 3598 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3599 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition3rdPersonView (FLOAT3D (afMinigunPipe3rdView [ 0 ] , #line 3600 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" afMinigunPipe3rdView [ 1 ] , afMinigunPipe3rdView [ 2 ]) , plPipe , FALSE ); #line 3601 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3602 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 3603 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3604 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afMinigunPipe [ 0 ] , afMinigunPipe [ 1 ] , afMinigunPipe [ 2 ]) , plPipe , FALSE ); #line 3605 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3606 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 3607 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plPipe . pl_OrientationAngle ); #line 3608 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_vPos = plPipe . pl_PositionVector + pl . en_vCurrentTranslationAbsolute * iSmoke * _pTimer -> TickQuantum ; #line 3609 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 3610 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_vUp = vUp ; #line 3611 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_tmLaunch = _pTimer -> CurrentTick () + iSmoke * _pTimer -> TickQuantum ; #line 3612 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_estType = ESL_BULLET_SMOKE ; #line 3613 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_fSize = 0.75f + ctBulletsFired / 50.0f; #line 3614 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (- 0.06f , FRnd () / 4.0f , - 0.06f); #line 3615 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_vSpeed = vSpeedRelative * m + pl . en_vCurrentTranslationAbsolute ; #line 3616 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 3617 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3618 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3619 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3621 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL CPlayerWeapons::SniperZoomDiscrete(INDEX iDirection,BOOL & bZoomChanged) #line 3622 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 3623 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bZoomChanged = FALSE ; #line 3625 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(iDirection > 0){ #line 3626 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX i = 0;i < iSniperDiscreteZoomLevels ;i ++){ #line 3627 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(afSniperZoom [ 2 * i ] < m_fSniperFOV ){ #line 3628 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fSniperFOV = afSniperZoom [ 2 * i ]; #line 3629 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fSniperFOVlast = m_fSniperFOV ; #line 3630 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bZoomChanged = TRUE ; #line 3631 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3632 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3633 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3635 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 3636 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX i = iSniperDiscreteZoomLevels ;i > 0;i --){ #line 3637 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(afSniperZoom [ 2 * i ] > m_fSniperFOV ){ #line 3638 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fSniperFOV = afSniperZoom [ 2 * i ]; #line 3639 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fSniperFOVlast = m_fSniperFOV ; #line 3640 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" bZoomChanged = TRUE ; #line 3641 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3642 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3643 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3644 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3645 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_fSniperFOV < 90.0f){ #line 3646 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bSniping = TRUE ; #line 3647 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3648 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else { #line 3649 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bSniping = FALSE ; #line 3650 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3651 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return m_bSniping ; #line 3652 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } BOOL CPlayerWeapons:: #line 3658 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ChangeWeapon(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_ChangeWeapon ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::ChangeWeapon expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 3660 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon != m_iWantedWeapon ){ #line 3661 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fSniperFOV = m_fSniperFOVlast = m_fSniperMaxFOV ; #line 3662 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bSniping = FALSE ; #line 3663 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penPlayer -> SendEvent (EWeaponChanged ()); #line 3664 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3666 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bChangeWeapon = FALSE ; #line 3668 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iCurrentWeapon != m_iWantedWeapon )){ Jump(STATE_CURRENT,0x01920010, FALSE, EInternal());return TRUE;} #line 3688 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iPreviousWeapon = m_iCurrentWeapon ; #line 3689 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" STATE_CPlayerWeapons_PutDown, TRUE; Jump(STATE_CURRENT, 0x01920008, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920008_ChangeWeapon_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920008 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPlayerWeapons_PutDown, TRUE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x01920009, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920009_ChangeWeapon_02(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x01920009 const EEnd&__e= (EEnd&)__eeInput; ; #line 3691 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iCurrentWeapon = m_iWantedWeapon ; #line 3693 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" wpn_iCurrent = m_iCurrentWeapon ; #line 3694 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" STATE_CPlayerWeapons_BringUp, TRUE; Jump(STATE_CURRENT, 0x0192000a, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192000a_ChangeWeapon_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192000a switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPlayerWeapons_BringUp, TRUE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x0192000b, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192000b_ChangeWeapon_04(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x0192000b const EEnd&__e= (EEnd&)__eeInput; ; #line 3696 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_CHAINSAW ){ #line 3697 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 3698 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeaponAmbient . Set3DParameters (30.0f , 3.0f , 1.0f , 1.0f); #line 3699 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeaponAmbient , SOUND_CS_IDLE , SOF_3D | SOF_VOLUMETRIC | SOF_LOOP | SOF_SMOOTHCHANGE ); #line 3700 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("ChainsawIdle");} #line 3701 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x0192000f, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920010_ChangeWeapon_09(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920010 if(!(m_iWantedWeapon == WEAPON_KNIFE )){ Jump(STATE_CURRENT,0x0192000e, FALSE, EInternal());return TRUE;} #line 3706 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmWeaponChangeRequired = 0.0f; #line 3707 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" STATE_CPlayerWeapons_ChangeKnifeStand, TRUE; Jump(STATE_CURRENT, 0x0192000c, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192000c_ChangeWeapon_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192000c switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPlayerWeapons_ChangeKnifeStand, TRUE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x0192000d, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192000d_ChangeWeapon_06(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x0192000d const EEnd&__e= (EEnd&)__eeInput; ;Jump(STATE_CURRENT,0x0192000e, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192000e_ChangeWeapon_07(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192000e Jump(STATE_CURRENT,0x0192000f, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x0192000f_ChangeWeapon_08(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192000f #line 3715 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 3720 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PutDown(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_PutDown ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::PutDown expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 3722 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 3723 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_NONE : #line 3724 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3726 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : #line 3727 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iKnifeStand == 1){ #line 3728 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = KNIFE_ANIM_PULLOUT ; #line 3729 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(m_iKnifeStand == 3){ #line 3730 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = KNIFE_ANIM_PULLOUT ; #line 3731 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3732 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3733 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : case WEAPON_COLT : #line 3734 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = COLT_ANIM_DEACTIVATE ; #line 3735 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3736 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : #line 3737 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = SINGLESHOTGUN_ANIM_DEACTIVATE ; #line 3738 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3739 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : #line 3740 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = DOUBLESHOTGUN_ANIM_DEACTIVATE ; #line 3741 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3742 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : #line 3743 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = TOMMYGUN_ANIM_DEACTIVATE ; #line 3744 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3745 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : #line 3746 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = SNIPER_ANIM_DEACTIVATE ; #line 3747 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3748 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : #line 3749 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = MINIGUN_ANIM_DEACTIVATE ; #line 3750 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3751 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : #line 3752 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = ROCKETLAUNCHER_ANIM_DEACTIVATE ; #line 3753 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3754 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : #line 3755 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = GRENADELAUNCHER_ANIM_DEACTIVATE ; #line 3756 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3760 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : #line 3761 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = FLAMER_ANIM_DEACTIVATE ; #line 3762 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3763 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : { #line 3764 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 3765 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeaponAmbient , SOUND_CS_BRINGDOWN , SOF_3D | SOF_VOLUMETRIC | SOF_SMOOTHCHANGE ); #line 3766 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_StopEffect ("ChainsawIdle");} #line 3767 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = CHAINSAW_ANIM_DEACTIVATE ; #line 3768 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 3769 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : #line 3770 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = LASER_ANIM_DEACTIVATE ; #line 3771 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3777 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : #line 3779 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = CANNON_ANIM_DEACTIVATE ; #line 3780 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3781 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : ASSERTALWAYS ("Unknown weapon."); #line 3782 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3784 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerAnimator & plan = (CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ; #line 3785 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plan . BodyPushAnimation (); #line 3786 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_NONE ){ #line 3787 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 3787 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 3788 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3791 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_COLT && m_iWantedWeapon == WEAPON_DOUBLECOLT ){ #line 3792 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 3792 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 3793 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3796 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_DOUBLECOLT ){ #line 3797 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (m_iAnim , 0); #line 3798 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3801 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iCurrentWeapon == WEAPON_DOUBLECOLT && m_iWantedWeapon == WEAPON_COLT )){ Jump(STATE_CURRENT,0x01920014, FALSE, EInternal());return TRUE;} #line 3802 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (m_iAnim )); Jump(STATE_CURRENT, 0x01920012, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920012_PutDown_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920012 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920013, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920013_PutDown_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920013 ; #line 3803 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 3803 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE;Jump(STATE_CURRENT,0x01920014, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920014_PutDown_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920014 #line 3817 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL bNowColt = m_iCurrentWeapon == WEAPON_COLT || m_iCurrentWeapon == WEAPON_DOUBLECOLT ; #line 3818 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BOOL bWantedColt = m_iWantedWeapon == WEAPON_COLT || m_iWantedWeapon == WEAPON_DOUBLECOLT ; #line 3819 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(bNowColt && ! bWantedColt ){ #line 3820 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iColtBullets = 6; #line 3821 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3823 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (m_iAnim , 0); #line 3824 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (m_iAnim )); Jump(STATE_CURRENT, 0x01920015, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920015_PutDown_04(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920015 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920016, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920016_PutDown_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920016 ; #line 3825 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 3825 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 3829 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BringUp(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_BringUp ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::BringUp expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 3831 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ResetWeaponMovingOffset (); #line 3833 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetCurrentWeaponModel (); #line 3835 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 3836 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : #line 3837 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = KNIFE_ANIM_PULL ; #line 3838 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iKnifeStand = 1; #line 3839 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3840 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : case WEAPON_DOUBLECOLT : #line 3841 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = COLT_ANIM_ACTIVATE ; #line 3842 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_REMOVE ); #line 3843 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (1 , FLARE_REMOVE ); #line 3844 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3845 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : #line 3846 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = SINGLESHOTGUN_ANIM_ACTIVATE ; #line 3847 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_REMOVE ); #line 3848 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3849 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : #line 3850 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = DOUBLESHOTGUN_ANIM_ACTIVATE ; #line 3851 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_REMOVE ); #line 3852 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3853 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : #line 3854 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = TOMMYGUN_ANIM_ACTIVATE ; #line 3855 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_REMOVE ); #line 3856 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3857 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : #line 3858 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = SNIPER_ANIM_ACTIVATE ; #line 3859 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_REMOVE ); #line 3860 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3861 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : { #line 3862 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CAttachmentModelObject * amo = m_moWeapon . GetAttachmentModel (MINIGUN_ATTACHMENT_BARRELS ); #line 3863 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunLast = m_aMiniGun = amo -> amo_plRelative . pl_OrientationAngle (3); #line 3864 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = MINIGUN_ANIM_ACTIVATE ; #line 3865 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_REMOVE ); #line 3866 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 3867 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : #line 3868 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = ROCKETLAUNCHER_ANIM_ACTIVATE ; #line 3869 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3870 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : #line 3871 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = GRENADELAUNCHER_ANIM_ACTIVATE ; #line 3872 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3876 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : #line 3877 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = FLAMER_ANIM_ACTIVATE ; #line 3878 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3879 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : { #line 3880 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = CHAINSAW_ANIM_ACTIVATE ; #line 3881 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 3882 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeaponAmbient . Set3DParameters (30.0f , 3.0f , 1.0f , 1.0f); #line 3883 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeaponAmbient , SOUND_CS_BRINGUP , SOF_3D | SOF_VOLUMETRIC | SOF_LOOP ); #line 3884 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 3885 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : #line 3886 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = LASER_ANIM_ACTIVATE ; #line 3887 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3892 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : #line 3894 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iAnim = CANNON_ANIM_ACTIVATE ; #line 3895 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3896 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_NONE : #line 3897 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 3898 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : ASSERTALWAYS ("Unknown weapon."); #line 3899 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3901 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerAnimator & plan = (CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ; #line 3902 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" plan . BodyPullAnimation (); #line 3905 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iPreviousWeapon == WEAPON_DOUBLECOLT && m_iCurrentWeapon == WEAPON_COLT ){ #line 3907 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmWeaponChangeRequired -= hud_tmWeaponsOnScreen / 2; #line 3908 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 3908 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 3909 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3912 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_DOUBLECOLT ){ #line 3913 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (m_iAnim , 0); #line 3914 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3917 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iPreviousWeapon == WEAPON_COLT && m_iCurrentWeapon == WEAPON_DOUBLECOLT )){ Jump(STATE_CURRENT,0x0192001a, FALSE, EInternal());return TRUE;} #line 3918 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (m_iAnim )); Jump(STATE_CURRENT, 0x01920018, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920018_BringUp_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920018 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920019, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920019_BringUp_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920019 ; #line 3920 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmWeaponChangeRequired -= hud_tmWeaponsOnScreen / 2; #line 3921 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 3921 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE;Jump(STATE_CURRENT,0x0192001a, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192001a_BringUp_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192001a #line 3937 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (m_iAnim , 0); #line 3938 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (m_iAnim )); Jump(STATE_CURRENT, 0x0192001b, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192001b_BringUp_04(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192001b switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192001c, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192001c_BringUp_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192001c ; #line 3948 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmWeaponChangeRequired -= hud_tmWeaponsOnScreen / 2; #line 3950 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 3950 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 3957 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Fire(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_Fire ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::Fire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 3959 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 3960 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_SILENCE , SOF_3D | SOF_VOLUMETRIC ); #line 3962 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmWeaponChangeRequired = 0; #line 3964 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = TRUE ; #line 3965 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bHasAmmo = HasAmmo (m_iCurrentWeapon ); #line 3968 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bHasAmmo ){ #line 3969 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon (); #line 3970 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; #line 3971 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 3974 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Setup3DSoundParameters (); #line 3977 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iCurrentWeapon == WEAPON_MINIGUN )){ Jump(STATE_CURRENT,0x01920029, FALSE, EInternal());return TRUE;} #line 3978 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_MiniGunSpinUp, TRUE, EVoid());return TRUE;Jump(STATE_CURRENT,0x01920028, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920029_Fire_12(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920029 if(!(m_iCurrentWeapon == WEAPON_FLAMER )){ Jump(STATE_CURRENT,0x01920027, FALSE, EInternal());return TRUE;} #line 3980 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_FlamerStart, TRUE, EVoid());return TRUE;Jump(STATE_CURRENT,0x01920026, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920027_Fire_10(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920027 if(!(m_iCurrentWeapon == WEAPON_CHAINSAW )){ Jump(STATE_CURRENT,0x01920025, FALSE, EInternal());return TRUE;} #line 3982 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_ChainsawFire, TRUE, EVoid());return TRUE;Jump(STATE_CURRENT,0x01920024, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920025_Fire_08(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920025 if(!(m_iCurrentWeapon == WEAPON_LASER )){ Jump(STATE_CURRENT,0x01920023, FALSE, EInternal());return TRUE;} #line 3986 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_SHOTGUN_FIRESHORT , AOF_LOOPING );Jump(STATE_CURRENT,0x01920022, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920023_Fire_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920023 if(!(m_iCurrentWeapon == WEAPON_TOMMYGUN )){ Jump(STATE_CURRENT,0x01920021, FALSE, EInternal());return TRUE;} #line 3988 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" STATE_CPlayerWeapons_TommyGunStart, TRUE; Jump(STATE_CURRENT, 0x0192001e, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192001e_Fire_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192001e switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPlayerWeapons_TommyGunStart, TRUE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x0192001f, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192001f_Fire_02(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x0192001f const EEnd&__e= (EEnd&)__eeInput; ;Jump(STATE_CURRENT,0x01920020, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920021_Fire_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920021 if((m_iCurrentWeapon == WEAPON_IRONCANNON )){ #line 3990 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_CannonFireStart, TRUE, EVoid());return TRUE; #line 3991 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x01920020, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920020_Fire_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920020 Jump(STATE_CURRENT,0x01920022, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920022_Fire_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920022 Jump(STATE_CURRENT,0x01920024, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920024_Fire_07(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920024 Jump(STATE_CURRENT,0x01920026, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920026_Fire_09(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920026 Jump(STATE_CURRENT,0x01920028, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920028_Fire_11(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920028 #line 3994 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iLastBulletPosition = FLOAT3D (32000.0f , 32000.0f , 32000.0f); #line 3997 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iLaserBarrel = 0; #line 3999 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x0192002c, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192002c_Fire_15(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192002c if(!(HoldingFire () && m_bHasAmmo )){ Jump(STATE_CURRENT,0x0192002d, FALSE, EInternal());return TRUE;} #line 4001 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . m_fLastActionTime = _pTimer -> CurrentTick (); #line 4002 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAt(THINKTIME_NEVER); Jump(STATE_CURRENT, 0x0192002a, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192002a_Fire_13(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192002a switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput; #line 4005 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 4006 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : Call(STATE_CURRENT, STATE_CPlayerWeapons_SwingKnife, TRUE, EVoid());return TRUE;break ; #line 4007 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireColt, TRUE, EVoid());return TRUE;break ; #line 4008 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireDoubleColt, TRUE, EVoid());return TRUE;break ; #line 4009 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireSingleShotgun, TRUE, EVoid());return TRUE;break ; #line 4010 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireDoubleShotgun, TRUE, EVoid());return TRUE;break ; #line 4011 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireTommyGun, TRUE, EVoid());return TRUE;break ; #line 4012 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireSniper, TRUE, EVoid());return TRUE;break ; #line 4013 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireRocketLauncher, TRUE, EVoid());return TRUE;break ; #line 4014 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireGrenadeLauncher, TRUE, EVoid());return TRUE;break ; #line 4015 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : Call(STATE_CURRENT, STATE_CPlayerWeapons_FireLaser, TRUE, EVoid());return TRUE;break ; #line 4016 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : ASSERTALWAYS ("Unknown weapon."); #line 4017 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4018 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 4019 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EEnd):{const EEnd&e= (EEnd&)__eeInput; #line 4021 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" UnsetTimer();Jump(STATE_CURRENT,0x0192002b, FALSE, EInternal());return TRUE; #line 4022 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;default: return FALSE; break; #line 4023 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }return TRUE;}BOOL CPlayerWeapons::H0x0192002b_Fire_14(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192002b Jump(STATE_CURRENT,0x0192002c, FALSE, EInternal());return TRUE; #line 4024 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x0192002d_Fire_16(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192002d #line 4027 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 4028 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : {Jump(STATE_CURRENT, STATE_CPlayerWeapons_TommyGunStop, TRUE, EVoid());return TRUE;break ;} #line 4029 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : {Jump(STATE_CURRENT, STATE_CPlayerWeapons_MiniGunSpinDown, TRUE, EVoid());return TRUE;break ;} #line 4030 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : {Jump(STATE_CURRENT, STATE_CPlayerWeapons_FlamerStop, TRUE, EVoid());return TRUE;break ;} #line 4032 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : { #line 4033 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimationOff (); #line 4034 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; #line 4035 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4036 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default :{Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE;} #line 4037 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4042 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SwingKnife(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_SwingKnife ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::SwingKnife expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4043 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iSwing ; #line 4046 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_KNIFE_ATTACK , 0); #line 4048 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4050 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iKnifeStand ){ #line 4051 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: #line 4052 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iSwing = IRnd () % 2; #line 4053 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(iSwing ){ #line 4054 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: m_iAnim = KNIFE_ANIM_ATTACK01 ;m_fAnimWaitTime = 0.25f; #line 4055 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_KNIFE_BACK , SOF_3D | SOF_VOLUMETRIC ); #line 4056 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Knife_back");} #line 4057 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 4058 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: m_iAnim = KNIFE_ANIM_ATTACK02 ;m_fAnimWaitTime = 0.35f; #line 4059 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_KNIFE_BACK , SOF_3D | SOF_VOLUMETRIC ); #line 4060 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Knife_back");} #line 4061 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 4062 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4063 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 4064 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 3: #line 4065 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" iSwing = IRnd () % 2; #line 4066 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(iSwing ){ #line 4067 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: m_iAnim = KNIFE_ANIM_ATTACK01 ;m_fAnimWaitTime = 0.50f; #line 4068 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_KNIFE_BACK , SOF_3D | SOF_VOLUMETRIC ); #line 4069 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Knife_back");} #line 4070 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 4071 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: m_iAnim = KNIFE_ANIM_ATTACK02 ;m_fAnimWaitTime = 0.50f; #line 4072 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon3 , SOUND_KNIFE_BACK , SOF_3D | SOF_VOLUMETRIC ); #line 4073 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Knife_back");} #line 4074 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 4075 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4076 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ; #line 4077 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4078 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (m_iAnim , 0); #line 4079 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(CutWithKnife (0 , 0 , 3.0f , 2.0f , 0.5f , ((GetSP () -> sp_bCooperative ) ? 100.0f : 50.0f)))){ Jump(STATE_CURRENT,0x01920037, FALSE, EInternal());return TRUE;} #line 4080 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_fAnimWaitTime ); Jump(STATE_CURRENT, 0x0192002f, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192002f_SwingKnife_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192002f switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920030, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920030_SwingKnife_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920030 ;Jump(STATE_CURRENT,0x01920036, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920037_SwingKnife_09(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920037 if(!(TRUE )){ Jump(STATE_CURRENT,0x01920035, FALSE, EInternal());return TRUE;} #line 4082 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_fAnimWaitTime / 2); Jump(STATE_CURRENT, 0x01920031, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920031_SwingKnife_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920031 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920032, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920032_SwingKnife_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920032 ; #line 4083 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CutWithKnife (0 , 0 , 3.0f , 2.0f , 0.5f , ((GetSP () -> sp_bCooperative ) ? 100.0f : 50.0f)); #line 4084 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_fAnimWaitTime / 2); Jump(STATE_CURRENT, 0x01920033, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920033_SwingKnife_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920033 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920034, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920034_SwingKnife_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920034 ;Jump(STATE_CURRENT,0x01920035, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920035_SwingKnife_07(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920035 Jump(STATE_CURRENT,0x01920036, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920036_SwingKnife_08(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920036 #line 4087 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_moWeapon . GetAnimLength (m_iAnim ) - m_fAnimWaitTime >= _pTimer -> TickQuantum )){ Jump(STATE_CURRENT,0x0192003a, FALSE, EInternal());return TRUE;} #line 4088 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (m_iAnim ) - m_fAnimWaitTime ); Jump(STATE_CURRENT, 0x01920038, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920038_SwingKnife_10(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920038 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920039, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920039_SwingKnife_11(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920039 ;Jump(STATE_CURRENT,0x0192003a, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192003a_SwingKnife_12(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192003a #line 4090 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4090 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4094 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireColt(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireColt ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireColt expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4095 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_COLT_FIRERIGHT , 0); #line 4098 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireOneBullet (wpn_fFX [ WEAPON_COLT ] , wpn_fFY [ WEAPON_COLT ] , 500.0f , #line 4099 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((GetSP () -> sp_bCooperative ) ? 10.0f : 20.0f)); #line 4102 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Colt_fire");} #line 4103 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DoRecoil (); #line 4104 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (40.0f); #line 4105 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iColtBullets --; #line 4106 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_ADD ); #line 4107 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_COLT_SHOTGUN , 0); #line 4110 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4111 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_COLT_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4126 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iAnim ; #line 4127 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 3){ #line 4128 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: iAnim = COLT_ANIM_FIRE1 ;break ; #line 4129 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: iAnim = COLT_ANIM_FIRE2 ;break ; #line 4130 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: iAnim = COLT_ANIM_FIRE3 ;break ; #line 4131 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4132 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (iAnim , 0); #line 4133 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (iAnim ) - 0.05f); Jump(STATE_CURRENT, 0x0192003c, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192003c_FireColt_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192003c switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192003d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192003d_FireColt_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192003d ; #line 4134 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (COLT_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART ); #line 4137 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iColtBullets == 0){ #line 4138 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_ReloadColt, TRUE, EVoid());return TRUE; #line 4139 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4140 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4140 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4144 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ReloadColt(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_ReloadColt ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::ReloadColt expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4145 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iColtBullets >= 6){ #line 4146 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4146 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 4147 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4149 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4150 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_COLT_RELOAD , SOF_3D | SOF_VOLUMETRIC ); #line 4152 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (COLT_ANIM_RELOAD , 0); #line 4153 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Colt_reload");} #line 4154 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (COLT_ANIM_RELOAD )); Jump(STATE_CURRENT, 0x0192003f, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192003f_ReloadColt_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192003f switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920040, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920040_ReloadColt_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920040 ; #line 4155 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iColtBullets = 6; #line 4156 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4156 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4160 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireDoubleColt(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireDoubleColt ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireDoubleColt expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4162 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_COLT_FIRERIGHT , 0); #line 4163 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireOneBullet (wpn_fFX [ WEAPON_DOUBLECOLT ] , wpn_fFY [ WEAPON_DOUBLECOLT ] , 500.0f , 10.0f); #line 4164 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Colt_fire");} #line 4179 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DoRecoil (); #line 4180 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (50.0f); #line 4181 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iColtBullets --; #line 4182 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_ADD ); #line 4183 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_COLT_SHOTGUN , 0); #line 4185 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & plSnd = (CPlayer &) * m_penPlayer ; #line 4186 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (plSnd . m_soWeapon0 , SOUND_COLT_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4189 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(IRnd () % 3){ #line 4190 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: m_iAnim = COLT_ANIM_FIRE1 ;break ; #line 4191 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: m_iAnim = COLT_ANIM_FIRE2 ;break ; #line 4192 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: m_iAnim = COLT_ANIM_FIRE3 ;break ; #line 4193 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4194 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (m_iAnim , 0); #line 4195 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (m_iAnim ) / 2); Jump(STATE_CURRENT, 0x01920042, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920042_FireDoubleColt_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920042 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920043, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920043_FireDoubleColt_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920043 ; #line 4198 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_COLT_FIRELEFT , 0); #line 4199 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bMirrorFire = TRUE ; #line 4200 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireOneBullet (wpn_fFX [ WEAPON_DOUBLECOLT ] , wpn_fFY [ WEAPON_DOUBLECOLT ] , 500.0f , 10.0f); #line 4201 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Colt_fire");} #line 4216 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DoRecoil (); #line 4217 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iSecondFlare = FLARE_ADD ; #line 4218 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . m_iSecondFlare = FLARE_ADD ; #line 4219 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_COLT_SHOTGUN , 0); #line 4220 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bMirrorFire = FALSE ; #line 4222 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4223 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_COLT_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4225 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (m_iAnim , 0); #line 4226 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (m_iAnim ) / 2); Jump(STATE_CURRENT, 0x01920044, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920044_FireDoubleColt_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920044 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920045, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920045_FireDoubleColt_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920045 ; #line 4229 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iColtBullets == 0){ #line 4230 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_ReloadDoubleColt, TRUE, EVoid());return TRUE; #line 4231 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4232 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4232 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4236 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ReloadDoubleColt(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_ReloadDoubleColt ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::ReloadDoubleColt expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4237 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iColtBullets >= 6){ #line 4238 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4238 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 4239 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4240 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (COLT_ANIM_RELOAD , 0); #line 4242 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4243 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon2 , SOUND_COLT_RELOAD , SOF_3D | SOF_VOLUMETRIC ); #line 4245 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (COLT_ANIM_RELOAD ) / 2); Jump(STATE_CURRENT, 0x01920047, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920047_ReloadDoubleColt_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920047 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920048, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920048_ReloadDoubleColt_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920048 ; #line 4247 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (COLT_ANIM_RELOAD , 0); #line 4249 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4250 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon3 , SOUND_COLT_RELOAD , SOF_3D | SOF_VOLUMETRIC ); #line 4251 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Colt_reload");} #line 4254 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (COLT_ANIM_RELOAD ) - 0.25f); Jump(STATE_CURRENT, 0x01920049, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920049_ReloadDoubleColt_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920049 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192004a, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192004a_ReloadDoubleColt_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192004a ; #line 4256 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iColtBullets = 6; #line 4257 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4257 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4261 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireSingleShotgun(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireSingleShotgun ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireSingleShotgun expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4263 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iShells > 0)){ Jump(STATE_CURRENT,0x01920051, FALSE, EInternal());return TRUE;} #line 4264 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_SHOTGUN_FIRELONG , 0); #line 4265 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireBullets (wpn_fFX [ WEAPON_SINGLESHOTGUN ] , wpn_fFY [ WEAPON_SINGLESHOTGUN ] , #line 4266 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" 500.0f , 10.0f , 7 , afSingleShotgunPellets , 0.2f , 0.03f); #line 4267 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DoRecoil (); #line 4268 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (60.0f); #line 4269 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Snglshotgun_fire");} #line 4270 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iShells , 1); #line 4271 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_ADD ); #line 4272 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_COLT_SHOTGUN , 0); #line 4273 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (GetSP () -> sp_bCooperative ? SINGLESHOTGUN_ANIM_FIRE1 : SINGLESHOTGUN_ANIM_FIRE1FAST , 0); #line 4275 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4276 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_SINGLESHOTGUN_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4278 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowWeapon ) #line 4279 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4280 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_pstState == PST_DIVE ) #line 4281 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4283 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldBubble = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4284 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plShell ; #line 4285 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afSingleShotgunShellPos [ 0 ] , #line 4286 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" afSingleShotgunShellPos [ 1 ] , afSingleShotgunShellPos [ 2 ]) , plShell , FALSE ); #line 4287 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 4288 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plShell . pl_OrientationAngle ); #line 4289 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4290 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vPos = plShell . pl_PositionVector ; #line 4291 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vUp = vUp ; #line 4292 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4293 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_estType = ESL_BUBBLE ; #line 4294 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (0.3f , 0.0f , 0.0f); #line 4295 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vSpeed = vSpeedRelative * m ; #line 4296 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4297 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4298 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 4299 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4301 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldPipe1 = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4302 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plPipe ; #line 4303 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afSingleShotgunPipe [ 0 ] , afSingleShotgunPipe [ 1 ] , afSingleShotgunPipe [ 2 ]) , plPipe , FALSE ); #line 4304 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 4305 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plPipe . pl_OrientationAngle ); #line 4306 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4307 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_vPos = plPipe . pl_PositionVector ; #line 4308 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_vUp = vUp ; #line 4309 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4310 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_estType = ESL_SHOTGUN_SMOKE ; #line 4311 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (0 , 0.0f , - 12.5f); #line 4312 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_vSpeed = vSpeedRelative * m ; #line 4313 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4314 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4315 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4317 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(GetSP () -> sp_bCooperative ? 0.5f : 0.375); Jump(STATE_CURRENT, 0x0192004c, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192004c_FireSingleShotgun_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192004c switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192004d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192004d_FireSingleShotgun_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192004d ; #line 4321 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plShell ; #line 4322 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afSingleShotgunShellPos [ 0 ] , afSingleShotgunShellPos [ 1 ] , afSingleShotgunShellPos [ 2 ]) , plShell , FALSE ); #line 4324 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D mRot ; #line 4325 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRot , plShell . pl_OrientationAngle ); #line 4327 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowWeapon ) #line 4328 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4329 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer * penPlayer = GetPlayer (); #line 4330 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sld = penPlayer -> m_asldData [ penPlayer -> m_iFirstEmptySLD ]; #line 4331 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vPos = plShell . pl_PositionVector ; #line 4332 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (FRnd () + 2.0f , FRnd () + 5.0f , - FRnd () - 2.0f); #line 4333 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vSpeed = vSpeedRelative * mRot ; #line 4335 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOATmatrix3D & m = penPlayer -> GetRotationMatrix (); #line 4336 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4337 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vUp = vUp ; #line 4338 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4339 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_estType = ESL_SHOTGUN ; #line 4341 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penPlayer -> m_iFirstEmptySLD = (penPlayer -> m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4342 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4345 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength ( #line 4346 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (GetSP () -> sp_bCooperative ? SINGLESHOTGUN_ANIM_FIRE1 : SINGLESHOTGUN_ANIM_FIRE1FAST )) - #line 4347 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (GetSP () -> sp_bCooperative ? 0.5f : 0.375f)); Jump(STATE_CURRENT, 0x0192004e, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192004e_FireSingleShotgun_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192004e switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192004f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192004f_FireSingleShotgun_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192004f ; #line 4349 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iShells <= 0){SelectNewWeapon ();}Jump(STATE_CURRENT,0x01920050, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920051_FireSingleShotgun_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920051 { #line 4351 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("SingleShotgun - Auto weapon change not working."); #line 4352 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 4353 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x01920050, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920050_FireSingleShotgun_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920050 #line 4354 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4354 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4358 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireDoubleShotgun(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireDoubleShotgun ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireDoubleShotgun expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4360 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iShells > 1)){ Jump(STATE_CURRENT,0x01920058, FALSE, EInternal());return TRUE;} #line 4361 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_SHOTGUN_FIRELONG , 0); #line 4362 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireBullets (wpn_fFX [ WEAPON_DOUBLESHOTGUN ] , wpn_fFY [ WEAPON_DOUBLESHOTGUN ] , #line 4363 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" 500.0f , 10.0f , 14 , afDoubleShotgunPellets , 0.3f , 0.03f); #line 4364 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DoRecoil (); #line 4365 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (70.0f); #line 4366 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Dblshotgun_fire");} #line 4367 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iShells , 2); #line 4368 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_ADD ); #line 4369 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_COLT_SHOTGUN , 0); #line 4370 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (GetSP () -> sp_bCooperative ? DOUBLESHOTGUN_ANIM_FIRE : DOUBLESHOTGUN_ANIM_FIREFAST , 0); #line 4371 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeaponSecond . PlayAnim (GetSP () -> sp_bCooperative ? HANDWITHAMMO_ANIM_FIRE : HANDWITHAMMO_ANIM_FIREFAST , 0); #line 4373 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4374 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 1.5f , 1.0f); #line 4375 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_DOUBLESHOTGUN_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4377 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowWeapon ) #line 4378 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4379 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_pstState == PST_DIVE ) #line 4380 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4382 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldBubble1 = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4383 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plShell ; #line 4384 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (- 0.11f , 0.1f , - 0.3f) , plShell , FALSE ); #line 4387 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 4388 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plShell . pl_OrientationAngle ); #line 4389 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4390 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble1 . sld_vPos = plShell . pl_PositionVector ; #line 4391 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble1 . sld_vUp = vUp ; #line 4392 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble1 . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4393 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble1 . sld_estType = ESL_BUBBLE ; #line 4394 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (- 0.1f , 0.0f , 0.01f); #line 4395 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble1 . sld_vSpeed = vSpeedRelative * m ; #line 4396 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4397 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldBubble2 = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4399 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble2 = sldBubble1 ; #line 4400 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vSpeedRelative = FLOAT3D (0.1f , 0.0f , - 0.2f); #line 4401 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble2 . sld_vSpeed = vSpeedRelative * m ; #line 4402 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4403 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4404 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 4405 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4407 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldPipe1 = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4408 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plPipe ; #line 4409 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afDoubleShotgunPipe [ 0 ] , afDoubleShotgunPipe [ 1 ] , afDoubleShotgunPipe [ 2 ]) , plPipe , FALSE ); #line 4410 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 4411 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plPipe . pl_OrientationAngle ); #line 4412 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4413 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_vPos = plPipe . pl_PositionVector ; #line 4414 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_vUp = vUp ; #line 4415 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4416 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_estType = ESL_SHOTGUN_SMOKE ; #line 4417 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (- 1 , 0.0f , - 12.5f); #line 4418 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe1 . sld_vSpeed = vSpeedRelative * m ; #line 4419 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4421 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldPipe2 = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4422 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe2 = sldPipe1 ; #line 4423 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vSpeedRelative = FLOAT3D (1 , 0.0f , - 12.5f); #line 4424 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldPipe2 . sld_vSpeed = vSpeedRelative * m ; #line 4425 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4426 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4427 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4429 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(GetSP () -> sp_bCooperative ? 0.25f : 0.15f); Jump(STATE_CURRENT, 0x01920053, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920053_FireDoubleShotgun_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920053 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920054, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920054_FireDoubleShotgun_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920054 ; #line 4430 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iShells >= 2){ #line 4431 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4432 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_DOUBLESHOTGUN_RELOAD , SOF_3D | SOF_VOLUMETRIC ); #line 4433 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4434 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength ( #line 4435 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (GetSP () -> sp_bCooperative ? DOUBLESHOTGUN_ANIM_FIRE : DOUBLESHOTGUN_ANIM_FIREFAST )) - #line 4436 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (GetSP () -> sp_bCooperative ? 0.25f : 0.15f)); Jump(STATE_CURRENT, 0x01920055, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920055_FireDoubleShotgun_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920055 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920056, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920056_FireDoubleShotgun_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920056 ; #line 4438 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iShells <= 1){SelectNewWeapon ();}Jump(STATE_CURRENT,0x01920057, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920058_FireDoubleShotgun_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920058 { #line 4440 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("DoubleShotgun - Auto weapon change not working."); #line 4441 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 4442 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x01920057, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920057_FireDoubleShotgun_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920057 #line 4443 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4443 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4447 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TommyGunStart(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_TommyGunStart ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::TommyGunStart expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4448 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBulletsOnFireStart = m_iBullets ; #line 4449 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4450 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_SILENCE , SOF_3D | SOF_VOLUMETRIC ); #line 4451 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 1.5f , 1.0f); #line 4452 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_TOMMYGUN_FIRE , SOF_LOOP | SOF_3D | SOF_VOLUMETRIC ); #line 4453 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_TOMMYGUN , AOF_LOOPING ); #line 4454 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_SHOTGUN_FIRESHORT , AOF_LOOPING ); #line 4455 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4455 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4458 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TommyGunStop(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_TommyGunStop ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::TommyGunStop expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4460 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4461 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_pstState != PST_DIVE && hud_bShowWeapon ) #line 4462 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4463 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX ctBulletsFired = ClampUp (m_iBulletsOnFireStart - m_iBullets , INDEX (100)); #line 4464 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" for(INDEX iSmoke = 0;iSmoke < ctBulletsFired / 6.0;iSmoke ++) #line 4465 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4466 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData * psldSmoke = & pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4467 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plPipe ; #line 4468 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afTommygunPipe [ 0 ] , afTommygunPipe [ 1 ] , afTommygunPipe [ 2 ]) , plPipe , FALSE ); #line 4469 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D m ; #line 4470 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (m , plPipe . pl_OrientationAngle ); #line 4471 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_vPos = plPipe . pl_PositionVector + pl . en_vCurrentTranslationAbsolute * iSmoke * _pTimer -> TickQuantum ; #line 4472 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4473 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_vUp = vUp ; #line 4474 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_tmLaunch = _pTimer -> CurrentTick () + iSmoke * _pTimer -> TickQuantum ; #line 4475 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_estType = ESL_BULLET_SMOKE ; #line 4476 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_fSize = 0.5f + ctBulletsFired / 75.0f; #line 4477 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (- 0.06f , 0.0f , - 0.06f); #line 4478 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" psldSmoke -> sld_vSpeed = vSpeedRelative * m + pl . en_vCurrentTranslationAbsolute ; #line 4479 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4480 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4481 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4483 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 0.0f , 1.0f); #line 4484 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_NONE , 0); #line 4485 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimationOff (); #line 4486 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4489 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireTommyGun(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireTommyGun ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireTommyGun expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4491 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iBullets > 0)){ Jump(STATE_CURRENT,0x0192005f, FALSE, EInternal());return TRUE;} #line 4492 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireMachineBullet (wpn_fFX [ WEAPON_TOMMYGUN ] , wpn_fFY [ WEAPON_TOMMYGUN ] , #line 4493 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" 500.0f , 10.0f , ((GetSP () -> sp_bCooperative ) ? 0.01f : 0.03f) , #line 4494 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((GetSP () -> sp_bCooperative ) ? 0.5f : 0.0f)); #line 4495 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (50.0f); #line 4496 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Tommygun_fire");} #line 4497 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iBullets , 1); #line 4498 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_ADD ); #line 4499 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (TOMMYGUN_ANIM_FIRE , AOF_LOOPING | AOF_NORESTART ); #line 4502 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plShell ; #line 4503 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afTommygunShellPos [ 0 ] , afTommygunShellPos [ 1 ] , afTommygunShellPos [ 2 ]) , plShell , FALSE ); #line 4504 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D mRot ; #line 4505 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRot , plShell . pl_OrientationAngle ); #line 4507 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowWeapon ) #line 4508 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4510 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = * GetPlayer (); #line 4511 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sld = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4512 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vPos = plShell . pl_PositionVector ; #line 4513 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (FRnd () + 2.0f , FRnd () + 5.0f , - FRnd () - 2.0f); #line 4514 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOATmatrix3D & m = pl . GetRotationMatrix (); #line 4515 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4516 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vUp = vUp ; #line 4517 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vSpeed = vSpeedRelative * mRot ; #line 4518 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4519 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_estType = ESL_BULLET ; #line 4520 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4523 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_pstState == PST_DIVE ) #line 4524 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4525 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldBubble = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4526 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afTommygunShellPos [ 0 ] , afTommygunShellPos [ 1 ] , afTommygunShellPos [ 2 ]) , plShell , FALSE ); #line 4527 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRot , plShell . pl_OrientationAngle ); #line 4528 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vPos = plShell . pl_PositionVector ; #line 4529 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vUp = vUp ; #line 4530 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4531 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_estType = ESL_BUBBLE ; #line 4532 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vSpeedRelative = FLOAT3D (0.3f , 0.0f , 0.0f); #line 4533 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vSpeed = vSpeedRelative * mRot ; #line 4534 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4535 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4536 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4538 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(0.1f); Jump(STATE_CURRENT, 0x0192005c, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192005c_FireTommyGun_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192005c switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192005d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192005d_FireTommyGun_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192005d ; #line 4540 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iBullets <= 0){SelectNewWeapon ();}Jump(STATE_CURRENT,0x0192005e, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192005f_FireTommyGun_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192005f { #line 4542 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("TommyGun - Auto weapon change not working."); #line 4543 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 4544 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x0192005e, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x0192005e_FireTommyGun_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192005e #line 4545 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4545 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4549 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireSniper(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireSniper ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireSniper expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4550 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iSniperBullets > 0)){ Jump(STATE_CURRENT,0x01920066, FALSE, EInternal());return TRUE;} #line 4552 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bSniping ){ #line 4553 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireSniperBullet (0.0f , 0.0f , 1500.0f , #line 4554 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (GetSP () -> sp_bCooperative ) ? 300.0f : 90.0f , 0.0f); #line 4555 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4556 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else { #line 4557 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireSniperBullet (wpn_fFX [ WEAPON_SNIPER ] , wpn_fFY [ WEAPON_SNIPER ] , 1000.0f , #line 4558 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" (GetSP () -> sp_bCooperative ) ? 75.0f : 30.0f , 5.0f); #line 4559 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4560 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmLastSniperFire = _pTimer -> CurrentTick (); #line 4562 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (50.0f); #line 4563 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iSniperBullets , 1); #line 4564 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bSniping ){ #line 4565 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_ADD ); #line 4566 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4567 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_COLT_SHOTGUN , 0); #line 4570 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4571 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetSP () -> sp_bCooperative ){ #line 4572 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 1.5f , 1.0f); #line 4573 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(TRUE ){ #line 4574 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (250.0f , 75.0f , 1.5f , 1.0f); #line 4575 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4576 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_SNIPER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4577 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("SniperFire");} #line 4580 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (SNIPER_ANIM_FIRE , 0); #line 4582 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(1.0f); Jump(STATE_CURRENT, 0x01920061, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920061_FireSniper_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920061 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920062, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920062_FireSniper_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920062 ; #line 4585 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plShell ; #line 4586 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afSniperShellPos [ 0 ] , afSniperShellPos [ 1 ] , afSniperShellPos [ 2 ]) , plShell , FALSE ); #line 4587 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D mRot ; #line 4588 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRot , plShell . pl_OrientationAngle ); #line 4590 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowWeapon ) #line 4591 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4592 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer * penPlayer = GetPlayer (); #line 4593 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sld = penPlayer -> m_asldData [ penPlayer -> m_iFirstEmptySLD ]; #line 4594 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vPos = plShell . pl_PositionVector ; #line 4595 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (FRnd () + 2.0f , FRnd () + 5.0f , - FRnd () - 2.0f); #line 4596 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vSpeed = vSpeedRelative * mRot ; #line 4598 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOATmatrix3D & m = penPlayer -> GetRotationMatrix (); #line 4599 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4600 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vUp = vUp ; #line 4601 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4602 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_estType = ESL_BULLET ; #line 4604 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penPlayer -> m_iFirstEmptySLD = (penPlayer -> m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4607 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(penPlayer -> m_pstState == PST_DIVE ) #line 4608 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4609 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldBubble = penPlayer -> m_asldData [ penPlayer -> m_iFirstEmptySLD ]; #line 4610 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afTommygunShellPos [ 0 ] , afTommygunShellPos [ 1 ] , afTommygunShellPos [ 2 ]) , plShell , FALSE ); #line 4611 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRot , plShell . pl_OrientationAngle ); #line 4612 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vPos = plShell . pl_PositionVector ; #line 4613 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vUp = vUp ; #line 4614 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4615 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_estType = ESL_BUBBLE ; #line 4616 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vSpeedRelative = FLOAT3D (0.3f , 0.0f , 0.0f); #line 4617 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vSpeed = vSpeedRelative * mRot ; #line 4618 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" penPlayer -> m_iFirstEmptySLD = (penPlayer -> m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4619 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4620 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4622 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(1.35f - 1.0f); Jump(STATE_CURRENT, 0x01920063, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920063_FireSniper_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920063 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920064, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920064_FireSniper_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920064 ; #line 4625 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iSniperBullets <= 0){SelectNewWeapon ();}Jump(STATE_CURRENT,0x01920065, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920066_FireSniper_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920066 { #line 4628 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Sniper - Auto weapon change not working."); #line 4629 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 4630 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x01920065, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920065_FireSniper_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920065 #line 4631 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4631 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4636 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MiniGunSpinUp(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_MiniGunSpinUp ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::MiniGunSpinUp expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4638 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (MINIGUN_ANIM_WAIT1 , AOF_LOOPING | AOF_NORESTART ); #line 4640 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . m_fLastActionTime = _pTimer -> CurrentTick (); #line 4642 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iLastBulletPosition = FLOAT3D (32000.0f , 32000.0f , 32000.0f); #line 4643 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4645 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_SILENCE , SOF_3D | SOF_VOLUMETRIC ); #line 4647 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 2.0f , 1.0f); #line 4648 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon1 . Set3DParameters (50.0f , 5.0f , 1.0f , 1.0f); #line 4649 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon2 . Set3DParameters (50.0f , 5.0f , 1.0f , 1.0f); #line 4652 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon2 , SOUND_MINIGUN_CLICK , SOF_3D | SOF_VOLUMETRIC ); #line 4653 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_MINIGUN_SPINUP , SOF_3D | SOF_VOLUMETRIC ); #line 4655 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Minigun_rotateup");} #line 4657 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x0192006a, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192006a_MiniGunSpinUp_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192006a if(!(m_aMiniGunSpeed < MINIGUN_FULLSPEED && HoldingFire ())){ Jump(STATE_CURRENT,0x0192006b, FALSE, EInternal());return TRUE;} #line 4659 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(MINIGUN_TICKTIME ); Jump(STATE_CURRENT, 0x01920068, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920068_MiniGunSpinUp_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920068 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920069, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920069_MiniGunSpinUp_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920069 ; #line 4661 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunLast = m_aMiniGun ; #line 4662 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGun += m_aMiniGunSpeed * MINIGUN_TICKTIME ; #line 4663 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunSpeed += MINIGUN_SPINUPACC * MINIGUN_TICKTIME ;Jump(STATE_CURRENT,0x0192006a, FALSE, EInternal());return TRUE; #line 4664 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x0192006b_MiniGunSpinUp_04(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192006b #line 4666 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunSpeed = ClampUp (m_aMiniGunSpeed , MINIGUN_FULLSPEED ); #line 4669 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! HoldingFire ()){ #line 4671 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_MiniGunSpinDown, TRUE, EVoid());return TRUE; #line 4672 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4674 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_MiniGunFire, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4677 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MiniGunFire(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_MiniGunFire ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::MiniGunFire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4679 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4680 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_MINIGUN_ROTATE , SOF_3D | SOF_LOOP | SOF_VOLUMETRIC | SOF_SMOOTHCHANGE ); #line 4681 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Minigun_rotate");} #line 4683 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(HoldingFire () && m_iBullets > 0){ #line 4685 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_MINIGUN_FIRE , SOF_3D | SOF_LOOP | SOF_VOLUMETRIC ); #line 4686 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_TOMMYGUN , AOF_LOOPING ); #line 4687 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_MINIGUN_FIRESHORT , AOF_LOOPING ); #line 4688 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4690 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iBulletsOnFireStart = m_iBullets ; #line 4692 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x0192006f, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192006f_MiniGunFire_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192006f if(!(HoldingFire ())){ Jump(STATE_CURRENT,0x01920070, FALSE, EInternal());return TRUE;} #line 4694 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(! m_bHasAmmo && m_iBullets > 0){ #line 4695 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4696 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_MINIGUN_FIRE , SOF_3D | SOF_LOOP | SOF_VOLUMETRIC ); #line 4697 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Minigun_fire");} #line 4698 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_TOMMYGUN , AOF_LOOPING ); #line 4699 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_MINIGUN_FIRESHORT , AOF_LOOPING ); #line 4700 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bHasAmmo = TRUE ; #line 4701 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4704 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iBullets > 0){ #line 4706 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireMachineBullet (wpn_fFX [ WEAPON_MINIGUN ] , wpn_fFY [ WEAPON_MINIGUN ] , #line 4707 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" 750.0f , 10.0f , (GetSP () -> sp_bCooperative ) ? 0.01f : 0.03f , #line 4708 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((GetSP () -> sp_bCooperative ) ? 0.5f : 0.0f)); #line 4709 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DoRecoil (); #line 4710 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (60.0f); #line 4711 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iBullets , 1); #line 4712 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlare (0 , FLARE_ADD ); #line 4715 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlacement3D plShell ; #line 4718 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4719 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_penCamera == NULL && pl . m_pen3rdPersonView == NULL ) #line 4720 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4721 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afMinigunShellPos [ 0 ] , afMinigunShellPos [ 1 ] , afMinigunShellPos [ 2 ]) , plShell , FALSE ); #line 4722 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4724 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 4725 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4727 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition3rdPersonView (FLOAT3D (afMinigunShellPos3rdView [ 0 ] , #line 4728 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" afMinigunShellPos3rdView [ 1 ] , afMinigunShellPos3rdView [ 2 ]) , plShell , FALSE ); #line 4729 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4731 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOATmatrix3D mRot ; #line 4732 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRot , plShell . pl_OrientationAngle ); #line 4734 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(hud_bShowWeapon ) #line 4735 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4736 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = * GetPlayer (); #line 4737 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sld = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4738 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vPos = plShell . pl_PositionVector ; #line 4739 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vSpeedRelative = FLOAT3D (FRnd () + 2.0f , FRnd () + 5.0f , - FRnd () - 2.0f); #line 4740 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" const FLOATmatrix3D & m = pl . GetRotationMatrix (); #line 4741 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT3D vUp (m (1 , 2) , m (2 , 2) , m (3 , 2)); #line 4742 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vUp = vUp ; #line 4743 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_vSpeed = vSpeedRelative * mRot ; #line 4744 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4745 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sld . sld_estType = ESL_BULLET ; #line 4747 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4750 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_pstState == PST_DIVE ) #line 4751 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4752 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ShellLaunchData & sldBubble = pl . m_asldData [ pl . m_iFirstEmptySLD ]; #line 4753 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CalcWeaponPosition (FLOAT3D (afMinigunShellPos [ 0 ] , afMinigunShellPos [ 1 ] , afMinigunShellPos [ 2 ]) , plShell , FALSE ); #line 4754 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MakeRotationMatrixFast (mRot , plShell . pl_OrientationAngle ); #line 4755 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vPos = plShell . pl_PositionVector ; #line 4756 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vUp = vUp ; #line 4757 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_tmLaunch = _pTimer -> CurrentTick (); #line 4758 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_estType = ESL_BUBBLE ; #line 4759 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" vSpeedRelative = FLOAT3D (0.3f , 0.0f , 0.0f); #line 4760 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" sldBubble . sld_vSpeed = vSpeedRelative * mRot ; #line 4761 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_iFirstEmptySLD = (pl . m_iFirstEmptySLD + 1) % MAX_FLYING_SHELLS ; #line 4762 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4763 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4765 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else { #line 4766 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bHasAmmo ) #line 4767 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4768 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MinigunSmoke (); #line 4769 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4771 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bHasAmmo = FALSE ; #line 4772 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4773 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_SILENCE , SOF_3D | SOF_VOLUMETRIC ); #line 4774 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_NONE , AOF_LOOPING ); #line 4775 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimationOff (); #line 4776 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4777 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(MINIGUN_TICKTIME ); Jump(STATE_CURRENT, 0x0192006d, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192006d_MiniGunFire_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192006d switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192006e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192006e_MiniGunFire_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192006e ; #line 4779 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunLast = m_aMiniGun ; #line 4780 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGun += m_aMiniGunSpeed * MINIGUN_TICKTIME ;Jump(STATE_CURRENT,0x0192006f, FALSE, EInternal());return TRUE; #line 4781 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x01920070_MiniGunFire_04(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920070 #line 4783 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bHasAmmo ) #line 4784 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4785 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MinigunSmoke (); #line 4786 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4788 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimationOff (); #line 4790 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4791 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 0.0f , 1.0f); #line 4792 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_NONE , AOF_LOOPING ); #line 4794 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_MiniGunSpinDown, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4797 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" MiniGunSpinDown(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_MiniGunSpinDown ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::MiniGunSpinDown expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4798 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4800 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon3 , SOUND_MINIGUN_CLICK , SOF_3D | SOF_VOLUMETRIC ); #line 4801 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_MINIGUN_SPINDOWN , SOF_3D | SOF_VOLUMETRIC | SOF_SMOOTHCHANGE ); #line 4802 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_StopEffect ("Minigun_rotate");} #line 4803 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Minigun_rotatedown");} #line 4807 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x01920074, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920074_MiniGunSpinDown_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920074 if(!(m_aMiniGunSpeed > 0 && (! HoldingFire () || m_iBullets <= 0))){ Jump(STATE_CURRENT,0x01920075, FALSE, EInternal());return TRUE;} #line 4808 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(MINIGUN_TICKTIME ); Jump(STATE_CURRENT, 0x01920072, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920072_MiniGunSpinDown_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920072 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920073, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920073_MiniGunSpinDown_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920073 ; #line 4810 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunLast = m_aMiniGun ; #line 4811 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGun += m_aMiniGunSpeed * MINIGUN_TICKTIME ; #line 4812 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunSpeed -= MINIGUN_SPINDNACC * MINIGUN_TICKTIME ; #line 4814 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iBullets <= 0){ #line 4815 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon (); #line 4816 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4819 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bChangeWeapon ){ #line 4821 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunSpeed = 0.0f; #line 4822 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunLast = m_aMiniGun ; #line 4823 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimationOff (); #line 4824 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; #line 4825 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x01920074, FALSE, EInternal());return TRUE; #line 4826 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x01920075_MiniGunSpinDown_04(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920075 #line 4828 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunSpeed = ClampDn (m_aMiniGunSpeed , 0.0f); #line 4829 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_aMiniGunLast = m_aMiniGun ; #line 4832 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(HoldingFire () && m_iBullets > 0){ #line 4834 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_MiniGunSpinUp, TRUE, EVoid());return TRUE; #line 4835 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4838 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CPlayerAnimator &) * ((CPlayer &) * m_penPlayer ) . m_penAnimator ) . m_fLastActionTime = _pTimer -> CurrentTick (); #line 4841 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iBullets <= 0)){ Jump(STATE_CURRENT,0x0192007a, FALSE, EInternal());return TRUE;} #line 4843 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x01920078, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920078_MiniGunSpinDown_07(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920078 if(!(HoldingFire () && m_iBullets <= 0)){ Jump(STATE_CURRENT,0x01920079, FALSE, EInternal());return TRUE;} #line 4844 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(0.1f); Jump(STATE_CURRENT, 0x01920076, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920076_MiniGunSpinDown_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920076 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920077, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920077_MiniGunSpinDown_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920077 ;Jump(STATE_CURRENT,0x01920078, FALSE, EInternal());return TRUE; #line 4845 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x01920079_MiniGunSpinDown_08(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920079 #line 4846 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iBullets <= 0){ #line 4848 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon (); #line 4849 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x0192007a, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192007a_MiniGunSpinDown_09(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192007a #line 4851 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4855 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireRocketLauncher(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireRocketLauncher ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireRocketLauncher expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4857 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iRockets > 0)){ Jump(STATE_CURRENT,0x01920081, FALSE, EInternal());return TRUE;} #line 4858 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_MINIGUN_FIRELONG , 0); #line 4859 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (ROCKETLAUNCHER_ANIM_FIRE , 0); #line 4860 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireRocket (); #line 4862 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DoRecoil (); #line 4863 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (20.0f); #line 4864 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Rocketlauncher_fire");} #line 4865 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iRockets , 1); #line 4867 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4868 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pl . m_soWeapon0 . IsPlaying ()) #line 4869 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4870 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_ROCKETLAUNCHER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4871 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4872 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 4873 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 4874 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_ROCKETLAUNCHER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4875 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 4877 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(0.05f); Jump(STATE_CURRENT, 0x0192007c, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192007c_FireRocketLauncher_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192007c switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192007d, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192007d_FireRocketLauncher_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192007d ; #line 4879 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (m_moWeapon . GetAttachmentModel (ROCKETLAUNCHER_ATTACHMENT_ROCKET1 ) -> amo_moModelObject ); #line 4880 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> StretchModel (FLOAT3D (0 , 0 , 0)); #line 4882 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (ROCKETLAUNCHER_ANIM_FIRE ) - 0.05f); Jump(STATE_CURRENT, 0x0192007e, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192007e_FireRocketLauncher_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192007e switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192007f, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192007f_FireRocketLauncher_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192007f ; #line 4884 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (m_moWeapon . GetAttachmentModel (ROCKETLAUNCHER_ATTACHMENT_ROCKET1 ) -> amo_moModelObject ); #line 4885 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> StretchModel (FLOAT3D (1 , 1 , 1)); #line 4888 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iRockets <= 0){SelectNewWeapon ();}Jump(STATE_CURRENT,0x01920080, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920081_FireRocketLauncher_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920081 { #line 4890 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("RocketLauncher - Auto weapon change not working."); #line 4891 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 4892 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x01920080, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920080_FireRocketLauncher_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920080 #line 4893 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4893 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 4897 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireGrenadeLauncher(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireGrenadeLauncher ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireGrenadeLauncher expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 4899 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TM_START = _pTimer -> CurrentTick (); #line 4901 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" F_TEMP = _pTimer -> CurrentTick (); #line 4903 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" F_OFFSET_CHG = 0.0f; #line 4904 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower = 0.0f; #line 4905 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmDrawStartTime = _pTimer -> CurrentTick (); #line 4906 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x01920085, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920085_FireGrenadeLauncher_03(const CEntityEvent &__eeInput) #line 4907 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920085 if(!(HoldingFire () && ((_pTimer -> CurrentTick () - TM_START ) < 0.75f))){ Jump(STATE_CURRENT,0x01920086, FALSE, EInternal());return TRUE;} #line 4908 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(_pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x01920083, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920083_FireGrenadeLauncher_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920083 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920084, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920084_FireGrenadeLauncher_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920084 ; #line 4909 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iPower = INDEX ((_pTimer -> CurrentTick () - TM_START ) / _pTimer -> TickQuantum ); #line 4910 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" F_OFFSET_CHG = 0.125f / (iPower + 2); #line 4911 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPowerOld = m_fWeaponDrawPower ; #line 4912 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower += F_OFFSET_CHG ;Jump(STATE_CURRENT,0x01920085, FALSE, EInternal());return TRUE; #line 4913 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x01920086_FireGrenadeLauncher_04(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920086 #line 4914 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmDrawStartTime = 0.0f; #line 4918 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iGrenades > 0)){ Jump(STATE_CURRENT,0x01920091, FALSE, EInternal());return TRUE;} #line 4921 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iPower = INDEX ((_pTimer -> CurrentTick () - F_TEMP ) / _pTimer -> TickQuantum ); #line 4922 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireGrenade (iPower ); #line 4923 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (10.0f); #line 4924 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Gnadelauncher");} #line 4925 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iGrenades , 1); #line 4927 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 4928 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_GRENADELAUNCHER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 4929 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_MINIGUN_FIRELONG , 0); #line 4932 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TM_START = _pTimer -> CurrentTick (); #line 4933 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPowerOld = m_fWeaponDrawPower ; #line 4934 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x01920089, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920089_FireGrenadeLauncher_07(const CEntityEvent &__eeInput) #line 4935 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920089 if(!(m_fWeaponDrawPower > 0.0f)){ Jump(STATE_CURRENT,0x0192008a, FALSE, EInternal());return TRUE;} #line 4936 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(_pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x01920087, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920087_FireGrenadeLauncher_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920087 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920088, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920088_FireGrenadeLauncher_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920088 ; #line 4937 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPowerOld = m_fWeaponDrawPower ; #line 4938 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower -= F_OFFSET_CHG ; #line 4939 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower = ClampDn (m_fWeaponDrawPower , 0.0f); #line 4940 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" F_OFFSET_CHG = F_OFFSET_CHG * 10;Jump(STATE_CURRENT,0x01920089, FALSE, EInternal());return TRUE; #line 4941 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x0192008a_FireGrenadeLauncher_08(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192008a #line 4944 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ResetWeaponMovingOffset (); #line 4947 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iGrenades <= 0)){ Jump(STATE_CURRENT,0x0192008f, FALSE, EInternal());return TRUE;} #line 4949 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon ();Jump(STATE_CURRENT,0x0192008e, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192008f_FireGrenadeLauncher_13(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192008f if(!(TRUE )){ Jump(STATE_CURRENT,0x0192008d, FALSE, EInternal());return TRUE;} #line 4953 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(0.25f); Jump(STATE_CURRENT, 0x0192008b, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192008b_FireGrenadeLauncher_09(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192008b switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192008c, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192008c_FireGrenadeLauncher_10(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192008c ;Jump(STATE_CURRENT,0x0192008d, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192008d_FireGrenadeLauncher_11(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192008d Jump(STATE_CURRENT,0x0192008e, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x0192008e_FireGrenadeLauncher_12(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192008e Jump(STATE_CURRENT,0x01920090, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x01920091_FireGrenadeLauncher_15(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920091 { #line 4956 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("GrenadeLauncher - Auto weapon change not working."); #line 4957 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 4958 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x01920090, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x01920090_FireGrenadeLauncher_14(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920090 #line 4960 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 4960 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5042 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FlamerStart(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FlamerStart ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FlamerStart expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5043 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmFlamerStart = _pTimer -> CurrentTick (); #line 5044 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmFlamerStop = 1e9; #line 5046 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (FLAMER_ANIM_FIRESTART , 0); #line 5047 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (FLAMER_ANIM_FIRESTART )); Jump(STATE_CURRENT, 0x01920093, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920093_FlamerStart_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920093 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920094, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920094_FlamerStart_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920094 ; #line 5049 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5050 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 2.0f , 0.31f); #line 5051 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon2 . Set3DParameters (50.0f , 5.0f , 2.0f , 0.3f); #line 5052 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_FL_FIRE , SOF_3D | SOF_LOOP | SOF_VOLUMETRIC ); #line 5053 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("FlamethrowerFire");} #line 5054 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon2 , SOUND_FL_START , SOF_3D | SOF_VOLUMETRIC ); #line 5055 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("FlamethrowerStart");} #line 5056 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireFlame (); #line 5057 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iNapalm , 1); #line 5058 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(0.05f); Jump(STATE_CURRENT, 0x01920095, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920095_FlamerStart_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920095 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920096, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920096_FlamerStart_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920096 ; #line 5059 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_FlamerFire, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5062 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FlamerFire(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FlamerFire ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FlamerFire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5064 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x0192009a, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x0192009a_FlamerFire_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192009a if(!(HoldingFire () && m_iNapalm > 0)){ Jump(STATE_CURRENT,0x0192009b, FALSE, EInternal());return TRUE;} #line 5066 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireFlame (); #line 5067 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iNapalm , 1); #line 5068 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (30.0f); #line 5069 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(0.1f); Jump(STATE_CURRENT, 0x01920098, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x01920098_FlamerFire_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x01920098 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x01920099, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x01920099_FlamerFire_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x01920099 ;Jump(STATE_CURRENT,0x0192009a, FALSE, EInternal());return TRUE; #line 5070 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x0192009b_FlamerFire_04(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192009b #line 5072 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iNapalm <= 0){ #line 5073 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bHasAmmo = FALSE ; #line 5074 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5076 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_FlamerStop, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5079 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FlamerStop(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FlamerStop ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FlamerStop expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5080 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmFlamerStop = _pTimer -> CurrentTick (); #line 5081 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5082 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_FL_STOP , SOF_3D | SOF_VOLUMETRIC | SOF_SMOOTHCHANGE ); #line 5083 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_StopEffect ("FlamethrowerFire");} #line 5084 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("FlamethrowerStop");} #line 5086 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireFlame (); #line 5088 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_penFlame != NULL && ! (m_penFlame -> GetFlags () & ENF_DELETED )){ #line 5089 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((CProjectile &) * m_penFlame ) . m_penParticles = NULL ; #line 5090 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penFlame = NULL ; #line 5091 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5093 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (FLAMER_ANIM_FIREEND , 0); #line 5094 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (FLAMER_ANIM_FIREEND )); Jump(STATE_CURRENT, 0x0192009d, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x0192009d_FlamerStop_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x0192009d switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x0192009e, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x0192009e_FlamerStop_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x0192009e ; #line 5096 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iNapalm <= 0){ #line 5098 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon (); #line 5099 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5100 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5104 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ChainsawFire(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_ChainsawFire ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::ChainsawFire expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5106 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5109 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 1.5f , 1.0f); #line 5110 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_CS_BEGINFIRE , SOF_3D | SOF_VOLUMETRIC ); #line 5111 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("ChainsawBeginFire");} #line 5115 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (CHAINSAW_ANIM_WAIT2FIRE , 0); #line 5116 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (CHAINSAW_ANIM_WAIT2FIRE ) - 0.05f); Jump(STATE_CURRENT, 0x019200a0, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200a0_ChainsawFire_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200a0 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200a1, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200a1_ChainsawFire_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200a1 ; #line 5118 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayerAnimator & pa = * GetAnimator (); #line 5119 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pa . FireAnimation (BODY_ANIM_MINIGUN_FIRELONG , 0); #line 5121 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmoTeeth = GetChainSawTeeth (); #line 5122 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pmoTeeth != NULL ) #line 5123 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5124 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmoTeeth -> PlayAnim (TEETH_ANIM_ROTATE , AOF_LOOPING | AOF_NORESTART ); #line 5125 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5128 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5130 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeaponAmbient . Set3DParameters (30.0f , 3.0f , 0.5f , 1.0f); #line 5132 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_CS_FIRE , SOF_3D | SOF_LOOP | SOF_VOLUMETRIC | SOF_SMOOTHCHANGE ); #line 5133 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_StopEffect ("ChainsawIdle");} #line 5134 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("ChainsawFire");} #line 5136 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (CHAINSAW_ANIM_FIRE , AOF_LOOPING | AOF_NORESTART ); #line 5139 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo1 = & (m_moWeapon . GetAttachmentModel (CHAINSAW_ATTACHMENT_BLADE ) -> amo_moModelObject ); #line 5140 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo2 = & (pmo1 -> GetAttachmentModel (BLADE_ATTACHMENT_TEETH ) -> amo_moModelObject ); #line 5141 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo2 -> PlayAnim (TEETH_ANIM_ROTATE , AOF_LOOPING ); #line 5143 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x019200a4, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200a4_ChainsawFire_05(const CEntityEvent &__eeInput) #line 5144 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200a4 if(!(HoldingFire ())){ Jump(STATE_CURRENT,0x019200a5, FALSE, EInternal());return TRUE;} #line 5145 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(CHAINSAW_UPDATETIME ); Jump(STATE_CURRENT, 0x019200a2, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200a2_ChainsawFire_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200a2 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200a3, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200a3_ChainsawFire_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200a3 ; #line 5147 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CutWithChainsaw (0 , 0 , 3.0f , 2.0f , 1.0f , #line 5148 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((GetSP () -> sp_bCooperative ) ? 200.0f : 250.0f) * CHAINSAW_UPDATETIME );Jump(STATE_CURRENT,0x019200a4, FALSE, EInternal());return TRUE; #line 5150 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x019200a5_ChainsawFire_06(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200a5 #line 5154 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5155 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_CS_ENDFIRE , SOF_3D | SOF_VOLUMETRIC | SOF_SMOOTHCHANGE ); #line 5156 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_StopEffect ("ChainsawFire");} #line 5157 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("ChainsawEnd");} #line 5158 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("ChainsawIdle");} #line 5161 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeaponAmbient . Set3DParameters (30.0f , 3.0f , 1.0f , 1.0f); #line 5163 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (CHAINSAW_ANIM_FIRE2WAIT , 0); #line 5164 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (CHAINSAW_ANIM_FIRE2WAIT )); Jump(STATE_CURRENT, 0x019200a6, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200a6_ChainsawFire_07(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200a6 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200a7, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200a7_ChainsawFire_08(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200a7 ; #line 5167 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo1 = & (m_moWeapon . GetAttachmentModel (CHAINSAW_ATTACHMENT_BLADE ) -> amo_moModelObject ); #line 5168 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo2 = & (pmo1 -> GetAttachmentModel (BLADE_ATTACHMENT_TEETH ) -> amo_moModelObject ); #line 5169 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo2 -> PlayAnim (TEETH_ANIM_DEFAULT , 0); #line 5171 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmoTeeth = GetChainSawTeeth (); #line 5172 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pmoTeeth != NULL ) #line 5173 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5174 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmoTeeth -> PlayAnim (TEETH_ANIM_DEFAULT , 0); #line 5175 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5177 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5180 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ChainsawBringUp(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_ChainsawBringUp ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::ChainsawBringUp expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5183 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (CHAINSAW_ANIM_FIRE2WAIT , 0); #line 5184 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(m_moWeapon . GetAnimLength (CHAINSAW_ANIM_FIRE2WAIT )); Jump(STATE_CURRENT, 0x019200a9, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200a9_ChainsawBringUp_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200a9 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200aa, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200aa_ChainsawBringUp_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200aa ; #line 5185 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5189 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireLaser(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_FireLaser ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::FireLaser expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5191 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iElectricity > 0)){ Jump(STATE_CURRENT,0x019200af, FALSE, EInternal());return TRUE;} #line 5192 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(0.1f); Jump(STATE_CURRENT, 0x019200ac, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200ac_FireLaser_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200ac switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200ad, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200ad_FireLaser_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200ad ; #line 5193 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (LASER_ANIM_FIRE , AOF_LOOPING | AOF_NORESTART ); #line 5194 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireLaserRay (); #line 5195 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Laser_fire");} #line 5196 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iElectricity , 1); #line 5198 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (20.0f); #line 5199 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5201 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iLaserBarrel ){ #line 5202 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 0: { #line 5203 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (m_moWeapon . GetAttachmentModel (LASER_ATTACHMENT_LEFTUP ) -> amo_moModelObject ); #line 5204 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> PlayAnim (BARREL_ANIM_FIRE , 0); #line 5205 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_LASER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 5206 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 5207 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 3: { #line 5208 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (m_moWeapon . GetAttachmentModel (LASER_ATTACHMENT_RIGHTDOWN ) -> amo_moModelObject ); #line 5209 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> PlayAnim (BARREL_ANIM_FIRE , 0); #line 5210 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_LASER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 5211 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 5212 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 1: { #line 5213 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (m_moWeapon . GetAttachmentModel (LASER_ATTACHMENT_LEFTDOWN ) -> amo_moModelObject ); #line 5214 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> PlayAnim (BARREL_ANIM_FIRE , 0); #line 5215 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon2 , SOUND_LASER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 5216 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 5217 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case 2: { #line 5218 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (m_moWeapon . GetAttachmentModel (LASER_ATTACHMENT_RIGHTUP ) -> amo_moModelObject ); #line 5219 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pmo -> PlayAnim (BARREL_ANIM_FIRE , 0); #line 5220 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon3 , SOUND_LASER_FIRE , SOF_3D | SOF_VOLUMETRIC ); #line 5221 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" break ;} #line 5222 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5224 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iLaserBarrel = (m_iLaserBarrel + 1) & 3; #line 5226 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iElectricity <= 0){SelectNewWeapon ();}Jump(STATE_CURRENT,0x019200ae, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200af_FireLaser_04(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200af { #line 5228 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Laser - Auto weapon change not working."); #line 5229 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 5230 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x019200ae, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x019200ae_FireLaser_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200ae #line 5231 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 5231 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5280 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CannonFireStart(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_CannonFireStart ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::CannonFireStart expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5282 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmDrawStartTime = _pTimer -> CurrentTick (); #line 5283 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TM_START = _pTimer -> CurrentTick (); #line 5284 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" F_OFFSET_CHG = 0.0f; #line 5285 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower = 0.0f; #line 5286 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5287 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iIronBalls & 1) #line 5288 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5289 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 3.0f , 1.0f); #line 5290 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon0 , SOUND_CANNON_PREPARE , SOF_3D | SOF_VOLUMETRIC ); #line 5291 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5292 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 5293 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5294 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon1 . Set3DParameters (50.0f , 5.0f , 3.0f , 1.0f); #line 5295 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon1 , SOUND_CANNON_PREPARE , SOF_3D | SOF_VOLUMETRIC ); #line 5296 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5298 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Canon_prepare");} #line 5299 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x019200b3, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200b3_CannonFireStart_03(const CEntityEvent &__eeInput) #line 5300 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200b3 if(!(HoldingFire () && ((_pTimer -> CurrentTick () - TM_START ) < 1.0f))){ Jump(STATE_CURRENT,0x019200b4, FALSE, EInternal());return TRUE;} #line 5301 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(_pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x019200b1, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200b1_CannonFireStart_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200b1 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200b2, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200b2_CannonFireStart_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200b2 ; #line 5302 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iPower = INDEX ((_pTimer -> CurrentTick () - TM_START ) / _pTimer -> TickQuantum ); #line 5303 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" F_OFFSET_CHG = 0.25f / (iPower + 2); #line 5304 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPowerOld = m_fWeaponDrawPower ; #line 5305 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower += F_OFFSET_CHG ;Jump(STATE_CURRENT,0x019200b3, FALSE, EInternal());return TRUE; #line 5306 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x019200b4_CannonFireStart_04(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200b4 #line 5307 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_tmDrawStartTime = 0.0f; #line 5308 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5309 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iIronBalls & 1) #line 5310 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5312 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Set3DParameters (50.0f , 5.0f , 0.0f , 1.0f); #line 5313 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5314 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 5315 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5317 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon1 . Set3DParameters (50.0f , 5.0f , 0.0f , 1.0f); #line 5318 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5321 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(((m_iIronBalls > 0) && (m_iCurrentWeapon == WEAPON_IRONCANNON )))){ Jump(STATE_CURRENT,0x019200ba, FALSE, EInternal());return TRUE;} #line 5323 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" INDEX iPower = INDEX ((_pTimer -> CurrentTick () - TM_START ) / _pTimer -> TickQuantum ); #line 5324 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" GetAnimator () -> FireAnimation (BODY_ANIM_MINIGUN_FIRELONG , 0); #line 5326 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fRange , fFalloff ; #line 5327 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(GetSP () -> sp_bCooperative ){ #line 5328 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fRange = 100.0f; #line 5329 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fFalloff = 25.0f; #line 5330 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }else if(TRUE ){ #line 5331 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fRange = 150.0f; #line 5332 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" fFalloff = 30.0f; #line 5333 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5336 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iIronBalls & 1) #line 5337 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5338 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon2 . Set3DParameters (fRange , fFalloff , 2.0f + iPower * 0.05f , 1.0f); #line 5339 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon2 , SOUND_CANNON , SOF_3D | SOF_VOLUMETRIC ); #line 5340 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5341 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" else #line 5342 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5343 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon3 . Set3DParameters (fRange , fFalloff , 2.0f + iPower * 0.05f , 1.0f); #line 5344 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlaySound (pl . m_soWeapon3 , SOUND_CANNON , SOF_3D | SOF_VOLUMETRIC ); #line 5345 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5347 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_moWeapon . PlayAnim (CANNON_ANIM_FIRE , 0); #line 5348 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FireCannonBall (iPower ); #line 5350 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(_pNetwork -> IsPlayerLocal (m_penPlayer )){IFeel_PlayEffect ("Canon");} #line 5351 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" DecAmmo (m_iIronBalls , 1); #line 5353 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SpawnRangeSound (30.0f); #line 5355 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" TM_START = _pTimer -> CurrentTick (); #line 5356 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPowerOld = m_fWeaponDrawPower ; #line 5357 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT,0x019200b7, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200b7_CannonFireStart_07(const CEntityEvent &__eeInput) #line 5359 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200b7 if(!(m_fWeaponDrawPower > 0.0f || #line 5358 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ((_pTimer -> CurrentTick () - TM_START ) < m_moWeapon . GetAnimLength (CANNON_ANIM_FIRE )))){ Jump(STATE_CURRENT,0x019200b8, FALSE, EInternal());return TRUE;} #line 5360 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAfter(_pTimer -> TickQuantum ); Jump(STATE_CURRENT, 0x019200b5, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200b5_CannonFireStart_05(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200b5 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200b6, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200b6_CannonFireStart_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200b6 ; #line 5361 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPowerOld = m_fWeaponDrawPower ; #line 5362 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower -= F_OFFSET_CHG ; #line 5363 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_fWeaponDrawPower = ClampDn (m_fWeaponDrawPower , 0.0f); #line 5364 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" F_OFFSET_CHG = F_OFFSET_CHG * 2;Jump(STATE_CURRENT,0x019200b7, FALSE, EInternal());return TRUE; #line 5365 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }BOOL CPlayerWeapons::H0x019200b8_CannonFireStart_08(const CEntityEvent &__eeInput) { ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200b8 #line 5368 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ResetWeaponMovingOffset (); #line 5371 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(((m_iIronBalls <= 0) && (m_iCurrentWeapon == WEAPON_IRONCANNON )) #line 5372 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ) #line 5373 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5374 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectNewWeapon (); #line 5375 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x019200b9, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200ba_CannonFireStart_10(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200ba #line 5378 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" { #line 5379 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERTALWAYS ("Cannon - Auto weapon change not working."); #line 5380 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = m_bHasAmmo = FALSE ; #line 5381 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }Jump(STATE_CURRENT,0x019200b9, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x019200b9_CannonFireStart_09(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200b9 #line 5382 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5389 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Reload(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_Reload ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::Reload expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5390 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bReloadWeapon = FALSE ; #line 5393 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(m_iCurrentWeapon == WEAPON_COLT )){ Jump(STATE_CURRENT,0x019200c2, FALSE, EInternal());return TRUE;} #line 5394 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" STATE_CPlayerWeapons_ReloadColt, TRUE; Jump(STATE_CURRENT, 0x019200bc, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200bc_Reload_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200bc switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPlayerWeapons_ReloadColt, TRUE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x019200bd, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200bd_Reload_02(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x019200bd const EEnd&__e= (EEnd&)__eeInput; ;Jump(STATE_CURRENT,0x019200c1, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200c2_Reload_07(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200c2 if(!(m_iCurrentWeapon == WEAPON_DOUBLECOLT )){ Jump(STATE_CURRENT,0x019200c0, FALSE, EInternal());return TRUE;} #line 5396 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" STATE_CPlayerWeapons_ReloadDoubleColt, TRUE; Jump(STATE_CURRENT, 0x019200be, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200be_Reload_03(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200be switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: Call(STATE_CURRENT, STATE_CPlayerWeapons_ReloadDoubleColt, TRUE, EVoid());return TRUE;case EVENTCODE_EEnd: Jump(STATE_CURRENT,0x019200bf, FALSE, __eeInput); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200bf_Reload_04(const CEntityEvent &__eeInput){ #undef STATE_CURRENT #define STATE_CURRENT 0x019200bf const EEnd&__e= (EEnd&)__eeInput; ;Jump(STATE_CURRENT,0x019200c0, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200c0_Reload_05(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200c0 Jump(STATE_CURRENT,0x019200c1, FALSE, EInternal());return TRUE;} BOOL CPlayerWeapons::H0x019200c1_Reload_06(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200c1 #line 5401 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5408 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ChangeKnifeStand(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_ChangeKnifeStand ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::ChangeKnifeStand expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5421 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 5421 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5424 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ChangeToIronCannon(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_ChangeToIronCannon ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::ChangeToIronCannon expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5435 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iPreviousWeapon = m_iCurrentWeapon ; #line 5436 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iCurrentWeapon = WEAPON_IRONCANNON ; #line 5437 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_iWantedWeapon = m_iCurrentWeapon ; #line 5439 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EEnd ()); #line 5439 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5463 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" BoringWeaponAnimation(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_BoringWeaponAnimation ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::BoringWeaponAnimation expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5465 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" FLOAT fWait = 0.0f; #line 5466 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" switch(m_iCurrentWeapon ){ #line 5467 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_KNIFE : fWait = KnifeBoring ();break ; #line 5468 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_COLT : fWait = ColtBoring ();break ; #line 5469 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLECOLT : fWait = DoubleColtBoring ();break ; #line 5470 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SINGLESHOTGUN : fWait = SingleShotgunBoring ();break ; #line 5471 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_DOUBLESHOTGUN : fWait = DoubleShotgunBoring ();break ; #line 5472 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_TOMMYGUN : fWait = TommyGunBoring ();break ; #line 5473 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_SNIPER : fWait = SniperBoring ();break ; #line 5474 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_MINIGUN : fWait = MiniGunBoring ();break ; #line 5475 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_ROCKETLAUNCHER : fWait = RocketLauncherBoring ();break ; #line 5476 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_GRENADELAUNCHER : fWait = GrenadeLauncherBoring ();break ; #line 5477 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_FLAMER : fWait = FlamerBoring ();break ; #line 5478 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_CHAINSAW : fWait = ChainsawBoring ();break ; #line 5479 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_LASER : fWait = LaserBoring ();break ; #line 5480 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" case WEAPON_IRONCANNON : fWait = CannonBoring ();break ; #line 5481 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" default : ASSERTALWAYS ("Unknown weapon."); #line 5482 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5483 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(!(fWait > 0.0f)){ Jump(STATE_CURRENT,0x019200c8, FALSE, EInternal());return TRUE;}SetTimerAfter(fWait ); Jump(STATE_CURRENT, 0x019200c6, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200c6_BoringWeaponAnimation_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200c6 switch(__eeInput.ee_slEvent) {case EVENTCODE_EBegin: return TRUE;case EVENTCODE_ETimer: Jump(STATE_CURRENT,0x019200c7, FALSE, EInternal()); return TRUE;default: return FALSE; }}BOOL CPlayerWeapons::H0x019200c7_BoringWeaponAnimation_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200c7 ;Jump(STATE_CURRENT,0x019200c8, FALSE, EInternal());return TRUE;}BOOL CPlayerWeapons::H0x019200c8_BoringWeaponAnimation_03(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200c8 #line 5485 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EBegin ()); #line 5485 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5493 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Idle(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_Idle ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::Idle expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5495 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAt(THINKTIME_NEVER); Jump(STATE_CURRENT, 0x019200ca, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200ca_Idle_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200ca switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput; #line 5498 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayDefaultAnim (); #line 5501 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bChangeWeapon ){ #line 5502 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_ChangeWeapon, TRUE, EVoid());return TRUE; #line 5503 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5505 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bFireWeapon ){ #line 5506 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Fire, TRUE, EVoid());return TRUE; #line 5507 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5509 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bReloadWeapon ){ #line 5510 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Reload, TRUE, EVoid());return TRUE; #line 5511 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5512 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 5513 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_ESelectWeapon):{const ESelectWeapon&eSelect= (ESelectWeapon&)__eeInput; #line 5517 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectWeaponChange (eSelect . iWeapon ); #line 5518 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_bChangeWeapon ){ #line 5519 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_ChangeWeapon, TRUE, EVoid());return TRUE; #line 5520 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5521 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 5522 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EFireWeapon):{const EFireWeapon&e= (EFireWeapon&)__eeInput; #line 5525 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Fire, TRUE, EVoid());return TRUE; #line 5526 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EReloadWeapon):{const EReloadWeapon&e= (EReloadWeapon&)__eeInput; #line 5529 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Jump(STATE_CURRENT, STATE_CPlayerWeapons_Reload, TRUE, EVoid());return TRUE; #line 5530 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EBoringWeapon):{const EBoringWeapon&e= (EBoringWeapon&)__eeInput; #line 5533 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Call(STATE_CURRENT, STATE_CPlayerWeapons_BoringWeaponAnimation, TRUE, EVoid());return TRUE; #line 5534 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;default: return FALSE; break; #line 5535 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }return TRUE;}BOOL CPlayerWeapons::H0x019200cb_Idle_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200cb ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5539 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Stopped(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_Stopped ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EVoid, "CPlayerWeapons::Stopped expects 'EVoid' as input!"); const EVoid &e = (const EVoid &)__eeInput; #line 5542 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(m_iCurrentWeapon == WEAPON_ROCKETLAUNCHER ){ #line 5543 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CModelObject * pmo = & (m_moWeapon . GetAttachmentModel (ROCKETLAUNCHER_ATTACHMENT_ROCKET1 ) -> amo_moModelObject ); #line 5544 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" if(pmo ){pmo -> StretchModel (FLOAT3D (1 , 1 , 1));} #line 5545 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" } #line 5547 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ResetWeaponMovingOffset (); #line 5548 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" CPlayer & pl = (CPlayer &) * m_penPlayer ; #line 5549 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon0 . Stop (); #line 5550 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon1 . Stop (); #line 5551 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon2 . Stop (); #line 5552 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" pl . m_soWeapon3 . Stop (); #line 5553 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayLightAnim (LIGHT_ANIM_NONE , 0); #line 5554 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAt(THINKTIME_NEVER); Jump(STATE_CURRENT, 0x019200cd, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200cd_Stopped_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200cd switch(__eeInput.ee_slEvent){case(EVENTCODE_EPostLevelChange):{const EPostLevelChange&e= (EPostLevelChange&)__eeInput; Return(STATE_CURRENT,EBegin ());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EStart):{const EStart&e= (EStart&)__eeInput; Return(STATE_CURRENT,EBegin ());return TRUE;}ASSERT(FALSE);break;default:{return TRUE;}ASSERT(FALSE);break; #line 5559 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }return TRUE;}BOOL CPlayerWeapons::H0x019200ce_Stopped_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200ce ASSERT(FALSE); return TRUE;};BOOL CPlayerWeapons:: #line 5567 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Main(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT STATE_CPlayerWeapons_Main ASSERTMSG(__eeInput.ee_slEvent==EVENTCODE_EWeaponsInit, "CPlayerWeapons::Main expects 'EWeaponsInit' as input!"); const EWeaponsInit &eInit = (const EWeaponsInit &)__eeInput; #line 5569 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" ASSERT (eInit . penOwner != NULL ); #line 5570 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_penPlayer = eInit . penOwner ; #line 5573 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" InitAsVoid (); #line 5574 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetFlags (GetFlags () | ENF_CROSSESLEVELS | ENF_NOTIFYLEVELCHANGE ); #line 5575 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetPhysicsFlags (EPF_MODEL_IMMATERIAL ); #line 5576 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetCollisionFlags (ECF_IMMATERIAL ); #line 5579 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetCurrentWeaponModel (); #line 5582 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" PlayDefaultAnim (); #line 5584 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SetTimerAt(THINKTIME_NEVER); Jump(STATE_CURRENT, 0x019200cf, FALSE, EBegin());return TRUE;}BOOL CPlayerWeapons::H0x019200cf_Main_01(const CEntityEvent &__eeInput) { #undef STATE_CURRENT #define STATE_CURRENT 0x019200cf switch(__eeInput.ee_slEvent){case(EVENTCODE_EBegin):{const EBegin&e= (EBegin&)__eeInput; Call(STATE_CURRENT, STATE_CPlayerWeapons_Idle, TRUE, EVoid());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_ESelectWeapon):{const ESelectWeapon&eSelect= (ESelectWeapon&)__eeInput; #line 5588 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" SelectWeaponChange (eSelect . iWeapon ); #line 5589 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 5590 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EPreLevelChange):{const EPreLevelChange&e= (EPreLevelChange&)__eeInput; #line 5594 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = FALSE ; #line 5595 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Call(STATE_CURRENT, STATE_CPlayerWeapons_Stopped, TRUE, EVoid());return TRUE; #line 5596 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 5597 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EFireWeapon):{const EFireWeapon&e= (EFireWeapon&)__eeInput; #line 5600 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = TRUE ; #line 5601 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 5602 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EReleaseWeapon):{const EReleaseWeapon&e= (EReleaseWeapon&)__eeInput; #line 5605 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bFireWeapon = FALSE ; #line 5606 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 5607 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EReloadWeapon):{const EReloadWeapon&e= (EReloadWeapon&)__eeInput; #line 5610 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" m_bReloadWeapon = TRUE ; #line 5611 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; #line 5612 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }ASSERT(FALSE);break;case(EVENTCODE_EStop):{const EStop&e= (EStop&)__eeInput; Call(STATE_CURRENT, STATE_CPlayerWeapons_Stopped, TRUE, EVoid());return TRUE;}ASSERT(FALSE);break;case(EVENTCODE_EEnd):{const EEnd&e= (EEnd&)__eeInput; UnsetTimer();Jump(STATE_CURRENT,0x019200d0, FALSE, EInternal());return TRUE;}ASSERT(FALSE);break;default: return FALSE; break; #line 5615 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" }return TRUE;}BOOL CPlayerWeapons::H0x019200d0_Main_02(const CEntityEvent &__eeInput){ ASSERT(__eeInput.ee_slEvent==EVENTCODE_EInternal); #undef STATE_CURRENT #define STATE_CURRENT 0x019200d0 #line 5618 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Destroy (); #line 5619 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" Return(STATE_CURRENT,EVoid()); #line 5619 "D:/SE1_GPL/Sources/EntitiesMP/PlayerWeapons.es" return TRUE; ASSERT(FALSE); return TRUE;};