From 86629a3b343a87961527728c70e4aae94522c100 Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Sat, 22 Dec 2001 00:49:57 +0000 Subject: [PATCH] Cleanups. (Tim Beckmann) --- src/avp/bh_marin.c | 13 +- src/avp/bh_mission.c | 1 + src/avp/bh_near.c | 8 +- src/avp/bh_plift.c | 1 + src/avp/bh_pred.c | 22 +- src/avp/bh_queen.c | 5 +- src/avp/bh_types.c | 1 + src/avp/bh_videoscreen.c | 1 + src/avp/bh_waypt.c | 3 +- src/avp/bh_weap.c | 26 +- src/avp/bh_weap.h | 1 + src/avp/bh_xeno.c | 5 + src/avp/bonusabilities.c | 2 +- src/avp/bonusabilities.h | 1 + src/avp/cheatmodes.c | 2 + src/avp/comp_map.c | 23 +- src/avp/davehook.cpp | 2 + src/avp/dynamics.c | 19 +- src/avp/dynamics.h | 1 + src/avp/game.c | 3 + src/avp/game.h | 6 + src/avp/game_statistics.c | 6 +- src/avp/game_statistics.h | 3 + src/avp/gamecmds.cpp | 26 +- src/avp/hmodel.c | 4 +- src/avp/hud.c | 6 +- src/avp/inventry.c | 1 - src/avp/inventry.h | 6 + src/avp/messagehistory.c | 1 + src/avp/messagehistory.h | 8 + src/avp/paintball.c | 1 + src/avp/paintball.h | 4 + src/avp/particle.c | 4 + src/avp/particle.h | 4 + src/avp/pmove.c | 2 +- src/avp/pmove.h | 2 + src/avp/weapons.c | 1 - src/avp/win95/d3d_hud.h | 2 + src/avp/win95/frontend/avp_intro.cpp | 1 + src/avp/win95/frontend/avp_intro.h | 6 + src/avp/win95/frontend/avp_menudata.c | 712 ++++++++++++------------- src/avp/win95/frontend/avp_menugfx.cpp | 4 +- src/avp/win95/frontend/avp_menugfx.hpp | 3 +- src/avp/win95/frontend/avp_menus.c | 4 +- src/avp/win95/frontend/avp_menus.h | 2 + src/avp/win95/gadgets/ahudgadg.hpp | 11 +- src/avp/win95/gadgets/hudgadg.hpp | 4 - src/avp/win95/pldnet.h | 1 + src/avp/win95/progress_bar.cpp | 2 +- src/avp/win95/usr_io.c | 126 ++--- src/avp/win95/usr_io.h | 1 + src/include/module.h | 1 + src/kshape.h | 9 + src/menus.c | 4 +- src/net.c | 10 +- src/opengl.h | 7 + src/win95/chnkload.cpp | 62 +-- src/win95/shpanim.h | 2 +- 58 files changed, 671 insertions(+), 528 deletions(-) create mode 100644 src/avp/game.h create mode 100644 src/avp/messagehistory.h create mode 100644 src/avp/win95/frontend/avp_intro.h diff --git a/src/avp/bh_marin.c b/src/avp/bh_marin.c index 572a20c..6d5fb3c 100644 --- a/src/avp/bh_marin.c +++ b/src/avp/bh_marin.c @@ -91,7 +91,11 @@ extern void PrintSpottedNumber(void); /* prototypes for this file */ static STATE_RETURN_CONDITION Execute_MFS_Wait(STRATEGYBLOCK *sbPtr); +#if 0 static STATE_RETURN_CONDITION Execute_MFS_Hunt(STRATEGYBLOCK *sbPtr); +static STATE_RETURN_CONDITION Execute_MNS_DischargeGL(STRATEGYBLOCK *sbPtr); +static STATE_RETURN_CONDITION Execute_MNS_Hunt(STRATEGYBLOCK *sbPtr); +#endif static STATE_RETURN_CONDITION Execute_MFS_Wander(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MFS_Approach(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MFS_Firing(STRATEGYBLOCK *sbPtr); @@ -107,13 +111,11 @@ static STATE_RETURN_CONDITION Execute_MNS_Wait(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_DischargeLOSWeapon(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_DischargeShotgun(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_DischargePistol(STRATEGYBLOCK *sbPtr); -static STATE_RETURN_CONDITION Execute_MNS_DischargeGL(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_DischargeSADAR(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_DischargeFlamethrower(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_ThrowMolotov(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_DischargeMinigun(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_SentryMode(STRATEGYBLOCK *sbPtr); -static STATE_RETURN_CONDITION Execute_MNS_Hunt(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_Respond(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_Retreat(STRATEGYBLOCK *sbPtr); static STATE_RETURN_CONDITION Execute_MNS_Return(STRATEGYBLOCK *sbPtr); @@ -5942,7 +5944,7 @@ static STATE_RETURN_CONDITION Execute_MFS_SentryMode(STRATEGYBLOCK *sbPtr) } return(SRC_No_Change); } - +#if 0 static STATE_RETURN_CONDITION Execute_MFS_Hunt(STRATEGYBLOCK *sbPtr) { MARINE_STATUS_BLOCK *marineStatusPointer; @@ -5984,6 +5986,7 @@ static STATE_RETURN_CONDITION Execute_MFS_Hunt(STRATEGYBLOCK *sbPtr) marineStatusPointer->stateTimer = MARINE_FAR_MOVE_TIME; return(SRC_No_Change); } +#endif static STATE_RETURN_CONDITION Execute_MFS_Approach(STRATEGYBLOCK *sbPtr) { @@ -11406,6 +11409,7 @@ void FakeTrackerWheepGenerator(VECTORCH *marinepos, STRATEGYBLOCK *me) { } } +#if 0 static STATE_RETURN_CONDITION Execute_MNS_Hunt(STRATEGYBLOCK *sbPtr) { MARINE_STATUS_BLOCK *marineStatusPointer; @@ -11545,6 +11549,7 @@ static STATE_RETURN_CONDITION Execute_MNS_Hunt(STRATEGYBLOCK *sbPtr) return(SRC_No_Change); } +#endif static STATE_RETURN_CONDITION Execute_MNS_Respond(STRATEGYBLOCK *sbPtr) { @@ -12600,6 +12605,7 @@ static STATE_RETURN_CONDITION Execute_MNS_ThrowMolotov(STRATEGYBLOCK *sbPtr) return(SRC_No_Change); } +#if 0 static STATE_RETURN_CONDITION Execute_MNS_DischargeGL(STRATEGYBLOCK *sbPtr) { MARINE_STATUS_BLOCK *marineStatusPointer; @@ -12856,6 +12862,7 @@ static STATE_RETURN_CONDITION Execute_MNS_DischargeGL(STRATEGYBLOCK *sbPtr) } return(SRC_No_Change); } +#endif static STATE_RETURN_CONDITION Execute_MNS_NewDischargeGL(STRATEGYBLOCK *sbPtr) { diff --git a/src/avp/bh_mission.c b/src/avp/bh_mission.c index a2c7297..a337de4 100644 --- a/src/avp/bh_mission.c +++ b/src/avp/bh_mission.c @@ -9,6 +9,7 @@ extern void MissionObjectiveTriggered(void* mission_objective); extern void MakeMissionVisible(void* mission_objective); extern void MakeMissionPossible(void* mission_objective); +extern void StartTriggerPlotFMV(int number); void * MissionCompleteBehaveInit(void* bhdata,STRATEGYBLOCK* sbptr) { diff --git a/src/avp/bh_near.c b/src/avp/bh_near.c index 8ae5c72..0bc2d17 100644 --- a/src/avp/bh_near.c +++ b/src/avp/bh_near.c @@ -61,6 +61,8 @@ extern void Execute_Alien_Dying(STRATEGYBLOCK *sbPtr); int AlienIsAbleToClimb(STRATEGYBLOCK *sbPtr); int AlienIsAbleToStand(STRATEGYBLOCK *sbPtr); +static int StartAlienPounce(STRATEGYBLOCK *sbPtr); +static int AlienHasPathToTarget(STRATEGYBLOCK *sbPtr); extern ATTACK_DATA Alien_Special_Gripping_Attack; @@ -612,6 +614,7 @@ static enum AMMO_ID GetAttackDamageType(STRATEGYBLOCK *sbPtr,int flagnum) { } +#if 0 static void DoAlienAIAttackSound(STRATEGYBLOCK *sbPtr) { DYNAMICSBLOCK *dynPtr; @@ -642,6 +645,7 @@ static void DoAlienAIAttackSound(STRATEGYBLOCK *sbPtr) { #endif } +#endif static void DoAlienAIRandomHiss(STRATEGYBLOCK *sbPtr) { @@ -2137,7 +2141,7 @@ int AlienIsAwareOfTarget(STRATEGYBLOCK *sbPtr) { return 1; } -int AlienHasPathToTarget(STRATEGYBLOCK *sbPtr) { +static int AlienHasPathToTarget(STRATEGYBLOCK *sbPtr) { ALIEN_STATUS_BLOCK *alienStatusPointer=(ALIEN_STATUS_BLOCK *)(sbPtr->SBdataptr); @@ -2147,10 +2151,10 @@ int AlienHasPathToTarget(STRATEGYBLOCK *sbPtr) { { GLOBALASSERT(alienStatusPointer->Target->containingModule); { + #if 0 PLAYER_STATUS *playerStatusPtr= (PLAYER_STATUS *) (Player->ObStrategyBlock->SBdataptr); LOCALASSERT(playerStatusPtr); - #if 0 if((playerStatusPtr->cloakOn==1)&&(playerStatusPtr->cloakPositionGivenAway==0)) { return 0; } diff --git a/src/avp/bh_plift.c b/src/avp/bh_plift.c index 93cb25d..8accdf4 100644 --- a/src/avp/bh_plift.c +++ b/src/avp/bh_plift.c @@ -11,6 +11,7 @@ #include "dynblock.h" #include "dynamics.h" #include "showcmds.h" +#include "weapons.h" #define UseLocalAssert Yes diff --git a/src/avp/bh_pred.c b/src/avp/bh_pred.c index 5ba27fe..f8edf96 100644 --- a/src/avp/bh_pred.c +++ b/src/avp/bh_pred.c @@ -37,6 +37,7 @@ Source file for predator AI #include "bh_dummy.h" #include "bh_agun.h" #include "scream.h" +#include "game_statistics.h" #define UseLocalAssert Yes #include "ourasert.h" @@ -77,9 +78,15 @@ static PRED_RETURN_CONDITION Execute_PFS_Pathfinder(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PFS_Return(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PFS_Engage(STRATEGYBLOCK *sbPtr); +#if 0 static PRED_RETURN_CONDITION Execute_PNS_Approach(STRATEGYBLOCK *sbPtr); -static PRED_RETURN_CONDITION Execute_PNS_Avoidance(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PNS_StandGround(STRATEGYBLOCK *sbPtr); +static PRED_RETURN_CONDITION Execute_PNS_NewDischargePistol(STRATEGYBLOCK *sbPtr); +static PRED_RETURN_CONDITION Predator_ThreatAnalysis(STRATEGYBLOCK *sbPtr); +static void CreateNPCPredatorPlasBolt(VECTORCH *startingPosition, VECTORCH *targetDirection); +static void CreateNPCPredatorDisc(VECTORCH *startingPosition, VECTORCH *targetDirection); +#endif +static PRED_RETURN_CONDITION Execute_PNS_Avoidance(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PNS_Wander(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PNS_Hunt(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PNS_Retreat(STRATEGYBLOCK *sbPtr); @@ -98,14 +105,11 @@ static PRED_RETURN_CONDITION Execute_PNS_Recover(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PNS_Taunting(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PNS_DischargeSpeargun(STRATEGYBLOCK *sbPtr); static PRED_RETURN_CONDITION Execute_PNS_AttackBrutallyWithPlasmaCaster(STRATEGYBLOCK *sbPtr); -static PRED_RETURN_CONDITION Execute_PNS_NewDischargePistol(STRATEGYBLOCK *sbPtr); -static PRED_RETURN_CONDITION Predator_ThreatAnalysis(STRATEGYBLOCK *sbPtr); +static PRED_RETURN_CONDITION Execute_PNS_SelfDestruct(STRATEGYBLOCK *sbPtr); static void Execute_Dying(STRATEGYBLOCK *sbPtr); -static void CreateNPCPredatorPlasBolt(VECTORCH *startingPosition, VECTORCH *targetDirection); -static void CreateNPCPredatorDisc(VECTORCH *startingPosition, VECTORCH *targetDirection); static void SetPredatorAnimationSequence(STRATEGYBLOCK *sbPtr,HMODEL_SEQUENCE_TYPES type, int subtype, int length, int tweening); static int PredatorShouldBeCrawling(STRATEGYBLOCK *sbPtr); static int PredatorShouldAttackPlayer(STRATEGYBLOCK *sbPtr); @@ -2812,6 +2816,7 @@ static PRED_RETURN_CONDITION Execute_PNS_Avoidance(STRATEGYBLOCK *sbPtr) return(PRC_No_Change); } +#if 0 static PRED_RETURN_CONDITION Execute_PNS_Approach(STRATEGYBLOCK *sbPtr) { PREDATOR_STATUS_BLOCK *predatorStatusPointer; @@ -2914,6 +2919,7 @@ static PRED_RETURN_CONDITION Execute_PNS_Approach(STRATEGYBLOCK *sbPtr) } return(PRC_No_Change); } +#endif static PRED_RETURN_CONDITION Execute_PNS_EngageWithPistol(STRATEGYBLOCK *sbPtr) { @@ -3484,6 +3490,7 @@ static PRED_RETURN_CONDITION Execute_PNS_AttackWithWristblade(STRATEGYBLOCK *sbP } +#if 0 static PRED_RETURN_CONDITION Execute_PNS_StandGround(STRATEGYBLOCK *sbPtr) { PREDATOR_STATUS_BLOCK *predatorStatusPointer; @@ -3524,6 +3531,7 @@ static PRED_RETURN_CONDITION Execute_PNS_StandGround(STRATEGYBLOCK *sbPtr) } return(PRC_No_Change); } +#endif static PRED_RETURN_CONDITION Execute_PNS_SwapWeapon(STRATEGYBLOCK *sbPtr) { @@ -4162,6 +4170,7 @@ static void Execute_Dying(STRATEGYBLOCK *sbPtr) predStatusPointer->stateTimer -= NormalFrameTime; } +#if 0 /* Patrick 4/7/97 -------------------------------------------------- Behaviour support functions ---------------------------------------------------------------------*/ @@ -4255,6 +4264,7 @@ static void CreateNPCPredatorDisc(VECTORCH *startingPosition, VECTORCH *targetDi dynPtr->LinVelocity.vy = MUL_FIXED(targetDirection->vy,PRED_DISCSPEED); dynPtr->LinVelocity.vz = MUL_FIXED(targetDirection->vz,PRED_DISCSPEED); } +#endif static void SetPredatorAnimationSequence(STRATEGYBLOCK *sbPtr,HMODEL_SEQUENCE_TYPES type, int subtype, int length, int tweening) { @@ -6479,6 +6489,7 @@ static PRED_RETURN_CONDITION Execute_PNS_AttackBrutallyWithPlasmaCaster(STRATEGY return(PRC_No_Change); } +#if 0 static PRED_RETURN_CONDITION Predator_ThreatAnalysis(STRATEGYBLOCK *sbPtr) { PREDATOR_STATUS_BLOCK *predatorStatusPointer; @@ -6701,6 +6712,7 @@ static PRED_RETURN_CONDITION Execute_PNS_NewDischargePistol(STRATEGYBLOCK *sbPtr #endif return(PRC_No_Change); } +#endif static PRED_RETURN_CONDITION Execute_PNS_SelfDestruct(STRATEGYBLOCK *sbPtr) { diff --git a/src/avp/bh_queen.c b/src/avp/bh_queen.c index 0b8a64b..3eb1f1e 100644 --- a/src/avp/bh_queen.c +++ b/src/avp/bh_queen.c @@ -90,6 +90,7 @@ static BOOL TargetIsFiringFlamethrowerAtQueen(STRATEGYBLOCK *sbPtr); static void MakeNonFragable(HMODELCONTROLLER *controller); static void QueenCalculateTargetInfo(STRATEGYBLOCK *sbPtr); void HandleHangarAirlock(); +static BOOL LockerDoorIsClosed(); QUEEN_MANOEUVRE Queen_Next_Command; @@ -1144,7 +1145,7 @@ void QueenMove_Walk(STRATEGYBLOCK *sbPtr) { else { VECTORCH velocity; - int walkSpeed; + //int walkSpeed; velocity.vx=sbPtr->DynPtr->OrientMat.mat31; velocity.vy=0; @@ -4509,7 +4510,7 @@ void QueenBehaviour(STRATEGYBLOCK *sbPtr) } -BOOL LockerDoorIsClosed() +static BOOL LockerDoorIsClosed() { TRACK_OBJECT_BEHAV_BLOCK* door; GLOBALASSERT(LockerDoorSbptr); diff --git a/src/avp/bh_types.c b/src/avp/bh_types.c index e69f377..2eba2c9 100644 --- a/src/avp/bh_types.c +++ b/src/avp/bh_types.c @@ -7,6 +7,7 @@ #include "stratdef.h" #include "gamedef.h" #include "bh_types.h" +#include "bonusabilities.h" #include "weapons.h" #include "comp_shp.h" diff --git a/src/avp/bh_videoscreen.c b/src/avp/bh_videoscreen.c index c2571bd..d835376 100644 --- a/src/avp/bh_videoscreen.c +++ b/src/avp/bh_videoscreen.c @@ -8,6 +8,7 @@ #include "dynblock.h" #include "dynamics.h" #include "bh_debri.h" +#include "plat_shp.h" #define UseLocalAssert Yes #include "ourasert.h" diff --git a/src/avp/bh_waypt.c b/src/avp/bh_waypt.c index 3f6b6d7..899c33a 100644 --- a/src/avp/bh_waypt.c +++ b/src/avp/bh_waypt.c @@ -47,6 +47,7 @@ int NewFindThisRoute(WAYPOINT_HEADER *waypoints, WAYPOINT_ROUTE *thisroute,WAYPO void SweepWaypoints(WAYPOINT_HEADER *waypoints, STRATEGYBLOCK *sbPtr, VECTORCH *targetPosition); int FindBestRoute(WAYPOINT_ROUTE *bestroute,WAYPOINT_HEADER *waypoints); int NPCContainsPoint(STRATEGYBLOCK *sbPtr,VECTORCH *point); +static int WaypointContainsPoint(WAYPOINT_VOLUME *waypoint, VECTORCH *point); void GetTargetPositionInWaypoint(WAYPOINT_VOLUME *waypoint,VECTORCH *output); @@ -270,7 +271,7 @@ int NPCGetWaypointDirection(WAYPOINT_HEADER *waypoints, STRATEGYBLOCK *sbPtr, VE } -int WaypointContainsPoint(WAYPOINT_VOLUME *waypoint, VECTORCH *point) { +static int WaypointContainsPoint(WAYPOINT_VOLUME *waypoint, VECTORCH *point) { /* 'point' should be in module space. */ diff --git a/src/avp/bh_weap.c b/src/avp/bh_weap.c index 107eced..b91804f 100644 --- a/src/avp/bh_weap.c +++ b/src/avp/bh_weap.c @@ -23,11 +23,16 @@ #include "bh_alien.h" #include "bh_marin.h" #include "bh_dummy.h" +#include "bh_rubberduck.h" #include "pvisible.h" #include "pheromon.h" #include "psnd.h" #include "psndplat.h" #include "huddefs.h" +#include "ai_sight.h" +#include "targeting.h" +#include "inventry.h" +#include "game_statistics.h" #include "particle.h" #include "sfx.h" @@ -66,7 +71,6 @@ void InitialiseEnergyBoltBehaviour(DAMAGE_PROFILE *damage, int factor); static void InitialiseFlameThrowerBehaviour(void); void InitialiseDiscBehaviour(STRATEGYBLOCK *target,SECTION_DATA *disc_section); static void InitialiseAlienSpitBehaviour(void); -static void InitialiseFragmentationGrenade(VECTORCH *originPtr); STRATEGYBLOCK* InitialiseEnergyBoltBehaviourKernel(VECTORCH *position,MATRIXCH *orient, int player, DAMAGE_PROFILE *damage, int factor); static void InitialiseFrisbeeBehaviour(void); STRATEGYBLOCK* InitialiseFrisbeeBoltBehaviourKernel(VECTORCH *position,MATRIXCH *orient, int player, DAMAGE_PROFILE *damage, int factor); @@ -80,6 +84,8 @@ STRATEGYBLOCK *PredDisc_GetNewTarget(PC_PRED_DISC_BEHAV_BLOCK *bptr,VECTORCH *di int ObjectIsOnScreen(DISPLAYBLOCK *object); void Frisbee_Hit_Environment(STRATEGYBLOCK *sbPtr,COLLISIONREPORT *reportPtr); void Crunch_Position_For_Players_Weapon(VECTORCH *position); +static int SBForcesBounce(STRATEGYBLOCK *sbPtr); +static int Reflect(VECTORCH *Incident, VECTORCH *Normal, EULER *Output); /*KJL**************************************************************************************** * G L O B A L S * @@ -240,11 +246,10 @@ int FrisbeeSight_FrustrumReject(STRATEGYBLOCK *sbPtr,VECTORCH *localOffset,STRAT )) { /* 90 horizontal, 90 vertical? */ #else - if ((fixed_offset.vx <0) && ( - ((fixed_offset.vy) < (-fixed_offset.vx))&&(fixed_offset.vy>=0)) - ||((fixed_offset.vy<0)&&((-fixed_offset.vy) < (-fixed_offset.vx)) - )&&( - (fixed_offset.vz>0) + if (((fixed_offset.vx <0) && ( + ((fixed_offset.vy) < (-fixed_offset.vx))&&(fixed_offset.vy>=0))) + || (((fixed_offset.vy<0)&&((-fixed_offset.vy) < (-fixed_offset.vx)) + )&&((fixed_offset.vz>0)) )) { /* 90 horizontal, 90 vertical? */ #endif @@ -468,7 +473,6 @@ STRATEGYBLOCK* CreateFrisbeeKernel(VECTORCH *position, MATRIXCH *orient, int fro /* Create HModel. */ { SECTION *root_section; - SECTION_DATA *local_disc; root_section=GetNamedHierarchyFromLibrary("mdisk","Mdisk"); @@ -483,6 +487,7 @@ STRATEGYBLOCK* CreateFrisbeeKernel(VECTORCH *position, MATRIXCH *orient, int fro dispPtr->HModelControlBlock=&fblk->HModelController; #if 0 + SECTION_DATA *local_disc; /* Match disks. */ local_disc=GetThisSectionData(bblk->HModelController.section_data,"disk"); local_disc->World_Offset=disc_section->World_Offset; @@ -1345,6 +1350,7 @@ extern void ClusterGrenadeBehaviour(STRATEGYBLOCK *sbPtr) } } +#if 0 static void InitialiseFragmentationGrenade(VECTORCH *originPtr) { DISPLAYBLOCK *dispPtr; @@ -1405,6 +1411,8 @@ static void InitialiseFragmentationGrenade(VECTORCH *originPtr) if(AvP.Network != I_No_Network) AddNetGameObjectID(dispPtr->ObStrategyBlock); #endif } +#endif + extern void ProximityGrenadeBehaviour(STRATEGYBLOCK *sbPtr) { DYNAMICSBLOCK *dynPtr = sbPtr->DynPtr; @@ -3391,7 +3399,7 @@ static void GetGunDirection(VECTORCH *gunDirectionPtr, VECTORCH *positionPtr) Normalise(gunDirectionPtr); } -int Reflect(VECTORCH *Incident, VECTORCH *Normal, EULER *Output) { +static int Reflect(VECTORCH *Incident, VECTORCH *Normal, EULER *Output) { int dot,retval; VECTORCH outVec,normInc; @@ -3420,7 +3428,7 @@ int Reflect(VECTORCH *Incident, VECTORCH *Normal, EULER *Output) { return(retval); } -int SBForcesBounce(STRATEGYBLOCK *sbPtr) { +static int SBForcesBounce(STRATEGYBLOCK *sbPtr) { if (sbPtr==NULL) { return(0); diff --git a/src/avp/bh_weap.h b/src/avp/bh_weap.h index 5d36349..ace01a1 100644 --- a/src/avp/bh_weap.h +++ b/src/avp/bh_weap.h @@ -27,6 +27,7 @@ void FirePredPistolFlechettes(VECTORCH *base_position,VECTORCH *base_offset,MATR extern void FrisbeeEnergyBoltBehaviour(STRATEGYBLOCK *sbPtr); extern int SBIsEnvironment(STRATEGYBLOCK *sbPtr); +int ValidTargetForProxMine(STRATEGYBLOCK *obstaclePtr); typedef struct OneShotBehaviourType { diff --git a/src/avp/bh_xeno.c b/src/avp/bh_xeno.c index c4775d7..4f97944 100644 --- a/src/avp/bh_xeno.c +++ b/src/avp/bh_xeno.c @@ -39,6 +39,7 @@ #include "bh_alien.h" #include "bh_corpse.h" #include "bh_dummy.h" +#include "game_statistics.h" #define UseLocalAssert Yes #include "ourasert.h" @@ -4124,7 +4125,9 @@ void Execute_Xeno_TurnToFace_Far(STRATEGYBLOCK *sbPtr) void Execute_Xeno_Follow_Far(STRATEGYBLOCK *sbPtr) { XENO_STATUS_BLOCK *xenoStatusPointer; +#if FAR_XENO_ACTIVITY int anglex,angley; +#endif LOCALASSERT(sbPtr); xenoStatusPointer = (XENO_STATUS_BLOCK *)(sbPtr->SBdataptr); @@ -4319,7 +4322,9 @@ void Execute_Xeno_Return_Far(STRATEGYBLOCK *sbPtr) void Execute_Xeno_Avoidance_Far(STRATEGYBLOCK *sbPtr) { XENO_STATUS_BLOCK *xenoStatusPointer; +#if FAR_XENO_ACTIVITY int anglex,angley; +#endif LOCALASSERT(sbPtr); xenoStatusPointer = (XENO_STATUS_BLOCK *)(sbPtr->SBdataptr); diff --git a/src/avp/bonusabilities.c b/src/avp/bonusabilities.c index 206b78c..1e99931 100644 --- a/src/avp/bonusabilities.c +++ b/src/avp/bonusabilities.c @@ -184,7 +184,7 @@ static DISPLAYBLOCK* CreateGrapplingHook(void) } -extern void GrapplingHookBehaviour(STRATEGYBLOCK *sbPtr) +void GrapplingHookBehaviour(STRATEGYBLOCK *sbPtr) { DYNAMICSBLOCK *dynPtr = sbPtr->DynPtr; diff --git a/src/avp/bonusabilities.h b/src/avp/bonusabilities.h index f701fae..65b9ec0 100644 --- a/src/avp/bonusabilities.h +++ b/src/avp/bonusabilities.h @@ -6,3 +6,4 @@ extern void ActivateGrapplingHook(void); extern void HandleGrapplingHookForces(void); extern void RenderGrapplingHook(void); extern void DisengageGrapplingHook(void); +void GrapplingHookBehaviour(STRATEGYBLOCK *sbPtr); diff --git a/src/avp/cheatmodes.c b/src/avp/cheatmodes.c index 812c31a..bf5fc20 100644 --- a/src/avp/cheatmodes.c +++ b/src/avp/cheatmodes.c @@ -14,6 +14,8 @@ int CheatMode_Environment=0; extern void CheatMode_GetNextAllowedSpecies(int *speciesPtr, int searchForward); extern void CheatMode_GetNextAllowedEnvironment(int *environmentPtr, int searchForward); extern void CheatMode_CheckOptionsAreValid(void); +static int ThereIsAnAllowedEnvironment(void); +static int EnvironmentPlayableBySpecies(int environment); #define NUMBER_OF_ENVIRONMENTS (MAX_NO_OF_MARINE_EPISODES+MAX_NO_OF_PREDATOR_EPISODES+MAX_NO_OF_ALIEN_EPISODES) #define NUMBER_OF_SPECIES 3 diff --git a/src/avp/comp_map.c b/src/avp/comp_map.c index 83fcee1..3f937e0 100644 --- a/src/avp/comp_map.c +++ b/src/avp/comp_map.c @@ -180,7 +180,7 @@ MAPBLOCK6 Term_Type6 = { MAPBLOCK8 Player_and_Camera_Type8[] = { #if SupportModules /* Ship */ - + { MapType_Player, I_ShapeMarinePlayer, /*mainshapelist position 0*/ @@ -188,8 +188,8 @@ MAPBLOCK8 Player_and_Camera_Type8[] = { /* MapType_Camera, */ - 0, 0, 0, /* Loc */ - 0, 3062, 0, /* Orient */ + {0, 0, 0}, /* Loc */ + {0, 3062, 0}, /* Orient */ ObFlag_MultLSrc |0 @@ -227,7 +227,7 @@ MAPBLOCK8 Player_and_Camera_Type8[] = { 0, /* MapMass */ 0,0,0, /* MapNewtonV */ #endif - 0,0,0, /* MapOrigin */ + {0,0,0}, /* MapOrigin */ 0, /* MapSimShapes */ 0, /* MapViewType */ @@ -235,8 +235,8 @@ MAPBLOCK8 Player_and_Camera_Type8[] = { 0, /* MapMPtr */ 0, /* MapDPtr */ - 0,0,0, /* MapMOffset */ - + {0,0,0} /* MapMOffset */ + }, /****************************************************************************/ @@ -295,10 +295,11 @@ MAPBLOCK8 Player_and_Camera_Type8[] = { /****************************************************************************/ /* Map End */ #endif /*SupportModules*/ + { MapType_Term, /* Map Type Function */ 0, /* Shape */ - 0,0,0, /* Loc */ - 0,0,0, /* Orient */ + {0,0,0}, /* Loc */ + {0,0,0}, /* Orient */ 0, /* Flags 1 */ 0, /* Flags 2 */ 0, /* Flags 3 */ @@ -316,13 +317,13 @@ MAPBLOCK8 Player_and_Camera_Type8[] = { 0, /* MapMass */ 0,0,0, /* MapNewtonV */ #endif - 0,0,0, /* MapOrigin */ + {0,0,0}, /* MapOrigin */ 0, /* MapSimShapes */ 0, /* MapViewType */ 0, /* MapMPtr */ 0, /* MapDPtr */ - 0,0,0, /* MapMOffset */ - + {0,0,0} /* MapMOffset */ + } }; diff --git a/src/avp/davehook.cpp b/src/avp/davehook.cpp index b49cf60..c55941d 100644 --- a/src/avp/davehook.cpp +++ b/src/avp/davehook.cpp @@ -301,7 +301,9 @@ void DAVEHOOK_Init(void) { +#if 0 static SCString* pSCString_TestLeak = new SCString("this is a test memory leak"); +#endif MissionHacks :: TestInit(); diff --git a/src/avp/dynamics.c b/src/avp/dynamics.c index 96afed8..edb5ae9 100644 --- a/src/avp/dynamics.c +++ b/src/avp/dynamics.c @@ -165,6 +165,7 @@ static void MakeStaticBoundingBoxForNRBB(STRATEGYBLOCK *sbPtr); static int RelocateNRBB(STRATEGYBLOCK *sbPtr); static void FindLandscapePolygonsInObjectsVicinity(STRATEGYBLOCK *sbPtr); +#if 0 static signed int DistanceMovedBeforeNRBBHitsNegYPolygon(DYNAMICSBLOCK *dynPtr, struct ColPolyTag *polyPtr, int distanceToMove); static signed int DistanceMovedBeforeNRBBHitsPosYPolygon(DYNAMICSBLOCK *dynPtr, struct ColPolyTag *polyPtr, int distanceToMove); static signed int DistanceMovedBeforeNRBBHitsNegXPolygon(DYNAMICSBLOCK *dynPtr, struct ColPolyTag *polyPtr, int distanceToMove); @@ -172,6 +173,7 @@ static signed int DistanceMovedBeforeNRBBHitsPosXPolygon(DYNAMICSBLOCK *dynPtr, static signed int DistanceMovedBeforeNRBBHitsNegZPolygon(DYNAMICSBLOCK *dynPtr, struct ColPolyTag *polyPtr, int distanceToMove); static signed int DistanceMovedBeforeNRBBHitsPosZPolygon(DYNAMICSBLOCK *dynPtr, struct ColPolyTag *polyPtr, int distanceToMove); static void TestForValidMovement(STRATEGYBLOCK *sbPtr); +#endif static int MoveObject(STRATEGYBLOCK *sbPtr); static void TestForValidPlayerStandUp(STRATEGYBLOCK *sbPtr); static int SteppingUpIsValid(STRATEGYBLOCK *sbPtr); @@ -188,7 +190,6 @@ static int (*RelocationIsValid)(STRATEGYBLOCK *sbPtr); static void MovePlatformLift(STRATEGYBLOCK *sbPtr); static void FindLandscapePolygonsInParticlesPath(PARTICLE *particlePtr, VECTORCH *displacementPtr); -void AddEffectsOfForceGenerators(VECTORCH *positionPtr, VECTORCH *impulsePtr, int mass); VECTORCH *GetNearestModuleTeleportPoint(MODULE* thisModulePtr, VECTORCH* positionPtr); @@ -1570,17 +1571,13 @@ static int MoveObject(STRATEGYBLOCK *sbPtr) if (!wentUpStep) { - STRATEGYBLOCK *obstacleSBPtr; + STRATEGYBLOCK *obstacleSBPtr = 0; if (polygonPtr->ParentObject) - if (polygonPtr->ParentObject->ObStrategyBlock) - { - obstacleSBPtr = polygonPtr->ParentObject->ObStrategyBlock; - } - else - { - obstacleSBPtr = 0; - } + if (polygonPtr->ParentObject->ObStrategyBlock) + { + obstacleSBPtr = polygonPtr->ParentObject->ObStrategyBlock; + } DistanceToStepUp = 0; @@ -3479,6 +3476,7 @@ static int AxisToIgnore(VECTORCH *normal) } } +#if 0 static void TestForValidMovement(STRATEGYBLOCK *sbPtr) { #if 1 @@ -3503,6 +3501,7 @@ static void TestForValidMovement(STRATEGYBLOCK *sbPtr) } #endif } +#endif static int RelocateSphere(STRATEGYBLOCK *sbPtr) { diff --git a/src/avp/dynamics.h b/src/avp/dynamics.h index ca71b50..89ae69f 100644 --- a/src/avp/dynamics.h +++ b/src/avp/dynamics.h @@ -53,5 +53,6 @@ extern void GetPolygonNormal(struct ColPolyTag *polyPtr); extern EULER HeadOrientation; extern int ParticleDynamics(PARTICLE *particlePtr, VECTORCH *obstacleNormalPtr, int *moduleIndexPtr); +void AddEffectsOfForceGenerators(VECTORCH *positionPtr, VECTORCH *impulsePtr, int mass); #endif /* end of preprocessor condition for file wrapping */ diff --git a/src/avp/game.c b/src/avp/game.c index 6090860..0c5b03f 100644 --- a/src/avp/game.c +++ b/src/avp/game.c @@ -5,6 +5,8 @@ #include "stratdef.h" #include "gamedef.h" +#include "game_statistics.h" +#include "messagehistory.h" #include "dynblock.h" #include "dynamics.h" @@ -42,6 +44,7 @@ #include "pldnet.h" #include "kshape.h" +#include "game.h" /* KJL 16:00:13 11/22/96 - One of my evil experiments.... */ #define PENTIUM_PROFILING_ON 0 diff --git a/src/avp/game.h b/src/avp/game.h new file mode 100644 index 0000000..e78ee21 --- /dev/null +++ b/src/avp/game.h @@ -0,0 +1,6 @@ +#ifndef GAME_H +#define GAME_H + +void TimeStampedMessage(char *stringPtr); + +#endif diff --git a/src/avp/game_statistics.c b/src/avp/game_statistics.c index a2725de..c0937fc 100644 --- a/src/avp/game_statistics.c +++ b/src/avp/game_statistics.c @@ -12,6 +12,7 @@ #include "bh_debri.h" #include "bh_weap.h" #include "pldghost.h" +#include "opengl.h" #define UseLocalAssert Yes #include "ourasert.h" @@ -40,7 +41,6 @@ extern int AlienEpisodeToPlay; extern char LevelName[]; extern AvP_Level_Target_Desc LevelStatsTargets[I_MaxDifficulties][AVP_ENVIRONMENT_END_OF_LIST]; -extern void DoStatisticsScreen(int completed_level); /* Default structure: */ AvP_GameStats_Stored DefaultLevelGameStats = { @@ -78,7 +78,7 @@ AvP_GameStats_Stored DefaultLevelGameStats = { #define NEWLINE_SPACING ((ScreenDescriptorBlock.SDB_Height<400)? 12:15) -extern void CurrentGameStats_Initialise(void) +void CurrentGameStats_Initialise(void) { int i; for (i=0; iObStrategyBlock->SBdataptr); @@ -289,12 +294,14 @@ static void GunZ(int z) twPtr->RestPosition.vz = z; } +#endif static void MakeRotatingLight(void) { MakeLightElement(&Player->ObWorld,LIGHTELEMENT_ROTATING); } +#if CONSOLE_DEBUGGING_COMMANDS_ACTIVATED static void RestartMultiplayer(void) { /* obviously have to be in a network game... */ @@ -309,6 +316,7 @@ static void CompleteLevel(void) { AvP.LevelCompleted = 1; } +#endif void CreateGameSpecificConsoleCommands(void) diff --git a/src/avp/hmodel.c b/src/avp/hmodel.c index c7f4d2a..e7f37fc 100644 --- a/src/avp/hmodel.c +++ b/src/avp/hmodel.c @@ -27,6 +27,8 @@ #include "load_shp.h" #include "plat_shp.h" #include "avp_userprofile.h" +#include "maths.h" +#include "opengl.h" #define UseLocalAssert Yes #include "ourasert.h" @@ -4940,7 +4942,7 @@ void LoadHierarchy(SAVE_BLOCK_HEADER* header,HMODELCONTROLLER* controller) { SAVE_BLOCK_HEADER* delta_header; - while(delta_header = GetNextBlockIfOfType(SaveBlock_HierarchyDelta)) + while((delta_header = GetNextBlockIfOfType(SaveBlock_HierarchyDelta))) { LoadHierarchyDelta(delta_header,controller); } diff --git a/src/avp/hud.c b/src/avp/hud.c index 68efcf3..952717a 100644 --- a/src/avp/hud.c +++ b/src/avp/hud.c @@ -35,6 +35,8 @@ #include "pldghost.h" #include "d3d_render.h" +#include "kshape.h" +#include "opengl.h" #include "bh_ais.h" #include "bh_alien.h" @@ -49,6 +51,7 @@ #include "pldnet.h" #include "avp_userprofile.h" #include "hud.h" +#include "chnkload.h" extern int ScanDrawMode; @@ -1881,7 +1884,6 @@ void DrawWristDisplay(void) { extern HMODELCONTROLLER PlayersWeaponHModelController; SECTION_DATA *sectionPtr; - int i; char *sectionName[]= {"Dum bar display","Dum 1 display","Dum 2 display","Dum 3 display","Dum 4 display"}; @@ -1890,7 +1892,7 @@ void DrawWristDisplay(void) RenderPredatorPlasmaCasterCharge(PlayerStatusPtr->PlasmaCasterCharge, §ionPtr->World_Offset, §ionPtr->SecMat); #if 0 - for (i=0; i<5; i++) + for (int i=0; i<5; i++) { DECAL CurrentDecal; extern MODULE *playerPherModule; diff --git a/src/avp/inventry.c b/src/avp/inventry.c index cc3188f..dc34e60 100644 --- a/src/avp/inventry.c +++ b/src/avp/inventry.c @@ -33,7 +33,6 @@ rounds fired etc etc etc*/ void InitialisePlayersInventory(PLAYER_STATUS *playerStatusPtr); void MaintainPlayersInventory(void); void SetPlayerSecurityClearance(STRATEGYBLOCK *sbPtr, unsigned int securityLevel); -int SlotForThisWeapon(enum WEAPON_ID weaponID); static int AbleToPickupAmmo(enum AMMO_ID ammoID); static int AbleToPickupWeapon(enum WEAPON_ID weaponID); diff --git a/src/avp/inventry.h b/src/avp/inventry.h index 77bd267..5c397ea 100644 --- a/src/avp/inventry.h +++ b/src/avp/inventry.h @@ -1,3 +1,6 @@ +#ifndef INVENTRY_H +#define INVENTRY_H + /*KJL***************************************************** * INVENTRY.H - contains externs to the fns in INVENTRY.C * *****************************************************KJL*/ @@ -13,6 +16,7 @@ extern void MaintainPlayersInventory(void); ------------------------------------------------------------------------------*/ extern void SetPlayerSecurityClearance(STRATEGYBLOCK *sbPtr, unsigned int securityLevel); extern int ReturnPlayerSecurityClearance(STRATEGYBLOCK *sbPtr, unsigned int securityLevel); +int SlotForThisWeapon(enum WEAPON_ID weaponID); @@ -34,3 +38,5 @@ typedef struct player_starting_equipment extern PLAYER_STARTING_EQUIPMENT StartingEquipment; #define PISTOL_INFINITE_AMMO (netGameData.pistolInfiniteAmmo) + +#endif diff --git a/src/avp/messagehistory.c b/src/avp/messagehistory.c index d53528c..6c46413 100644 --- a/src/avp/messagehistory.c +++ b/src/avp/messagehistory.c @@ -4,6 +4,7 @@ #include "stratdef.h" #include "gamedef.h" #include "language.h" +#include "messagehistory.h" #define MAX_NO_OF_MESSAGES_IN_HISTORY 64 diff --git a/src/avp/messagehistory.h b/src/avp/messagehistory.h new file mode 100644 index 0000000..d598fb0 --- /dev/null +++ b/src/avp/messagehistory.h @@ -0,0 +1,8 @@ +#ifndef MESSAGEHISTORY_H +#define MESSAGEHISTORY_H + +void MessageHistory_DisplayPrevious(void); +void MessageHistory_Initialise(void); +void MessageHistory_Maintain(void); + +#endif diff --git a/src/avp/paintball.c b/src/avp/paintball.c index 671f16f..e5dc2f8 100644 --- a/src/avp/paintball.c +++ b/src/avp/paintball.c @@ -2,6 +2,7 @@ #include "3dc.h" #include "module.h" #include "inline.h" +#include "kshape.h" #include "paintball.h" #include "showcmds.h" diff --git a/src/avp/paintball.h b/src/avp/paintball.h index 7f90860..07db072 100644 --- a/src/avp/paintball.h +++ b/src/avp/paintball.h @@ -30,5 +30,9 @@ extern void PaintBallMode_DrawCurrentDecalAtTarget(void); extern void PaintBallMode_ChangeSelectedDecalID(int delta); extern void PaintBallMode_ChangeSize(int delta); extern void PaintBallMode_AddDecal(void); +extern void PaintBallMode_ChangeSubclass(int delta); +extern void PaintBallMode_Randomise(void); +extern void PaintBallMode_RemoveDecal(void); +extern void PaintBallMode_Rotate(void); #endif diff --git a/src/avp/particle.c b/src/avp/particle.c index 757b43e..192a393 100644 --- a/src/avp/particle.c +++ b/src/avp/particle.c @@ -24,15 +24,19 @@ #include "sphere.h" #include "bh_rubberduck.h" #include "bh_weap.h" +#include "weapons.h" #include "avpview.h" #include "pldghost.h" #include "detaillevels.h" #include "psnd.h" +#include "kzsort.h" #include "avp_userprofile.h" #define UseLocalAssert Yes #include "ourasert.h" #include "savegame.h" #include "los.h" +#include "chnkload.h" +#include "maths.h" #include diff --git a/src/avp/particle.h b/src/avp/particle.h index 9043d06..85e3a80 100644 --- a/src/avp/particle.h +++ b/src/avp/particle.h @@ -196,6 +196,10 @@ extern void MakeFocusedExplosion(VECTORCH *originPtr, VECTORCH *blastPositionPtr extern void MakeElectricalExplosion(VECTORCH *positionPtr); void MakeSprayOfSparks(MATRIXCH *orientationPtr, VECTORCH *positionPtr); void PlayerPheromoneTrail(DYNAMICSBLOCK *dynPtr); +void MakeGrenadeTrailParticles(VECTORCH *prevPositionPtr, VECTORCH *positionPtr); +void MakePlasmaTrailParticles(DYNAMICSBLOCK *dynPtr, int number); +void NewTrailPoint(DYNAMICSBLOCK *dynPtr); +void TimeScaleThingy(); #define MAX_NO_OF_BLOOD_PARTICLES 500 diff --git a/src/avp/pmove.c b/src/avp/pmove.c index d5bec6a..f0db3f1 100644 --- a/src/avp/pmove.c +++ b/src/avp/pmove.c @@ -1696,7 +1696,7 @@ static void LoadInMovementValues(void) -extern void ThrowAFlare(void) +void ThrowAFlare(void) { extern int NumberOfFlaresActive; diff --git a/src/avp/pmove.h b/src/avp/pmove.h index ac4fc00..a0637d7 100644 --- a/src/avp/pmove.h +++ b/src/avp/pmove.h @@ -73,6 +73,8 @@ typedef enum player_morph_state extern void InitPlayerMovementData(STRATEGYBLOCK* sbPtr); extern void PlayerBehaviour(STRATEGYBLOCK* sbptr); extern void ExecuteFreeMovement(STRATEGYBLOCK* sbPtr); +void ThrowAFlare(void); +void StartPlayerTaunt(void); #ifdef __cplusplus diff --git a/src/avp/weapons.c b/src/avp/weapons.c index 6ddb8ae..c00c372 100644 --- a/src/avp/weapons.c +++ b/src/avp/weapons.c @@ -297,7 +297,6 @@ void HandleWeaponImpact(VECTORCH *positionPtr, STRATEGYBLOCK *sbPtr, enum AMMO_I void FireAutoGun(STRATEGYBLOCK *sbPtr); -void MakeMatrixFromDirection(VECTORCH *directionPtr, MATRIXCH *matrixPtr); void FindEndOfShape(VECTORCH* endPositionPtr, int shapeIndex); static void CalculateTorque(EULER *rotationPtr, VECTORCH *directionPtr, STRATEGYBLOCK *sbPtr); static void CalculateTorqueAtPoint(EULER *rotationPtr, VECTORCH *pointPtr, STRATEGYBLOCK *sbPtr); diff --git a/src/avp/win95/d3d_hud.h b/src/avp/win95/d3d_hud.h index 995e29d..b945831 100644 --- a/src/avp/win95/d3d_hud.h +++ b/src/avp/win95/d3d_hud.h @@ -64,5 +64,7 @@ extern void D3D_BlitWhiteChar(int x, int y, unsigned char c); /* KJL 17:55:48 18/04/98 - called by HUD.c */ extern void Render_HealthAndArmour(unsigned int health, unsigned int armour); extern void Render_MarineAmmo(enum TEXTSTRING_ID ammoText, enum TEXTSTRING_ID magazinesText, unsigned int magazines, enum TEXTSTRING_ID roundsText, unsigned int rounds, int primaryAmmo); +void D3D_DrawHUDPredatorDigit(HUDCharDesc *charDescPtr, int scale); +void Draw_HUDImage(HUDImageDesc *imageDescPtr); #endif diff --git a/src/avp/win95/frontend/avp_intro.cpp b/src/avp/win95/frontend/avp_intro.cpp index 263ab37..ee26dfc 100644 --- a/src/avp/win95/frontend/avp_intro.cpp +++ b/src/avp/win95/frontend/avp_intro.cpp @@ -6,6 +6,7 @@ extern "C" #include "inline.h" //#include "smacker.h" #include "avp_menus.h" + #include "avp_intro.h" extern int NormalFrameTime; extern int GotAnyKey; extern int DebouncedGotAnyKey; diff --git a/src/avp/win95/frontend/avp_intro.h b/src/avp/win95/frontend/avp_intro.h new file mode 100644 index 0000000..09ce400 --- /dev/null +++ b/src/avp/win95/frontend/avp_intro.h @@ -0,0 +1,6 @@ +#ifndef AVP_INTRO_H +#define AVP_INTRO_H + +void PlayMenuMusic(void); + +#endif diff --git a/src/avp/win95/frontend/avp_menudata.c b/src/avp/win95/frontend/avp_menudata.c index c2b391e..238814e 100644 --- a/src/avp/win95/frontend/avp_menudata.c +++ b/src/avp/win95/frontend/avp_menudata.c @@ -91,66 +91,66 @@ static AVPMENU_ELEMENT AvPMenu_MainMenu[] = #else static AVPMENU_ELEMENT AvPMenu_MainMenu[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER, AVPMENU_SINGLEPLAYER,0,0, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_STARTSINGLEPLAYER}, {AVPMENU_SINGLEPLAYER},{0},{0}, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, #if SAVE_GAME_ON - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LOADGAME, AVPMENU_LOADGAME, 0,0, TEXTSTRING_LOADGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LOADGAME}, {AVPMENU_LOADGAME}, {0},{0}, TEXTSTRING_LOADGAME_HELP}, #endif - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_MULTIPLAYER, AVPMENU_MULTIPLAYER_CONNECTION,0,0, TEXTSTRING_MAINMENU_MULTIPLAYER_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_SKIRMISH, AVPMENU_MULTIPLAYER_SKIRMISH,0,0, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS, AVPMENU_OPTIONS,0,0, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_AVOPTIONS_TITLE, AVPMENU_MAINMENUAVOPTIONS,0,0, TEXTSTRING_AVOPTIONS_TITLE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE, AVPMENU_USERPROFILESELECT,0,0, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_EXITGAME, AVPMENU_EXITGAME,0,0, TEXTSTRING_MAINMENU_EXITGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_MULTIPLAYER}, {AVPMENU_MULTIPLAYER_CONNECTION},{0},{0},TEXTSTRING_MAINMENU_MULTIPLAYER_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_SKIRMISH}, {AVPMENU_MULTIPLAYER_SKIRMISH},{0},{0}, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS}, {AVPMENU_OPTIONS},{0},{0}, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_AVOPTIONS_TITLE}, {AVPMENU_MAINMENUAVOPTIONS},{0},{0}, TEXTSTRING_AVOPTIONS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_CHANGEUSERPROFILE}, {AVPMENU_USERPROFILESELECT},{0},{0}, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_EXITGAME}, {AVPMENU_EXITGAME},{0},{0}, TEXTSTRING_MAINMENU_EXITGAME_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; #endif static AVPMENU_ELEMENT AvPMenu_MainMenu_WithCheats[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER, AVPMENU_SINGLEPLAYER,0,0, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_STARTSINGLEPLAYER}, {AVPMENU_SINGLEPLAYER},{0},{0}, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, #if SAVE_GAME_ON - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LOADGAME, AVPMENU_LOADGAME, 0,0, TEXTSTRING_LOADGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LOADGAME}, {AVPMENU_LOADGAME},{0},{0}, TEXTSTRING_LOADGAME_HELP}, #endif - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_MULTIPLAYER, AVPMENU_MULTIPLAYER_CONNECTION,0,0, TEXTSTRING_MAINMENU_MULTIPLAYER_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_SKIRMISH, AVPMENU_MULTIPLAYER_SKIRMISH,0,0, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS, AVPMENU_OPTIONS,0,0, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_AVOPTIONS_TITLE, AVPMENU_MAINMENUAVOPTIONS,0,0, TEXTSTRING_AVOPTIONS_TITLE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE, AVPMENU_USERPROFILESELECT,0,0, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_CHEATOPTIONS, AVPMENU_CHEATOPTIONS,0,0, TEXTSTRING_MAINMENU_CHEATOPTIONS_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_EXITGAME, AVPMENU_EXITGAME,0,0, TEXTSTRING_MAINMENU_EXITGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_MULTIPLAYER}, {AVPMENU_MULTIPLAYER_CONNECTION},{0},{0},TEXTSTRING_MAINMENU_MULTIPLAYER_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_SKIRMISH}, {AVPMENU_MULTIPLAYER_SKIRMISH},{0},{0}, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS}, {AVPMENU_OPTIONS},{0},{0}, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_AVOPTIONS_TITLE}, {AVPMENU_MAINMENUAVOPTIONS},{0},{0}, TEXTSTRING_AVOPTIONS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_CHANGEUSERPROFILE}, {AVPMENU_USERPROFILESELECT},{0},{0}, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_CHEATOPTIONS}, {AVPMENU_CHEATOPTIONS},{0},{0}, TEXTSTRING_MAINMENU_CHEATOPTIONS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_EXITGAME}, {AVPMENU_EXITGAME},{0},{0}, TEXTSTRING_MAINMENU_EXITGAME_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Debug_MainMenu[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER, AVPMENU_SINGLEPLAYER,0,0, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_STARTSINGLEPLAYER}, {AVPMENU_SINGLEPLAYER},{0},{0}, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, #if SAVE_GAME_ON - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LOADGAME, AVPMENU_LOADGAME, 0,0, TEXTSTRING_LOADGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LOADGAME}, {AVPMENU_LOADGAME}, {0},{0}, TEXTSTRING_LOADGAME_HELP}, #endif - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_SKIRMISH, AVPMENU_MULTIPLAYER_SKIRMISH,0,0, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS, AVPMENU_OPTIONS,0,0, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_AVOPTIONS_TITLE, AVPMENU_MAINMENUAVOPTIONS,0,0, TEXTSTRING_AVOPTIONS_TITLE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE, AVPMENU_USERPROFILESELECT,0,0, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_EXITGAME, AVPMENU_EXITGAME,0,0, TEXTSTRING_MAINMENU_EXITGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_SKIRMISH}, {AVPMENU_MULTIPLAYER_SKIRMISH},{0},{0}, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS}, {AVPMENU_OPTIONS},{0},{0}, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_AVOPTIONS_TITLE}, {AVPMENU_MAINMENUAVOPTIONS},{0},{0}, TEXTSTRING_AVOPTIONS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_CHANGEUSERPROFILE}, {AVPMENU_USERPROFILESELECT},{0},{0}, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_EXITGAME}, {AVPMENU_EXITGAME},{0},{0}, TEXTSTRING_MAINMENU_EXITGAME_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Debug_MainMenu_WithCheats[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER, AVPMENU_SINGLEPLAYER,0,0, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_STARTSINGLEPLAYER}, {AVPMENU_SINGLEPLAYER},{0},{0}, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER_HELP}, #if SAVE_GAME_ON - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LOADGAME, AVPMENU_LOADGAME, 0,0, TEXTSTRING_LOADGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LOADGAME}, {AVPMENU_LOADGAME}, {0},{0}, TEXTSTRING_LOADGAME_HELP}, #endif - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_SKIRMISH, AVPMENU_MULTIPLAYER_SKIRMISH,0,0, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS, AVPMENU_OPTIONS,0,0, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_AVOPTIONS_TITLE, AVPMENU_MAINMENUAVOPTIONS,0,0, TEXTSTRING_AVOPTIONS_TITLE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE, AVPMENU_USERPROFILESELECT,0,0, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_CHEATOPTIONS, AVPMENU_CHEATOPTIONS,0,0, TEXTSTRING_MAINMENU_CHEATOPTIONS_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_EXITGAME, AVPMENU_EXITGAME,0,0, TEXTSTRING_MAINMENU_EXITGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_SKIRMISH}, {AVPMENU_MULTIPLAYER_SKIRMISH},{0},{0}, TEXTSTRING_MAINMENU_SKIRMISH_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS}, {AVPMENU_OPTIONS},{0},{0}, TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_AVOPTIONS_TITLE}, {AVPMENU_MAINMENUAVOPTIONS},{0},{0}, TEXTSTRING_AVOPTIONS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_CHANGEUSERPROFILE}, {AVPMENU_USERPROFILESELECT},{0},{0}, TEXTSTRING_MAINMENU_CHANGEUSERPROFILE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_CHEATOPTIONS}, {AVPMENU_CHEATOPTIONS},{0},{0}, TEXTSTRING_MAINMENU_CHEATOPTIONS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_EXITGAME}, {AVPMENU_EXITGAME},{0},{0}, TEXTSTRING_MAINMENU_EXITGAME_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_ExitGame[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_NO, AVPMENU_MAIN}, - {AVPMENU_ELEMENT_QUITGAME, TEXTSTRING_YES}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_NO}, {AVPMENU_MAIN}}, + {AVPMENU_ELEMENT_QUITGAME, {TEXTSTRING_YES}}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -158,131 +158,131 @@ static AVPMENU_ELEMENT AvPMenu_ExitGame[] = static AVPMENU_ELEMENT AvPMenu_SinglePlayer[] = { - {AVPMENU_ELEMENT_GOTOMENU_GFX, AVPMENUGFX_ALIEN_LOGO, AVPMENU_ALIENLEVELS,0,0, TEXTSTRING_MAINMENU_SINGLEPLAYER_ALIEN}, - {AVPMENU_ELEMENT_GOTOMENU_GFX, AVPMENUGFX_MARINE_LOGO, AVPMENU_MARINELEVELS,0,0, TEXTSTRING_MAINMENU_SINGLEPLAYER_MARINE}, - {AVPMENU_ELEMENT_GOTOMENU_GFX, AVPMENUGFX_PREDATOR_LOGO, AVPMENU_PREDATORLEVELS,0,0, TEXTSTRING_MAINMENU_SINGLEPLAYER_PREDATOR}, -// {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MAINMENU_TITLE, AVPMENU_MAIN}, + {AVPMENU_ELEMENT_GOTOMENU_GFX, {AVPMENUGFX_ALIEN_LOGO}, {AVPMENU_ALIENLEVELS},{0},{0}, TEXTSTRING_MAINMENU_SINGLEPLAYER_ALIEN}, + {AVPMENU_ELEMENT_GOTOMENU_GFX, {AVPMENUGFX_MARINE_LOGO}, {AVPMENU_MARINELEVELS},{0},{0}, TEXTSTRING_MAINMENU_SINGLEPLAYER_MARINE}, + {AVPMENU_ELEMENT_GOTOMENU_GFX, {AVPMENUGFX_PREDATOR_LOGO}, {AVPMENU_PREDATORLEVELS},{0},{0}, TEXTSTRING_MAINMENU_SINGLEPLAYER_PREDATOR}, +// {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MAINMENU_TITLE}, {AVPMENU_MAIN}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_ControlsOptions[] = { - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS, 1, (int*)&PlayerControlMethods.VAxisIsMovement, TEXTSTRING_MOUSECONTROLS_LOOKING, TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS_HELP}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_MOUSECONTROLS_YSENSITIVITY, DEFAULT_MOUSEY_SENSITIVITY*3, (int*)&PlayerControlMethods.MouseYSensitivity, 0, TEXTSTRING_MOUSECONTROLS_YSENSITIVITY_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS}, {1}, {(int*)&PlayerControlMethods.VAxisIsMovement}, {TEXTSTRING_MOUSECONTROLS_LOOKING}, TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_MOUSECONTROLS_YSENSITIVITY}, {DEFAULT_MOUSEY_SENSITIVITY*3}, {(int*)&PlayerControlMethods.MouseYSensitivity}, {0}, TEXTSTRING_MOUSECONTROLS_YSENSITIVITY_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS, 1, (int*)&PlayerControlMethods.HAxisIsTurning, TEXTSTRING_MOUSECONTROLS_SIDESTEPPING, TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS_HELP}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_MOUSECONTROLS_XSENSITIVITY, DEFAULT_MOUSEX_SENSITIVITY*3, (int*)&PlayerControlMethods.MouseXSensitivity, 0, TEXTSTRING_MOUSECONTROLS_XSENSITIVITY_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS}, {1}, {(int*)&PlayerControlMethods.HAxisIsTurning}, {TEXTSTRING_MOUSECONTROLS_SIDESTEPPING}, TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_MOUSECONTROLS_XSENSITIVITY}, {DEFAULT_MOUSEX_SENSITIVITY*3}, {(int*)&PlayerControlMethods.MouseXSensitivity}, {0}, TEXTSTRING_MOUSECONTROLS_XSENSITIVITY_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_INVERTVERTICAL, 1, (int*)&PlayerControlMethods.FlipVerticalAxis, TEXTSTRING_NO, TEXTSTRING_MOUSECONTROLS_INVERTVERTICAL_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_AUTOCENTRE, 1, (int*)&PlayerControlMethods.AutoCentreOnMovement, TEXTSTRING_NO, TEXTSTRING_MOUSECONTROLS_AUTOCENTRE_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_INVERTVERTICAL}, {1}, {(int*)&PlayerControlMethods.FlipVerticalAxis}, {TEXTSTRING_NO}, TEXTSTRING_MOUSECONTROLS_INVERTVERTICAL_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_AUTOCENTRE}, {1}, {(int*)&PlayerControlMethods.AutoCentreOnMovement},{TEXTSTRING_NO}, TEXTSTRING_MOUSECONTROLS_AUTOCENTRE_HELP}, - {AVPMENU_ELEMENT_KEYCONFIGOK, TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS, AVPMENU_INGAME, 0, 0, TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS_HELP}, - {AVPMENU_ELEMENT_RESETKEYCONFIG, TEXTSTRING_CONTROLS_RESETTODEFAULT, 0, 0, 0, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, + {AVPMENU_ELEMENT_KEYCONFIGOK, {TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS},{AVPMENU_INGAME},{0},{0},TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS_HELP}, + {AVPMENU_ELEMENT_RESETKEYCONFIG, {TEXTSTRING_CONTROLS_RESETTODEFAULT}, {0},{0},{0}, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_JoystickControlsOptions[] = { - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_JOYSTICKCONTROLS_ENABLED, 1, (int*)&PlayerJoystickControlMethods.JoystickEnabled, TEXTSTRING_NO, TEXTSTRING_JOYSTICKCONTROLS_ENABLED_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_JOYSTICKCONTROLS_ENABLED}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickEnabled}, {TEXTSTRING_NO}, TEXTSTRING_JOYSTICKCONTROLS_ENABLED_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS, 1, (int*)&PlayerJoystickControlMethods.JoystickVAxisIsMovement, TEXTSTRING_MOUSECONTROLS_LOOKING, TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS, 1, (int*)&PlayerJoystickControlMethods.JoystickHAxisIsTurning, TEXTSTRING_MOUSECONTROLS_SIDESTEPPING, TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_INVERTVERTICAL, 1, (int*)&PlayerJoystickControlMethods.JoystickFlipVerticalAxis, TEXTSTRING_NO, TEXTSTRING_JOYSTICKCONTROLS_INVERTVERTICAL_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickVAxisIsMovement}, {TEXTSTRING_MOUSECONTROLS_LOOKING}, TEXTSTRING_MOUSECONTROLS_VERTICAL_AXIS_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickHAxisIsTurning}, {TEXTSTRING_MOUSECONTROLS_SIDESTEPPING}, TEXTSTRING_MOUSECONTROLS_HORIZONTAL_AXIS_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_INVERTVERTICAL}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickFlipVerticalAxis}, {TEXTSTRING_NO}, TEXTSTRING_JOYSTICKCONTROLS_INVERTVERTICAL_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_JOYSTICKCONTROLS_POVHATVERTICAL, 1, (int*)&PlayerJoystickControlMethods.JoystickPOVVAxisIsMovement, TEXTSTRING_MOUSECONTROLS_LOOKING, TEXTSTRING_JOYSTICKCONTROLS_POVHATVERTICAL_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_JOYSTICKCONTROLS_POVHATHORIZONTAL,1, (int*)&PlayerJoystickControlMethods.JoystickPOVHAxisIsTurning, TEXTSTRING_MOUSECONTROLS_SIDESTEPPING, TEXTSTRING_JOYSTICKCONTROLS_POVHATHORIZONTAL_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_JOYSTICKCONTROLS_POVHATREVERSED, 1, (int*)&PlayerJoystickControlMethods.JoystickPOVFlipVerticalAxis,TEXTSTRING_NO, TEXTSTRING_JOYSTICKCONTROLS_POVHATREVERSED_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_JOYSTICKCONTROLS_POVHATVERTICAL},{1}, {(int*)&PlayerJoystickControlMethods.JoystickPOVVAxisIsMovement}, {TEXTSTRING_MOUSECONTROLS_LOOKING}, TEXTSTRING_JOYSTICKCONTROLS_POVHATVERTICAL_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_JOYSTICKCONTROLS_POVHATHORIZONTAL},{1}, {(int*)&PlayerJoystickControlMethods.JoystickPOVHAxisIsTurning}, {TEXTSTRING_MOUSECONTROLS_SIDESTEPPING}, TEXTSTRING_JOYSTICKCONTROLS_POVHATHORIZONTAL_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_JOYSTICKCONTROLS_POVHATREVERSED}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickPOVFlipVerticalAxis},{TEXTSTRING_NO}, TEXTSTRING_JOYSTICKCONTROLS_POVHATREVERSED_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_JOYSTICKCONTROLS_RUDDERENABLED, 1, (int*)&PlayerJoystickControlMethods.JoystickRudderEnabled, TEXTSTRING_NO, TEXTSTRING_JOYSTICKCONTROLS_RUDDERENABLED_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_JOYSTICKCONTROLS_RUDDERAXIS, 1, (int*)&PlayerJoystickControlMethods.JoystickRudderAxisIsTurning,TEXTSTRING_MOUSECONTROLS_SIDESTEPPING, TEXTSTRING_JOYSTICKCONTROLS_RUDDERAXIS_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_JOYSTICKCONTROLS_RUDDERENABLED}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickRudderEnabled}, {TEXTSTRING_NO}, TEXTSTRING_JOYSTICKCONTROLS_RUDDERENABLED_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_JOYSTICKCONTROLS_RUDDERAXIS}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickRudderAxisIsTurning},{TEXTSTRING_MOUSECONTROLS_SIDESTEPPING}, TEXTSTRING_JOYSTICKCONTROLS_RUDDERAXIS_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_TRACKERBALL_ENABLED, 1, (int*)&PlayerJoystickControlMethods.JoystickTrackerBallEnabled, TEXTSTRING_NO, TEXTSTRING_TRACKERBALL_ENABLED_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_TRACKERBALL_FLIPVERTICALAXIS, 1, (int*)&PlayerJoystickControlMethods.JoystickTrackerBallFlipVerticalAxis, TEXTSTRING_NO, TEXTSTRING_TRACKERBALL_FLIPVERTICALAXIS_HELP}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_TRACKERBALL_VERTICAL_SENSITIVITY, DEFAULT_TRACKERBALL_VERTICAL_SENSITIVITY*3, (int*)&PlayerJoystickControlMethods.JoystickTrackerBallVerticalSensitivity, 0, TEXTSTRING_MOUSECONTROLS_YSENSITIVITY_HELP}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_TRACKERBALL_HORIZONTAL_SENSITIVITY, DEFAULT_TRACKERBALL_HORIZONTAL_SENSITIVITY*3, (int*)&PlayerJoystickControlMethods.JoystickTrackerBallHorizontalSensitivity, 0, TEXTSTRING_MOUSECONTROLS_YSENSITIVITY_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_TRACKERBALL_ENABLED}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickTrackerBallEnabled}, {TEXTSTRING_NO}, TEXTSTRING_TRACKERBALL_ENABLED_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_TRACKERBALL_FLIPVERTICALAXIS}, {1}, {(int*)&PlayerJoystickControlMethods.JoystickTrackerBallFlipVerticalAxis}, {TEXTSTRING_NO}, TEXTSTRING_TRACKERBALL_FLIPVERTICALAXIS_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_TRACKERBALL_VERTICAL_SENSITIVITY}, {DEFAULT_TRACKERBALL_VERTICAL_SENSITIVITY*3}, {(int*)&PlayerJoystickControlMethods.JoystickTrackerBallVerticalSensitivity}, {0}, TEXTSTRING_MOUSECONTROLS_YSENSITIVITY_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_TRACKERBALL_HORIZONTAL_SENSITIVITY}, {DEFAULT_TRACKERBALL_HORIZONTAL_SENSITIVITY*3}, {(int*)&PlayerJoystickControlMethods.JoystickTrackerBallHorizontalSensitivity}, {0}, TEXTSTRING_MOUSECONTROLS_YSENSITIVITY_HELP}, -// {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MOUSECONTROLS_AUTOCENTRE, 1, (int*)&PlayerControlMethods.AutoCentreOnMovement, TEXTSTRING_NO}, +// {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MOUSECONTROLS_AUTOCENTRE}, {1}, {(int*)&PlayerControlMethods.AutoCentreOnMovement}, TEXTSTRING_NO}, - {AVPMENU_ELEMENT_KEYCONFIGOK, TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS, AVPMENU_INGAME, 0, 0, TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS_HELP}, - {AVPMENU_ELEMENT_RESETKEYCONFIG, TEXTSTRING_CONTROLS_RESETTODEFAULT, 0, 0, 0, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, + {AVPMENU_ELEMENT_KEYCONFIGOK, {TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS}, {AVPMENU_INGAME}, {0},{0},TEXTSTRING_MOUSECONTROLS_SAVETHESESETTINGS_HELP}, + {AVPMENU_ELEMENT_RESETKEYCONFIG,{TEXTSTRING_CONTROLS_RESETTODEFAULT}, {0},{0},{0}, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_VideoModeOptions[] = { - {AVPMENU_ELEMENT_VIDEOMODE, TEXTSTRING_VIDEOOPTIONS_TITLE, 0, 0, 0, TEXTSTRING_VIDEOOPTIONS_TITLE_HELP}, - {AVPMENU_ELEMENT_VIDEOMODEOK, TEXTSTRING_AVOPTIONS_USETHESESETTINGS, AVPMENU_MAINMENUAVOPTIONS, 0, 0, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, + {AVPMENU_ELEMENT_VIDEOMODE, {TEXTSTRING_VIDEOOPTIONS_TITLE}, {0}, {0}, {0}, TEXTSTRING_VIDEOOPTIONS_TITLE_HELP}, + {AVPMENU_ELEMENT_VIDEOMODEOK, {TEXTSTRING_AVOPTIONS_USETHESESETTINGS}, {AVPMENU_MAINMENUAVOPTIONS}, {0}, {0}, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_InGameAVOptions[] = { - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_AVOPTIONS_GAMMASETTING, 255, &RequestedGammaSetting}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_AVOPTIONS_EFFECTSVOLUME, VOLUME_MAX, &EffectsSoundVolume}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_AVOPTIONS_MUSICVOLUME, ONE_FIXED/512, &SmackerSoundVolume}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_AVOPTIONS_CDVOLUME, CDDA_VOLUME_MAX, &CDPlayerVolume}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_AVOPTIONS_INGAMEMOVIES, 1, &MoviesAreActive, TEXTSTRING_NO}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_DETAILLEVELS_TITLE, AVPMENU_DETAILLEVELS}, - {AVPMENU_ELEMENT_SAVESETTINGS, TEXTSTRING_AVOPTIONS_USETHESESETTINGS, 0, 0, 0, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_AVOPTIONS_GAMMASETTING}, {255}, {&RequestedGammaSetting}}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_AVOPTIONS_EFFECTSVOLUME}, {VOLUME_MAX}, {&EffectsSoundVolume}}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_AVOPTIONS_MUSICVOLUME}, {ONE_FIXED/512}, {&SmackerSoundVolume}}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_AVOPTIONS_CDVOLUME}, {CDDA_VOLUME_MAX}, {&CDPlayerVolume}}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_AVOPTIONS_INGAMEMOVIES}, {1}, {&MoviesAreActive}, {TEXTSTRING_NO}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_DETAILLEVELS_TITLE}, {AVPMENU_DETAILLEVELS}}, + {AVPMENU_ELEMENT_SAVESETTINGS, {TEXTSTRING_AVOPTIONS_USETHESESETTINGS},{0},{0},{0}, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_MainMenuAVOptions[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_VIDEOOPTIONS_TITLE, AVPMENU_VIDEOMODE, 0, 0, TEXTSTRING_VIDEOOPTIONS_TITLE_HELP}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_AVOPTIONS_EFFECTSVOLUME, VOLUME_MAX, &EffectsSoundVolume, 0, TEXTSTRING_AVOPTIONS_EFFECTSVOLUME_HELP}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_AVOPTIONS_MUSICVOLUME, ONE_FIXED/512, &SmackerSoundVolume, 0, TEXTSTRING_AVOPTIONS_MUSICVOLUME_HELP}, - {AVPMENU_ELEMENT_SLIDER, TEXTSTRING_AVOPTIONS_CDVOLUME, CDDA_VOLUME_MAX, &CDPlayerVolume, 0, TEXTSTRING_AVOPTIONS_CDVOLUME_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_AVOPTIONS_INGAMEMOVIES, 1, &MoviesAreActive, TEXTSTRING_NO, TEXTSTRING_AVOPTIONS_INGAMEMOVIES_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_AVOPTIONS_INTROOUTROMOVIES, 1, &IntroOutroMoviesAreActive, TEXTSTRING_NO, TEXTSTRING_AVOPTIONS_INTROOUTROMOVIES_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_DETAILLEVELS_TITLE, AVPMENU_DETAILLEVELS, 0, 0, TEXTSTRING_DETAILLEVELS_TITLE_HELP}, - {AVPMENU_ELEMENT_SAVESETTINGS, TEXTSTRING_AVOPTIONS_USETHESESETTINGS, 0, 0, 0, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_VIDEOOPTIONS_TITLE}, {AVPMENU_VIDEOMODE}, {0}, {0}, TEXTSTRING_VIDEOOPTIONS_TITLE_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_AVOPTIONS_EFFECTSVOLUME}, {VOLUME_MAX}, {&EffectsSoundVolume}, {0}, TEXTSTRING_AVOPTIONS_EFFECTSVOLUME_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_AVOPTIONS_MUSICVOLUME}, {ONE_FIXED/512}, {&SmackerSoundVolume}, {0}, TEXTSTRING_AVOPTIONS_MUSICVOLUME_HELP}, + {AVPMENU_ELEMENT_SLIDER, {TEXTSTRING_AVOPTIONS_CDVOLUME}, {CDDA_VOLUME_MAX}, {&CDPlayerVolume}, {0}, TEXTSTRING_AVOPTIONS_CDVOLUME_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_AVOPTIONS_INGAMEMOVIES}, {1}, {&MoviesAreActive}, {TEXTSTRING_NO}, TEXTSTRING_AVOPTIONS_INGAMEMOVIES_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_AVOPTIONS_INTROOUTROMOVIES}, {1}, {&IntroOutroMoviesAreActive}, {TEXTSTRING_NO}, TEXTSTRING_AVOPTIONS_INTROOUTROMOVIES_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_DETAILLEVELS_TITLE}, {AVPMENU_DETAILLEVELS}, {0}, {0}, TEXTSTRING_DETAILLEVELS_TITLE_HELP}, + {AVPMENU_ELEMENT_SAVESETTINGS, {TEXTSTRING_AVOPTIONS_USETHESESETTINGS},{0},{0},{0}, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_UserProfileSelect[] = { - {AVPMENU_ELEMENT_USERPROFILE, TEXTSTRING_MARINELEVELS_1, 0, &UserProfileNumber, 0, TEXTSTRING_USERPROFILE_HELP}, + {AVPMENU_ELEMENT_USERPROFILE, {TEXTSTRING_MARINELEVELS_1}, {0}, {&UserProfileNumber}, {0}, TEXTSTRING_USERPROFILE_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_UserProfileEnterName[] = { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_BLANK, MAX_SIZE_OF_USERS_NAME, NULL}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_CONTINUE, AVPMENU_MAIN}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_BLANK}, {MAX_SIZE_OF_USERS_NAME}, {NULL}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_CONTINUE}, {AVPMENU_MAIN}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_UserProfileDelete[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_NO, AVPMENU_USERPROFILESELECT, 0, 0, TEXTSTRING_USERPROFILE_DELETE_HELP}, - {AVPMENU_ELEMENT_USERPROFILE_DELETE, TEXTSTRING_YES, 0, 0, 0, TEXTSTRING_USERPROFILE_DELETE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_NO}, {AVPMENU_USERPROFILESELECT}, {0}, {0}, TEXTSTRING_USERPROFILE_DELETE_HELP}, + {AVPMENU_ELEMENT_USERPROFILE_DELETE, {TEXTSTRING_YES}, {0}, {0}, {0}, TEXTSTRING_USERPROFILE_DELETE_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_MarineLevels[] = { - {AVPMENU_ELEMENT_MARINEEPISODE, TEXTSTRING_MARINELEVELS_1, MAX_NO_OF_MARINE_EPISODES-1, &MarineEpisodeToPlay}, + {AVPMENU_ELEMENT_MARINEEPISODE, {TEXTSTRING_MARINELEVELS_1}, {MAX_NO_OF_MARINE_EPISODES-1}, {&MarineEpisodeToPlay}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_AlienLevels[] = { - {AVPMENU_ELEMENT_ALIENEPISODE, TEXTSTRING_ALIENLEVELS_1, MAX_NO_OF_ALIEN_EPISODES-1, &AlienEpisodeToPlay}, + {AVPMENU_ELEMENT_ALIENEPISODE, {TEXTSTRING_ALIENLEVELS_1}, {MAX_NO_OF_ALIEN_EPISODES-1}, {&AlienEpisodeToPlay}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_PredatorLevels[] = { - {AVPMENU_ELEMENT_PREDATOREPISODE, TEXTSTRING_PREDATORLEVELS_1, MAX_NO_OF_PREDATOR_EPISODES-1, &PredatorEpisodeToPlay}, + {AVPMENU_ELEMENT_PREDATOREPISODE, {TEXTSTRING_PREDATORLEVELS_1}, {MAX_NO_OF_PREDATOR_EPISODES-1}, {&PredatorEpisodeToPlay}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Multiplayer[]= { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_MULTIPLAYER_PLAYERNAME, NET_PLAYERNAMELENGTH-1, (int*)MP_PlayerName, 0, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_STARTGAME, AVPMENU_MULTIPLAYER_CONFIG, 0, 0, TEXTSTRING_MULTIPLAYER_STARTGAME_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_JOINGAME, AVPMENU_MULTIPLAYERJOINGAME, 0, 0, TEXTSTRING_MULTIPLAYER_JOINGAME_HELP}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_MULTIPLAYER_PLAYERNAME}, {NET_PLAYERNAMELENGTH-1}, {(int*)MP_PlayerName}, {0}, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_STARTGAME}, {AVPMENU_MULTIPLAYER_CONFIG}, {0}, {0}, TEXTSTRING_MULTIPLAYER_STARTGAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_JOINGAME}, {AVPMENU_MULTIPLAYERJOINGAME}, {0}, {0}, TEXTSTRING_MULTIPLAYER_JOINGAME_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} @@ -291,51 +291,51 @@ static AVPMENU_ELEMENT AvPMenu_Multiplayer[]= static AVPMENU_ELEMENT AvPMenu_Multiplayer_LobbiedServer[]= { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_MULTIPLAYER_PLAYERNAME, NET_PLAYERNAMELENGTH-1, (int*)MP_PlayerName, 0, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_CONTINUE, AVPMENU_MULTIPLAYER_CONFIG, 0, 0, TEXTSTRING_MULTIPLAYER_CONTINUETOCONFIG_HELP}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_MULTIPLAYER_PLAYERNAME}, {NET_PLAYERNAMELENGTH-1}, {(int*)MP_PlayerName}, {0}, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_CONTINUE}, {AVPMENU_MULTIPLAYER_CONFIG}, {0}, {0}, TEXTSTRING_MULTIPLAYER_CONTINUETOCONFIG_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Multiplayer_LobbiedClient[]= { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_MULTIPLAYER_PLAYERNAME, NET_PLAYERNAMELENGTH-1, (int*)MP_PlayerName, 0, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, - {AVPMENU_ELEMENT_JOINLOBBIED, TEXTSTRING_MULTIPLAYER_CONTINUE, AVPMENU_MULTIPLAYER_JOINING, 0, 0, TEXTSTRING_MULTIPLAYER_CONTINUETOCONFIG_HELP}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_MULTIPLAYER_PLAYERNAME}, {NET_PLAYERNAMELENGTH-1}, {(int*)MP_PlayerName}, {0}, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, + {AVPMENU_ELEMENT_JOINLOBBIED, {TEXTSTRING_MULTIPLAYER_CONTINUE}, {AVPMENU_MULTIPLAYER_JOINING}, {0}, {0}, TEXTSTRING_MULTIPLAYER_CONTINUETOCONFIG_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Multiplayer_Skirmish[]= { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_MULTIPLAYER_PLAYERNAME, NET_PLAYERNAMELENGTH-1, (int*)MP_PlayerName, 0, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_CONTINUE, AVPMENU_MULTIPLAYER_CONFIG, 0, 0, TEXTSTRING_MULTIPLAYER_CONTINUETOCONFIG_HELP}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_MULTIPLAYER_PLAYERNAME}, {NET_PLAYERNAMELENGTH-1}, {(int*)MP_PlayerName}, {0}, TEXTSTRING_MULTIPLAYER_PLAYERNAME_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_CONTINUE}, {AVPMENU_MULTIPLAYER_CONFIG}, {0}, {0}, TEXTSTRING_MULTIPLAYER_CONTINUETOCONFIG_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_MultiplayerStartGame[]= { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_MULTIPLAYER_SESSIONNAME, MAX_MULTIPLAYER_NAME_LENGTH, (int*)MP_SessionName}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIES, 2, &MP_Species, TEXTSTRING_MULTIPLAYER_MARINE}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESTYLE, 3, &MP_GameStyle, TEXTSTRING_MULTIPLAYER_DEATHMATCH}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ENVIRONMENT, MAX_NO_OF_MULTIPLAYER_EPISODES-1, &MP_LevelNumber, TEXTSTRING_MULTIPLAYERLEVELS_1}, - {AVPMENU_ELEMENT_STARTMPGAME, TEXTSTRING_LEVELSELECT_START, 0}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_MULTIPLAYER_SESSIONNAME}, {MAX_MULTIPLAYER_NAME_LENGTH}, {(int*)MP_SessionName}}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIES}, {2}, {&MP_Species}, {TEXTSTRING_MULTIPLAYER_MARINE}}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESTYLE}, {3}, {&MP_GameStyle}, {TEXTSTRING_MULTIPLAYER_DEATHMATCH}}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ENVIRONMENT}, {MAX_NO_OF_MULTIPLAYER_EPISODES-1}, {&MP_LevelNumber}, {TEXTSTRING_MULTIPLAYERLEVELS_1}}, + {AVPMENU_ELEMENT_STARTMPGAME, {TEXTSTRING_LEVELSELECT_START}, {0}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_MultiplayerJoinGame[]= { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_FINDLOCAL, AVPMENU_MULTIPLAYERSELECTSESSION, 0, 0, TEXTSTRING_MULTIPLAYER_FINDLOCAL_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_OPENADDRESS, AVPMENU_MULTIPLAYEROPENADDRESS, 0, 0, TEXTSTRING_MULTIPLAYER_OPENADDRESS_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_FINDLOCAL}, {AVPMENU_MULTIPLAYERSELECTSESSION}, {0}, {0}, TEXTSTRING_MULTIPLAYER_FINDLOCAL_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_OPENADDRESS}, {AVPMENU_MULTIPLAYEROPENADDRESS}, {0}, {0}, TEXTSTRING_MULTIPLAYER_OPENADDRESS_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_MultiplayerJoinGame2[]= { - {AVPMENU_ELEMENT_DUMMYTEXTFIELD, TEXTSTRING_MULTIPLAYER_SESSIONNAME, MAX_MULTIPLAYER_NAME_LENGTH, (int*)MP_SessionName}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIES, 2, &MP_Species, TEXTSTRING_MULTIPLAYER_MARINE}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESTYLE, 1, &MP_GameStyle, TEXTSTRING_MULTIPLAYER_DEATHMATCH}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ENVIRONMENT, MAX_NO_OF_MULTIPLAYER_EPISODES-1, &MP_LevelNumber, TEXTSTRING_MULTIPLAYERLEVELS_1}, - {AVPMENU_ELEMENT_JOINMPGAME, TEXTSTRING_LEVELSELECT_START, 0}, + {AVPMENU_ELEMENT_DUMMYTEXTFIELD, {TEXTSTRING_MULTIPLAYER_SESSIONNAME}, {MAX_MULTIPLAYER_NAME_LENGTH}, {(int*)MP_SessionName}}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIES}, {2}, {&MP_Species}, {TEXTSTRING_MULTIPLAYER_MARINE}}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESTYLE}, {1}, {&MP_GameStyle}, {TEXTSTRING_MULTIPLAYER_DEATHMATCH}}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ENVIRONMENT}, {MAX_NO_OF_MULTIPLAYER_EPISODES-1}, {&MP_LevelNumber}, {TEXTSTRING_MULTIPLAYERLEVELS_1}}, + {AVPMENU_ELEMENT_JOINMPGAME, {TEXTSTRING_LEVELSELECT_START}, {0}}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -368,155 +368,155 @@ static AVPMENU_ELEMENT AvPMenu_MultiplayerConnection[]= static AVPMENU_ELEMENT AvPMenu_MultiplayerOpenAddress[]= { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_MULTIPLAYER_ADDRESS, MAX_IPADDRESS_LENGTH, (int*)IPAddressString, 0, TEXTSTRING_MPHELP_IPADDRESS}, - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_FILENAME, 20, (int*)IP_Address_Name, 0, TEXTSTRING_MPHELP_ADDRESSDESCRIPTION}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_OKTOCONNECT, AVPMENU_MULTIPLAYERSELECTSESSION, 0, 0, TEXTSTRING_MULTIPLAYER_OKTOCONNECT_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_LOADADDRESS, AVPMENU_MULTIPLAYER_LOADIPADDRESS, 0, 0, TEXTSTRING_MPHELP_LOADADDRESS}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_MULTIPLAYER_ADDRESS}, {MAX_IPADDRESS_LENGTH}, {(int*)IPAddressString}, {0}, TEXTSTRING_MPHELP_IPADDRESS}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_FILENAME}, {20}, {(int*)IP_Address_Name}, {0}, TEXTSTRING_MPHELP_ADDRESSDESCRIPTION}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_OKTOCONNECT}, {AVPMENU_MULTIPLAYERSELECTSESSION}, {0}, {0}, TEXTSTRING_MULTIPLAYER_OKTOCONNECT_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_LOADADDRESS}, {AVPMENU_MULTIPLAYER_LOADIPADDRESS}, {0}, {0}, TEXTSTRING_MPHELP_LOADADDRESS}, {AVPMENU_ELEMENT_ENDOFMENU} }; AVPMENU_ELEMENT AvPMenu_Multiplayer_Config[]= { - {AVPMENU_ELEMENT_RESETMPCONFIG, TEXTSTRING_CONTROLS_RESETTODEFAULT, 0, 0, TEXTSTRING_BLANK, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_LOADCONFIG, AVPMENU_MULTIPLAYER_LOADCONFIG, 0, TEXTSTRING_BLANK, TEXTSTRING_MULTIPLAYER_LOADCONFIG_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_SAVECONFIG, AVPMENU_MULTIPLAYER_SAVECONFIG, 0, TEXTSTRING_BLANK, TEXTSTRING_MULTIPLAYER_SAVECONFIG_HELP}, + {AVPMENU_ELEMENT_RESETMPCONFIG, {TEXTSTRING_CONTROLS_RESETTODEFAULT}, {0}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_LOADCONFIG}, {AVPMENU_MULTIPLAYER_LOADCONFIG}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_MULTIPLAYER_LOADCONFIG_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_SAVECONFIG}, {AVPMENU_MULTIPLAYER_SAVECONFIG}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_MULTIPLAYER_SAVECONFIG_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LEVELSELECT_START, AVPMENU_MULTIPLAYER_SPECIES_HOST, 0, TEXTSTRING_BLANK, TEXTSTRING_LEVELSELECT_START_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LEVELSELECT_START}, {AVPMENU_MULTIPLAYER_SPECIES_HOST}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_LEVELSELECT_START_HELP}, - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_MULTIPLAYER_SESSIONNAME, MAX_MULTIPLAYER_NAME_LENGTH, (int*)MP_SessionName, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_SESSIONNAME}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_MULTIPLAYER_SESSIONNAME}, {MAX_MULTIPLAYER_NAME_LENGTH}, {(int*)MP_SessionName}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_SESSIONNAME}, #ifdef MPLAYER_DEMO - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESTYLE, 1, (int*)&netGameData.gameType, TEXTSTRING_MULTIPLAYER_DEATHMATCH, TEXTSTRING_MPHELP_GAMESTYLE_DEATHMATCH}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESTYLE}, {1}, {(int*)&netGameData.gameType}, {TEXTSTRING_MULTIPLAYER_DEATHMATCH}, TEXTSTRING_MPHELP_GAMESTYLE_DEATHMATCH}, #else - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESTYLE, 5, (int*)&netGameData.gameType, TEXTSTRING_MULTIPLAYER_DEATHMATCH, TEXTSTRING_MPHELP_GAMESTYLE_DEATHMATCH}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESTYLE}, {5}, {(int*)&netGameData.gameType}, {TEXTSTRING_MULTIPLAYER_DEATHMATCH}, TEXTSTRING_MPHELP_GAMESTYLE_DEATHMATCH}, #endif //values initialised later - {AVPMENU_ELEMENT_TEXTSLIDER_POINTER, TEXTSTRING_MULTIPLAYER_ENVIRONMENT, 0, &netGameData.levelNumber, 0, TEXTSTRING_MPHELP_ENVIRONMENT}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESPEED, 3, (int*)&netGameData.gameSpeed, TEXTSTRING_MULTIPLAYER_70PERCENT, TEXTSTRING_MPHELP_GAMESPEED}, + {AVPMENU_ELEMENT_TEXTSLIDER_POINTER, {TEXTSTRING_MULTIPLAYER_ENVIRONMENT}, {0}, {&netGameData.levelNumber}, {0}, TEXTSTRING_MPHELP_ENVIRONMENT}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESPEED}, {3}, {(int*)&netGameData.gameSpeed}, {TEXTSTRING_MULTIPLAYER_70PERCENT}, TEXTSTRING_MPHELP_GAMESPEED}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_SCORELIMIT, 1000000, &netGameData.scoreLimit, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_SCORELIMIT, TEXTSTRING_MULTIPLAYER_NOSCORELIMIT}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_TIMELIMIT, 255, &netGameData.timeLimit, TEXTSTRING_MULTIPLAYER_MINUTES, TEXTSTRING_MPHELP_TIMELIMIT, TEXTSTRING_MULTIPLAYER_NOTIMELIMIT}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_INVULNTIME, 255, &netGameData.invulnerableTime, TEXTSTRING_MULTIPLAYER_SECONDS, TEXTSTRING_MPHELP_INVULNTIME, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_SCORELIMIT}, {1000000}, {&netGameData.scoreLimit}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_SCORELIMIT, TEXTSTRING_MULTIPLAYER_NOSCORELIMIT}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_TIMELIMIT}, {255}, {&netGameData.timeLimit}, {TEXTSTRING_MULTIPLAYER_MINUTES}, TEXTSTRING_MPHELP_TIMELIMIT, TEXTSTRING_MULTIPLAYER_NOTIMELIMIT}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_INVULNTIME}, {255}, {&netGameData.invulnerableTime}, {TEXTSTRING_MULTIPLAYER_SECONDS}, TEXTSTRING_MPHELP_INVULNTIME, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXPREDATOR, 8, &netGameData.maxPredator, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXALIEN, 8, &netGameData.maxAlien, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE, 8, &netGameData.maxMarine, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_GENERAL, 8, &netGameData.maxMarineGeneral, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_PULSERIFLE, 8, &netGameData.maxMarinePulseRifle, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_SMARTGUN, 8, &netGameData.maxMarineSmartgun, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_FLAMER, 8, &netGameData.maxMarineFlamer, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_SADAR, 8, &netGameData.maxMarineSadar, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_GRENADE, 8, &netGameData.maxMarineGrenade, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_MINIGUN, 8, &netGameData.maxMarineMinigun, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_SKEETER, 8, &netGameData.maxMarineSmartDisc, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_PISTOLS, 8, &netGameData.maxMarinePistols, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXPREDATOR}, {8}, {&netGameData.maxPredator}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXALIEN}, {8}, {&netGameData.maxAlien}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE}, {8}, {&netGameData.maxMarine}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_GENERAL}, {8}, {&netGameData.maxMarineGeneral}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_PULSERIFLE}, {8}, {&netGameData.maxMarinePulseRifle}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_SMARTGUN}, {8}, {&netGameData.maxMarineSmartgun}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_FLAMER}, {8}, {&netGameData.maxMarineFlamer}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_SADAR}, {8}, {&netGameData.maxMarineSadar}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_GRENADE}, {8}, {&netGameData.maxMarineGrenade}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_MINIGUN}, {8}, {&netGameData.maxMarineMinigun}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_SKEETER}, {8}, {&netGameData.maxMarineSmartDisc}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_PISTOLS}, {8}, {&netGameData.maxMarinePistols}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SMARTGUN, 1, &netGameData.allowSmartgun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_FLAMER, 1, &netGameData.allowFlamer, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SADAR, 1, &netGameData.allowSadar, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_GRENADELAUNCHER, 1, &netGameData.allowGrenadeLauncher, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MINIGUN, 1, &netGameData.allowMinigun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SKEETER, 1, &netGameData.allowSmartDisc, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MARINE_PISTOLS, 1, &netGameData.allowPistols, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_DISC, 1, &netGameData.allowDisc, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_PISTOL, 1, &netGameData.allowPistol, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_PLASMACASTER, 1, &netGameData.allowPlasmaCaster, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SPEARGUN, 1, &netGameData.allowSpeargun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MEDICOMP, 1, &netGameData.allowMedicomp, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SMARTGUN}, {1}, {&netGameData.allowSmartgun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_FLAMER}, {1}, {&netGameData.allowFlamer}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SADAR}, {1}, {&netGameData.allowSadar}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_GRENADELAUNCHER}, {1}, {&netGameData.allowGrenadeLauncher}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MINIGUN}, {1}, {&netGameData.allowMinigun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SKEETER}, {1}, {&netGameData.allowSmartDisc}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MARINE_PISTOLS}, {1}, {&netGameData.allowPistols}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_DISC}, {1}, {&netGameData.allowDisc}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_PISTOL}, {1}, {&netGameData.allowPistol}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_PLASMACASTER}, {1}, {&netGameData.allowPlasmaCaster}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SPEARGUN}, {1}, {&netGameData.allowSpeargun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MEDICOMP}, {1}, {&netGameData.allowMedicomp}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_DYNAMICSCORING, 1, &netGameData.useDynamicScoring, TEXTSTRING_NO, TEXTSTRING_MPHELP_DYNAMICSCORING}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_CHARACTERSCORING, 1, &netGameData.useCharacterKillValues, TEXTSTRING_NO, TEXTSTRING_MPHELP_CHARACTERSCORING}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_DYNAMICSCORING}, {1}, {&netGameData.useDynamicScoring}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_DYNAMICSCORING}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_CHARACTERSCORING}, {1}, {&netGameData.useCharacterKillValues}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_CHARACTERSCORING}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_BASEKILLVALUE, 255, &netGameData.baseKillValue, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_BASEKILLVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_ALIENVALUE, 255, &netGameData.characterKillValues[NGCT_Alien], TEXTSTRING_BLANK, TEXTSTRING_MPHELP_ALIENVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_MARINEVALUE, 255, &netGameData.characterKillValues[NGCT_Marine], TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MARINEVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_PREDATORVALUE, 255, &netGameData.characterKillValues[NGCT_Predator], TEXTSTRING_BLANK, TEXTSTRING_MPHELP_PREDATORVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_BASEKILLVALUE}, {255}, {&netGameData.baseKillValue}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_BASEKILLVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_ALIENVALUE}, {255}, {&netGameData.characterKillValues[NGCT_Alien]}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_ALIENVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MARINEVALUE}, {255}, {&netGameData.characterKillValues[NGCT_Marine]}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MARINEVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_PREDATORVALUE}, {255}, {&netGameData.characterKillValues[NGCT_Predator]}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_PREDATORVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_ALIENVALUE, 255, &netGameData.aiKillValues[0], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_PREDALIENVALUE, 255, &netGameData.aiKillValues[1], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_PRAETORIANVALUE, 255, &netGameData.aiKillValues[2], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_ALIENVALUE}, {255}, {&netGameData.aiKillValues[0]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_PREDALIENVALUE}, {255}, {&netGameData.aiKillValues[1]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_PRAETORIANVALUE}, {255}, {&netGameData.aiKillValues[2]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_LIVES, 255, &netGameData.maxLives, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_LIVES, TEXTSTRING_MULTIPLAYER_INFINITE}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SHAREDLIVES, 1, &netGameData.useSharedLives, TEXTSTRING_NO, TEXTSTRING_MPHELP_SHAREDLIVES}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_LIVES}, {255}, {&netGameData.maxLives}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_LIVES, TEXTSTRING_MULTIPLAYER_INFINITE}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SHAREDLIVES}, {1}, {&netGameData.useSharedLives}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_SHAREDLIVES}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS, 1000000, &netGameData.pointsForRespawn, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_RESPAWN_POINTS, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS_NO}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME, 255, &netGameData.timeForRespawn, TEXTSTRING_MULTIPLAYER_SECONDS, TEXTSTRING_MPHELP_RESPAWN_TIME, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME_NO}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS}, {1000000}, {&netGameData.pointsForRespawn}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_RESPAWN_POINTS, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS_NO}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_RESPAWN_TIME}, {255}, {&netGameData.timeForRespawn}, {TEXTSTRING_MULTIPLAYER_SECONDS}, TEXTSTRING_MPHELP_RESPAWN_TIME, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME_NO}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_PREDESTROYLIGHTS, 1, &netGameData.preDestroyLights, TEXTSTRING_NO, TEXTSTRING_MPHELP_PREDESTROYLIGHTS}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_PREDESTROYLIGHTS}, {1}, {&netGameData.preDestroyLights}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_PREDESTROYLIGHTS}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_NOFRIENDLYFIRE, 1, &netGameData.disableFriendlyFire, TEXTSTRING_NO, TEXTSTRING_MPHELP_NOFRIENDLYFIRE}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_FALLINGDAMAGE, 1, &netGameData.fallingDamage, TEXTSTRING_NO, TEXTSTRING_MPHELP_FALLINGDAMAGE}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_PISTOLINFINITEAMMO, 1, &netGameData.pistolInfiniteAmmo, TEXTSTRING_NO, TEXTSTRING_MPHELP_PISTOLINFINITEAMMO}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIALISTPISTOLS, 1, &netGameData.specialistPistols, TEXTSTRING_NO, TEXTSTRING_MPHELP_SPECIALISTPISTOLS}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_NOFRIENDLYFIRE}, {1}, {&netGameData.disableFriendlyFire}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_NOFRIENDLYFIRE}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_FALLINGDAMAGE}, {1}, {&netGameData.fallingDamage}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_FALLINGDAMAGE}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_PISTOLINFINITEAMMO}, {1}, {&netGameData.pistolInfiniteAmmo}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_PISTOLINFINITEAMMO}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIALISTPISTOLS}, {1}, {&netGameData.specialistPistols}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_SPECIALISTPISTOLS}, {AVPMENU_ELEMENT_ENDOFMENU} }; AVPMENU_ELEMENT AvPMenu_Multiplayer_Config_Join[]= { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LEVELSELECT_START, AVPMENU_MULTIPLAYER_SPECIES_JOIN, 0, TEXTSTRING_BLANK, TEXTSTRING_LEVELSELECT_START_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LEVELSELECT_START}, {AVPMENU_MULTIPLAYER_SPECIES_JOIN}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_LEVELSELECT_START_HELP}, - {AVPMENU_ELEMENT_DUMMYTEXTFIELD, TEXTSTRING_MULTIPLAYER_SESSIONNAME, MAX_MULTIPLAYER_NAME_LENGTH, (int*)MP_SessionName, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_SESSIONNAME}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESTYLE, 5, (int*)&netGameData.gameType, TEXTSTRING_MULTIPLAYER_DEATHMATCH, TEXTSTRING_MPHELP_GAMESTYLE_DEATHMATCH}, + {AVPMENU_ELEMENT_DUMMYTEXTFIELD, {TEXTSTRING_MULTIPLAYER_SESSIONNAME}, {MAX_MULTIPLAYER_NAME_LENGTH}, {(int*)MP_SessionName}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_SESSIONNAME}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESTYLE}, {5}, {(int*)&netGameData.gameType}, {TEXTSTRING_MULTIPLAYER_DEATHMATCH}, TEXTSTRING_MPHELP_GAMESTYLE_DEATHMATCH}, //values initialised later - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER_POINTER, TEXTSTRING_MULTIPLAYER_ENVIRONMENT, 0, &netGameData.levelNumber, 0, TEXTSTRING_MPHELP_ENVIRONMENT}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESPEED, 3, (int*)&netGameData.gameSpeed, TEXTSTRING_MULTIPLAYER_70PERCENT, TEXTSTRING_MPHELP_GAMESPEED}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER_POINTER, {TEXTSTRING_MULTIPLAYER_ENVIRONMENT}, {0}, {&netGameData.levelNumber}, {0}, TEXTSTRING_MPHELP_ENVIRONMENT}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESPEED}, {3}, {(int*)&netGameData.gameSpeed}, {TEXTSTRING_MULTIPLAYER_70PERCENT}, TEXTSTRING_MPHELP_GAMESPEED}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_SCORELIMIT, 1000000, &netGameData.scoreLimit, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_SCORELIMIT, TEXTSTRING_MULTIPLAYER_NOSCORELIMIT}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_TIMELIMIT, 255, &netGameData.timeLimit, TEXTSTRING_MULTIPLAYER_MINUTES, TEXTSTRING_MPHELP_TIMELIMIT, TEXTSTRING_MULTIPLAYER_NOTIMELIMIT}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_INVULNTIME, 255, &netGameData.invulnerableTime, TEXTSTRING_MULTIPLAYER_SECONDS, TEXTSTRING_MPHELP_INVULNTIME, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_SCORELIMIT}, {1000000}, {&netGameData.scoreLimit}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_SCORELIMIT, TEXTSTRING_MULTIPLAYER_NOSCORELIMIT}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_TIMELIMIT}, {255}, {&netGameData.timeLimit}, {TEXTSTRING_MULTIPLAYER_MINUTES}, TEXTSTRING_MPHELP_TIMELIMIT, TEXTSTRING_MULTIPLAYER_NOTIMELIMIT}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_INVULNTIME}, {255}, {&netGameData.invulnerableTime}, {TEXTSTRING_MULTIPLAYER_SECONDS}, TEXTSTRING_MPHELP_INVULNTIME, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXPREDATOR, 8, &netGameData.maxPredator, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXALIEN, 8, &netGameData.maxAlien, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE, 8, &netGameData.maxMarine, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_GENERAL, 8, &netGameData.maxMarineGeneral, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_PULSERIFLE, 8, &netGameData.maxMarinePulseRifle, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_SMARTGUN, 8, &netGameData.maxMarineSmartgun, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_FLAMER, 8, &netGameData.maxMarineFlamer, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_SADAR, 8, &netGameData.maxMarineSadar, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_GRENADE, 8, &netGameData.maxMarineGrenade, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_MINIGUN, 8, &netGameData.maxMarineMinigun, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_SKEETER, 8, &netGameData.maxMarineSmartDisc, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MAXMARINE_PISTOLS, 8, &netGameData.maxMarinePistols, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXPREDATOR}, {8}, {&netGameData.maxPredator}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXALIEN}, {8}, {&netGameData.maxAlien}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE}, {8}, {&netGameData.maxMarine}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXCHARACTER, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_GENERAL}, {8}, {&netGameData.maxMarineGeneral}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_PULSERIFLE}, {8}, {&netGameData.maxMarinePulseRifle}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_SMARTGUN}, {8}, {&netGameData.maxMarineSmartgun}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_FLAMER}, {8}, {&netGameData.maxMarineFlamer}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_SADAR}, {8}, {&netGameData.maxMarineSadar}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_GRENADE}, {8}, {&netGameData.maxMarineGrenade}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_MINIGUN}, {8}, {&netGameData.maxMarineMinigun}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_SKEETER}, {8}, {&netGameData.maxMarineSmartDisc}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MAXMARINE_PISTOLS}, {8}, {&netGameData.maxMarinePistols}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MAXSPECIALIST, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SMARTGUN, 1, &netGameData.allowSmartgun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_FLAMER, 1, &netGameData.allowFlamer, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SADAR, 1, &netGameData.allowSadar, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_GRENADELAUNCHER, 1, &netGameData.allowGrenadeLauncher, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MINIGUN, 1, &netGameData.allowMinigun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SKEETER, 1, &netGameData.allowSmartDisc, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MARINE_PISTOLS, 1, &netGameData.allowPistols, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_DISC, 1, &netGameData.allowDisc, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_PISTOL, 1, &netGameData.allowPistol, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_PLASMACASTER, 1, &netGameData.allowPlasmaCaster, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SPEARGUN, 1, &netGameData.allowSpeargun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MEDICOMP, 1, &netGameData.allowMedicomp, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SMARTGUN}, {1}, {&netGameData.allowSmartgun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_FLAMER}, {1}, {&netGameData.allowFlamer}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SADAR}, {1}, {&netGameData.allowSadar}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_GRENADELAUNCHER}, {1}, {&netGameData.allowGrenadeLauncher}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MINIGUN}, {1}, {&netGameData.allowMinigun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SKEETER}, {1}, {&netGameData.allowSmartDisc}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MARINE_PISTOLS}, {1}, {&netGameData.allowPistols}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_DISC}, {1}, {&netGameData.allowDisc}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_PISTOL}, {1}, {&netGameData.allowPistol}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_PLASMACASTER}, {1}, {&netGameData.allowPlasmaCaster}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SPEARGUN}, {1}, {&netGameData.allowSpeargun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MEDICOMP}, {1}, {&netGameData.allowMedicomp}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_DYNAMICSCORING, 1, &netGameData.useDynamicScoring, TEXTSTRING_NO, TEXTSTRING_MPHELP_DYNAMICSCORING}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_CHARACTERSCORING, 1, &netGameData.useCharacterKillValues, TEXTSTRING_NO, TEXTSTRING_MPHELP_CHARACTERSCORING}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_DYNAMICSCORING}, {1}, {&netGameData.useDynamicScoring}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_DYNAMICSCORING}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_CHARACTERSCORING}, {1}, {&netGameData.useCharacterKillValues}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_CHARACTERSCORING}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_BASEKILLVALUE, 255, &netGameData.baseKillValue, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_BASEKILLVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_ALIENVALUE, 255, &netGameData.characterKillValues[NGCT_Alien], TEXTSTRING_BLANK, TEXTSTRING_MPHELP_ALIENVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_MARINEVALUE, 255, &netGameData.characterKillValues[NGCT_Marine], TEXTSTRING_BLANK, TEXTSTRING_MPHELP_MARINEVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_PREDATORVALUE, 255, &netGameData.characterKillValues[NGCT_Predator], TEXTSTRING_BLANK, TEXTSTRING_MPHELP_PREDATORVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_BASEKILLVALUE}, {255}, {&netGameData.baseKillValue}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_BASEKILLVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_ALIENVALUE}, {255}, {&netGameData.characterKillValues[NGCT_Alien]}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_ALIENVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_MARINEVALUE}, {255}, {&netGameData.characterKillValues[NGCT_Marine]}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_MARINEVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_PREDATORVALUE}, {255}, {&netGameData.characterKillValues[NGCT_Predator]}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_PREDATORVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_ALIENVALUE, 255, &netGameData.aiKillValues[0], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_PREDALIENVALUE, 255, &netGameData.aiKillValues[1], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_PRAETORIANVALUE, 255, &netGameData.aiKillValues[2], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_ALIENVALUE}, {255}, {&netGameData.aiKillValues[0]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_PREDALIENVALUE}, {255}, {&netGameData.aiKillValues[1]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_PRAETORIANVALUE}, {255}, {&netGameData.aiKillValues[2]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_LIVES, 255, &netGameData.maxLives, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_LIVES, TEXTSTRING_MULTIPLAYER_INFINITE}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_SHAREDLIVES, 1, &netGameData.useSharedLives, TEXTSTRING_NO, TEXTSTRING_MPHELP_SHAREDLIVES}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_LIVES}, {255}, {&netGameData.maxLives}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_LIVES, TEXTSTRING_MULTIPLAYER_INFINITE}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SHAREDLIVES}, {1}, {&netGameData.useSharedLives}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_SHAREDLIVES}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS, 1000000, &netGameData.pointsForRespawn, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_RESPAWN_POINTS, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS_NO}, - {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME, 255, &netGameData.timeForRespawn, TEXTSTRING_MULTIPLAYER_SECONDS, TEXTSTRING_MPHELP_RESPAWN_TIME, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME_NO}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS}, {1000000}, {&netGameData.pointsForRespawn}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_RESPAWN_POINTS, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS_NO}, + {AVPMENU_ELEMENT_DUMMYNUMBERFIELD, {TEXTSTRING_MULTIPLAYER_RESPAWN_TIME}, {255}, {&netGameData.timeForRespawn}, {TEXTSTRING_MULTIPLAYER_SECONDS}, TEXTSTRING_MPHELP_RESPAWN_TIME, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME_NO}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_PREDESTROYLIGHTS, 1, &netGameData.preDestroyLights, TEXTSTRING_NO, TEXTSTRING_MPHELP_PREDESTROYLIGHTS}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_PREDESTROYLIGHTS}, {1}, {&netGameData.preDestroyLights}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_PREDESTROYLIGHTS}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_NOFRIENDLYFIRE, 1, &netGameData.disableFriendlyFire, TEXTSTRING_NO, TEXTSTRING_MPHELP_NOFRIENDLYFIRE}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_FALLINGDAMAGE, 1, &netGameData.fallingDamage, TEXTSTRING_NO, TEXTSTRING_MPHELP_FALLINGDAMAGE}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_PISTOLINFINITEAMMO, 1, &netGameData.pistolInfiniteAmmo, TEXTSTRING_NO, TEXTSTRING_MPHELP_PISTOLINFINITEAMMO}, - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIALISTPISTOLS, 1, &netGameData.specialistPistols, TEXTSTRING_NO, TEXTSTRING_MPHELP_SPECIALISTPISTOLS}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_NOFRIENDLYFIRE}, {1}, {&netGameData.disableFriendlyFire}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_NOFRIENDLYFIRE}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_FALLINGDAMAGE}, {1}, {&netGameData.fallingDamage}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_FALLINGDAMAGE}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_PISTOLINFINITEAMMO}, {1}, {&netGameData.pistolInfiniteAmmo}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_PISTOLINFINITEAMMO}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIALISTPISTOLS}, {1}, {&netGameData.specialistPistols}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_SPECIALISTPISTOLS}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -524,51 +524,51 @@ AVPMENU_ELEMENT AvPMenu_Multiplayer_Config_Join[]= AVPMENU_ELEMENT AvPMenu_Skirmish_Config[]= { - {AVPMENU_ELEMENT_RESETMPCONFIG, TEXTSTRING_CONTROLS_RESETTODEFAULT, 0, 0, TEXTSTRING_BLANK, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_LOADCONFIG, AVPMENU_MULTIPLAYER_LOADCONFIG, 0, TEXTSTRING_BLANK, TEXTSTRING_MULTIPLAYER_LOADCONFIG_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MULTIPLAYER_SAVECONFIG, AVPMENU_MULTIPLAYER_SAVECONFIG, 0, TEXTSTRING_BLANK, TEXTSTRING_MULTIPLAYER_SAVECONFIG_HELP}, + {AVPMENU_ELEMENT_RESETMPCONFIG, {TEXTSTRING_CONTROLS_RESETTODEFAULT}, {0}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_CONTROLS_RESETTODEFAULT_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_LOADCONFIG}, {AVPMENU_MULTIPLAYER_LOADCONFIG}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_MULTIPLAYER_LOADCONFIG_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MULTIPLAYER_SAVECONFIG}, {AVPMENU_MULTIPLAYER_SAVECONFIG}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_MULTIPLAYER_SAVECONFIG_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LEVELSELECT_START, AVPMENU_MULTIPLAYER_SPECIES_HOST, 0, TEXTSTRING_BLANK, TEXTSTRING_LEVELSELECT_START_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LEVELSELECT_START}, {AVPMENU_MULTIPLAYER_SPECIES_HOST}, {0}, {TEXTSTRING_BLANK}, TEXTSTRING_LEVELSELECT_START_HELP}, //values initialised later - {AVPMENU_ELEMENT_TEXTSLIDER_POINTER, TEXTSTRING_MULTIPLAYER_ENVIRONMENT, 0, &netGameData.levelNumber, 0, TEXTSTRING_MPHELP_ENVIRONMENT}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_GAMESPEED, 3, (int*)&netGameData.gameSpeed, TEXTSTRING_MULTIPLAYER_70PERCENT, TEXTSTRING_MPHELP_GAMESPEED}, + {AVPMENU_ELEMENT_TEXTSLIDER_POINTER, {TEXTSTRING_MULTIPLAYER_ENVIRONMENT}, {0}, {&netGameData.levelNumber}, {0}, TEXTSTRING_MPHELP_ENVIRONMENT}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_GAMESPEED}, {3}, {(int*)&netGameData.gameSpeed}, {TEXTSTRING_MULTIPLAYER_70PERCENT}, TEXTSTRING_MPHELP_GAMESPEED}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_SCORELIMIT, 1000000, &netGameData.scoreLimit, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_SCORELIMIT, TEXTSTRING_MULTIPLAYER_NOSCORELIMIT}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_TIMELIMIT, 255, &netGameData.timeLimit, TEXTSTRING_MULTIPLAYER_MINUTES, TEXTSTRING_MPHELP_TIMELIMIT, TEXTSTRING_MULTIPLAYER_NOTIMELIMIT}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_INVULNTIME, 255, &netGameData.invulnerableTime, TEXTSTRING_MULTIPLAYER_SECONDS, TEXTSTRING_MPHELP_INVULNTIME, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_SCORELIMIT}, {1000000}, {&netGameData.scoreLimit}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_SCORELIMIT, TEXTSTRING_MULTIPLAYER_NOSCORELIMIT}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_TIMELIMIT}, {255}, {&netGameData.timeLimit}, {TEXTSTRING_MULTIPLAYER_MINUTES}, TEXTSTRING_MPHELP_TIMELIMIT, TEXTSTRING_MULTIPLAYER_NOTIMELIMIT}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_INVULNTIME}, {255}, {&netGameData.invulnerableTime}, {TEXTSTRING_MULTIPLAYER_SECONDS}, TEXTSTRING_MPHELP_INVULNTIME, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SMARTGUN, 1, &netGameData.allowSmartgun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_FLAMER, 1, &netGameData.allowFlamer, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SADAR, 1, &netGameData.allowSadar, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_GRENADELAUNCHER, 1, &netGameData.allowGrenadeLauncher, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MINIGUN, 1, &netGameData.allowMinigun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SKEETER, 1, &netGameData.allowSmartDisc, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MARINE_PISTOLS, 1, &netGameData.allowPistols, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_DISC, 1, &netGameData.allowDisc, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_PISTOL, 1, &netGameData.allowPistol, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_PLASMACASTER, 1, &netGameData.allowPlasmaCaster, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_SPEARGUN, 1, &netGameData.allowSpeargun, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ALLOW_MEDICOMP, 1, &netGameData.allowMedicomp, TEXTSTRING_NO, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SMARTGUN}, {1}, {&netGameData.allowSmartgun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_FLAMER}, {1}, {&netGameData.allowFlamer}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SADAR}, {1}, {&netGameData.allowSadar}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_GRENADELAUNCHER}, {1}, {&netGameData.allowGrenadeLauncher}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MINIGUN}, {1}, {&netGameData.allowMinigun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SKEETER}, {1}, {&netGameData.allowSmartDisc}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MARINE_PISTOLS}, {1}, {&netGameData.allowPistols}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_DISC}, {1}, {&netGameData.allowDisc}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_PISTOL}, {1}, {&netGameData.allowPistol}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_PLASMACASTER}, {1}, {&netGameData.allowPlasmaCaster}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_SPEARGUN}, {1}, {&netGameData.allowSpeargun}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ALLOW_MEDICOMP}, {1}, {&netGameData.allowMedicomp}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_ALLOWEAPON_PRED}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_BASEKILLVALUE, 255, &netGameData.baseKillValue, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_BASEKILLVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_BASEKILLVALUE}, {255}, {&netGameData.baseKillValue}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_BASEKILLVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_ALIENVALUE, 255, &netGameData.aiKillValues[0], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_PREDALIENVALUE, 255, &netGameData.aiKillValues[1], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_AI_PRAETORIANVALUE, 255, &netGameData.aiKillValues[2], TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_ALIENVALUE}, {255}, {&netGameData.aiKillValues[0]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_PREDALIENVALUE}, {255}, {&netGameData.aiKillValues[1]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_AI_PRAETORIANVALUE}, {255}, {&netGameData.aiKillValues[2]}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_AIVALUE, TEXTSTRING_BLANK}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_LIVES, 255, &netGameData.maxLives, TEXTSTRING_BLANK, TEXTSTRING_MPHELP_LIVES, TEXTSTRING_MULTIPLAYER_INFINITE}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_LIVES}, {255}, {&netGameData.maxLives}, {TEXTSTRING_BLANK}, TEXTSTRING_MPHELP_LIVES, TEXTSTRING_MULTIPLAYER_INFINITE}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS, 1000000, &netGameData.pointsForRespawn, TEXTSTRING_MULTIPLAYER_POINTS, TEXTSTRING_MPHELP_RESPAWN_POINTS, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS_NO}, - {AVPMENU_ELEMENT_NUMBERFIELD, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME, 255, &netGameData.timeForRespawn, TEXTSTRING_MULTIPLAYER_SECONDS, TEXTSTRING_MPHELP_RESPAWN_TIME, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME_NO}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS}, {1000000}, {&netGameData.pointsForRespawn}, {TEXTSTRING_MULTIPLAYER_POINTS}, TEXTSTRING_MPHELP_RESPAWN_POINTS, TEXTSTRING_MULTIPLAYER_RESPAWN_POINTS_NO}, + {AVPMENU_ELEMENT_NUMBERFIELD, {TEXTSTRING_MULTIPLAYER_RESPAWN_TIME}, {255}, {&netGameData.timeForRespawn}, {TEXTSTRING_MULTIPLAYER_SECONDS}, TEXTSTRING_MPHELP_RESPAWN_TIME, TEXTSTRING_MULTIPLAYER_RESPAWN_TIME_NO}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_PREDESTROYLIGHTS, 1, &netGameData.preDestroyLights, TEXTSTRING_NO, TEXTSTRING_MPHELP_PREDESTROYLIGHTS}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_PREDESTROYLIGHTS}, {1}, {&netGameData.preDestroyLights}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_PREDESTROYLIGHTS}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_FALLINGDAMAGE, 1, &netGameData.fallingDamage, TEXTSTRING_NO, TEXTSTRING_MPHELP_FALLINGDAMAGE}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_FALLINGDAMAGE}, {1}, {&netGameData.fallingDamage}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_FALLINGDAMAGE}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_PISTOLINFINITEAMMO, 1, &netGameData.pistolInfiniteAmmo, TEXTSTRING_NO, TEXTSTRING_MPHELP_PISTOLINFINITEAMMO}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_PISTOLINFINITEAMMO}, {1}, {&netGameData.pistolInfiniteAmmo}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_PISTOLINFINITEAMMO}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIALISTPISTOLS, 1, &netGameData.specialistPistols, TEXTSTRING_NO, TEXTSTRING_MPHELP_SPECIALISTPISTOLS}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIALISTPISTOLS}, {1}, {&netGameData.specialistPistols}, {TEXTSTRING_NO}, TEXTSTRING_MPHELP_SPECIALISTPISTOLS}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -576,16 +576,16 @@ AVPMENU_ELEMENT AvPMenu_Skirmish_Config[]= static AVPMENU_ELEMENT AvPMenu_Multiplayer_Species_Host[]= { - {AVPMENU_ELEMENT_SPECIES_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIES, 10, &MP_Species, TEXTSTRING_MULTIPLAYER_MARINE, TEXTSTRING_MULTIPLAYER_SPECIES_HELP}, - {AVPMENU_ELEMENT_STARTMPGAME, TEXTSTRING_LEVELSELECT_START, 0, 0, 0, TEXTSTRING_MULTIPLAYER_START2_HELP}, + {AVPMENU_ELEMENT_SPECIES_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIES}, {10}, {&MP_Species}, {TEXTSTRING_MULTIPLAYER_MARINE}, TEXTSTRING_MULTIPLAYER_SPECIES_HELP}, + {AVPMENU_ELEMENT_STARTMPGAME, {TEXTSTRING_LEVELSELECT_START}, {0}, {0}, {0}, TEXTSTRING_MULTIPLAYER_START2_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Multiplayer_Species_Join[]= { - {AVPMENU_ELEMENT_SPECIES_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIES, 10, &MP_Species, TEXTSTRING_MULTIPLAYER_MARINE, TEXTSTRING_MULTIPLAYER_SPECIES_HELP}, - {AVPMENU_ELEMENT_JOINMPGAME, TEXTSTRING_LEVELSELECT_START, 0, 0, 0, TEXTSTRING_MULTIPLAYER_START2_HELP}, + {AVPMENU_ELEMENT_SPECIES_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIES}, {10}, {&MP_Species}, {TEXTSTRING_MULTIPLAYER_MARINE}, TEXTSTRING_MULTIPLAYER_SPECIES_HELP}, + {AVPMENU_ELEMENT_JOINMPGAME, {TEXTSTRING_LEVELSELECT_START}, {0}, {0}, {0}, TEXTSTRING_MULTIPLAYER_START2_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -593,23 +593,23 @@ char MP_Config_Name[22]; char MP_Config_Description[202]=""; static AVPMENU_ELEMENT AvPMenu_Multiplayer_SaveConfig[] = { - {AVPMENU_ELEMENT_TEXTFIELD, TEXTSTRING_FILENAME, 20, (int*)MP_Config_Name, 0, TEXTSTRING_CONFIGFILENAME_HELP}, - {AVPMENU_ELEMENT_TEXTFIELD_SMALLWRAPPED, TEXTSTRING_DESCRIPTION, 200, (int*)MP_Config_Description, 0, TEXTSTRING_CONFIGDESCRIPTION_HELP}, - {AVPMENU_ELEMENT_SAVEMPCONFIG, TEXTSTRING_SAVEFILE, AVPMENU_MULTIPLAYER_CONFIG, 0, 0, TEXTSTRING_CONFIGSAVEFILE_HELP}, + {AVPMENU_ELEMENT_TEXTFIELD, {TEXTSTRING_FILENAME}, {20}, {(int*)MP_Config_Name}, {0}, TEXTSTRING_CONFIGFILENAME_HELP}, + {AVPMENU_ELEMENT_TEXTFIELD_SMALLWRAPPED, {TEXTSTRING_DESCRIPTION}, {200}, {(int*)MP_Config_Description}, {0}, TEXTSTRING_CONFIGDESCRIPTION_HELP}, + {AVPMENU_ELEMENT_SAVEMPCONFIG, {TEXTSTRING_SAVEFILE}, {AVPMENU_MULTIPLAYER_CONFIG}, {0}, {0}, TEXTSTRING_CONFIGSAVEFILE_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Multiplayer_DeleteConfig[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_NO, AVPMENU_MULTIPLAYER_CONFIG, 0, 0, TEXTSTRING_DELETECONFIGURATION_HELP}, - {AVPMENU_ELEMENT_DELETEMPCONFIG, TEXTSTRING_YES, 0, 0, 0, TEXTSTRING_DELETECONFIGURATION_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_NO}, {AVPMENU_MULTIPLAYER_CONFIG}, {0}, {0}, TEXTSTRING_DELETECONFIGURATION_HELP}, + {AVPMENU_ELEMENT_DELETEMPCONFIG, {TEXTSTRING_YES}, {0}, {0}, {0}, TEXTSTRING_DELETECONFIGURATION_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_Multiplayer_Joining[] = { - {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, TEXTSTRING_BLANK, 1, &netGameData.joiningGameStatus, TEXTSTRING_MULTIPLAYER_WAITSTART, TEXTSTRING_MULTIPLAYER_WAIT_HELP}, + {AVPMENU_ELEMENT_DUMMYTEXTSLIDER, {TEXTSTRING_BLANK}, {1}, {&netGameData.joiningGameStatus}, {TEXTSTRING_MULTIPLAYER_WAITSTART}, TEXTSTRING_MULTIPLAYER_WAIT_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -617,27 +617,27 @@ static AVPMENU_ELEMENT AvPMenu_Multiplayer_Joining[] = static AVPMENU_ELEMENT AvPMenu_InGame[] = { - {AVPMENU_ELEMENT_RESUMEGAME,TEXTSTRING_INGAMEMENU_RESUMEGAME, 0}, + {AVPMENU_ELEMENT_RESUMEGAME,{TEXTSTRING_INGAMEMENU_RESUMEGAME}, {0}}, #if SAVE_GAME_ON - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_SAVEGAME, AVPMENU_SAVEGAME}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_LOADGAME, AVPMENU_LOADGAME}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_SAVEGAME}, {AVPMENU_SAVEGAME}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_LOADGAME}, {AVPMENU_LOADGAME}}, #endif - {AVPMENU_ELEMENT_RESTARTGAME,TEXTSTRING_INGAMEMENU_RESTARTMISSION, 0}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MOUSECONTROLS_TITLE, AVPMENU_CONTROLS}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_JOYSTICKCONTROLS_TITLE, AVPMENU_JOYSTICKCONTROLS}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MARINEKEYCONTROLS_TITLE, AVPMENU_MARINEKEYCONFIG}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_AVOPTIONS_TITLE, AVPMENU_INGAMEAVOPTIONS}, - {AVPMENU_ELEMENT_QUITGAME, TEXTSTRING_INGAMEMENU_QUITTOMAINMENU, 0}, + {AVPMENU_ELEMENT_RESTARTGAME,{TEXTSTRING_INGAMEMENU_RESTARTMISSION}, {0}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MOUSECONTROLS_TITLE}, {AVPMENU_CONTROLS}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_JOYSTICKCONTROLS_TITLE}, {AVPMENU_JOYSTICKCONTROLS}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MARINEKEYCONTROLS_TITLE}, {AVPMENU_MARINEKEYCONFIG}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_AVOPTIONS_TITLE}, {AVPMENU_INGAMEAVOPTIONS}}, + {AVPMENU_ELEMENT_QUITGAME, {TEXTSTRING_INGAMEMENU_QUITTOMAINMENU}, {0}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_InNetGame[] = { - {AVPMENU_ELEMENT_RESUMEGAME,TEXTSTRING_INGAMEMENU_RESUMEGAME, 0}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MOUSECONTROLS_TITLE, AVPMENU_CONTROLS}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_JOYSTICKCONTROLS_TITLE, AVPMENU_JOYSTICKCONTROLS}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MARINEKEYCONTROLS_TITLE, AVPMENU_MARINEKEYCONFIG}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_AVOPTIONS_TITLE, AVPMENU_INGAMEAVOPTIONS}, - {AVPMENU_ELEMENT_QUITGAME, TEXTSTRING_INGAMEMENU_QUITTOMAINMENU, 0}, + {AVPMENU_ELEMENT_RESUMEGAME,{TEXTSTRING_INGAMEMENU_RESUMEGAME}, {0}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MOUSECONTROLS_TITLE}, {AVPMENU_CONTROLS}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_JOYSTICKCONTROLS_TITLE}, {AVPMENU_JOYSTICKCONTROLS}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MARINEKEYCONTROLS_TITLE}, {AVPMENU_MARINEKEYCONFIG}}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_AVOPTIONS_TITLE}, {AVPMENU_INGAMEAVOPTIONS}}, + {AVPMENU_ELEMENT_QUITGAME, {TEXTSTRING_INGAMEMENU_QUITTOMAINMENU}, {0}}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -651,39 +651,39 @@ static AVPMENU_ELEMENT AvPMenu_KeyConfig[NUMBER_OF_PREDATOR_INPUTS+2+1]; static AVPMENU_ELEMENT AvPMenu_Options[] = { - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MOUSECONTROLS_TITLE, AVPMENU_CONTROLS, 0, 0, TEXTSTRING_MOUSECONTROLS_TITLE_HELP}, - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_JOYSTICKCONTROLS_TITLE, AVPMENU_JOYSTICKCONTROLS, 0, 0, TEXTSTRING_JOYSTICKCONTROLS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MOUSECONTROLS_TITLE}, {AVPMENU_CONTROLS}, {0}, {0}, TEXTSTRING_MOUSECONTROLS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_JOYSTICKCONTROLS_TITLE}, {AVPMENU_JOYSTICKCONTROLS}, {0}, {0}, TEXTSTRING_JOYSTICKCONTROLS_TITLE_HELP}, #if !(MARINE_DEMO||ALIEN_DEMO) - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_PREDATORKEYCONTROLS_TITLE, AVPMENU_PREDATORKEYCONFIG, 0, 0, TEXTSTRING_PREDATORKEYCONTROLS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_PREDATORKEYCONTROLS_TITLE}, {AVPMENU_PREDATORKEYCONFIG}, {0}, {0}, TEXTSTRING_PREDATORKEYCONTROLS_TITLE_HELP}, #endif #if !(PREDATOR_DEMO||ALIEN_DEMO) - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_MARINEKEYCONTROLS_TITLE, AVPMENU_MARINEKEYCONFIG, 0, 0, TEXTSTRING_MARINEKEYCONTROLS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_MARINEKEYCONTROLS_TITLE}, {AVPMENU_MARINEKEYCONFIG}, {0}, {0}, TEXTSTRING_MARINEKEYCONTROLS_TITLE_HELP}, #endif #if !(PREDATOR_DEMO||MARINE_DEMO) - {AVPMENU_ELEMENT_GOTOMENU, TEXTSTRING_ALIENKEYCONTROLS_TITLE, AVPMENU_ALIENKEYCONFIG, 0, 0, TEXTSTRING_ALIENKEYCONTROLS_TITLE_HELP}, + {AVPMENU_ELEMENT_GOTOMENU, {TEXTSTRING_ALIENKEYCONTROLS_TITLE}, {AVPMENU_ALIENKEYCONFIG}, {0}, {0}, TEXTSTRING_ALIENKEYCONTROLS_TITLE_HELP}, #endif {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_DifficultyLevelSelect[] = { - {AVPMENU_ELEMENT_DIFFICULTYLEVEL, TEXTSTRING_DIFFICULTY_EASY, 0, 0, 0, TEXTSTRING_DIFFICULTY_EASY_HELP}, - {AVPMENU_ELEMENT_DIFFICULTYLEVEL, TEXTSTRING_DIFFICULTY_MEDIUM, 0, 0, 0, TEXTSTRING_DIFFICULTY_MEDIUM_HELP}, - {AVPMENU_ELEMENT_DIFFICULTYLEVEL, TEXTSTRING_DIFFICULTY_HARD, 0, 0, 0, TEXTSTRING_DIFFICULTY_HARD_HELP}, + {AVPMENU_ELEMENT_DIFFICULTYLEVEL, {TEXTSTRING_DIFFICULTY_EASY}, {0}, {0}, {0}, TEXTSTRING_DIFFICULTY_EASY_HELP}, + {AVPMENU_ELEMENT_DIFFICULTYLEVEL, {TEXTSTRING_DIFFICULTY_MEDIUM}, {0}, {0}, {0}, TEXTSTRING_DIFFICULTY_MEDIUM_HELP}, + {AVPMENU_ELEMENT_DIFFICULTYLEVEL, {TEXTSTRING_DIFFICULTY_HARD}, {0}, {0}, {0}, TEXTSTRING_DIFFICULTY_HARD_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_BriefingBonus[] = { - {AVPMENU_ELEMENT_DIFFICULTYLEVEL, TEXTSTRING_LEVELSELECT_START}, + {AVPMENU_ELEMENT_DIFFICULTYLEVEL, {TEXTSTRING_LEVELSELECT_START}}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_CheatOptions[] = { - {AVPMENU_ELEMENT_CHEATMODE_TEXTSLIDER, TEXTSTRING_MAINMENU_CHEATMODE, MAX_NUMBER_OF_CHEATMODES-1, &CheatMode_Active, TEXTSTRING_CHEATOPTIONS_1, TEXTSTRING_CHEATOPTIONS_CHEATMODE_HELP}, - {AVPMENU_ELEMENT_CHEATMODE_SPECIES_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_SPECIES, 2, &CheatMode_Species, TEXTSTRING_MULTIPLAYER_MARINE, TEXTSTRING_CHEATOPTIONS_SPECIES_HELP}, - {AVPMENU_ELEMENT_CHEATMODE_ENVIRONMENT_TEXTSLIDER, TEXTSTRING_MULTIPLAYER_ENVIRONMENT, (MAX_NO_OF_MARINE_EPISODES+MAX_NO_OF_PREDATOR_EPISODES+MAX_NO_OF_ALIEN_EPISODES-1), &CheatMode_Environment, TEXTSTRING_MARINELEVELS_1, TEXTSTRING_CHEATOPTIONS_ENVIRONMENT_HELP}, - {AVPMENU_ELEMENT_STARTLEVELWITHCHEAT, TEXTSTRING_LEVELSELECT_START, 0}, + {AVPMENU_ELEMENT_CHEATMODE_TEXTSLIDER, {TEXTSTRING_MAINMENU_CHEATMODE}, {MAX_NUMBER_OF_CHEATMODES-1}, {&CheatMode_Active}, {TEXTSTRING_CHEATOPTIONS_1}, TEXTSTRING_CHEATOPTIONS_CHEATMODE_HELP}, + {AVPMENU_ELEMENT_CHEATMODE_SPECIES_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_SPECIES}, {2}, {&CheatMode_Species}, {TEXTSTRING_MULTIPLAYER_MARINE}, TEXTSTRING_CHEATOPTIONS_SPECIES_HELP}, + {AVPMENU_ELEMENT_CHEATMODE_ENVIRONMENT_TEXTSLIDER, {TEXTSTRING_MULTIPLAYER_ENVIRONMENT}, {(MAX_NO_OF_MARINE_EPISODES+MAX_NO_OF_PREDATOR_EPISODES+MAX_NO_OF_ALIEN_EPISODES-1)}, {&CheatMode_Environment}, {TEXTSTRING_MARINELEVELS_1}, TEXTSTRING_CHEATOPTIONS_ENVIRONMENT_HELP}, + {AVPMENU_ELEMENT_STARTLEVELWITHCHEAT, {TEXTSTRING_LEVELSELECT_START}, {0}}, {AVPMENU_ELEMENT_ENDOFMENU} @@ -691,42 +691,42 @@ static AVPMENU_ELEMENT AvPMenu_CheatOptions[] = static AVPMENU_ELEMENT AvPMenu_DetailLevels[] = { - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_DETAILLEVELS_DECALNUMBER, 3, &MenuDetailLevelOptions.DecalNumber, TEXTSTRING_DETAILLEVELS_VERYLOW, TEXTSTRING_DETAILLEVELS_DECALNUMBER_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_DETAILLEVELS_LIGHTCORONAS, 1, &MenuDetailLevelOptions.LightCoronas, TEXTSTRING_DETAILLEVELS_OFF, TEXTSTRING_DETAILLEVELS_LIGHTCORONAS_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_DETAILLEVELS_DECALSONCHARACTERS, 1, &MenuDetailLevelOptions.DecalsOnCharacters, TEXTSTRING_DETAILLEVELS_OFF, TEXTSTRING_DETAILLEVELS_DECALSONCHARACTERS_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_DETAILLEVELS_DEFORMABLEEXPLOSIONS, 1, &MenuDetailLevelOptions.DeformableExplosions, TEXTSTRING_DETAILLEVELS_OFF, TEXTSTRING_DETAILLEVELS_DEFORMABLEEXPLOSIONS_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_DETAILLEVELS_CHARACTERCOMPLEXITY, 3, &MenuDetailLevelOptions.CharacterComplexity, TEXTSTRING_DETAILLEVELS_VERYLOW, TEXTSTRING_DETAILLEVELS_CHARACTERCOMPLEXITY_HELP}, - {AVPMENU_ELEMENT_TEXTSLIDER, TEXTSTRING_DETAILLEVELS_PARTICLECOMPLEXITY, 1, &MenuDetailLevelOptions.ParticleComplexity, TEXTSTRING_DETAILLEVELS_OFF, TEXTSTRING_DETAILLEVELS_PARTICLECOMPLEXITY_HELP}, - {AVPMENU_ELEMENT_SAVESETTINGS, TEXTSTRING_AVOPTIONS_USETHESESETTINGS, 0, 0, 0, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_DETAILLEVELS_DECALNUMBER}, {3}, {&MenuDetailLevelOptions.DecalNumber}, {TEXTSTRING_DETAILLEVELS_VERYLOW}, TEXTSTRING_DETAILLEVELS_DECALNUMBER_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_DETAILLEVELS_LIGHTCORONAS}, {1}, {&MenuDetailLevelOptions.LightCoronas}, {TEXTSTRING_DETAILLEVELS_OFF}, TEXTSTRING_DETAILLEVELS_LIGHTCORONAS_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_DETAILLEVELS_DECALSONCHARACTERS}, {1}, {&MenuDetailLevelOptions.DecalsOnCharacters}, {TEXTSTRING_DETAILLEVELS_OFF}, TEXTSTRING_DETAILLEVELS_DECALSONCHARACTERS_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_DETAILLEVELS_DEFORMABLEEXPLOSIONS}, {1}, {&MenuDetailLevelOptions.DeformableExplosions}, {TEXTSTRING_DETAILLEVELS_OFF}, TEXTSTRING_DETAILLEVELS_DEFORMABLEEXPLOSIONS_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_DETAILLEVELS_CHARACTERCOMPLEXITY}, {3}, {&MenuDetailLevelOptions.CharacterComplexity}, {TEXTSTRING_DETAILLEVELS_VERYLOW}, TEXTSTRING_DETAILLEVELS_CHARACTERCOMPLEXITY_HELP}, + {AVPMENU_ELEMENT_TEXTSLIDER, {TEXTSTRING_DETAILLEVELS_PARTICLECOMPLEXITY}, {1}, {&MenuDetailLevelOptions.ParticleComplexity}, {TEXTSTRING_DETAILLEVELS_OFF}, TEXTSTRING_DETAILLEVELS_PARTICLECOMPLEXITY_HELP}, + {AVPMENU_ELEMENT_SAVESETTINGS, {TEXTSTRING_AVOPTIONS_USETHESESETTINGS}, {0}, {0}, {0}, TEXTSTRING_AVOPTIONS_USETHESESETTINGS_HELP}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_LoadGame[] = { - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_LOADGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_LOADGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_LOADGAME_INSTRUCTIONS}, {AVPMENU_ELEMENT_ENDOFMENU} }; static AVPMENU_ELEMENT AvPMenu_SaveGame[] = { - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, - {AVPMENU_ELEMENT_SAVEGAME, TEXTSTRING_BLANK, 0, 0, 0, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, + {AVPMENU_ELEMENT_SAVEGAME, {TEXTSTRING_BLANK}, {0}, {0}, {0}, TEXTSTRING_SAVEGAME_INSTRUCTIONS}, {AVPMENU_ELEMENT_ENDOFMENU} }; @@ -735,149 +735,149 @@ static AVPMENU_ELEMENT AvPMenu_SaveGame[] = AVPMENU AvPMenusData[]= { // AVPMENU_MAIN - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, &AvPMenu_MainMenu, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, AvPMenu_MainMenu, AVPMENU_MAIN, 0}, // AVPMENU_MAIN_WITHCHEATS - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, &AvPMenu_MainMenu_WithCheats, AVPMENU_MAIN_WITHCHEATS, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, AvPMenu_MainMenu_WithCheats, AVPMENU_MAIN_WITHCHEATS, 0}, // AVPMENU_DEBUG_MAIN - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, &AvPMenu_Debug_MainMenu, AVPMENU_DEBUG_MAIN, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, AvPMenu_Debug_MainMenu, AVPMENU_DEBUG_MAIN, 0}, // AVPMENU_DEBUG_MAIN_WITHCHEATS - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, &AvPMenu_Debug_MainMenu_WithCheats, AVPMENU_DEBUG_MAIN_WITHCHEATS, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_TITLE, AvPMenu_Debug_MainMenu_WithCheats, AVPMENU_DEBUG_MAIN_WITHCHEATS, 0}, // AVPMENU_EXITGAME - {AVPMENU_FONT_BIG, TEXTSTRING_EXITGAME_TITLE, &AvPMenu_ExitGame, AVPMENU_MAIN, 1}, + {AVPMENU_FONT_BIG, TEXTSTRING_EXITGAME_TITLE, AvPMenu_ExitGame, AVPMENU_MAIN, 1}, // AVPMENU_USERPROFILESELECT - {AVPMENU_FONT_BIG, TEXTSTRING_USERPROFILE_SELECT, &AvPMenu_UserProfileSelect, AVPMENU_USERPROFILESELECT, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_USERPROFILE_SELECT, AvPMenu_UserProfileSelect, AVPMENU_USERPROFILESELECT, 0}, // AVPMENU_USERPROFILEENTERNAME - {AVPMENU_FONT_BIG, TEXTSTRING_USERPROFILE_ENTERNAME, &AvPMenu_UserProfileEnterName, AVPMENU_USERPROFILESELECT, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_USERPROFILE_ENTERNAME, AvPMenu_UserProfileEnterName, AVPMENU_USERPROFILESELECT, 0}, // AVPMENU_USERPROFILEDELETE - {AVPMENU_FONT_BIG, TEXTSTRING_USERPROFILE_DELETE, &AvPMenu_UserProfileDelete, AVPMENU_USERPROFILESELECT, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_USERPROFILE_DELETE, AvPMenu_UserProfileDelete, AVPMENU_USERPROFILESELECT, 0}, // AVPMENU_SINGLEPLAYER - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER, &AvPMenu_SinglePlayer, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_STARTSINGLEPLAYER, AvPMenu_SinglePlayer, AVPMENU_MAIN, 0}, // AVPMENU_MARINELEVELS - {AVPMENU_FONT_BIG, TEXTSTRING_LEVELSELECT_TITLE, &AvPMenu_MarineLevels, AVPMENU_SINGLEPLAYER, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_LEVELSELECT_TITLE, AvPMenu_MarineLevels, AVPMENU_SINGLEPLAYER, 0}, // AVPMENU_ALIENLEVELS - {AVPMENU_FONT_BIG, TEXTSTRING_LEVELSELECT_TITLE, &AvPMenu_AlienLevels, AVPMENU_SINGLEPLAYER, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_LEVELSELECT_TITLE, AvPMenu_AlienLevels, AVPMENU_SINGLEPLAYER, 0}, // AVPMENU_PREDATORLEVELS - {AVPMENU_FONT_BIG, TEXTSTRING_LEVELSELECT_TITLE, &AvPMenu_PredatorLevels, AVPMENU_SINGLEPLAYER, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_LEVELSELECT_TITLE, AvPMenu_PredatorLevels, AVPMENU_SINGLEPLAYER, 0}, // AVPMENU_MULTIPLAYER - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, &AvPMenu_Multiplayer, AVPMENU_MULTIPLAYER_CONNECTION, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, AvPMenu_Multiplayer, AVPMENU_MULTIPLAYER_CONNECTION, 0}, // AVPMENU_MULTIPLAYER_LOBBIEDSERVER - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, &AvPMenu_Multiplayer_LobbiedServer, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, AvPMenu_Multiplayer_LobbiedServer, AVPMENU_MAIN, 0}, // AVPMENU_MULTIPLAYER_LOBBIEDCLIENT - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, &AvPMenu_Multiplayer_LobbiedClient, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, AvPMenu_Multiplayer_LobbiedClient, AVPMENU_MAIN, 0}, // AVPMENU_MULTIPLAYER_LOBBIEDCLIENT - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_SKIRMISH, &AvPMenu_Multiplayer_Skirmish, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_SKIRMISH, AvPMenu_Multiplayer_Skirmish, AVPMENU_MAIN, 0}, // AVPMENU_MULTIPLAYERSTARTGAME_ - {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_STARTGAME, &AvPMenu_MultiplayerStartGame, AVPMENU_MULTIPLAYER, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_STARTGAME, AvPMenu_MultiplayerStartGame, AVPMENU_MULTIPLAYER, 0}, // AVPMENU_MULTIPLAYERJOINGAME - {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_JOINGAME, &AvPMenu_MultiplayerJoinGame, AVPMENU_MULTIPLAYER, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_JOINGAME, AvPMenu_MultiplayerJoinGame, AVPMENU_MULTIPLAYER, 0}, //AVPMENU_MULTIPLAYERSELECTSESSION - {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_SELECTSESSION, &AvPMenu_MultiplayerSelectSession, AVPMENU_MULTIPLAYERJOINGAME, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_SELECTSESSION, AvPMenu_MultiplayerSelectSession, AVPMENU_MULTIPLAYERJOINGAME, 0}, // AVPMENU_MULTIPLAYERJOINGAME2 - {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_JOINGAME, &AvPMenu_MultiplayerJoinGame2, AVPMENU_MULTIPLAYERJOINGAME, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_JOINGAME, AvPMenu_MultiplayerJoinGame2, AVPMENU_MULTIPLAYERJOINGAME, 0}, // AVPMENU_MULTIPLAYEROPENADDRESS - {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_OPENADDRESS, &AvPMenu_MultiplayerOpenAddress, AVPMENU_MULTIPLAYERJOINGAME, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_OPENADDRESS, AvPMenu_MultiplayerOpenAddress, AVPMENU_MULTIPLAYERJOINGAME, 0}, // AVPMENU_MULTIPLAYER_LOADIPADDRESS {AVPMENU_FONT_BIG, TEXTSTRING_MULTIPLAYER_LOADADDRESS, 0, AVPMENU_MULTIPLAYEROPENADDRESS, 0}, // AVPMENU_MULTIPLAYER CONNECTION - {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, &AvPMenu_MultiplayerConnection, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_MAINMENU_MULTIPLAYER, AvPMenu_MultiplayerConnection, AVPMENU_MAIN, 0}, // AVPMENU_MULTIPLAYER_CONFIG - {AVPMENU_FONT_SMALL,TEXTSTRING_MULTIPLAYER_CONFIG, &AvPMenu_Multiplayer_Config, AVPMENU_MULTIPLAYER, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_MULTIPLAYER_CONFIG, AvPMenu_Multiplayer_Config, AVPMENU_MULTIPLAYER, 0}, // AVPMENU_MULTIPLAYER_CONFIG_JOIN - {AVPMENU_FONT_SMALL,TEXTSTRING_MULTIPLAYER_CONFIG, &AvPMenu_Multiplayer_Config_Join, AVPMENU_MULTIPLAYER, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_MULTIPLAYER_CONFIG, AvPMenu_Multiplayer_Config_Join, AVPMENU_MULTIPLAYER, 0}, // AVPMENU_SKIRMISH_CONFIG - {AVPMENU_FONT_SMALL,TEXTSTRING_MAINMENU_SKIRMISH, &AvPMenu_Skirmish_Config, AVPMENU_MULTIPLAYER_SKIRMISH, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_MAINMENU_SKIRMISH, AvPMenu_Skirmish_Config, AVPMENU_MULTIPLAYER_SKIRMISH, 0}, // AVPMENU_MULTIPLAYER_SPECIES_HOST - {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_STARTGAME, &AvPMenu_Multiplayer_Species_Host, AVPMENU_MULTIPLAYER_CONFIG, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_STARTGAME, AvPMenu_Multiplayer_Species_Host, AVPMENU_MULTIPLAYER_CONFIG, 0}, // AVPMENU_MULTIPLAYER_SPECIES_JOIN - {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_JOINGAME, &AvPMenu_Multiplayer_Species_Join, AVPMENU_MULTIPLAYER_CONFIG_JOIN, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_JOINGAME, AvPMenu_Multiplayer_Species_Join, AVPMENU_MULTIPLAYER_CONFIG_JOIN, 0}, // AVPMENU_MULTIPLAYER_SAVECONFIG - {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_SAVECONFIG, &AvPMenu_Multiplayer_SaveConfig, AVPMENU_MULTIPLAYER_CONFIG, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_SAVECONFIG, AvPMenu_Multiplayer_SaveConfig, AVPMENU_MULTIPLAYER_CONFIG, 0}, // AVPMENU_MULTIPLAYER_LOADCONFIG {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_LOADCONFIG, 0, AVPMENU_MULTIPLAYER_CONFIG, 0}, // AVPMENU_MULTIPLAYER_DELETECONFIG - {AVPMENU_FONT_BIG,TEXTSTRING_DELETECONFIGURATION, &AvPMenu_Multiplayer_DeleteConfig, AVPMENU_MULTIPLAYER_LOADCONFIG, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_DELETECONFIGURATION, AvPMenu_Multiplayer_DeleteConfig, AVPMENU_MULTIPLAYER_LOADCONFIG, 0}, // AVPMENU_MULTIPLAYER_JOINING - {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_JOININGGAME, &AvPMenu_Multiplayer_Joining, AVPMENU_MULTIPLAYER_JOINING, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_MULTIPLAYER_JOININGGAME, AvPMenu_Multiplayer_Joining, AVPMENU_MULTIPLAYER_JOINING, 0}, // AVPMENU_CONTROLS - {AVPMENU_FONT_SMALL,TEXTSTRING_MOUSECONTROLS_TITLE, &AvPMenu_ControlsOptions, AVPMENU_OPTIONS, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_MOUSECONTROLS_TITLE, AvPMenu_ControlsOptions, AVPMENU_OPTIONS, 0}, // AVPMENU_JOYSTICKCONTROLS - {AVPMENU_FONT_SMALL,TEXTSTRING_JOYSTICKCONTROLS_TITLE, &AvPMenu_JoystickControlsOptions, AVPMENU_OPTIONS, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_JOYSTICKCONTROLS_TITLE, AvPMenu_JoystickControlsOptions, AVPMENU_OPTIONS, 0}, // AVPMENU_INGAMEAVOPTIONS - {AVPMENU_FONT_SMALL,TEXTSTRING_AVOPTIONS_TITLE, &AvPMenu_InGameAVOptions, AVPMENU_INGAME, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_AVOPTIONS_TITLE, AvPMenu_InGameAVOptions, AVPMENU_INGAME, 0}, // AVPMENU_MAINMENUAVOPTIONS - {AVPMENU_FONT_SMALL,TEXTSTRING_AVOPTIONS_TITLE, &AvPMenu_MainMenuAVOptions, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_AVOPTIONS_TITLE, AvPMenu_MainMenuAVOptions, AVPMENU_MAIN, 0}, // AVPMENU_VIDEOMODE - {AVPMENU_FONT_BIG, TEXTSTRING_VIDEOOPTIONS_TITLE, &AvPMenu_VideoModeOptions, AVPMENU_MAINMENUAVOPTIONS, 0}, + {AVPMENU_FONT_BIG, TEXTSTRING_VIDEOOPTIONS_TITLE, AvPMenu_VideoModeOptions, AVPMENU_MAINMENUAVOPTIONS, 0}, // AVPMENU_INGAME - {AVPMENU_FONT_SMALL,TEXTSTRING_BLANK, &AvPMenu_InGame, AVPMENU_INGAME, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_BLANK, AvPMenu_InGame, AVPMENU_INGAME, 0}, // AVPMENU_INNETGAME - {AVPMENU_FONT_SMALL,TEXTSTRING_BLANK, &AvPMenu_InNetGame, AVPMENU_INNETGAME, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_BLANK, AvPMenu_InNetGame, AVPMENU_INNETGAME, 0}, // AVPMENU_MARINEKEYCONFIG - {AVPMENU_FONT_SMALL,TEXTSTRING_MARINEKEYCONTROLS_TITLE, &AvPMenu_KeyConfig, AVPMENU_OPTIONS, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_MARINEKEYCONTROLS_TITLE, AvPMenu_KeyConfig, AVPMENU_OPTIONS, 0}, // AVPMENU_PREDATORKEYCONFIG - {AVPMENU_FONT_SMALL,TEXTSTRING_PREDATORKEYCONTROLS_TITLE, &AvPMenu_KeyConfig, AVPMENU_OPTIONS, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_PREDATORKEYCONTROLS_TITLE, AvPMenu_KeyConfig, AVPMENU_OPTIONS, 0}, // AVPMENU_ALIENKEYCONFIG - {AVPMENU_FONT_SMALL,TEXTSTRING_ALIENKEYCONTROLS_TITLE, &AvPMenu_KeyConfig, AVPMENU_OPTIONS, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_ALIENKEYCONTROLS_TITLE, AvPMenu_KeyConfig, AVPMENU_OPTIONS, 0}, // AVPMENU_OPTIONS - {AVPMENU_FONT_BIG,TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS, &AvPMenu_Options, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_MAINMENU_GAMEPLAYOPTIONS, AvPMenu_Options, AVPMENU_MAIN, 0}, // AVPMENU_LEVELBRIEFING_BASIC - {AVPMENU_FONT_BIG,TEXTSTRING_LEVELBRIEFING_TITLE, &AvPMenu_DifficultyLevelSelect, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_LEVELBRIEFING_TITLE, AvPMenu_DifficultyLevelSelect, AVPMENU_MAIN, 0}, // AVPMENU_LEVELBRIEFING_BONUS - {AVPMENU_FONT_BIG,TEXTSTRING_LEVELBRIEFING_TITLE, &AvPMenu_BriefingBonus, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_LEVELBRIEFING_TITLE, AvPMenu_BriefingBonus, AVPMENU_MAIN, 0}, // AVPMENU_CHEATOPTIONS - {AVPMENU_FONT_BIG,TEXTSTRING_MAINMENU_CHEATOPTIONS, &AvPMenu_CheatOptions, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_BIG,TEXTSTRING_MAINMENU_CHEATOPTIONS, AvPMenu_CheatOptions, AVPMENU_MAIN, 0}, // AVPMENU_DETAILLEVELS - {AVPMENU_FONT_SMALL,TEXTSTRING_DETAILLEVELS_TITLE, &AvPMenu_DetailLevels, AVPMENU_MAINMENUAVOPTIONS, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_DETAILLEVELS_TITLE, AvPMenu_DetailLevels, AVPMENU_MAINMENUAVOPTIONS, 0}, // AVPMENU_LOADGAME - {AVPMENU_FONT_SMALL,TEXTSTRING_LOADGAME, &AvPMenu_LoadGame, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_LOADGAME, AvPMenu_LoadGame, AVPMENU_MAIN, 0}, // AVPMENU_SAVEGAME - {AVPMENU_FONT_SMALL,TEXTSTRING_SAVEGAME, &AvPMenu_SaveGame, AVPMENU_MAIN, 0}, + {AVPMENU_FONT_SMALL,TEXTSTRING_SAVEGAME, AvPMenu_SaveGame, AVPMENU_MAIN, 0}, }; diff --git a/src/avp/win95/frontend/avp_menugfx.cpp b/src/avp/win95/frontend/avp_menugfx.cpp index 407d1d9..f45404c 100644 --- a/src/avp/win95/frontend/avp_menugfx.cpp +++ b/src/avp/win95/frontend/avp_menugfx.cpp @@ -143,7 +143,7 @@ extern int LengthOfMenuText(char *textPtr) return (pFont->CalcSize(textPtr).w); } -extern int RenderMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format) +extern int RenderMenuText(const char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format) { IndexedFont* pFont = IndexedFont :: GetFont(IntroFont_Light); r2pos R2Pos_StartOfRow; @@ -1848,4 +1848,4 @@ static void CalculateWidthsOfAAFont(void) } -}; \ No newline at end of file +}; diff --git a/src/avp/win95/frontend/avp_menugfx.hpp b/src/avp/win95/frontend/avp_menugfx.hpp index 53ea5b6..9194353 100644 --- a/src/avp/win95/frontend/avp_menugfx.hpp +++ b/src/avp/win95/frontend/avp_menugfx.hpp @@ -97,7 +97,7 @@ extern void LoadAllAvPMenuGfx(void); extern void LoadAllSplashScreenGfx(void); extern void ReleaseAllAvPMenuGfx(void); -extern int RenderMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format); +extern int RenderMenuText(const char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format); extern int RenderSmallMenuText(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format); extern int RenderSmallMenuText_Coloured(char *textPtr, int x, int y, int alpha, enum AVPMENUFORMAT_ID format, int red, int green, int blue); @@ -117,5 +117,6 @@ extern int HeightOfMenuGfx(enum AVPMENUGFX_ID menuGfxID); extern void ClearScreenToBlack(void); +extern void InitialiseMenuGfx(void); #endif diff --git a/src/avp/win95/frontend/avp_menus.c b/src/avp/win95/frontend/avp_menus.c index 488134b..5d47b92 100644 --- a/src/avp/win95/frontend/avp_menus.c +++ b/src/avp/win95/frontend/avp_menus.c @@ -23,6 +23,9 @@ #include "avp_mp_config.h" #include "psnd.h" #include "savegame.h" +#include "game.h" +#include "avp_menugfx.hpp" +#include "avp_intro.h" /* used to get file time */ #include @@ -102,7 +105,6 @@ extern void DrawMainMenusBackdrop(void); static void TestValidityOfCheatMenu(void); void SetBriefingTextForEpisode(int episode, I_PLAYER_TYPE playerID); void SetBriefingTextToBlank(void); -void RenderBriefingText(int centreY, int brightness); void CheckForKeysWithMultipleAssignments(void); void HandleCheatModeFeatures(void); void ShowMenuFrameRate(void); diff --git a/src/avp/win95/frontend/avp_menus.h b/src/avp/win95/frontend/avp_menus.h index 0461923..f900fe6 100644 --- a/src/avp/win95/frontend/avp_menus.h +++ b/src/avp/win95/frontend/avp_menus.h @@ -351,4 +351,6 @@ int AvP_InGameMenus(void); int InGameMenusAreRunning(void); +void RenderBriefingText(int centreY, int brightness); + #endif diff --git a/src/avp/win95/gadgets/ahudgadg.hpp b/src/avp/win95/gadgets/ahudgadg.hpp index c193068..dd7737a 100644 --- a/src/avp/win95/gadgets/ahudgadg.hpp +++ b/src/avp/win95/gadgets/ahudgadg.hpp @@ -15,9 +15,6 @@ #ifdef __cplusplus - extern "C" { -#endif - /* Version settings *****************************************************/ /* Constants ***********************************************************/ @@ -84,11 +81,17 @@ // not allowed to be NULL }; #endif // UseGadgets +#endif /* Exported globals *****************************************************/ -/* Function prototypes **************************************************/ +#ifdef __cplusplus + extern "C" { +#endif +/* Function prototypes **************************************************/ +void BringDownConsoleWithSayTypedIn(); +void BringDownConsoleWithSaySpeciesTypedIn(); /* End of the header ****************************************************/ diff --git a/src/avp/win95/gadgets/hudgadg.hpp b/src/avp/win95/gadgets/hudgadg.hpp index d327027..d2dd2e5 100644 --- a/src/avp/win95/gadgets/hudgadg.hpp +++ b/src/avp/win95/gadgets/hudgadg.hpp @@ -12,8 +12,6 @@ #endif #ifdef __cplusplus - extern "C" { -#endif /* Version settings *****************************************************/ @@ -135,8 +133,6 @@ /* End of the header ****************************************************/ -#ifdef __cplusplus - }; #endif #endif diff --git a/src/avp/win95/pldnet.h b/src/avp/win95/pldnet.h index f616054..e23391a 100644 --- a/src/avp/win95/pldnet.h +++ b/src/avp/win95/pldnet.h @@ -1006,6 +1006,7 @@ extern void CheckStateOfObservedPlayer(); void MinimalNetCollectMessages(void); void InitAVPNetGameForHost(int species, int gamestyle, int level); void InitAVPNetGameForJoin(void); +void CreatePlayersImageInMirror(void); /* --------------------------------------------------------------------- diff --git a/src/avp/win95/progress_bar.cpp b/src/avp/win95/progress_bar.cpp index ffa1ddc..78e81e6 100644 --- a/src/avp/win95/progress_bar.cpp +++ b/src/avp/win95/progress_bar.cpp @@ -12,6 +12,7 @@ extern "C" { #include "language.h" +#include "avp_menus.h" extern SCREENDESCRIPTORBLOCK ScreenDescriptorBlock; //extern LPDIRECTDRAWSURFACE lpDDSBack; // DirectDraw back surface extern int DebouncedGotAnyKey; @@ -25,7 +26,6 @@ extern void ThisFramesRenderingHasFinished(void); extern int AAFontImageNumber; extern int FadingGameInAfterLoading; -extern void RenderBriefingText(int centreY, int brightness); extern void InGameFlipBuffers(); diff --git a/src/avp/win95/usr_io.c b/src/avp/win95/usr_io.c index 2bf75cf..9c8671d 100644 --- a/src/avp/win95/usr_io.c +++ b/src/avp/win95/usr_io.c @@ -22,10 +22,12 @@ #include "usr_io.h" #include "hud_map.h" #include "hud.h" +#include "messagehistory.h" #include "iofocus.h" #include "paintball.h" +#include "ahudgadg.hpp" #include "avp_menus.h" extern int InGameMenusAreRunning(void); @@ -85,18 +87,18 @@ PLAYER_INPUT_CONFIGURATION DefaultMarineInputPrimaryConfig = KEY_LMOUSE, // FirePrimaryWeapon; KEY_RMOUSE, // FireSecondaryWeapon; - KEY_RBRACKET, // NextWeapon; - KEY_LBRACKET, // PreviousWeapon; - KEY_BACKSPACE, // FlashbackWeapon; + {KEY_RBRACKET}, // NextWeapon; + {KEY_LBRACKET}, // PreviousWeapon; + {KEY_BACKSPACE}, // FlashbackWeapon; - KEY_SLASH, // ImageIntensifier; - KEY_FSTOP, // ThrowFlare; - KEY_APOSTROPHE, // Jetpack; - KEY_SEMICOLON, // Taunt - KEY_F1, - KEY_F11, - KEY_F12, - KEY_TAB, + {KEY_SLASH}, // ImageIntensifier; + {KEY_FSTOP}, // ThrowFlare; + {KEY_APOSTROPHE}, // Jetpack; + {KEY_SEMICOLON}, // Taunt + {KEY_F1}, + {KEY_F11}, + {KEY_F12}, + {KEY_TAB} }; PLAYER_INPUT_CONFIGURATION DefaultPredatorInputPrimaryConfig = { @@ -122,21 +124,21 @@ PLAYER_INPUT_CONFIGURATION DefaultPredatorInputPrimaryConfig = KEY_LMOUSE, // FirePrimaryWeapon; KEY_RMOUSE, // FireSecondaryWeapon; - KEY_RBRACKET, // NextWeapon; - KEY_LBRACKET, // PreviousWeapon; - KEY_BACKSPACE, // FlashbackWeapon; + {KEY_RBRACKET}, // NextWeapon; + {KEY_LBRACKET}, // PreviousWeapon; + {KEY_BACKSPACE}, // FlashbackWeapon; - KEY_FSTOP, // Cloak; - KEY_SLASH, // CycleVisionMode; - KEY_PAGEUP, // ZoomIn; - KEY_PAGEDOWN, // ZoomOut; - KEY_APOSTROPHE, // GrapplingHook - KEY_COMMA, // RecallDisk - KEY_SEMICOLON, // Taunt - KEY_F1, - KEY_F11, - KEY_F12, - KEY_TAB, + {KEY_FSTOP}, // Cloak; + {KEY_SLASH}, // CycleVisionMode; + {KEY_PAGEUP}, // ZoomIn; + {KEY_PAGEDOWN}, // ZoomOut; + {KEY_APOSTROPHE}, // GrapplingHook + {KEY_COMMA}, // RecallDisk + {KEY_SEMICOLON}, // Taunt + {KEY_F1}, + KEY_F11, + KEY_F12, + KEY_TAB }; PLAYER_INPUT_CONFIGURATION DefaultAlienInputPrimaryConfig = @@ -163,12 +165,12 @@ PLAYER_INPUT_CONFIGURATION DefaultAlienInputPrimaryConfig = KEY_LMOUSE, // FirePrimaryWeapon; KEY_RMOUSE, // FireSecondaryWeapon; - KEY_SLASH, // AlternateVision; - KEY_FSTOP, // Taunt; - KEY_F1, - KEY_F11, - KEY_F12, - KEY_TAB, + {KEY_SLASH}, // AlternateVision; + {KEY_FSTOP}, // Taunt; + {KEY_F1}, + {KEY_F11}, + {KEY_F12}, + {KEY_TAB} }; #elif 0 // Dutch PLAYER_INPUT_CONFIGURATION DefaultMarineInputPrimaryConfig = @@ -635,19 +637,19 @@ PLAYER_INPUT_CONFIGURATION DefaultMarineInputSecondaryConfig = KEY_NUMPAD0, // FirePrimaryWeapon; KEY_NUMPADDEL, // FireSecondaryWeapon; - KEY_MOUSEWHEELUP, // NextWeapon; - KEY_MOUSEWHEELDOWN, // PreviousWeapon; - KEY_VOID, // FlashbackWeapon; + {KEY_MOUSEWHEELUP}, // NextWeapon; + {KEY_MOUSEWHEELDOWN}, // PreviousWeapon; + {KEY_VOID}, // FlashbackWeapon; - KEY_VOID, // ImageIntensifier; - KEY_VOID, // ThrowFlare; - KEY_VOID, // Jetpack; - KEY_VOID, // Taunt + {KEY_VOID}, // ImageIntensifier; + {KEY_VOID}, // ThrowFlare; + {KEY_VOID}, // Jetpack; + {KEY_VOID}, // Taunt - KEY_VOID, - KEY_VOID, - KEY_VOID, - KEY_VOID, + {KEY_VOID}, + {KEY_VOID}, + {KEY_VOID}, + {KEY_VOID} }; @@ -677,22 +679,22 @@ PLAYER_INPUT_CONFIGURATION DefaultPredatorInputSecondaryConfig = KEY_NUMPAD0, // FirePrimaryWeapon; KEY_NUMPADDEL, // FireSecondaryWeapon; - KEY_VOID, // NextWeapon; - KEY_VOID, // PreviousWeapon; - KEY_VOID, // FlashbackWeapon; + {KEY_VOID}, // NextWeapon; + {KEY_VOID}, // PreviousWeapon; + {KEY_VOID}, // FlashbackWeapon; - KEY_VOID, // Cloak; - KEY_VOID, // CycleVisionMode; - KEY_MOUSEWHEELUP, // ZoomIn; - KEY_MOUSEWHEELDOWN, // ZoomOut; - KEY_VOID, // GrapplingHook; - KEY_VOID, // RecallDisk - KEY_VOID, // Taunt + {KEY_VOID}, // Cloak; + {KEY_VOID}, // CycleVisionMode; + {KEY_MOUSEWHEELUP}, // ZoomIn; + {KEY_MOUSEWHEELDOWN}, // ZoomOut; + {KEY_VOID}, // GrapplingHook; + {KEY_VOID}, // RecallDisk + {KEY_VOID}, // Taunt - KEY_VOID, - KEY_VOID, - KEY_VOID, - KEY_VOID, + {KEY_VOID}, + KEY_VOID, + KEY_VOID, + KEY_VOID }; @@ -720,12 +722,12 @@ PLAYER_INPUT_CONFIGURATION DefaultAlienInputSecondaryConfig = KEY_NUMPAD0, // FirePrimaryWeapon; KEY_NUMPADDEL, // FireSecondaryWeapon; - KEY_VOID, // AlternateVision; - KEY_VOID, // Taunt; - KEY_VOID, - KEY_VOID, - KEY_VOID, - KEY_VOID, + {KEY_VOID}, // AlternateVision; + {KEY_VOID}, // Taunt; + {KEY_VOID}, + {KEY_VOID}, + {KEY_VOID}, + {KEY_VOID} }; diff --git a/src/avp/win95/usr_io.h b/src/avp/win95/usr_io.h index db25011..6297a7f 100644 --- a/src/avp/win95/usr_io.h +++ b/src/avp/win95/usr_io.h @@ -317,6 +317,7 @@ typedef struct extern void LoadAKeyConfiguration(char* Filename); extern void SaveAKeyConfiguration(char* Filename); +void LoadDefaultPrimaryConfigs(void); #ifdef __cplusplus }; diff --git a/src/include/module.h b/src/include/module.h index a42a6ca..cf225f9 100644 --- a/src/include/module.h +++ b/src/include/module.h @@ -395,6 +395,7 @@ void UpdateModules(void); void ModuleFunctions(MODULE *mptr, MFUNCTION mf); void AllocateModuleObject(MODULE *mptr); void DeallocateModuleObject(MODULE *mptr); +void AllNewModuleHandler(void); /* diff --git a/src/kshape.h b/src/kshape.h index 4361e7f..6bd1f60 100644 --- a/src/kshape.h +++ b/src/kshape.h @@ -2,6 +2,7 @@ #define _kshape_h_ 1 #include "particle.h" +#include "sphere.h" typedef struct @@ -101,6 +102,14 @@ extern void CheckRenderStatesForModule(MODULE *modulePtr); extern void RenderDecal(DECAL *decalPtr); extern void RenderParticle(PARTICLE *particlePtr); +void RenderInsideAlienTongue(int offset); +void RenderPredatorTargetingSegment(int theta, int scale, int drawInRed); +void RenderPredatorPlasmaCasterCharge(int value, VECTORCH *worldOffsetPtr, MATRIXCH *orientationPtr); +void CreateStarArray(void); +void OutputTranslucentPolyList(void); +void RenderLightFlare(VECTORCH *positionPtr, unsigned int colour); +extern void RenderFlechetteParticle(PARTICLE *particlePtr); +void RenderExplosionSurface(VOLUMETRIC_EXPLOSION *explosionPtr); /* KJL 10:25:44 7/23/97 - this offset is used to push back the normal game gfx, so that the HUD can be drawn over the top without sinking into walls, etc. */ diff --git a/src/menus.c b/src/menus.c index 1359786..47b6d30 100644 --- a/src/menus.c +++ b/src/menus.c @@ -376,7 +376,7 @@ static void UnloadMenuFont() IntroFont_Light.info.ImagePtr = NULL; } -int LengthOfMenuText(char *textPtr) +int LengthOfMenuText(const char *textPtr) { int width = 0; @@ -400,7 +400,7 @@ int LengthOfSmallMenuText(char *textPtr) return width; } -int RenderMenuText(char *textPtr, int sx, int sy, int alpha, enum AVPMENUFORMAT_ID format) +int RenderMenuText(const char *textPtr, int sx, int sy, int alpha, enum AVPMENUFORMAT_ID format) { int width; diff --git a/src/net.c b/src/net.c index be90dd7..166ec4a 100644 --- a/src/net.c +++ b/src/net.c @@ -35,14 +35,22 @@ void DpExtUnInit() HRESULT DpExtRecv(int lpDP2A, void *lpidFrom, void *lpidTo, DWORD dwFlags, void *lplpData, LPDWORD lpdwDataSize) { +/* fprintf(stderr, "DpExtRecv(%d, %p, %p, %d, %p, %p)\n", lpDP2A, lpidFrom, lpidTo, dwFlags, lplpData, lpdwDataSize); - +*/ return 1; } HRESULT DpExtSend(int lpDP2A, DPID idFrom, DPID idTo, DWORD dwFlags, void *lpData, DWORD dwDataSize) { +/* fprintf(stderr, "DpExtSend(%d, %d, %d, %d, %p, %d)\n", lpDP2A, idFrom, idTo, dwFlags, lpData, dwDataSize); +*/ + FILE *fp = fopen("net.log", "ab"); + fprintf(fp, "\nDpExtSend(%d, %d, %d, %d, %p, %d) ", lpDP2A, idFrom, idTo, dwFlags, lpData, dwDataSize); + fprintf(fp, "time = %d\n", timeGetTime()); + fwrite(lpData, dwDataSize, 1, fp); + fclose(fp); return 1; } diff --git a/src/opengl.h b/src/opengl.h index 86e68c4..876a71e 100644 --- a/src/opengl.h +++ b/src/opengl.h @@ -8,5 +8,12 @@ void ThisFramesRenderingHasBegun(); void ThisFramesRenderingHasFinished(); void D3D_SkyPolygon_Output(POLYHEADER *inputPolyPtr, RENDERVERTEX *renderVerticesPtr); void D3D_DrawBackdrop(); +void D3D_FadeDownScreen(int brightness, int colour); +void RenderString(char *stringPtr, int x, int y, int colour); +void RenderStringCentred(char *stringPtr, int centreX, int y, int colour); +void D3D_DecalSystem_Setup(); +void D3D_DecalSystem_End(); +void SecondFlushD3DZBuffer(); +void D3D_PlayerDamagedOverlay(int intensity); #endif diff --git a/src/win95/chnkload.cpp b/src/win95/chnkload.cpp index 1a348df..e7e1149 100644 --- a/src/win95/chnkload.cpp +++ b/src/win95/chnkload.cpp @@ -147,8 +147,8 @@ void Shape_Fragment_Type::Setup_sh_frags(Fragment_Type_Chunk* ftc) sh_fragdesc->sh_fragsound=(SHAPEFRAGMENTSOUND*)PoolAllocateMem(sizeof(SHAPEFRAGMENTSOUND)); sh_fragdesc->sh_fragsound->sound_loaded=GetSoundForMainRif (ftsoc->wav_name); - sh_fragdesc->sh_fragsound->inner_range=ftsoc->inner_range*local_scale; - sh_fragdesc->sh_fragsound->outer_range=ftsoc->outer_range*local_scale; + sh_fragdesc->sh_fragsound->inner_range=(unsigned long)(ftsoc->inner_range*local_scale); + sh_fragdesc->sh_fragsound->outer_range=(unsigned long)(ftsoc->outer_range*local_scale); sh_fragdesc->sh_fragsound->pitch=ftsoc->pitch; sh_fragdesc->sh_fragsound->max_volume=ftsoc->max_volume; @@ -922,9 +922,9 @@ CTM_ReturnType copy_to_mainshapelist(RIFFHANDLE h, Shape_Chunk * tmpshp, int fla if (sflc) { - mainshapelist[main_shape_num]->sh_fragdesc->sh_frags[fragpos].x_offset = sflc->frag_loc.x * local_scale; - mainshapelist[main_shape_num]->sh_fragdesc->sh_frags[fragpos].y_offset = sflc->frag_loc.y * local_scale; - mainshapelist[main_shape_num]->sh_fragdesc->sh_frags[fragpos].z_offset = sflc->frag_loc.z * local_scale; + mainshapelist[main_shape_num]->sh_fragdesc->sh_frags[fragpos].x_offset = (int)(sflc->frag_loc.x * local_scale); + mainshapelist[main_shape_num]->sh_fragdesc->sh_frags[fragpos].y_offset = (int)(sflc->frag_loc.y * local_scale); + mainshapelist[main_shape_num]->sh_fragdesc->sh_frags[fragpos].z_offset = (int)(sflc->frag_loc.z * local_scale); } else @@ -945,8 +945,8 @@ CTM_ReturnType copy_to_mainshapelist(RIFFHANDLE h, Shape_Chunk * tmpshp, int fla { mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound=(SHAPEFRAGMENTSOUND*)PoolAllocateMem(sizeof(SHAPEFRAGMENTSOUND)); mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound->sound_loaded=GetSoundForMainRif (ftsoc->wav_name); - mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound->inner_range=ftsoc->inner_range*local_scale; - mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound->outer_range=ftsoc->outer_range*local_scale; + mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound->inner_range=(unsigned long)(ftsoc->inner_range*local_scale); + mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound->outer_range=(unsigned long)(ftsoc->outer_range*local_scale); mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound->pitch=ftsoc->pitch; mainshapelist[main_shape_num]->sh_fragdesc->sh_fragsound->max_volume=ftsoc->max_volume; } @@ -2176,7 +2176,7 @@ void SetupAnimatingShape(Shape_Chunk* sc,SHAPEHEADER* shp, Shape_Merge_Data_Chun int x=max(-sas->min_x,sas->max_x); int y=max(-sas->min_y,sas->max_y); int z=max(-sas->min_z,sas->max_z); - sas->radius=sqrt(x*x+y*y+z*z); + sas->radius=(int)sqrt(x*x+y*y+z*z); sas->vertex_normals=(int*)PoolAllocateMem(sizeof(VECTORCH)*cas->num_verts); @@ -2327,9 +2327,9 @@ BOOL copy_to_shapeheader ( object_float.z=(double)object->location.z; VECTORCH object_int; - object_int.vx=object_float.x*local_scale; - object_int.vy=object_float.y*local_scale; - object_int.vz=object_float.z*local_scale; + object_int.vx=(int)(object_float.x*local_scale); + object_int.vy=(int)(object_float.y*local_scale); + object_int.vz=(int)(object_float.z*local_scale); for (i=0; inumpoints; i++) { tptr[i*3] = (int) ((cshp_ptr->v_list[i].x+object_float.x)*local_scale); @@ -2653,18 +2653,18 @@ BOOL copy_sprite_to_shapeheader (RIFFHANDLE h, SHAPEHEADER *& shphd,Sprite_Heade if(sec) { - shphd->shapemaxx =sec->maxx*GlobalScale; - shphd->shapeminx =sec->minx*GlobalScale; - shphd->shapemaxy =sec->maxy*GlobalScale; - shphd->shapeminy =sec->miny*GlobalScale; + shphd->shapemaxx =(int)(sec->maxx*GlobalScale); + shphd->shapeminx =(int)(sec->minx*GlobalScale); + shphd->shapemaxy =(int)(sec->maxy*GlobalScale); + shphd->shapeminy =(int)(sec->miny*GlobalScale); } else { - shphd->shapemaxx =ssc->maxx*GlobalScale; - shphd->shapeminx =-ssc->maxx*GlobalScale; - shphd->shapemaxy =ssc->maxy*GlobalScale; - shphd->shapeminy =-ssc->maxy*GlobalScale; + shphd->shapemaxx =(int)(ssc->maxx*GlobalScale); + shphd->shapeminx =(int)(-ssc->maxx*GlobalScale); + shphd->shapemaxy =(int)(ssc->maxy*GlobalScale); + shphd->shapeminy =(int)(-ssc->maxy*GlobalScale); } shphd->shapemaxz =501*GlobalScale; shphd->shapeminz =-501*GlobalScale; @@ -2876,10 +2876,10 @@ BOOL copy_sprite_to_shapeheader (RIFFHANDLE h, SHAPEHEADER *& shphd,Sprite_Heade tf->txf_uvdata[pos2][l*2+1]=ProcessUVCoord(h,UVC_SPRITE_V,f->UVCoords[3-l][1]<<16,BmpConv[f->Texture]); - tf->txf_uvdata[pos][l*2+8]=-(f->UVCoords[3-l][0]-f->CentreX)*bmpscale*GlobalScale; - tf->txf_uvdata[pos][l*2+9]=(f->UVCoords[3-l][1]-f->CentreY)*bmpscale*GlobalScale; - tf->txf_uvdata[pos2][l*2+8]=-(f->UVCoords[3-l][0]-f->CentreX)*bmpscale*GlobalScale; - tf->txf_uvdata[pos2][l*2+9]=(f->UVCoords[3-l][1]-f->CentreY)*bmpscale*GlobalScale; + tf->txf_uvdata[pos][l*2+8]=(int)(-(f->UVCoords[3-l][0]-f->CentreX)*bmpscale*GlobalScale); + tf->txf_uvdata[pos][l*2+9]=(int)((f->UVCoords[3-l][1]-f->CentreY)*bmpscale*GlobalScale); + tf->txf_uvdata[pos2][l*2+8]=(int)(-(f->UVCoords[3-l][0]-f->CentreX)*bmpscale*GlobalScale); + tf->txf_uvdata[pos2][l*2+9]=(int)((f->UVCoords[3-l][1]-f->CentreY)*bmpscale*GlobalScale); } } @@ -2893,10 +2893,10 @@ BOOL copy_sprite_to_shapeheader (RIFFHANDLE h, SHAPEHEADER *& shphd,Sprite_Heade tf->txf_uvdata[pos2][l*2+1]=ProcessUVCoord(h,UVC_SPRITE_V,f->UVCoords[l][1]<<16,BmpConv[f->Texture]); - tf->txf_uvdata[pos][l*2+8]=(f->UVCoords[l][0]-f->CentreX)*bmpscale*GlobalScale; - tf->txf_uvdata[pos][l*2+9]=(f->UVCoords[l][1]-f->CentreY)*bmpscale*GlobalScale; - tf->txf_uvdata[pos2][l*2+8]=(f->UVCoords[l][0]-f->CentreX)*bmpscale*GlobalScale; - tf->txf_uvdata[pos2][l*2+9]=(f->UVCoords[l][1]-f->CentreY)*bmpscale*GlobalScale; + tf->txf_uvdata[pos][l*2+8]=(int)((f->UVCoords[l][0]-f->CentreX)*bmpscale*GlobalScale); + tf->txf_uvdata[pos][l*2+9]=(int)((f->UVCoords[l][1]-f->CentreY)*bmpscale*GlobalScale); + tf->txf_uvdata[pos2][l*2+8]=(int)((f->UVCoords[l][0]-f->CentreX)*bmpscale*GlobalScale); + tf->txf_uvdata[pos2][l*2+9]=(int)((f->UVCoords[l][1]-f->CentreY)*bmpscale*GlobalScale); } } @@ -2975,10 +2975,10 @@ BOOL copy_to_map6(Object_Chunk * ob,MAPBLOCK6* mapblock, int shplst_pos) QUAT q; - q.quatx = -ob->object_data.orientation.x*ONE_FIXED; - q.quaty = -ob->object_data.orientation.y*ONE_FIXED; - q.quatz = -ob->object_data.orientation.z*ONE_FIXED; - q.quatw = ob->object_data.orientation.w*ONE_FIXED; + q.quatx = (int)(-ob->object_data.orientation.x*ONE_FIXED); + q.quaty = (int)(-ob->object_data.orientation.y*ONE_FIXED); + q.quatz = (int)(-ob->object_data.orientation.z*ONE_FIXED); + q.quatw = (int)(ob->object_data.orientation.w*ONE_FIXED); MATRIXCH m; diff --git a/src/win95/shpanim.h b/src/win95/shpanim.h index 1722c18..36e6e13 100644 --- a/src/win95/shpanim.h +++ b/src/win95/shpanim.h @@ -72,7 +72,7 @@ typedef struct shapeanimationheader // Private variables - unsigned long num_sequences; + int num_sequences; SHAPEANIMATIONSEQUENCE * anim_sequences;