hexen2-hw-hc/newplay.hc

889 lines
30 KiB
C++

/*
==============================================================================
ALL PLAYERS FRAME CONTROL!!!
MG
==============================================================================
*/
//=================================================================
//PALADIN
//
$frame attgnt1 attgnt2 attgnt3 attgnt4 attgnt5
$frame attgnt6 attgnt7 attgnt8 attgnt9 attgnt10
$frame attgnt11
//
$frame pattstf1 pattstf2 pattstf3 pattstf4
//
$frame attswd1 attswd2 attswd3 attswd4 attswd5
$frame attswd6 attswd7 attswd8 attswd9 attswd10
$frame attswd11 attswd12
//
$frame pcrouch1 pcrouch2 pcrouch3 pcrouch4 pcrouch5
$frame pcrouch6 pcrouch7 pcrouch8 pcrouch9 pcrouch10
$frame pcrouch11 pcrouch12 pcrouch13 pcrouch14 pcrouch15
$frame pcrouch16 pcrouch17 pcrouch18 pcrouch19 pcrouch20
//
$frame pdeath1 pdeath2 pdeath3 pdeath4 pdeath5
$frame pdeath6 pdeath7 pdeath8 pdeath9 pdeath10
$frame pdeath11 pdeath12 pdeath13 pdeath14 pdeath15
$frame pdeath16 pdeath17 pdeath18 pdeath19 pdeath20
//
$frame pdecap1 pdecap2 pdecap3 pdecap4 pdecap5
$frame pdecap6 pdecap7 pdecap8 pdecap9 pdecap10
$frame pdecap11 pdecap12 pdecap13 pdecap14 pdecap15
$frame pdecap16 pdecap17 pdecap18 pdecap19 pdecap20
$frame pdecap21 pdecap22 pdecap23 pdecap24 pdecap25
$frame pdecap26 pdecap27 pdecap28
//
$frame flygnt1 flygnt2 flygnt3 flygnt4 flygnt5
$frame flygnt6 flygnt7 flygnt8 flygnt9 flygnt10
$frame flygnt11 flygnt12 flygnt13 flygnt14 flygnt15
//
$frame pflystf1 pflystf2 pflystf3 pflystf4 pflystf5
$frame pflystf6 pflystf7 pflystf8 pflystf9 pflystf10
$frame pflystf11 pflystf12 pflystf13 pflystf14 pflystf15
//
$frame flyswd1 flyswd2 flyswd3 flyswd4 flyswd5
$frame flyswd6 flyswd7 flyswd8 flyswd9 flyswd10
$frame flyswd11 flyswd12 flyswd13 flyswd14 flyswd15
//
$frame pjump1 pjump2 pjump3 pjump4 pjump5
$frame pjump6 pjump7 pjump8 pjump9 pjump10
$frame pjump11 pjump12
//
$frame paingnt1 paingnt2 paingnt3 paingnt4 paingnt5
$frame paingnt6 paingnt7
//
$frame ppainstf1 ppainstf2 ppainstf3 ppainstf4 ppainstf5
$frame ppainstf6 ppainstf7
//
$frame painswd1 painswd2 painswd3 painswd4 painswd5
$frame painswd6 painswd7
//
$frame rungnt1 rungnt2 rungnt3 rungnt4 rungnt5
$frame rungnt6 rungnt7 rungnt8 rungnt9 rungnt10
$frame rungnt11 rungnt12
//
$frame prunstf1 prunstf2 prunstf3 prunstf4 prunstf5
$frame prunstf6 prunstf7 prunstf8 prunstf9 prunstf10
$frame prunstf11 prunstf12
//
$frame runswd1 runswd2 runswd3 runswd4 runswd5
$frame runswd6 runswd7 runswd8 runswd9 runswd10
$frame runswd11 runswd12
//
$frame stdgnt1 stdgnt2 stdgnt3 stdgnt4 stdgnt5
$frame stdgnt6 stdgnt7 stdgnt8 stdgnt9 stdgnt10
$frame stdgnt11 stdgnt12 stdgnt13
//
$frame pstdstf1 pstdstf2 pstdstf3 pstdstf4 pstdstf5
$frame pstdstf6 pstdstf7 pstdstf8 pstdstf9 pstdstf10
$frame pstdstf11 pstdstf12 pstdstf13
//
$frame stdswd1 stdswd2 stdswd3 stdswd4 stdswd5
$frame stdswd6 stdswd7 stdswd8 stdswd9 stdswd10
$frame stdswd11 stdswd12 stdswd13
//=================================================================
$framevalue 0
//CRUSADER
//
$frame ccrouch1 ccrouch2 ccrouch3 ccrouch4 ccrouch5
$frame ccrouch6 ccrouch7 ccrouch8 ccrouch9 ccrouch10
$frame ccrouch11 ccrouch12 ccrouch13 ccrouch14 ccrouch15
$frame ccrouch16 ccrouch17 ccrouch18 ccrouch19 ccrouch20
//
$frame cdecap1 cdecap2 cdecap3 cdecap4 cdecap5
$frame cdecap6 cdecap7 cdecap8 cdecap9 cdecap10
$frame cdecap11 cdecap12 cdecap13 cdecap14 cdecap15
$frame cdecap16 cdecap17 cdecap18 cdecap19 cdecap20
$frame cdecap21 cdecap22 cdecap23 cdecap24 cdecap25
$frame cdecap26 cdecap27 cdecap28
//
$frame cdeath1 cdeath2 cdeath3 cdeath4 cdeath5
$frame cdeath6 cdeath7 cdeath8 cdeath9 cdeath10
$frame cdeath11 cdeath12 cdeath13 cdeath14 cdeath15
$frame cdeath16 cdeath17 cdeath18 cdeath19 cdeath20
//
$frame flyham1 flyham2 flyham3 flyham4 flyham5
$frame flyham6 flyham7 flyham8 flyham9 flyham10
$frame flyham11 flyham12 flyham13 flyham14 flyham15
//
$frame attham1 attham2 attham3 attham4 attham5
$frame attham6 attham7 attham8 attham9 attham10
//
$frame painham1 painham2 painham3 painham4 painham5
$frame painham6 painham7 painham8
//
$frame stdham1 stdham2 stdham3 stdham4 stdham5
$frame stdham6 stdham7 stdham8 stdham9 stdham10
$frame stdham11 stdham12 stdham13
//
$frame runham1 runham2 runham3 runham4 runham5
$frame runham6 runham7 runham8 runham9 runham10
$frame runham11 runham12
//
$frame flyice1 flyice2 flyice3 flyice4 flyice5
$frame flyice6 flyice7 flyice8 flyice9 flyice10
$frame flyice11 flyice12 flyice13 flyice14 flyice15
//
$frame painice1 painice2 painice3 painice4 painice5
$frame painice6 painice7 painice8
//
$frame runice1 runice2 runice3 runice4 runice5
$frame runice6 runice7 runice8 runice9 runice10
$frame runice11 runice12
//
$frame attice1 attice2 attice3 attice4
//
$frame stdice1 stdice2 stdice3 stdice4 stdice5
$frame stdice6 stdice7 stdice8 stdice9 stdice10
$frame stdice11 stdice12 stdice13
//
$frame cjump1 cjump2 cjump3 cjump4 cjump5
$frame cjump6 cjump7 cjump8 cjump9 cjump10
$frame cjump11 cjump12 cjump13
//
$frame cflystf1 cflystf2 cflystf3 cflystf4 cflystf5
$frame cflystf6 cflystf7 cflystf8 cflystf9 cflystf10
$frame cflystf11 cflystf12 cflystf13 cflystf14 cflystf15
//
$frame cpainstf1 cpainstf2 cpainstf3 cpainstf4 cpainstf5
$frame cpainstf6 cpainstf7 cpainstf8
//
$frame crunstf1 crunstf2 crunstf3 crunstf4 crunstf5
$frame crunstf6 crunstf7 crunstf8 crunstf9 crunstf10
$frame crunstf11 crunstf12
//
$frame cattstf1 cattstf2 cattstf3 cattstf4 cattstf5
//
$frame cstdstf1 cstdstf2 cstdstf3 cstdstf4 cstdstf5
$frame cstdstf6 cstdstf7 cstdstf8 cstdstf9 cstdstf10
$frame cstdstf11 cstdstf12 cstdstf13
//=================================================================
$framevalue 0
//NECROMANCER
//
$frame ncrouch1 ncrouch2 ncrouch3 ncrouch4 ncrouch5
$frame ncrouch6 ncrouch7 ncrouch8 ncrouch9 ncrouch10
$frame ncrouch11 ncrouch12 ncrouch13 ncrouch14 ncrouch15
$frame ncrouch16 ncrouch17 ncrouch18 ncrouch19 ncrouch20
//
$frame ndeath1 ndeath2 ndeath3 ndeath4 ndeath5
$frame ndeath6 ndeath7 ndeath8 ndeath9 ndeath10
$frame ndeath11 ndeath12 ndeath13 ndeath14 ndeath15
$frame ndeath16 ndeath17 ndeath18 ndeath19 ndeath20
//
$frame ndecap1 ndecap2 ndecap3 ndecap4 ndecap5
$frame ndecap6 ndecap7 ndecap8 ndecap9 ndecap10
$frame ndecap11 ndecap12 ndecap13 ndecap14 ndecap15
$frame ndecap16 ndecap17 ndecap18 ndecap19 ndecap20
//
$frame atthan1 atthan2 atthan3 atthan4 atthan5
$frame atthan6 atthan7 atthan8
//
$frame flyhan1 flyhan2 flyhan3 flyhan4 flyhan5
$frame flyhan6 flyhan7 flyhan8 flyhan9 flyhan10
$frame flyhan11 flyhan12 flyhan13 flyhan14 flyhan15
//
$frame painhan1 painhan2 painhan3 painhan4 painhan5
$frame painhan6 painhan7 painhan8
//
$frame runhan1 runhan2 runhan3 runhan4 runhan5
$frame runhan6 runhan7 runhan8 runhan9 runhan10
$frame runhan11 runhan12
//
$frame stdhan1 stdhan2 stdhan3 stdhan4 stdhan5
$frame stdhan6 stdhan7 stdhan8 stdhan9 stdhan10
$frame stdhan11 stdhan12
//
$frame attsic1 attsic2 attsic3 attsic4 attsic5
$frame attsic6 attsic7 attsic8 attsic9 attsic10
$frame attsic11 attsic12
//
$frame flysic1 flysic2 flysic3 flysic4 flysic5
$frame flysic6 flysic7 flysic8 flysic9 flysic10
$frame flysic11 flysic12 flysic13 flysic14 flysic15
//
$frame painsic1 painsic2 painsic3 painsic4 painsic5
$frame painsic6 painsic7 painsic8
//
$frame runsic1 runsic2 runsic3 runsic4 runsic5
$frame runsic6 runsic7 runsic8 runsic9 runsic10
$frame runsic11 runsic12
//
$frame stdsic1 stdsic2 stdsic3 stdsic4 stdsic5
$frame stdsic6 stdsic7 stdsic8 stdsic9 stdsic10
$frame stdsic11 stdsic12
//
$frame nattstf1 nattstf2 nattstf3 nattstf4 nattstf5
$frame nattstf6 nattstf7 nattstf8
//
$frame nflystf1 nflystf2 nflystf3 nflystf4 nflystf5
$frame nflystf6 nflystf7 nflystf8 nflystf9 nflystf10
$frame nflystf11 nflystf12 nflystf13 nflystf14 nflystf15
//
$frame npainstf1 npainstf2 npainstf3 npainstf4 npainstf5
$frame npainstf6 npainstf7 npainstf8
//
$frame nrunstf1 nrunstf2 nrunstf3 nrunstf4 nrunstf5
$frame nrunstf6 nrunstf7 nrunstf8 nrunstf9 nrunstf10
$frame nrunstf11 nrunstf12
//
$frame nstdstf1 nstdstf2 nstdstf3 nstdstf4 nstdstf5
$frame nstdstf6 nstdstf7 nstdstf8 nstdstf9 nstdstf10
$frame nstdstf11 nstdstf12
//=================================================================
$framevalue 0
//ASSASSIN
//
$frame attdag1 attdag2 attdag3 attdag4 attdag5
$frame attdag6 attdag7 attdag8 attdag9 attdag10
$frame attdag11
//
$frame aattstf1 aattstf2 aattstf3 aattstf4
//
$frame attxbw1 attxbw2 attxbw3 attxbw4
//
$frame acrouch1 acrouch2 acrouch3 acrouch4 acrouch5
$frame acrouch6 acrouch7 acrouch8 acrouch9 acrouch10
$frame acrouch11 acrouch12 acrouch13 acrouch14 acrouch15
$frame acrouch16 acrouch17 acrouch18 acrouch19 acrouch20
//
$frame adeath1 adeath2 adeath3 adeath4 adeath5
$frame adeath6 adeath7 adeath8 adeath9 adeath10
$frame adeath11 adeath12 adeath13 adeath14 adeath15
$frame adeath16 adeath17 adeath18 adeath19 adeath20
//
$frame adecap1 adecap2 adecap3 adecap4 adecap5
$frame adecap6 adecap7 adecap8 adecap9 adecap10
$frame adecap11 adecap12 adecap13 adecap14 adecap15
$frame adecap16 adecap17 adecap18 adecap19 adecap20
$frame adecap21 adecap22 adecap23 adecap24 adecap25
$frame adecap26 adecap27 adecap28
//
$frame flydag1 flydag2 flydag3 flydag4 flydag5
$frame flydag6 flydag7 flydag8 flydag9 flydag10
$frame flydag11 flydag12 flydag13 flydag14 flydag15
//
$frame aflystf1 aflystf2 aflystf3 aflystf4 aflystf5
$frame aflystf6 aflystf7 aflystf8 aflystf9 aflystf10
$frame aflystf11 aflystf12 aflystf13 aflystf14 aflystf15
//
$frame flyxbw1 flyxbw2 flyxbw3 flyxbw4 flyxbw5
$frame flyxbw6 flyxbw7 flyxbw8 flyxbw9 flyxbw10
$frame flyxbw11 flyxbw12 flyxbw13 flyxbw14 flyxbw15
//
$frame ajump1 ajump2 ajump3 ajump4 ajump5
$frame ajump6 ajump7 ajump8 ajump9 ajump10
$frame ajump11 ajump12
//
$frame paindag1 paindag2 paindag3 paindag4 paindag5
$frame paindag6 paindag7
//
$frame apainstf1 apainstf2 apainstf3 apainstf4 apainstf5
$frame apainstf6 apainstf7
//
$frame painxbw1 painxbw2 painxbw3 painxbw4 painxbw5
$frame painxbw6 painxbw7
//
$frame rundag1 rundag2 rundag3 rundag4 rundag5
$frame rundag6 rundag7 rundag8 rundag9 rundag10
$frame rundag11 rundag12
//
$frame arunstf1 arunstf2 arunstf3 arunstf4 arunstf5
$frame arunstf6 arunstf7 arunstf8 arunstf9 arunstf10
$frame arunstf11 arunstf12
//
$frame runxbw1 runxbw2 runxbw3 runxbw4 runxbw5
$frame runxbw6 runxbw7 runxbw8 runxbw9 runxbw10
$frame runxbw11 runxbw12
//
$frame stddag1 stddag2 stddag3 stddag4 stddag5
$frame stddag6 stddag7 stddag8 stddag9 stddag10
$frame stddag11 stddag12 stddag13
//
$frame astdstf1 astdstf2 astdstf3 astdstf4 astdstf5
$frame astdstf6 astdstf7 astdstf8 astdstf9 astdstf10
$frame astdstf11 astdstf12 astdstf13
//
$frame stdxbw1 stdxbw2 stdxbw3 stdxbw4 stdxbw5
$frame stdxbw6 stdxbw7 stdxbw8 stdxbw9 stdxbw10
$frame stdxbw11 stdxbw12 stdxbw13
//=================================================================
$framevalue 0
//SUCCUBUS
//
//
$frame runwpa1 runwpa2 runwpa3 runwpa4 runwpa5
$frame runwpa6 runwpa7 runwpa8 runwpa9 runwpa10
$frame runwpa11 runwpa12
//
$frame runwpbc1 runwpbc2 runwpbc3 runwpbc4 runwpbc5
$frame runwpbc6 runwpbc7 runwpbc8 runwpbc9 runwpbc10
$frame runwpbc11 runwpbc12
//
$frame runwpd1 runwpd2 runwpd3 runwpd4 runwpd5
$frame runwpd6 runwpd7 runwpd8 runwpd9 runwpd10
$frame runwpd11 runwpd12
//
$frame wtwpa1 wtwpa2 wtwpa3 wtwpa4 wtwpa5
$frame wtwpa6 wtwpa7 wtwpa8 wtwpa9 wtwpa10
$frame wtwpa11 wtwpa12 wtwpa13
//
$frame wtwpbc1 wtwpbc2 wtwpbc3 wtwpbc4 wtwpbc5
$frame wtwpbc6 wtwpbc7 wtwpbc8 wtwpbc9 wtwpbc10
$frame wtwpbc11 wtwpbc12 wtwpbc13
//
$frame wtwpd1 wtwpd2 wtwpd3 wtwpd4 wtwpd5
$frame wtwpd6 wtwpd7 wtwpd8 wtwpd9 wtwpd10
$frame wtwpd11 wtwpd12 wtwpd13
//
$frame atwpa1 atwpa2 atwpa3 atwpa4 atwpa5
$frame atwpa6 atwpa7 atwpa8
//
$frame atwpbc1 atwpbc2 atwpbc3 atwpbc4
$frame atwpbc5 atwpbc6 atwpbc7 atwpbc8
//
$frame atwpd1 atwpd2 atwpd3 atwpd4
$frame atwpd5 atwpd6 atwpd7 atwpd8
//
$frame pnwpa1 pnwpa2 pnwpa3 pnwpa4 pnwpa5
$frame pnwpa6 pnwpa7
//
$frame pnwpbc1 pnwpbc2 pnwpbc3 pnwpbc4 pnwpbc5
$frame pnwpbc6 pnwpbc7
//
$frame pnwpd1 pnwpd2 pnwpd3 pnwpd4 pnwpd5
$frame pnwpd6 pnwpd7
//
$frame swmwpa1 swmwpa2 swmwpa3 swmwpa4 swmwpa5
$frame swmwpa6 swmwpa7 swmwpa8 swmwpa9 swmwpa10
$frame swmwpa11 swmwpa12 swmwpa13 swmwpa14 swmwpa15
//
$frame swmwpbc1 swmwpbc2 swmwpbc3 swmwpbc4 swmwpbc5
$frame swmwpbc6 swmwpbc7 swmwpbc8 swmwpbc9 swmwpbc10
$frame swmwpbc11 swmwpbc12 swmwpbc13 swmwpbc14 swmwpbc15
//
$frame swmwpd1 swmwpd2 swmwpd3 swmwpd4 swmwpd5
$frame swmwpd6 swmwpd7 swmwpd8 swmwpd9 swmwpd10
$frame swmwpd11 swmwpd12 swmwpd13 swmwpd14 swmwpd15
//
$frame djump1 djump2 djump3 djump4 djump5
$frame djump6 djump7 djump8 djump9 djump10
$frame djump11 djump12 djump13 djump14 djump15
//
$frame dcrouch1 dcrouch2 dcrouch3 dcrouch4 dcrouch5
$frame dcrouch6 dcrouch7 dcrouch8 dcrouch9 dcrouch10
$frame dcrouch11 dcrouch12 dcrouch13 dcrouch14 dcrouch15
$frame dcrouch16 dcrouch17 dcrouch18 dcrouch19 dcrouch20
//
$frame ddeath1 ddeath2 ddeath3 ddeath4 ddeath5
$frame ddeath6 ddeath7 ddeath8 ddeath9 ddeath10
$frame ddeath11 ddeath12 ddeath13 ddeath14 ddeath15
$frame ddeath16 ddeath17 ddeath18 ddeath19 ddeath20
//
$frame ddecap1 ddecap2 ddecap3 ddecap4 ddecap5
$frame ddecap6 ddecap7 ddecap8 ddecap9 ddecap10
$frame ddecap11 ddecap12 ddecap13 ddecap14 ddecap15
$frame ddecap16 ddecap17 ddecap18 ddecap19 ddecap20
$frame ddecap21 ddecap22 ddecap23 ddecap24 ddecap25
$frame ddecap26 ddecap27 ddecap28
/*
==============================
CONSTANTS: (in constants.hc)
==============================
float ACT_STAND = 0;
float ACT_RUN = 1;
float ACT_SWIM_FLY = 2;
float ACT_ATTACK = 3;
float ACT_PAIN = 4;
float ACT_JUMP = 5;//Rest of these not weapon dep. (except nec jump)
float ACT_CROUCH_STAND = 6;
float ACT_CROUCH_MOVE = 7;
float ACT_DEAD = 8;
float ACT_DECAP = 9;
*/
void Pal_Change_Weapon (void)
{
if(self.weapon==IT_WEAPON1)
self.th_missile=pal_gauntlet_fire;
else if(self.weapon==IT_WEAPON4)
self.th_missile=pal_purifier_fire;
else if(self.weapon==IT_WEAPON2)
self.th_missile=pal_vorpal_fire;
else
self.th_missile=pal_axe_fire;
}
void Cru_Change_Weapon (void)
{
if(self.weapon==IT_WEAPON1)
self.th_missile=Cru_Wham_Fire;
else if(self.weapon==IT_WEAPON2)
self.th_missile=Cru_Ice_Fire;
else if(self.weapon==IT_WEAPON3)
self.th_missile=Cru_Met_Attack;
else
self.th_missile=Cru_Sun_Fire;
}
void Nec_Change_Weapon (void)
{
if(self.weapon==IT_WEAPON1)
self.th_missile=sickle_decide_attack;
else if(self.weapon==IT_WEAPON4)
self.th_missile=setstaff_decide_attack;
else if(self.weapon==IT_WEAPON2)
self.th_missile=Nec_Mis_Attack;
else
self.th_missile=Nec_Bon_Attack;
}
void Ass_Change_Weapon (void)
{
if(self.weapon==IT_WEAPON4)
self.th_missile=ass_setstaff_fire;
else if(self.weapon==IT_WEAPON2)
self.th_missile=crossbow_fire;
if(self.weapon==IT_WEAPON3)
self.th_missile=grenade_throw;
else
self.th_missile=Ass_Pdgr_Fire;
}
void Suc_Change_Weapon (void)
{
if(self.weapon==IT_WEAPON4)
self.th_missile=Suc_Blrn_Fire;
else if(self.weapon==IT_WEAPON2)
self.th_missile=Suc_Aorb_Fire;
else if(self.weapon==IT_WEAPON3)
self.th_missile=Suc_Forb_Fire;
else
self.th_missile=Suc_Litn_Fire;
}
float player_start_frames[200] =
{
//Stand
$stdgnt1 ,$stdswd1 ,$stdswd1 ,$pstdstf1 , //Paladin
$stdham1 ,$stdice1 ,$cstdstf1 ,$cstdstf1 , //Crusader
$stdsic1 ,$stdhan1 ,$stdhan1 ,$nstdstf1 , //Necromancer
$stddag1 ,$stdxbw1 ,$stddag1 ,$astdstf1 , //Assassin
$wtwpa1 ,$wtwpbc1 ,$wtwpbc1 ,$wtwpd1 , //Succubus
//Run
$rungnt1,$runswd1,$runswd1,$prunstf1, //Paladin
$runham1,$runice1,$crunstf1,$crunstf1, //Crusader
$runsic1,$runhan1,$runhan1,$nrunstf1, //Necromancer
$rundag1,$runxbw1,$rundag1,$arunstf1, //Assassin
$runwpa1,$runwpbc1,$runwpbc1,$runwpd1, //Succubus
//Swim/fly
$flygnt1,$flyswd1,$flyswd1,$pflystf1, //Paladin
$flyham1,$flyice1,$cflystf1,$cflystf1, //Crusader
$flysic1,$flyhan1,$flyhan1,$nflystf1, //Necromancer
$flydag1,$flyxbw1,$flydag1,$aflystf1, //Assassin
$swmwpa1,$swmwpbc1,$swmwpbc1,$swmwpd1, //Succubus
//Attack
$attgnt1,$attswd1,$attswd1,$pattstf1, //Paladin
$attham1,$attice1,$cattstf1,$cattstf1, //Crusader
$attsic1,$atthan1,$atthan1,$nattstf1, //Necromancer
$attdag1,$attxbw1,$attdag1,$aattstf1, //Assassin
$atwpa1,$atwpbc1,$atwpbc1,$atwpd1, //Succubus
//pain
$paingnt1,$painswd1,$painswd1,$ppainstf1, //Paladin
$painham1,$painice1,$cpainstf1,$cpainstf1, //Crusader
$painsic1,$painhan1,$painhan1,$npainstf1, //Necromancer
$paindag1,$painxbw1,$paindag1,$apainstf1, //Assassin
$pnwpa1,$pnwpbc1,$pnwpbc1,$pnwpd1, //Succubus
//Jump
$pjump1,0,0,0, //Paladin
$cjump1,0,0,0, //Crusader
$runsic1,$runhan1,$runhan1,$nrunstf1, //Necromancer
$ajump1,0,0,0, //Assassin
$djump1,0,0,0, //Succubus
//Crouch_stand
$pcrouch1,0,0,0, //Paladin
$ccrouch1,0,0,0, //Crusader
$ncrouch1,0,0,0, //Necromancer
$acrouch1,0,0,0, //Assassin
$dcrouch1,0,0,0, //Succubus
//Crouch_move
$pcrouch1,0,0,0, //Paladin
$ccrouch1,0,0,0, //Crusader
$ncrouch1,0,0,0, //Necromancer
$acrouch1,0,0,0, //Assassin
$dcrouch1,0,0,0, //Succubus
//dead
$pdeath1,0,0,0, //Paladin
$cdeath1,0,0,0, //Crusader
$ndeath1,0,0,0, //Necromancer
$adeath1,0,0,0, //Assassin
$ddeath1,0,0,0, //Succubus
//decap
$pdecap1,0,0,0, //Paladin
$cdecap1,0,0,0, //Crusader
$ndecap1,0,0,0, //Necromancer
$adecap1,0,0,0, //Assassin
$ddecap1,0,0,0 //Succubus
};
float player_end_frames[200] =
{
//Stand
$stdgnt13,$stdswd13,$stdswd13,$pstdstf13, //Paladin
$stdham13,$stdice13,$cstdstf13,$cstdstf13, //Crusader
$stdsic12,$stdhan12,$stdhan12,$nstdstf12, //Necromancer
$stddag13,$stdxbw13,$stddag13,$astdstf13, //Assassin
$wtwpa13,$wtwpbc13,$wtwpbc13,$wtwpd13, //Succubus
//Run
$rungnt12,$runswd12,$runswd12,$prunstf12, //Paladin
$runham12,$runice12,$crunstf12,$crunstf12, //Crusader
$runsic12,$runhan12,$runhan12,$nrunstf12, //Necromancer
$rundag12,$runxbw12,$rundag12,$arunstf12, //Assassin
$runwpa12,$runwpbc12,$runwpbc12,$runwpd12, //Succubus
//Swim/fly
$flygnt15,$flyswd15,$flyswd15,$pflystf15, //Paladin
$flyham15,$flyice15,$cflystf14,$cflystf14, //Crusader
$flysic14,$flyhan14,$flyhan14,$nflystf14, //Necromancer
$flydag15,$flyxbw15,$flydag15,$aflystf15, //Assassin
$swmwpa15,$swmwpbc15,$swmwpbc15,$swmwpd15, //Succubus
//Attack
$attgnt11,$attswd12,$attswd12,$pattstf4, //Paladin
$attham10,$attice4,$cattstf5,$cattstf5, //Crusader
$attsic12,$atthan8,$atthan8,$nattstf8, //Necromancer
$attdag11,$attxbw4,$attdag11,$aattstf4, //Assassin
$atwpa8,$atwpbc8,$atwpbc8,$atwpd8, //Succubus
//pain
$paingnt7,$painswd7,$painswd7,$ppainstf7, //Paladin
$painham8,$painice8,$cpainstf8,$cpainstf8, //Crusader
$painsic8,$painhan8,$painhan8,$npainstf8, //Necromancer
$paindag7,$painxbw7,$paindag7,$apainstf7, //Assassin
$pnwpa7,$pnwpbc7,$pnwpbc7,$pnwpd7, //Succubus
//Jump
$pjump12,0,0,0, //Paladin
$cjump13,0,0,0, //Crusader
$runsic12,$runhan12,$runhan12,$nrunstf12, //Necromancer
$ajump12,0,0,0, //Assassin
$djump15,0,0,0, //Succubus
//Crouch_stand
$pcrouch20,0,0,0, //Paladin
$ccrouch20,0,0,0, //Crusader
$ncrouch20,0,0,0, //Necromancer
$acrouch20,0,0,0, //Assassin
$dcrouch20,0,0,0, //Succubus
//Crouch_move
$pcrouch20,0,0,0, //Paladin
$ccrouch20,0,0,0, //Crusader
$ncrouch20,0,0,0, //Necromancer
$acrouch20,0,0,0, //Assassin
$dcrouch20,0,0,0, //Succubus
//dead
$pdeath20,0,0,0, //Paladin
$cdeath20,0,0,0, //Crusader
$ndeath20,0,0,0, //Necromancer
$adeath20,0,0,0, //Assassin
$ddeath20,0,0,0, //Succubus
//decap
$pdecap28,0,0,0, //Paladin
$cdecap28,0,0,0, //Crusader
$ndecap20,0,0,0, //Necromancer
$adecap28,0,0,0, //Assassin
$ddecap28,0,0,0 //Succubus
};
void fstep_fade_out (void)
{
if(self.colormap<159+256)
{
self.colormap+=1;
thinktime self : 0.05;
}
else
remove(self);
}
void dropStep (void)
{
entity fstep,oself;
vector org;
makevectors(self.angles);
if(self.lefty)
org=self.origin-v_right*8;
else
org=self.origin+v_right*8;
traceline(org+'0 0 2',org - '0 0 16',TRUE,self);
if(trace_plane_normal=='0 0 0')
return;
fstep=spawn();
setorigin(fstep,trace_endpos+'0 0 1');
fstep.angles_y=self.angles_y;
oself=self;
self=fstep;
pitch_roll_for_slope(trace_plane_normal);
self=oself;
if(self.lefty)
{
fstep.angles_z+=180;
self.lefty=FALSE;
}
else
self.lefty=TRUE;
setmodel(fstep,"models/fstep.mdl");
fstep.drawflags(+)DRF_TRANSLUCENT;
fstep.colormap= 144+256;
particle4(trace_endpos+'0 0 8',16,fstep.colormap,PARTICLETYPE_BLUESTEP,random(5,10));
fstep.abslight = 0.5;
fstep.think=fstep_fade_out;
thinktime fstep : 0.5;
}
void player_frames ()
{
float weapmod, startframe,endframe,framestate;
// if(self.playerclass==CLASS_SUCCUBUS)
// dprintf("Succubus act state: %s\n",self.act_state);
if(self.deadflag)
self.act_state=ACT_DEAD;
if(self.act_state<ACT_JUMP||(self.playerclass==CLASS_NECROMANCER&&self.act_state<=ACT_JUMP))
{
if(self.weapon==IT_WEAPON4)
weapmod=3;
if(self.weapon==IT_WEAPON3)
weapmod=2;
if(self.weapon==IT_WEAPON2)
weapmod=1;
if(self.weapon==IT_WEAPON1)
weapmod=0;
}
else
weapmod=0;
startframe = player_start_frames [(self.playerclass - 1) * 4 + self.act_state*20 + weapmod];
if(self.waterlevel<3&&self.movetype==MOVETYPE_FLY)
{
if(self.playerclass==CLASS_SUCCUBUS)
startframe+=10;
endframe=startframe;
}
else
endframe = player_end_frames [(self.playerclass - 1) * 4 + self.act_state*20 + weapmod];
if(self.act_state!=ACT_CROUCH_STAND)
framestate=AdvanceFrame(startframe,endframe);
self.think=player_frames;
// if(self.playerclass==CLASS_SUCCUBUS)
// thinktime self : 0.075;
// else
thinktime self : HX_FRAME_TIME;
if(self.flags&FL_ONGROUND)
if(self.velocity_x!=0||self.velocity_y!=0)//FIXME: Only leave prints of running, not walking?
if (self.artifact_active & ART_INVISIBILITY)
if(random()>0.5)
dropStep();
if(self.act_state!=ACT_DEAD)
if((self.viewentity==self||self.viewentity.classname=="chasecam")&&self.camera_time<time)
self.th_weapon();
if(self.act_state==ACT_SWIM_FLY)
{
if(self.movetype!=MOVETYPE_FLY)
if (self.velocity_x || self.velocity_y)
self.act_state=ACT_RUN;
else
self.act_state=ACT_STAND;
}
else if(self.act_state==ACT_STAND)
{
if(self.hull==HULL_CROUCH)
self.act_state=ACT_CROUCH_STAND;
else if (self.velocity_x || self.velocity_y)
self.act_state=ACT_RUN;
}
else if(self.act_state==ACT_RUN)
{
if(self.hull==HULL_CROUCH)
self.act_state=ACT_CROUCH_MOVE;
else if (!self.velocity_x && !self.velocity_y)
self.act_state=ACT_STAND;
}
else if(self.act_state==ACT_CROUCH_STAND)
{//NOTE: all 3 have 20 crouch frames
if(self.hull==HULL_PLAYER)
self.act_state=ACT_STAND;
else if(self.frame>endframe || self.frame<startframe)
self.frame=startframe;
else if (self.velocity_x || self.velocity_y)
self.act_state=ACT_CROUCH_MOVE;
}
else if(self.act_state==ACT_CROUCH_MOVE)
{
if(self.hull==HULL_PLAYER)
self.act_state=ACT_RUN;
else if (!self.velocity_x && !self.velocity_y)
self.act_state=ACT_CROUCH_STAND;
}
else if(self.act_state==ACT_ATTACK||self.act_state==ACT_JUMP||self.act_state==ACT_PAIN)
{
// if(self.act_state==ACT_PAIN&&self.frame==startframe)
// PainSound();
if(self.playerclass==CLASS_SUCCUBUS)
if (!(self.flags & FL_ONGROUND))
if(self.button2)
if(self.gravity==0.2)
if(self.frame>$djump9)
self.frame=$djump9;
if(framestate==AF_END&&!self.button0)
{
if(!self.velocity_x && !self.velocity_y)
self.act_state=ACT_STAND;
else
self.act_state=ACT_RUN;
}
}
if(self.act_state==ACT_DEAD)
{
if(self.frame==startframe&&!deathmatch)
if(self.enemy.flags2&FL_ALIVE&&visible(self.enemy))
self.pausetime=time+3;
if(self.view_ofs_z - 2.5 >= 8)//Drop view
self.view_ofs_z-=2.5;
if(framestate==AF_END)
{
self.view_ofs='0 0 8';
self.think=PlayerDead;
thinktime self : 0;
}
}
else if(self.waterlevel>2||self.movetype==MOVETYPE_FLY)//overrides all others
self.act_state=ACT_SWIM_FLY;
}
void player_frames_behead ()
{//Note: give playerclass!
self.level=player_start_frames[ACT_DECAP * 20 + (self.playerclass - 1) * 4];
self.dmg=player_end_frames[ACT_DECAP * 20 + (self.playerclass - 1) * 4];
self.cnt=0;
player_behead();
}