home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 76
/
XENIATGM66.iso
/
Messiah
/
data1.cab
/
Program_Executable_Files
/
messiahscripts
/
CharMain.hxx
< prev
next >
Wrap
Text File
|
1999-11-29
|
39KB
|
1,791 lines
#define SCRIPT_DEBUG_INFO 0
#include "messiahscripts\defines.h"
#include "messiahscripts\objdefines.h"
#include "messiahscripts\weapons\WeaponDamage.h"
#include "messiahscripts\defvals.hxx"
#include "messiahscripts\keysall.hxx"
#include "messiahscripts\lights.hxx"
//SoundInterface.hxx must be the 1st sound file included, see file for why!
#include "messiahscripts\sound\soundinterface.hxx"
#include "messiahscripts\sound\soundactors.hxx"
#include "messiahscripts\sound\soundambient.hxx"
#include "messiahscripts\sound\soundbackground.hxx"
#include "messiahscripts\sound\soundweapon.hxx"
#include "messiahscripts\sound\soundvoices.hxx"
Game(Messiah)
{
if(VGameCounter==1) //Pre-game
{
//INSERT TESTVARS HERE
float(_declare,GlobalVar0,47);
float(_declare,GlobalVar1,47);
float(_declare,GlobalVar2,47);
float(_declare,GlobalVar3,47);
float(_declare,GlobalVar4,47);
float(_declare,GlobalVar5,47);
//INPUT VARIABLES HERE
float(_declare,DirClr,0);
float(_declare,DirHold,0);
float(_declare,DirOld,0);
//Bob Flying Globals
float(_declare,BobJumpSpeed,15); //15 Start velocity upwards when jumping
float(_declare,BobJumpGravity,1.0); //1.0 Downwardpull when flying straight
float(_declare,BobJumpGravityNoMove,0.4); //0.4 Higher gravity that character is pulled down
float(_declare,BobJumpNoMoveExtraYMovement,7); //7 Extra movement upwards when not moving
float(_declare,BobGravityGlide,0.2); //0.2 Gravity when gliding
float(_declare,BobGravityFlap,0.1); //0.2 Gravity when gliding
//Global variables regarding the Level
float(_declare,BobFlappingEnabled,1); //1= Bob can flap
float(_declare,LightsOut,0); //1= Lights are dimmed (ambient light reduced)
//Misc Global variables
vector(_declare,Gactorpos,0,0,0);
vector(_declare,Gactorangle,0,3500,0);
vector(_declare,Gactorine,0,3500,0);
//Global vars regarding currently playercontrolled character
vector(_declare,PlayerPos,0,0,0);
float(_declare,PlayerHeadBone,0);
//Global character variables used for subroutines
float(_declare,ColAngleTmp,0);
float(_declare,ColAngleTmpFace,0);
float(_declare,ColMaterial,0);
//Generic variables
vector(_declare,EmptyVector,0,0,0); //Always (0,0,0)
float(_declare,EmptyFloat,0); //Always 0
float(_declare,SubVar1,0);
float(_declare,SubVar2,0);
float(_declare,SubVar3,0);
float(_declare,SubVar4,0);
vector(_declare,SubVector1,0,0,0);
vector(_declare,SubVector2,0,0,0);
vector(_declare,SubVector3,0,0,0);
float(_declare,SubSubParm1,0);
float(_declare,SubSubParm2,0);
float(_declare,SubSubParm3,0);
float(_declare,SubSubParm4,0);
float(_declare,SubSubParm5,0);
float(_declare,SubSubParm6,0);
float(_declare,SubSubParm7,0);
float(_declare,SubSubParm8,0);
/*
float(_declare,Parm1,0);
float(_declare,Parm2,0);
float(_declare,Parm3,0);
float(_declare,Parm4,0);
float(_declare,Parm5,0);
float(_declare,Parm6,0);
float(_declare,Parm7,0);
float(_declare,Parm8,0);
float(_declare,Result,0);
*/
vector(_declare,TmpVector,0,0,0);
vector(_declare,TmpVector1,0,0,0);
vector(_declare,TmpVector2,0,0,0);
vector(_declare,TmpVector3,0,0,0);
vector(_declare,TmpVector4,0,0,0);
float(_declare,TmpFloat,0);
float(_declare,TmpFloat1,0);
float(_declare,TmpFloat2,0);
float(_declare,TmpFloat3,0);
float(_declare,TmpFloat4,0);
float(_declare,Var1,0);
float(_declare,Var2,0);
float(_declare,Var3,0);
//float(_Declare,DebugOnlyOneEnemy,0)
//float(_Declare,DebugOnlyOneWeapon,0)
// float(_declare,keytouched,0); // for keyboard control
//Stage global variables
//Mission Objective Text
float(_declare,MissionLevel1,0);
float(_declare,MissionLevel2,0);
float(_declare,MissionLevel3,0);
float(_declare,MissionLevel4,0);
float(_declare,MissionLevel5,0);
float(_declare,MissionLevel6,0);
float(_declare,MissionLevel7,0);
float(_declare,MissionLevel8,0);
float(_declare,MissionLevel9,0);
//c1_s1 (Shipment sector)
float(_declare,VarKey1,0);
float(_declare,VarKey2,0);
float(_declare,VarKey3,0);
float(_declare,VarKey4,0);
float(_declare,VarKey5,0);
float(_declare,VarKey6,0);
float(_declare,VarKey7,0);
float(_declare,VarKey8,0);
float(_declare,VarKey9,0);
float(_declare,VarKey10,0);
float(_declare,LiteCounter,250);
//c1_s2 (OldTown)
float(_declare,VarKey11,0);
float(_declare,VarKey12,0);
float(_declare,VarKey13,0);
float(_declare,VarKey14,0);
float(_declare,VarKey15,0);
float(_declare,VarKey16,0);
float(_declare,VarKey17,0);
float(_declare,VarKey18,0);
float(_declare,VarKey19,0);
float(_declare,VarKey20,0);
//c2 (Warehouse - Annex)
float(_declare,VarKey21,0);
float(_declare,VarKey22,0);
float(_declare,VarKey23,0);
float(_declare,VarKey24,0);
float(_declare,VarKey25,0);
float(_declare,VarKey26,0);
float(_declare,VarKey27,0);
float(_declare,VarKey28,0);
float(_declare,VarKey29,0);
float(_declare,VarKey30,0);
//c2 (Weapon Factory)
float(_declare,VarKey31,0);
float(_declare,VarKey32,0);
float(_declare,VarKey33,0);
float(_declare,VarKey34,0);
float(_declare,VarKey35,0);
float(_declare,VarKey36,0);
float(_declare,VarKey37,0);
float(_declare,VarKey38,0);
float(_declare,VarKey39,0);
float(_declare,VarKey40,0);
//For Flame Effects in Fact_2
float(_declare,FurnaceTimer1,0);
float(_declare,FurnaceTimer2,0);
float(_declare,FurnaceTimer3,0);
float(_declare,FurnaceTimer4,0);
float(_declare,WepConstructionTimer,0);
float(_declare,GunTurretKey,0);
float(_declare,MaserKey,0);
//c2 (Conveyer - Streets)
float(_declare,VarKey41,0);
float(_declare,VarKey42,0);
float(_declare,VarKey43,0);
float(_declare,VarKey44,0);
float(_declare,VarKey45,0);
float(_declare,VarKey46,0);
float(_declare,VarKey47,0);
float(_declare,VarKey48,0);
float(_declare,VarKey49,0);
float(_declare,VarKey50,0);
//c3 (Redlite - CLub Perimeter)
float(_declare,VarKey51,0);
float(_declare,VarKey52,0);
float(_declare,VarKey53,0);
float(_declare,VarKey54,0);
float(_declare,VarKey55,0);
float(_declare,VarKey56,0);
float(_declare,VarKey57,0);
float(_declare,VarKey58,0);
float(_declare,VarKey59,0);
float(_declare,VarKey60,0);
float(_declare,VarKey61,0);
float(_declare,VarKey62,0);
float(_declare,VarKey63,0);
float(_declare,VarKey64,0);
float(_declare,VarKey65,0);
float(_declare,VarKey66,0);
float(_declare,VarKey67,0);
float(_declare,VarKey68,0);
float(_declare,VarKey69,0);
float(_declare,VarKey70,0);
//c3 (Club Kyd)
float(_declare,VarKey71,0);
float(_declare,VarKey72,0);
float(_declare,VarKey73,0);
float(_declare,VarKey74,0);
float(_declare,VarKey75,0);
float(_declare,VarKey76,0);
float(_declare,VarKey77,0);
float(_declare,VarKey78,0);
float(_declare,VarKey79,0);
float(_declare,VarKey80,0);
float(_declare,LaserAngle1,0);
float(_declare,LaserAngle2,0);
float(_declare,DiscColor,0);
float(_declare,ColorStage,0);
//c3 (Military Zone)
float(_declare,VarKey81,0);
float(_declare,VarKey82,0);
float(_declare,VarKey83,0);
float(_declare,VarKey84,0);
float(_declare,VarKey85,0);
float(_declare,VarKey86,0);
float(_declare,VarKey87,0);
float(_declare,VarKey88,0);
float(_declare,VarKey89,0);
float(_declare,VarKey90,0);
//Boss Areas (Priest - Satan)
float(_declare,VarKey91,0);
float(_declare,VarKey92,0);
float(_declare,VarKey93,0);
float(_declare,VarKey94,0);
float(_declare,VarKey95,0);
float(_declare,VarKey96,0);
float(_declare,VarKey97,0);
float(_declare,VarKey98,0);
float(_declare,VarKey99,0);
//c1_s3 Sewer - Outskirts - Laboratory)
float(_declare,VarKey101,0);
float(_declare,VarKey102,0);
float(_declare,VarKey103,0);
float(_declare,VarKey104,0);
float(_declare,VarKey105,0);
float(_declare,VarKey106,0);
float(_declare,VarKey107,0);
float(_declare,VarKey108,0);
float(_declare,VarKey109,0);
float(_declare,VarKey110,0);
float(_declare,OpenDoor,0);
float(_declare,WeaponDelay01,0);
float(_declare,WeaponDelay02,0);
float(_declare,WeaponDelay03,0);
float(_declare,LabAlarm,0);
float(_declare,LabSecBeams,0);
//Cryo
float(_declare,CryoKey1,0);
float(_declare,CryoKey2,0);
float(_declare,CryoKey3,0);
//c2 (Wasteplant)
float(_declare,WorkerPushingObject,0); //Whether or not worker is pushing object
float(_declare,BarrelTimer,0);
float(_declare,PlatformTimer,0); //Used for platform scripting in wast5
float(_declare,PlatformLevel1,0);
float(_declare,PlatformLevel2,0);
float(_declare,VarKey111,0);
float(_declare,VarKey112,0);
float(_declare,VarKey113,0);
float(_declare,VarKey114,0);
float(_declare,VarKey115,0);
float(_declare,VarKey116,0);
float(_declare,VarKey117,0);
float(_declare,VarKey118,0);
float(_declare,VarKey119,0);
float(_declare,VarKey120,0);
float(_declare,aitoggle,0);
float(_declare,aivisiontoggle,0);
float(_declare,DepossesionAbilityActive,0);
float(_declare,tutorialtoggle,1);
float(_declare,LastTuturialChange,0);
float(_declare,ListenerSource,1);
float(_declare,GodMode,0);
float(_declare,SniperMode,0);
//TH
float(_declare,PreCopStateBits,0);
float(_declare,CopStateBits,0);
float(_declare,PreCopActionBits,0);
float(_declare,CopActionBits,0);
float(_declare,SoundDelayCounter,0);//to make sure that sounds don't overlap, set to positive value when sound started & counts-down to zero
float(_declare,NrActorsInSet,0);
float(_declare,NrCopsInSet,0);
//
//Msika's variables for levels
#include "messiahscripts\stages\DavidGlobals.hxx"
//my vectors/floats for specialFX and soundFX,etc...
#include "messiahscripts\particles\TonyGlobals.hxx"
ClrPaths();
InstallPath("c:\mesinst");
AddPath("pc");
AddPath("pc\3dxprj");
LevelFile("messiah.spt");
//set key to be non repeat
call(ToggleKey,KEY_9);
call(ToggleKey,KEY_T);
if(VCurScene==1)
{
callsub(InitScene1)
}
elseif(VCurScene==2)
{
callsub(InitScene2)
}
elseif(VCurScene==3)
{
callsub(InitScene3);
}
elseif(VCurScene==4)
{
callsub(InitScene4);
}
elseif(VCurScene==5)
{
callsub(InitScene5);
}
elseif(VCurScene==6)
{
callsub(InitScene6);
}
elseif(VCurScene==7)
{
callsub(InitScene7);
}
elseif(VCurScene==8)
{
callsub(InitScene8);
}
elseif(VCurScene==9)
{
callsub(InitScene9);
}
elseif(VCurScene==10)
{
callsub(InitScene10);
}
elseif(VCurScene==11)
{
callsub(InitScene11);
}
elseif(VCurScene==12)
{
callsub(InitScene12);
}
elseif(VCurScene==13)
{
callsub(InitScene13);
}
elseif(VCurScene==14)
{
callsub(InitScene14);
}
elseif(VCurScene==15)
{
callsub(InitScene15);
}
elseif(VCurScene==16)
{
callsub(InitScene16);
}
elseif(VCurScene==17)
{
callsub(InitScene17);
}
elseif(VCurScene==18)
{
callsub(InitScene18);
}
elseif(VCurScene==19)
{
callsub(InitScene19);
}
}
if(VInitSceneSounds==1)
{
if(VCurScene==1)
{
callsub(InitSceneSound1)
}
elseif(VCurScene==2)
{
callsub(InitSceneSound2)
}
elseif(VCurScene==3)
{
callsub(InitSceneSound3);
}
elseif(VCurScene==4)
{
callsub(InitSceneSound4);
}
elseif(VCurScene==5)
{
callsub(InitSceneSound5);
}
elseif(VCurScene==6)
{
callsub(InitSceneSound6);
}
elseif(VCurScene==7)
{
callsub(InitSceneSound7);
}
elseif(VCurScene==8)
{
callsub(InitSceneSound8);
}
elseif(VCurScene==9)
{
callsub(InitSceneSound9);
}
elseif(VCurScene==10)
{
callsub(InitSceneSound10);
}
elseif(VCurScene==11)
{
callsub(InitSceneSound11);
}
elseif(VCurScene==12)
{
callsub(InitSceneSound12);
}
elseif(VCurScene==13)
{
callsub(InitSceneSound13);
}
elseif(VCurScene==14)
{
callsub(InitSceneSound14);
}
elseif(VCurScene==15)
{
callsub(InitSceneSound15);
}
elseif(VCurScene==16)
{
callsub(InitSceneSound16);
}
elseif(VCurScene==17)
{
callsub(InitSceneSound17);
}
elseif(VCurScene==18)
{
callsub(InitSceneSound18);
}
}
if(VGameCounter>=1)
{
///////////
//MAIN LOOP
///////////
call(GetNumbActorsInCurrentSet,NrActorsInSet,_AIClassCop|_AIClassWorker|_AIclassprost|_AIclasspimp|_AIclasspriest|_AIclassdweller|_AIclassscientist|_AIclassbarpeople|_AIclassmale|_AIclassfemale|_AIclassmedic|_AIclasssubgirl);
call(GetNumbActorsInCurrentSet,NrCopsInSet,_AIClassCop);
if(VCurScene==1)
{
callsub(MainScene1)
}
elseif(VCurScene==2)
{
callsub(MainScene2)
}
elseif(VCurScene==3)
{
callsub(MainScene3);
}
elseif(VCurScene==4)
{
callsub(MainScene4);
}
elseif(VCurScene==5)
{
callsub(MainScene5);
}
elseif(VCurScene==6)
{
callsub(MainScene6);
}
elseif(VCurScene==7)
{
callsub(MainScene7);
}
elseif(VCurScene==8)
{
callsub(MainScene8);
}
elseif(VCurScene==9)
{
callsub(MainScene9);
}
elseif(VCurScene==10)
{
callsub(MainScene10);
}
elseif(VCurScene==11)
{
callsub(MainScene11);
}
elseif(VCurScene==12)
{
callsub(MainScene12);
}
elseif(VCurScene==13)
{
callsub(MainScene13);
}
elseif(VCurScene==14)
{
callsub(MainScene14);
}
elseif(VCurScene==15)
{
callsub(MainScene15);
}
elseif(VCurScene==16)
{
callsub(MainScene16);
}
elseif(VCurScene==17)
{
callsub(MainScene17);
}
elseif(VCurScene==18)
{
callsub(MainScene18);
}
elseif(VCurScene==19)
{
callsub(MainScene19);
}
}
callsub(ReadKeyJoy);
if(VAICon==0)
{
float(_seti,DirHold,VTrigger);
float(_set,DirClr,DirHold);
float(_xor,DirClr,DirOld);
float(_and,DirClr,DirOld); //DirClr=(OldDirection^NewDirection)&OldDirection
float(_and,DirHold,DirOld); //DirHold=OldDirection&NewDirection
float(_seti,DirOld,VTrigger);
}
printi("AI Nr Attackers: ",VAInrattackingplayer);
printi("AI Attack Strenght: ",VAIenemiesattackingplayerstrenght);
/////FF loop attacks...
/*
if(VAInrattackingplayer>=2 && VAIenemiesattackingplayerstrenght>30 && FFplaying==0)
{
if(vrnd<33 && LastCombatSFX!=1)
{
float(_set,LastCombatSFX,1);
sample(SFXFF1,-1,100);
}
elseif(vrnd<66 && LastCombatSFX!=2)
{
float(_set,LastCombatSFX,2);
sample(SFXFF2,-1,100);
}
elseif(LastCombatSFX!=3)
{
float(_set,LastCombatSFX,3);
sample(SFXFF3,-1,100);
}
else
{
float(_set,LastCombatSFX,1);
sample(SFXFF1,-1,100);
}
float(_set,FFplaying,1); //playing
float(_set,FFfader,100); //max volume
}
elseif(VAInrattackingplayer==1 && VAIenemiesattackingplayerstrenght>30 && FFplaying==0)
{
if(vrnd<33 && LastCombatSFX!=4)
{
float(_set,LastCombatSFX,4);
sample(SFXFF4,-1,50);
}
elseif(vrnd<66 && LastCombatSFX!=5)
{
float(_set,LastCombatSFX,5);
sample(SFXFF5,-1,50);
}
elseif(LastCombatSFX!=6)
{
float(_set,LastCombatSFX,6);
sample(SFXFF6,-1,50);
}
else
{
float(_set,LastCombatSFX,4);
sample(SFXFF4,-1,50);
}
float(_set,FFplaying,1); //playing
float(_set,FFfader,50); //half volume
}
elseif(VAInrattackingplayer>=2 && VAIenemiesattackingplayerstrenght>30 && FFplaying==1)
{
float(_set,FFfader,100); //max volume
}
elseif(VAInrattackingplayer==1 && VAIenemiesattackingplayerstrenght>30 && FFplaying==1)
{
float(_set,FFfader,50); //half volume
}
elseif(VAInrattackingplayer==0 && FFplaying==1)
{
float(_set,FFfader,0); //min volume
}
if(FFplaying==1)
{
float(_sub,FFcurvolume,0.5); //always try to fade...(2 sec fade out)
if(FFcurvolume<=FFfader) //...to this level
{
float(_set,FFcurvolume,FFfader);
}
if(LastCombatSFX==1)
{
samplevolume(SFXFF1,FFcurvolume);
}
elseif(LastCombatSFX==2)
{
samplevolume(SFXFF2,FFcurvolume);
}
elseif(LastCombatSFX==3)
{
samplevolume(SFXFF3,FFcurvolume);
}
elseif(LastCombatSFX==4)
{
samplevolume(SFXFF4,FFcurvolume);
}
elseif(LastCombatSFX==5)
{
samplevolume(SFXFF5,FFcurvolume);
}
elseif(LastCombatSFX==6)
{
samplevolume(SFXFF6,FFcurvolume);
}
if(FFcurvolume==0)
{
float(_set,FFplaying,0);
}
}
*/
float(_xor,EveryOtherFrame,1);
if(SoundDelayCounter>0)
{
float(_sub,SoundDelayCounter,1);
}
float(_add,WeaponFaderCol,WeaponFaderDir);
if(WeaponFaderCol<128)
{
float(_set,WeaponFaderDir,64);
}
elseif(WeaponFaderCol>4096)
{
float(_set,WeaponFaderDir,-64);
}
}
SubRoutine(Sub_SpawnCharacters)
{
if(VAICon==0)
{
if(vkey==KEY_TAB)
{
move(0,0,-50);
}
}
// if(VActiveTime==5&&VGameCounter<8)
// {
// spawnactor(Weapon11,-30,100,-200);
// spawnactor(Copl,0,150,-100);
// }
// if(VActiveTime==27&&VGameCounter<30)
// {
// spawnactor(Copl,100,100,-400);
// }
//weapon1
//weapon11
//weapon12
//weapon13
}
SubRoutine(Sub_SpawnActors)
{
if(VAICon==0)
{
if(VKey==KEY_8 && VKey==KEY_RSHIFT)
{
float(_add,CurrentActor,0.5);
if(CurrentActor>=48)
{
float(_set,CurrentActor,48);
}
}
elseif(VKey==KEY_7 && VKey==KEY_RSHIFT)
{
float(_sub,CurrentActor,0.5);
if(CurrentActor<0)
{
float(_set,CurrentActor,0);
}
}
if(CurrentActor<=0)
{
dmessage("NEXT ACTOR: (1) COP LIGHT",300,10);
}
elseif(CurrentActor<=1)
{
dmessage("NEXT ACTOR: (2) COP MEDIUM",300,10);
}
elseif(CurrentActor<=2)
{
dmessage("NEXT ACTOR: (3) COP HEAVY",300,10);
}
elseif(CurrentActor<=3)
{
dmessage("NEXT ACTOR: (4) WORKER",300,10);
}
elseif(CurrentActor<=4)
{
dmessage("NEXT ACTOR: (5) MEDIC",300,10);
}
elseif(CurrentActor<=5)
{
dmessage("NEXT ACTOR: (6) ARMOUR BEAST",300,10);
}
elseif(CurrentActor<=6)
{
dmessage("NEXT ACTOR: (7) NUKE TEK",300,10);
}
elseif(CurrentActor<=7)
{
dmessage("NEXT ACTOR: (8) LAYYA",300,10);
}
elseif(CurrentActor<=8)
{
dmessage("NEXT ACTOR: (9) PROZZIE",300,10);
}
elseif(CurrentActor<=9)
{
dmessage("NEXT ACTOR: (10) MALE PROZ",300,10);
}
elseif(CurrentActor<=10)
{
dmessage("NEXT ACTOR: (11) CHOT",300,10);
}
elseif(CurrentActor<=11)
{
dmessage("NEXT ACTOR: (12) CHOT CT",300,10);
}
elseif(CurrentActor<=12)
{
dmessage("NEXT ACTOR: (13) CHOT OT",300,10);
}
elseif(CurrentActor<=13)
{
dmessage("NEXT ACTOR: (14) DOMINA",300,10);
}
elseif(CurrentActor<=14)
{
dmessage("NEXT ACTOR: (15) DWELLER 1",300,10);
}
elseif(CurrentActor<=15)
{
dmessage("NEXT ACTOR: (16) DWELLER 3",300,10);
}
elseif(CurrentActor<=16)
{
dmessage("NEXT ACTOR: (17) SUBGIRL 1",300,10);
}
elseif(CurrentActor<=17)
{
dmessage("NEXT ACTOR: (18) SUBGIRL 2",300,10);
}
elseif(CurrentActor<=18)
{
dmessage("NEXT ACTOR: (19) DROID 1",300,10);
}
elseif(CurrentActor<=19)
{
dmessage("NEXT ACTOR: (20) DROID 2",300,10);
}
elseif(CurrentActor<=20)
{
dmessage("NEXT ACTOR: (21) RAT",300,10);
}
elseif(CurrentActor<=21)
{
dmessage("NEXT ACTOR: (22) CANDY",300,10);
}
elseif(CurrentActor<=22)
{
dmessage("NEXT ACTOR: (23) BARMAN",300,10);
}
elseif(CurrentActor<=23)
{
dmessage("NEXT ACTOR: (24) SCIENTIST",300,10);
}
elseif(CurrentActor<=24)
{
dmessage("NEXT ACTOR: (25) PRIEST",300,10);
}
elseif(CurrentActor<=25)
{
dmessage("NEXT ACTOR: (26) CHOT BEAST",300,10);
}
elseif(CurrentActor<=26)
{
dmessage("NEXT ACTOR: (27) GUN TURRET",300,10);
}
elseif(CurrentActor<=27)
{
dmessage("NEXT ACTOR: (28) ROCKET LAUNCHER",300,10);
}
elseif(CurrentActor<=28)
{
dmessage("NEXT ACTOR: (29) PIMP DADDY",300,10);
}
elseif(CurrentActor<=29)
{
dmessage("NEXT ACTOR: (30) CHOT 2",300,10);
}
elseif(CurrentActor<=30)
{
dmessage("NEXT ACTOR: (31) BOUNCER",300,10);
}
elseif(CurrentActor<=31)
{
dmessage("NEXT ACTOR: (32) EVIL BOB",300,10);
}
elseif(CurrentActor<=32)
{
dmessage("NEXT ACTOR: (33) DJ KYD",300,10);
}
elseif(CurrentActor<=33)
{
dmessage("NEXT ACTOR: (34) YO MOMMA",300,10); //dick
}
elseif(CurrentActor<=34)
{
dmessage("NEXT ACTOR: (35) DEFENSE BOT",300,10);
}
elseif(CurrentActor<=35)
{
dmessage("NEXT ACTOR: (36) COMPANION BOT",300,10);
}
elseif(CurrentActor<=36)
{
dmessage("NEXT ACTOR: (37) TRANSPORT BOT",300,10);
}
elseif(CurrentActor<=37)
{
dmessage("NEXT ACTOR: (38) OFFENSE BOT",300,10);
}
elseif(CurrentActor<=38)
{
dmessage("NEXT ACTOR: (39) DWELLER 2",300,10);
}
elseif(CurrentActor<=39)
{
dmessage("NEXT ACTOR: (40) VICTIM MALE",300,10);
}
elseif(CurrentActor<=40)
{
dmessage("NEXT ACTOR: (41) VICTIM FEMALE",300,10);
}
elseif(CurrentActor<=41)
{
dmessage("NEXT ACTOR: (42) FEMALE DWELLER 1",300,10);
}
elseif(CurrentActor<=42)
{
dmessage("NEXT ACTOR: (43) FEMALE DWELLER 2",300,10);
}
elseif(CurrentActor<=43)
{
dmessage("NEXT ACTOR: (44) XTC",300,10);
}
elseif(CurrentActor<=44)
{
dmessage("NEXT ACTOR: (45) RIOT COP",300,10);
}
elseif(CurrentActor<=45)
{
dmessage("NEXT ACTOR: (46) GUN COMMANDER",300,10);
}
elseif(CurrentActor<=46)
{
dmessage("NEXT ACTOR: (47) NUN",300,10);
}
elseif(CurrentActor<=47)
{
dmessage("NEXT ACTOR: (48) CHOT DWARF",300,10);
}
elseif(CurrentActor<=48)
{
dmessage("NEXT ACTOR: (49) SHELL TURRET",300,10);
}
//if(DebugOnlyOneEnemy==0)
//{
//float(_set,DebugOnlyOneEnemy,3)
if(VKey==KEY_9 && VKey==KEY_RSHIFT)
{
if(CurrentActor<=0)
{
spawnactor(copl,0,150,-200);
//spawnactor(MDroid1,0,150,-200);
}
elseif(CurrentActor<=1)
{
spawnactor(copm,0,150,-200);
//spawnactor(MDroid2,0,150,-200);
}
elseif(CurrentActor<=2)
{
spawnactor(coph,0,150,-200);
//spawnactor(AutoCannon,0,150,-200);
}
elseif(CurrentActor<=3)
{
spawnactor(worker,0,150,-200);
//spawnactor(WeaponBot,0,150,-200);
}
elseif(CurrentActor<=4)
{
spawnactor(medic,0,150,-200);
}
elseif(CurrentActor<=5)
{
spawnactor(abeast,0,150,-200);
}
elseif(CurrentActor<=6)
{
spawnactor(RadiationWorker,0,150,-200);
}
elseif(CurrentActor<=7)
{
spawnactor(Layya,0,150,-200);
}
elseif(CurrentActor<=8)
{
spawnactor(prost1,0,150,-200);
}
elseif(CurrentActor<=9)
{
spawnactor(hung,0,150,-200);
}
elseif(CurrentActor<=10)
{
spawnactor(chot,0,150,-200);
}
elseif(CurrentActor<=11)
{
spawnactor(chotct,0,150,-200);
}
elseif(CurrentActor<=12)
{
spawnactor(chotmot,0,150,-200);
}
elseif(CurrentActor<=13)
{
spawnactor(domina,0,150,-200);
}
elseif(CurrentActor<=14)
{
spawnactor(Dweller1,0,150,-200);
}
elseif(CurrentActor<=15)
{
spawnactor(Dweller3,0,150,-200);
}
elseif(CurrentActor<=16)
{
spawnactor(subgirl1,0,150,-200);
}
elseif(CurrentActor<=17)
{
spawnactor(subgirl2,0,150,-200);
}
elseif(CurrentActor<=18)
{
spawnactor(MDroid1,0,150,-200);
}
elseif(CurrentActor<=19)
{
spawnactor(MDroid2,0,150,-200);
}
elseif(CurrentActor<=20)
{
spawnactor(rat,0,150,-200);
}
elseif(CurrentActor<=21)
{
spawnactor(Candy,0,150,-200);
}
elseif(CurrentActor<=22)
{
spawnactor(barman,0,150,-200);
}
elseif(CurrentActor<=23)
{
spawnactor(scientist,0,150,-200);
}
elseif(CurrentActor<=24)
{
spawnactor(priest,0,150,-200);
}
elseif(CurrentActor<=25)
{
spawnactor(chotbeast,0,150,-200);
}
elseif(CurrentActor<=26)
{
spawnactor(GunTurret,0,-35,-200);
}
elseif(CurrentActor<=27)
{
spawnactor(RocketLauncher,0,-54,-200);
}
elseif(CurrentActor<=28)
{
spawnactor(Pimp,0,150,-200);
}
elseif(CurrentActor<=29)
{
spawnactor(chot2,0,150,-200);
}
elseif(CurrentActor<=30)
{
spawnactor(bouncer,0,150,-200);
}
elseif(CurrentActor<=31)
{
spawnactor(evilbob,0,150,-200);
}
elseif(CurrentActor<=32)
{
spawnactor(djkyd,0,150,-200);
}
elseif(CurrentActor<=33)
{
spawnactor(satan,0,150,-200);
}
elseif(CurrentActor<=34)
{
spawnactor(DefensiveBot,0,150,-200);
}
elseif(CurrentActor<=35)
{
spawnactor(CompanionBot,0,150,-200);
}
elseif(CurrentActor<=36)
{
spawnactor(TransportBot,0,150,-200);
}
elseif(CurrentActor<=37)
{
spawnactor(OffensiveBot,0,150,-200);
}
elseif(CurrentActor<=38)
{
spawnactor(Dweller2,0,150,-200);
}
elseif(CurrentActor<=39)
{
spawnactor(victimmale,0,150,-200);
}
elseif(CurrentActor<=40)
{
spawnactor(VictimFeMale,0,150,-200);
}
elseif(CurrentActor<=41)
{
spawnactor(FemDweller1,0,150,-200);
}
elseif(CurrentActor<=42)
{
spawnactor(FemDweller2,0,150,-200);
}
elseif(CurrentActor<=43)
{
spawnactor(prost2,0,150,-200);
}
elseif(CurrentActor<=44)
{
spawnactor(copr,0,150,-200);
}
elseif(CurrentActor<=45)
{
spawnactor(GunCommander,0,150,-200);
}
elseif(CurrentActor<=46)
{
spawnactor(nun,0,150,-200);
}
elseif(CurrentActor<=47)
{
spawnactor(chotdwarf,0,150,-200);
}
elseif(CurrentActor<=48)
{
spawnactor(shellturret,0,150,-200);
}
//else
//{
// float(_set,DebugOnlyOneEnemy,0)
//}
}
//}
//else
//{
// float(_sub,DebugOnlyOneEnemy,1)
//}
}
}
SubRoutine(Sub_SpawnWeapons)
{
if(VAICon==0)
{
if(VKey==KEY_8 && VKey!=KEY_RSHIFT)
{
float(_add,CurrentWeapon,0.5);
if(CurrentWeapon>=13)
{
float(_set,CurrentWeapon,13);
}
}
elseif(VKey==KEY_7 && VKey!=KEY_RSHIFT)
{
float(_sub,CurrentWeapon,0.5);
if(CurrentWeapon<0)
{
float(_set,CurrentWeapon,0);
}
}
if(CurrentWeapon<=0)
{
dmessage("NEXT WEAPON: (1) PUMPGUN",310,10);
}
elseif(CurrentWeapon<=1)
{
dmessage("NEXT WEAPON: (2) HARPOON",310,10);
}
elseif(CurrentWeapon<=2)
{
dmessage("NEXT WEAPON: (3) FLAMETHROWER",310,10);
}
elseif(CurrentWeapon<=3)
{
dmessage("NEXT WEAPON: (4) BAZOOKA",310,10);
}
elseif(CurrentWeapon<=4)
{
dmessage("NEXT WEAPON: (5) TORCH",310,10);
}
elseif(CurrentWeapon<=5)
{
dmessage("NEXT WEAPON: (6) MAIMER",310,10);
}
elseif(CurrentWeapon<=6)
{
dmessage("NEXT WEAPON: (7) MACHINE GUN",310,10);
}
elseif(CurrentWeapon<=7)
{
dmessage("NEXT WEAPON: (8) PAK / ICE GUN",310,10);
}
elseif(CurrentWeapon<=8)
{
dmessage("NEXT WEAPON: (9) BUZZ SAW",310,10);
}
elseif(CurrentWeapon<=9)
{
dmessage("NEXT WEAPON: (10) AMMO WEAPONS",310,10);
}
elseif(CurrentWeapon<=10)
{
dmessage("NEXT WEAPON: (11) AMMO GRENADES",310,10);
}
elseif(CurrentWeapon<=11)
{
dmessage("NEXT WEAPON: (12) BATTERY GRABBER",310,10);
}
elseif(CurrentWeapon<=12)
{
dmessage("NEXT WEAPON: (13) BATTERY",310,10);
}
elseif(CurrentWeapon<=13)
{
dmessage("NEXT WEAPON: (14) MASER",310,10);
}
// if(DebugOnlyOneWeapon==0)
// {
//float(_set,DebugOnlyOneWeapon,3)
if(VKey==KEY_9 && VKey!=KEY_RSHIFT)
{
if(CurrentWeapon<=0)
{
spawnactor(WeaponPumpGun,0,150,-200);
}
elseif(CurrentWeapon<=1)
{
spawnactor(WeaponHarpoon,0,150,-200);
}
elseif(CurrentWeapon<=2)
{
spawnactor(WeaponFlameThrower,0,150,-200);
}
elseif(CurrentWeapon<=3)
{
spawnactor(WeaponBazooka,0,150,-200);
}
elseif(CurrentWeapon<=4)
{
spawnactor(WeaponTorch,0,150,-200);
}
elseif(CurrentWeapon<=5)
{
spawnactor(WeaponMaimer,0,150,-200);
}
elseif(CurrentWeapon<=6)
{
spawnactor(WeaponMachineGun,0,150,-200);
}
elseif(CurrentWeapon<=7)
{
spawnactor(WeaponPAK,0,150,-200);
}
elseif(CurrentWeapon<=8)
{
spawnactor(WeaponBuzzSaw,0,150,-200);
}
elseif(CurrentWeapon<=9)
{
spawnactor(WeaponAmmo,0,150,-200);
}
elseif(CurrentWeapon<=10)
{
spawnactor(WeaponAmmoGrenade,0,150,-200);
}
elseif(CurrentWeapon<=11)
{
spawnactor(WeaponBatteryGrabber,0,150,-200);
}
elseif(CurrentWeapon<=12)
{
spawnactor(BulletBattery,0,150,-200);
}
elseif(CurrentWeapon<=13)
{
spawnactor(WeaponMaser,0,150,-200);
}
//else
//{
// float(_set,DebugOnlyOneWeapon,0)
//}
}
// }
// else
// {
// float(_sub,DebugOnlyOneWeapon,1)
// }
}
}
SubRoutine(BackGroundTriggerChecks)
{
//printi("Health:",VHealth);
float(_seti,ColAngleTmp,VColAngle);
float(_seti,ColAngleTmpFace,VColAngleFace);
float(_seti,ColMaterial,VColMaterialProperties);
if(VCheatKeys==1)
{
callsub(Sub_SpawnCharacters); //DEBUG
callsub(Sub_SpawnWeapons); //DEBUG
callsub(Sub_SpawnActors); //DEBUG
if(vkey!=KEY_LSHIFT && vkey!=KEY_RSHIFT)
{
if(vkey==KEY_G)
{
float(_set,aitoggle,0); //ai on, ie: proc. copgen/femgen
dmessage("-- AI ENABLED --",30,150);
}
elseif(vkey==KEY_H)
{
float(_set,aitoggle,1); //ai off
dmessage("-- AI DISABLED --",30,150);
}
}
else
{
if(vkey==KEY_G)
{
float(_set,aivisiontoggle,0); //ai on, ie: proc. copgen/femgen
dmessage("-- AI VISION ENABLED --",30,150);
}
elseif(vkey==KEY_H)
{
float(_set,aivisiontoggle,1); //ai off
dmessage("-- AI VISION DISABLED --",30,150);
}
}
if(VKey==KEY_B && VKey==KEY_RSHIFT)
{
if(VAIClass==_AIClassAngel)
{
call(ModelAmbient,255,255,255);
}
else
{
call(ModelAmbient,255,255,255);
}
}
if(VKey==KEY_B)
{
if(CrankAmbient<=30000)
{
float(_add,CrankAmbient,100);
}
if(VAIClass==_AIClassAngel)
{
call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
}
else
{
call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
}
}
if(VKey==KEY_N)
{
if(CrankAmbient>0)
{
float(_sub,CrankAmbient,100);
}
if(VAIClass==_AIClassAngel)
{
call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
}
else
{
call(ModelAmbient,CrankAmbient,CrankAmbient,CrankAmbient);
}
}
if(VKey==KEY_RBRACKET)
{
call(GodModeStatus,true);
dmessage("GOD MODE",30,150);
}
elseif(VKey==KEY_LBRACKET)
{
call(GodModeStatus,false);
dmessage("MORTAL MODE",30,150);
}
}
if(VKey==KEY_RSHIFT && VKey==KEY_T)
{
float(_seti,TmpFloat,VGameCounter);
float(_sub,TmpFloat,LastTuturialChange);
if(TmpFloat>4)
{
float(_seti,LastTuturialChange,VGameCounter);
if(tutorialtoggle==0)
{
float(_set,tutorialtoggle,1);
message("Tutorial On",200,10);
}
elseif(tutorialtoggle==1)
{
float(_set,tutorialtoggle,0);
message("Tutorial Off",200,10);
}
}
}
direction(_clr,_DIRTempFlag);
call(CheckTriggers);
if(vAICon==0)
{
if(VClass==_ClassAngel)
{
call(CheckForPickup,4,_ClassPickup); //pickups only
}
else
{
call(CheckForPickup,8,_ClassAmmoPickup); //Both ammo and pickups
}
vector(_settoactorpos,PlayerPos);
}
if(VCurScene==1)
{
CallSub(BackGroundTriggerChecksScene1)
}
elseif(VCurScene==2)
{
CallSub(BackGroundTriggerChecksScene2)
}
elseif(VCurScene==3)
{
CallSub(BackGroundTriggerChecksScene3)
}
elseif(VCurScene==4)
{
CallSub(BackGroundTriggerChecksScene4)
}
elseif(VCurScene==5)
{
CallSub(BackGroundTriggerChecksScene5)
}
elseif(VCurScene==6)
{
CallSub(BackGroundTriggerChecksScene6)
}
elseif(VCurScene==7)
{
CallSub(BackGroundTriggerChecksScene7)
}
elseif(VCurScene==8)
{
CallSub(BackGroundTriggerChecksScene8)
}
elseif(VCurScene==9)
{
CallSub(BackGroundTriggerChecksScene9)
}
elseif(VCurScene==10)
{
CallSub(BackGroundTriggerChecksScene10)
}
elseif(VCurScene==11)
{
CallSub(BackGroundTriggerChecksScene11)
}
elseif(VCurScene==12)
{
CallSub(BackGroundTriggerChecksScene12)
}
elseif(VCurScene==13)
{
CallSub(BackGroundTriggerChecksScene13)
}
elseif(VCurScene==14)
{
CallSub(BackGroundTriggerChecksScene14)
}
elseif(VCurScene==15)
{
CallSub(BackGroundTriggerChecksScene15)
}
elseif(VCurScene==16)
{
CallSub(BackGroundTriggerChecksScene16)
}
elseif(VCurScene==17)
{
CallSub(BackGroundTriggerChecksScene17)
}
elseif(VCurScene==18)
{
CallSub(BackGroundTriggerChecksScene18)
}
elseif(VCurScene==19)
{
CallSub(BackGroundTriggerChecksScene19)
}
}
SubRoutine(ReadKeyJoy)
{
Direction(_clr,_DIRairemoveflags);
Direction(_clr,_DIRdepossesion);
Direction(_clr,_DIRcrouch);
if(VAnalog2<-0.7||VAnalog2>0.7||VAnalog3>0.7||VAnalog3<-0.7)
{
Direction(_clr,_DIRwalking);
//Running (The 0.6 and 0.7 barriers are selected to ease diagonal movement. Do not set to the same value!)
if(VAnalog2<=-0.6) //Threshold here must be higher than when walking
{
Direction(_set,_DIRbackward);
}
elseif(VAnalog2>=0.6)
{
Direction(_set,_DIRforward);
}
if(VAnalog3<=-0.6)
{
Direction(_set,_DIRsideleft);
}
elseif(VAnalog3>=0.6)
{
Direction(_set,_DIRsideright);
}
}
elseif(VAnalog2<-0.3||VAnalog2>0.3||VAnalog3>0.3||VAnalog3<-0.3) //This comparison must be here for easing diagonal walking.
{
//walking
Direction(_set,_DIRwalking);
if(VAnalog2<=-0.20)
{
Direction(_set,_DIRbackward);
}
elseif(VAnalog2>=0.20)
{
Direction(_set,_DIRforward);
}
if(VAnalog3<=-0.20)
{
Direction(_set,_DIRsideleft);
}
elseif(VAnalog3>=0.20)
{
Direction(_set,_DIRsideright);
}
}
if(VAnalog1>0)
{
Direction(_set,_DIRright)
}
elseif(VAnalog1<0)
{
Direction(_set,_DIRleft)
}
if(VInput==_SXIbutton1)
{
Direction(_set,_DIRjump);
}
if(VInput==_SXIbutton2)
{
Direction(_set,_DIRaction);
}
if(VInput==_SXIbutton6)
{
Direction(_set,_DIRdepossesion)
}
if(VInput==_SXIbutton7)
{
Direction(_set,_DIRcrouch);
}
if(VInput==_SXIbutton8 && VOInput!=_SXIbutton8)
{
if(SniperMode==0)
{
call(ChangeSniperMode,1,0);
}
else
{
call(ChangeSniperMode,1,1);
}
}
if(VInput==_SXIbutton9 && VOInput!=_SXIbutton9)
{
if(SniperMode==0)
{
call(ChangeSniperMode,-1,0);
}
else
{
call(ChangeSniperMode,-1,1);
}
}
if(VInput==_SXIbutton10 && VOInput==_SXIbutton10)
{
if(VFreeLook==0)
{
call(FreeLook,TRUE);
}
}
elseif(VFreeLook!=0)
{
call(FreeLook,FALSE);
}
if(VInput==_SXIbutton11)
{
call(DisplayObjectives);
}
if(VInput==_SXIbutton12 && VOInput!=_SXIbutton12)
{
call(ChangeSniperMode,-2,0); //zoom all the way out of snipermode
}
if(VInput==_SXIbutton3)
{
Direction(_set,_DIRshoot);
}
if(VInput==_SXIbutton4)
{
Direction(_set,_DIRgrenade);
}
/*
if(VInput==_SXIbutton5)
{
Direction(_set,_DIRlaser);
}
*/
if(VTrigger|=_DIRMoveBits)
{
Direction(_set,_DIRMove);
}
else
{
Direction(_set,_noDIR);
}
}
#include "messiahscripts\particles\FlicHeaders.hxx"
#include "messiahscripts\particles\ParticleSubs.hxx"
#include "messiahscripts\particles\particle.hxx"
#include "messiahscripts\enemies\EnemyHeaders.hxx"
#include "messiahscripts\weapons\BulletHeaders.hxx"
#include "messiahscripts\weapons\WeaponHeaders.hxx"
#include "messiahscripts\sound\soundcode.hxx"
#include "messiahscripts\enemies\SharedFXCode.hxx"
#include "messiahscripts\weapons\BulletWeaponActions.hxx"
#include "messiahscripts\weapons\Bullets.hxx"
#include "messiahscripts\weapons\Weapons.hxx"
#include "messiahscripts\enemies\SharedAnimCode.hxx"
#include "messiahscripts\enemies\GenActions.hxx"
#include "messiahscripts\bobactions.hxx"
#include "messiahscripts\enemies\copactions.hxx" //Action for Cops and Various Character
#include "messiahscripts\enemies\chot1.hxx" //Specific Actions For Chots
#include "messiahscripts\enemies\femactions.hxx"
//#include "messiahscripts\enemies\SubGirlActions.hxx" //obsolete
//#include "messiahscripts\enemies\domactions.hxx" //obsolete
#include "messiahscripts\enemies\abeastactions.hxx"
#include "messiahscripts\enemies\beastactions.hxx"
#include "messiahscripts\enemies\satanactions.hxx"
#include "messiahscripts\enemies\shared.hxx" //shared subroutines
#include "messiahscripts\enemies\sharedMove.hxx" //more shared subroutines
#include "messiahscripts\enemies\SharedAIMove.hxx" //shared subroutines for AI control
#include "messiahscripts\enemies\sharedPain.hxx" //more shared subroutines
#include "messiahscripts\bob5.hxx"
#include "messiahscripts\StagesEnemies.hxx"