hexen2-data1-hc/newplay.hc

685 lines
24 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
/*
==============================
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;
}
float player_start_frames[160] =
{
//Stand
$stdgnt1 ,$stdswd1 ,$stdswd1 ,$pstdstf1 , //Paladin
$stdham1 ,$stdice1 ,$cstdstf1 ,$cstdstf1 , //Crusader
$stdsic1 ,$stdhan1 ,$stdhan1 ,$nstdstf1 , //Necromancer
$stddag1 ,$stdxbw1 ,$stddag1 ,$astdstf1 , //Assassin
//Run
$rungnt1,$runswd1,$runswd1,$prunstf1, //Paladin
$runham1,$runice1,$crunstf1,$crunstf1, //Crusader
$runsic1,$runhan1,$runhan1,$nrunstf1, //Necromancer
$rundag1,$runxbw1,$rundag1,$arunstf1, //Assassin
//Swim/fly
$flygnt1,$flyswd1,$flyswd1,$pflystf1, //Paladin
$flyham1,$flyice1,$cflystf1,$cflystf1, //Crusader
$flysic1,$flyhan1,$flyhan1,$nflystf1, //Necromancer
$flydag1,$flyxbw1,$flydag1,$aflystf1, //Assassin
//Attack
$attgnt1,$attswd1,$attswd1,$pattstf1, //Paladin
$attham1,$attice1,$cattstf1,$cattstf1, //Crusader
$attsic1,$atthan1,$atthan1,$nattstf1, //Necromancer
$attdag1,$attxbw1,$attdag1,$aattstf1, //Assassin
//pain
$paingnt1,$painswd1,$painswd1,$ppainstf1, //Paladin
$painham1,$painice1,$cpainstf1,$cpainstf1, //Crusader
$painsic1,$painhan1,$painhan1,$npainstf1, //Necromancer
$paindag1,$painxbw1,$paindag1,$apainstf1, //Assassin
//Jump
$pjump1,0,0,0, //Paladin
$cjump1,0,0,0, //Crusader
$runsic1,$runhan1,$runhan1,$nrunstf1, //Necromancer
$ajump1,0,0,0, //Assassin
//Crouch_stand
$pcrouch1,0,0,0, //Paladin
$ccrouch1,0,0,0, //Crusader
$ncrouch1,0,0,0, //Necromancer
$acrouch1,0,0,0, //Assassin
//Crouch_move
$pcrouch1,0,0,0, //Paladin
$ccrouch1,0,0,0, //Crusader
$ncrouch1,0,0,0, //Necromancer
$acrouch1,0,0,0, //Assassin
//dead
$pdeath1,0,0,0, //Paladin
$cdeath1,0,0,0, //Crusader
$ndeath1,0,0,0, //Necromancer
$adeath1,0,0,0, //Assassin
//decap
$pdecap1,0,0,0, //Paladin
$cdecap1,0,0,0, //Crusader
$ndecap1,0,0,0, //Necromancer
$adecap1,0,0,0 //Assassin
};
float player_end_frames[160] =
{
//Stand
$stdgnt13,$stdswd13,$stdswd13,$pstdstf13, //Paladin
$stdham13,$stdice13,$cstdstf13,$cstdstf13, //Crusader
$stdsic12,$stdhan12,$stdhan12,$nstdstf12, //Necromancer
$stddag13,$stdxbw13,$stddag13,$astdstf13, //Assassin
//Run
$rungnt12,$runswd12,$runswd12,$prunstf12, //Paladin
$runham12,$runice12,$crunstf12,$crunstf12, //Crusader
$runsic12,$runhan12,$runhan12,$nrunstf12, //Necromancer
$rundag12,$runxbw12,$rundag12,$arunstf12, //Assassin
//Swim/fly
$flygnt15,$flyswd15,$flyswd15,$pflystf15, //Paladin
$flyham15,$flyice15,$cflystf14,$cflystf14, //Crusader
$flysic14,$flyhan14,$flyhan14,$nflystf14, //Necromancer
$flydag15,$flyxbw15,$flydag15,$aflystf15, //Assassin
//Attack
$attgnt11,$attswd12,$attswd12,$pattstf4, //Paladin
$attham10,$attice4,$cattstf5,$cattstf5, //Crusader
$attsic12,$atthan8,$atthan8,$nattstf8, //Necromancer
$attdag11,$attxbw4,$attdag11,$aattstf4, //Assassin
//pain
$paingnt7,$painswd7,$painswd7,$ppainstf7, //Paladin
$painham8,$painice8,$cpainstf8,$cpainstf8, //Crusader
$painsic8,$painhan8,$painhan8,$npainstf8, //Necromancer
$paindag7,$painxbw7,$paindag7,$apainstf7, //Assassin
//Jump
$pjump12,0,0,0, //Paladin
$cjump13,0,0,0, //Crusader
$runsic12,$runhan12,$runhan12,$nrunstf12, //Necromancer
$ajump12,0,0,0, //Assassin
//Crouch_stand
$pcrouch20,0,0,0, //Paladin
$ccrouch20,0,0,0, //Crusader
$ncrouch20,0,0,0, //Necromancer
$acrouch20,0,0,0, //Assassin
//Crouch_move
$pcrouch20,0,0,0, //Paladin
$ccrouch20,0,0,0, //Crusader
$ncrouch20,0,0,0, //Necromancer
$acrouch20,0,0,0, //Assassin
//dead
$pdeath20,0,0,0, //Paladin
$cdeath20,0,0,0, //Crusader
$ndeath20,0,0,0, //Necromancer
$adeath20,0,0,0, //Assassin
//decap
$pdecap28,0,0,0, //Paladin
$cdecap28,0,0,0, //Crusader
$ndecap20,0,0,0, //Necromancer
$adecap28,0,0,0 //Assassin
};
void player_frames ()
{
float weapmod, startframe,endframe,framestate;
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*16 + weapmod];
if(self.waterlevel<3&&self.movetype==MOVETYPE_FLY)
endframe=startframe;
else
endframe = player_end_frames [(self.playerclass - 1) * 4 + self.act_state*16 + weapmod];
if(self.act_state!=ACT_CROUCH_STAND)
framestate=AdvanceFrame(startframe,endframe);
self.think=player_frames;
thinktime self : HX_FRAME_TIME;
if(self.act_state!=ACT_DEAD)
if(self.viewentity==self||self.viewentity.classname=="chasecam")
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(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 * 16 + (self.playerclass - 1) * 4];
self.dmg=player_end_frames[ACT_DECAP * 16 + (self.playerclass - 1) * 4];
self.cnt=0;
player_behead();
};