Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS

Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
This commit is contained in:
Cyd
2026-06-24 21:28:16 -05:00
commit 2b8ca921cb
66341 changed files with 7923174 additions and 0 deletions
@@ -0,0 +1,179 @@
//------------------------------------------------------------------
// NOTE: The fsm name below MUST be changed in order for the
// script to be considered a unique entity!
fsm Patrol : integer;
//------------------------------------------------------------------
// Generic_Patrol:
// Follows a path. If anything comes near, it goes off and attacks it,
// and then comes back to the path when there's nothing left to attack.
//------------------------------------------------------------------
//------------------------------------------------------------------
// Constants
//------------------------------------------------------------------
const
#include_ <content\ABLScripts\mwconst.abi>
//------------------------------------------------------------------
// Types
//------------------------------------------------------------------
type
#include_ <content\ABLScripts\mwtype.abi>
//------------------------------------------------------------------
// Variables
//------------------------------------------------------------------
var
static integer attackRange; // At what range do I start shooting?
static integer withdrawRange; // At what range do I withdraw from combat entirely?
static integer path; // My path
static integer moveType; // How I move along the path
static boolean canLeavePath; // Can I leave the path if attacked? (TRUE by default)
static integer piloting; // Piloting skill
static integer gunnery; // Gunnery skill/chance to hit
static real minDelay; // Minimum amount of time I will wait between shots once a weapon is reloaded
static real maxDelay; // Maximum amount of time I will wait between shots once a weapon is reloaded
static integer eliteLevel; // Elite level. This helps determine tactics, defensive manuevers, opportunity fire
// and other things. It indicates a general level of combat experience.
static integer attackThrottle; // My attack throttle
static integer isShotRadius; // How far away from me will I detect an enemy shot?
static integer attackSound; // The attack sound I play when I first attack
static integer deathSound; // The sound I play when I die
static integer mood; // My default mood.
static integer speed; // The speed at which I move along the path
//------------------------------------------------------------------
// Init: my initialization function
//------------------------------------------------------------------
function Init;
code
// script-specific variables
attackRange = 500;
withdrawRange = attackrange * 3 / 2;
path = -1;
moveType = move_circle;
canLeavePath = true;
speed = 600;
// driver settings
piloting = 50;
gunnery = 30;
minDelay = 1.5;
maxDelay = 3.0;
eliteLevel = 30;
attackThrottle = 80;
isShotRadius = 120;
attackSound = -1; // no sound
deathSound = -1; // no sound
mood = 5;
switch (getmemoryinteger(me,9))
case 2:
attackrange = 600;
path = epa_midbasepath;
endcase;
case 4:
attackrange = 600;
path = epa_northmechpath;
endcase;
case 5:
attackrange = 600;
path = epa_southmechpath;
endcase;
endswitch;
endfunction;
//------------------------------------------------------------------
// StartState: my initial state
//------------------------------------------------------------------
state StartState;
code
SetFiringDelay (ME,minDelay,maxDelay);
SetIgnoreFriendlyFire (ME,true);
SetIsShotRadius (ME,isShotRadius);
SetEntropyMood (ME,mood);
SetCurMood (ME,mood);
SetSkillLevel (ME,piloting,gunnery,eliteLevel);
SetAttackThrottle (ME,attackThrottle);
trans FollowPathState;
endstate;
//------------------------------------------------------------------
// FollowPathState: follow our path, but keep an eye out for enemies
//------------------------------------------------------------------
state FollowPathState;
code
if (SetMyTarget(attackRange)) then
trans AttackState;
endif;
if (path <> -1) then
OrderMoveResumePatrol(path,speed,moveType,true,false);
endif;
endstate;
//------------------------------------------------------------------
// AttackState: attack my current target, or return to path if done
//------------------------------------------------------------------
state AttackState;
code
if (LeaveAttackState(withdrawRange)) then
OrderStopAttacking;
SetTarget(ME,NO_UNIT);
trans FollowPathState;
endif;
if (attackSound <> -1) then
PlaySoundOnce(attackSound);
endif;
OrderAttacktactic(tactic_rush,true);
endstate;
//------------------------------------------------------------------
// DeadState: OK, I kicked the bucket.
//------------------------------------------------------------------
state DeadState;
code
if (deathSound <> -1) then
PlaySoundOnce(deathSound);
endif;
orderDie;
endstate;
endfsm.
@@ -0,0 +1,144 @@
//------------------------------------------------------------------
// NOTE: The fsm name below MUST be changed in order for the
// script to be considered a unique entity!
fsm Sentry : integer;
//------------------------------------------------------------------
// Generic_Sentry:
// Stands still. Moves to attack anything that comes near.
//
//------------------------------------------------------------------
//------------------------------------------------------------------
// Constants
//------------------------------------------------------------------
const
#include_ <content\ABLScripts\mwconst.abi>
//------------------------------------------------------------------
// Types
//------------------------------------------------------------------
type
#include_ <content\ABLScripts\mwtype.abi>
//------------------------------------------------------------------
// Variables
//------------------------------------------------------------------
var
static integer attackRange; // At what range do I start shooting?
static integer withdrawRange; // At what range do I withdraw from combat completely?
static integer piloting; // Piloting skill
static integer gunnery; // Gunnery skill/chance to hit
static real minDelay; // Minimum amount of time I will wait between shots once a weapon is reloaded
static real maxDelay; // Maximum amount of time I will wait between shots once a weapon is reloaded
static integer eliteLevel; // Elite level. This helps determine tactics, defensive manuevers, opportunity fire
// and other things. It indicates a general level of combat experience.
static integer attackThrottle; // My attack throttle
static integer isShotRadius; // How far away from me will I detect an enemy shot?
static integer attackSound; // The attack sound I play when I first attack
static integer deathSound; // The sound I play when I die
static integer mood; // My default mood.
//------------------------------------------------------------------
// Init: my initialization function
//------------------------------------------------------------------
function Init;
code
// script-specific variables
attackRange = 500;
withdrawRange = attackRange * 2;
// driver settings
piloting = 50;
gunnery = 30;
minDelay = 1.5;
maxDelay = 3.0;
eliteLevel = 30;
attackThrottle = 80;
isShotRadius = 120;
attackSound = -1; // no sound
deathSound = -1; // no sound
mood = 5;
endfunction;
//------------------------------------------------------------------
// StartState: my initial state
//------------------------------------------------------------------
state StartState;
code
SetFiringDelay (ME,minDelay,maxDelay);
SetIgnoreFriendlyFire (ME,true);
SetIsShotRadius (ME,isShotRadius);
SetEntropyMood (ME,mood);
SetCurMood (ME,mood);
SetSkillLevel (ME,piloting,gunnery,eliteLevel);
SetAttackThrottle (ME,attackThrottle);
trans WaitState;
endstate;
//------------------------------------------------------------------
// WaitState: wait for something to shoot
//------------------------------------------------------------------
state WaitState;
code
OrderMoveLookOut;
if (SetMyTarget(attackRange)) then
trans AttackState;
endif;
endstate;
//------------------------------------------------------------------
// AttackState: look for something to shoot
//------------------------------------------------------------------
state AttackState;
code
if (LeaveAttackState(withdrawRange)) then
OrderStopAttacking;
SetTarget(ME,NO_UNIT);
trans WaitState;
endif;
OrderAttacktactic(tactic_rush,true);
endstate;
//------------------------------------------------------------------
// DeadState: OK, I kicked the bucket.
//------------------------------------------------------------------
state DeadState;
code
if (deathSound <> -1) then
PlaySoundOnce(deathSound);
endif;
orderDie;
endstate;
endfsm.
@@ -0,0 +1,32 @@
fsm InnerCity_TeamDestruction : integer;
const
#include_ <content\ABLScripts\mwconst.abi>
type
#include_ <content\ABLScripts\mwtype.abi>
function init;
code
SetupScoring_TeamDestruction;
TeamSetNav(1,ena_Nav_Center);
TeamSetNav(2,ena_Nav_Center);
endfunction;
state startState;
code
revealnavpoint(ena_Nav_Center);
revealnavpoint(ena_Blue_Team_Drop_Zone);
revealnavpoint(ena_Red_Team_Drop_Zone);
endstate;
state deadState;
code
endstate;
endfsm.
@@ -0,0 +1,31 @@
fsm SnowJob_Attrition : integer;
const
#include_ <content\ABLScripts\mwconst.abi>
type
#include_ <content\ABLScripts\mwtype.abi>
function init;
code
SetupScoring_Attrition;
TeamSetNav(0,ena_Nav_Center_0001);
endfunction;
state startState;
code
revealnavpoint(ena_Nav_Center_0001);
// setnavpoint(ena_Nav_Center);
revealobjective(eob_att);
endstate;
state deadState;
code
endstate;
endfsm.
@@ -0,0 +1,31 @@
fsm SnowJob_Destruction : integer;
const
#include_ <content\ABLScripts\mwconst.abi>
type
#include_ <content\ABLScripts\mwtype.abi>
function init;
code
SetupScoring_Destruction;
TeamSetNav(0,ena_Nav_Center_0001);
endfunction;
state startState;
code
revealnavpoint(ena_Nav_Center_0001);
// setnavpoint(ena_Nav_Center);
revealobjective(eob_des);
endstate;
state deadState;
code
endstate;
endfsm.
@@ -0,0 +1,176 @@
fsm SnowJob_Escort : integer;
const
#include_ <content\ABLScripts\mwconst.abi>
type
#include_ <content\ABLScripts\mwtype.abi>
var
static ObjectID Blue_goal1;
static ObjectID Blue_goal2;
static ObjectID Red_goal1;
static ObjectID Red_goal2;
static integer goal_distance;
static boolean Blue_vip_alive;
static boolean Red_vip_alive;
static ObjectID Blue_currentgoal;
static ObjectID Red_currentgoal;
static integer Blue_score_add;
static integer Red_score_add;
static integer Blue_VIP_team;
static integer Blue_Guard_team;
static integer Red_VIP_team;
static integer Red_Guard_team;
function UpdateBlueTeamGoal;
code
TeamSetNav(3,Blue_currentgoal);
endfunction;
function UpdateRedTeamGoal;
code
TeamSetNav(4,Red_currentgoal);
endfunction;
function init;
code
Blue_goal1 = ena_Nav_Alpha;
Blue_goal2 = ena_Nav_Beta;
Red_goal1 = ena_Nav_Beta;
Red_goal2 = ena_Nav_Alpha;
Blue_VIP_team = TeamObjectID(3);
Blue_Guard_team = TeamObjectID(1);
Red_VIP_team = TeamObjectID(4);
Red_Guard_team = TeamObjectID(2);
goal_distance = 100;
Blue_score_add = 1000;
Red_score_add = 1000;
Blue_vip_alive = false;
Red_vip_alive = false;
Blue_currentgoal = Blue_goal2;
UpdateBlueTeamGoal;
Red_currentgoal = Red_goal2;
UpdateRedTeamGoal;
SetupScoring_Escort;
endfunction;
function BlueTeamScores;
code
AddPoints(Blue_VIP_team,Blue_score_add);
AddPoints(Blue_Guard_team,Blue_score_add);
if (Blue_score_add < 4000000) then
Blue_score_add = Blue_score_add + Blue_score_add;
endif;
endfunction;
function RefreshBlueTeam;
code
if (GroupAllDead(Blue_VIP_team) == true) then
Blue_score_add = 1000;
Blue_currentgoal = Blue_goal2;
Blue_vip_alive = false;
UpdateBlueTeamGoal;
else
if (Blue_vip_alive == false) then
Blue_vip_alive = true;
ChatMessage("Blue Team: Go to Nav Beta!");
endif;
if (IsWithin(Blue_VIP_team,Blue_currentgoal,goal_distance) == true) then
PlayTeamBettySound(3,SOUND_TRIGGER_NAVPOINT_REACHED);
BlueTeamScores;
if (Blue_currentgoal == Blue_goal2) then
Blue_currentgoal = Blue_goal1;
UpdateBlueTeamGoal;
ChatMessage("Blue Team Has Scored - Go to Nav Alpha!");
else
Blue_currentgoal = Blue_goal2;
UpdateBlueTeamGoal;
ChatMessage("Blue Team Has Scored - Go to Nav Beta!");
endif;
endif;
endif;
endfunction;
function RedTeamScores;
code
AddPoints(Red_VIP_team,Red_score_add);
AddPoints(Red_Guard_team,Red_score_add);
if (Red_score_add < 4000000) then
Red_score_add = Red_score_add + Red_score_add;
endif;
endfunction;
function RefreshRedTeam;
code
if (GroupAllDead(Red_VIP_team) == true) then
Red_score_add = 1000;
Red_currentgoal = Red_goal2;
Red_vip_alive = false;
UpdateRedTeamGoal;
else
if (Red_vip_alive == false) then
Red_vip_alive = true;
ChatMessage("Red Team: Go to Nav Alpha!");
endif;
if (IsWithin(Red_VIP_team,Red_currentgoal,goal_distance) == true) then
PlayTeamBettySound(4,SOUND_TRIGGER_NAVPOINT_REACHED);
RedTeamScores;
if (Red_currentgoal == Red_goal2) then
Red_currentgoal = Red_goal1;
UpdateRedTeamGoal;
ChatMessage("Red Team Has Scored - Go to Nav Beta!");
else
Red_currentgoal = Red_goal2;
UpdateRedTeamGoal;
ChatMessage("Red Team Has Scored - Go to Nav Alpha!");
endif;
endif;
endif;
endfunction;
state startState;
code
revealnavpoint(ena_Nav_Alpha);
revealnavpoint(ena_Nav_Beta);
trans goState;
endstate;
state goState;
code
RefreshBlueTeam;
RefreshRedTeam;
endstate;
state deadState;
code
endstate;
endfsm.
@@ -0,0 +1,34 @@
fsm BigCity_TeamAttrition : integer;
const
#include_ <content\ABLScripts\mwconst.abi>
type
#include_ <content\ABLScripts\mwtype.abi>
function init;
code
SetupScoring_TeamAttrition;
TeamSetNav(1,ena_Nav_Center);
TeamSetNav(2,ena_Nav_Center);
endfunction;
state startState;
code
revealnavpoint(ena_Nav_Center);
revealnavpoint(ena_Blue_Team_Drop_Zone);
revealnavpoint(ena_Red_Team_Drop_Zone);
revealobjective(eob_att);
revealobjective(eob_blue_team);
revealobjective(eob_red_team);
endstate;
state deadState;
code
endstate;
endfsm.
@@ -0,0 +1,35 @@
fsm InnerCity_TeamDestruction : integer;
const
#include_ <content\ABLScripts\mwconst.abi>
type
#include_ <content\ABLScripts\mwtype.abi>
function init;
code
SetupScoring_TeamDestruction;
TeamSetNav(1,ena_Nav_Center);
TeamSetNav(2,ena_Nav_Center);
endfunction;
state startState;
code
revealnavpoint(ena_Nav_Center);
revealnavpoint(ena_Blue_Team_Drop_Zone);
revealnavpoint(ena_Red_Team_Drop_Zone);
revealobjective(eob_des);
revealobjective(eob_blue_team);
revealobjective(eob_red_team);
endstate;
state deadState;
code
endstate;
endfsm.
@@ -0,0 +1,215 @@
//------------------------------------------------------------------
// NOTE: The fsm name below MUST be changed in order for the
// script to be considered a unique entity!
fsm Turret : integer;
//------------------------------------------------------------------
// Generic_Turret:
// This shoots anything that comes near, but never moves.
// It can be used for turrets.
//------------------------------------------------------------------
//------------------------------------------------------------------
// Constants
//------------------------------------------------------------------
const
#include_ <content\ABLScripts\mwconst.abi>
//------------------------------------------------------------------
// Types
//------------------------------------------------------------------
type
#include_ <content\ABLScripts\mwtype.abi>
//------------------------------------------------------------------
// Variables
//------------------------------------------------------------------
var
static integer attackRange; // At what range do I start shooting?
static integer withdrawRange; // At what range do I stop attacking?
static integer piloting; // Piloting skill
static integer gunnery; // Gunnery skill/chance to hit
static real minDelay; // Minimum amount of time I will wait between shots once a weapon is reloaded
static real maxDelay; // Maximum amount of time I will wait between shots once a weapon is reloaded
static integer eliteLevel; // Elite level. This helps determine tactics, defensive manuevers, opportunity fire
// and other things. It indicates a general level of combat experience.
static integer isShotRadius; // How far away from me will I detect an enemy shot?
static integer attackSound; // The attack sound I play when I first attack
static integer deathSound; // The sound I play when I die
static integer mood; // My default mood. '
static objectid mytower;
//------------------------------------------------------------------
// Init: my initialization function
//------------------------------------------------------------------
function Init;
code
// script-specific variables
attackRange = 500;
withdrawRange = attackRange * 3 / 2;
// driver settings
piloting = 50;
gunnery = 30;
minDelay = 1.5;
maxDelay = 3.0;
eliteLevel = 30;
isShotRadius = 120;
attackSound = -1; // no sound
deathSound = -1; // no sound
mood = 5;
mytower = -1; //no tower
switch (getmemoryinteger(me,9))
case 1:
attackrange = 600;
mytower = eve_southturretcontrol;
endcase;
case 2:
attackrange = 600;
mytower = ebu_midturrettower;
endcase;
endswitch;
endfunction;
//------------------------------------------------------------------
// StartState: my initial state
//------------------------------------------------------------------
state StartState;
code
SetFiringDelay (ME,minDelay,maxDelay);
SetIgnoreFriendlyFire (ME,true);
SetIsShotRadius (ME,isshotradius);
SetEntropyMood (ME,mood);
SetCurMood (ME,mood);
SetSkillLevel (ME,piloting,gunnery,elitelevel);
setalignment (ME,enemy);
setsensorvisibility(me,false);
trans WaitState;
endstate;
//------------------------------------------------------------------
// WaitState: wait for someone to come near
//------------------------------------------------------------------
state WaitState;
code
if (SetMyTarget(attackRange)) then
setsensorvisibility(me,true);
trans AttackState;
endif;
if (mytower <> -1) then
if (isdead(mytower)) then
trans towergone;
endif;
endif;
OrderMoveLookOut;
endstate;
//------------------------------------------------------------------
// AttackState: let's see what's around, and destroy it
//------------------------------------------------------------------
state AttackState;
code
if (LeaveAttackState(withdrawRange)) then
OrderStopAttacking;
SetTarget(ME,NO_UNIT);
setsensorvisibility(me,false);
trans WaitState;
endif;
if (attackSound <> -1) then
PlaySoundOnce(attackSound);
endif;
if (mytower <> -1) then
if (isdead(mytower)) then
trans towergone;
endif;
endif;
OrderAttackTactic(TACTIC_SHOOT_ONLY,true);
endstate;
//---------------------------------------
//Towergone state: My plugs been pulled. Stop shooting and shutdown
//---------------------------------------
state towergone;
code
switch (getmemoryinteger(me,9))
case 1:
southtowerdown = true;
endcase;
case 2:
midtowerdown=true;
endcase;
endswitch;
SetTarget(ME,NO_UNIT);
OrderStopAttacking;
SetTargetDesirability(ME,-1);
setsensorvisibility(me,false);
clearmoveorder(me);
trans hangout;
endstate;
state hangout;
code
endstate;
//------------------------------------------------------------------
// DeadState: OK, I kicked the bucket.
//------------------------------------------------------------------
state DeadState;
code
if (deathSound <> -1) then
PlaySoundOnce(deathSound);
endif;
orderDie;
endstate;
endfsm.
@@ -0,0 +1,57 @@
//*********************************************************************************
fsm playeraifsm : integer;
//------------------------------------------------------------------
//
// Constant Definitions
//
//------------------------------------------------------------------
const
#include_ <content\ABLScripts\mwconst.abi>
//------------------------------------------------------------------
//
// Type Definitions
//
//------------------------------------------------------------------
type
#include_ <content\ABLScripts\mwtype.abi>
//------------------------------------------------------------------
//
// Variable Declarations
//
//------------------------------------------------------------------
var
//------------------------------------------------------------------
//
// Local Functions
//
//------------------------------------------------------------------
function init;
code
endfunction;
//------------------------------------------------------------------
//
// Main Code
//
//------------------------------------------------------------------
state startState;
code
endstate;
state deadState;
code
endstate;
endfsm.
//******************************************************************