GLOBAL: Better precache management; enable -O3 for prog compilation, debloat progs

This commit is contained in:
Steam Deck User 2023-03-29 10:49:58 -04:00
parent 5487e14384
commit 83caba0141
15 changed files with 30 additions and 708 deletions

View File

@ -8,7 +8,6 @@
../source/server/dummies.qc
../source/server/rounds.qc
../source/server/nzdparser.qc
../source/server/main.qc
../source/server/utilities/weapon_utilities.qc
../source/server/utilities/game_restart.qc
@ -45,5 +44,3 @@
../source/server/ai/zombie_core.qc
../source/server/ai/crawler_core.qc
../source/server/ai/dog_core.qc
../source/server/items.qc

View File

@ -12,7 +12,6 @@
../source/server/dummies.qc
../source/server/rounds.qc
../source/server/nzdparser.qc
../source/server/main.qc
../source/server/utilities/weapon_utilities.qc
../source/server/utilities/game_restart.qc
@ -49,5 +48,3 @@
../source/server/ai/zombie_core.qc
../source/server/ai/crawler_core.qc
../source/server/ai/dog_core.qc
../source/server/items.qc

View File

@ -703,10 +703,8 @@ noref float(string cmd) CSQC_ConsoleCommand =
case "togglemenu":
ToggleMenu();
return TRUE;
break;
case "map":
return FALSE;
break;
case "startwalk":
walk = TRUE;
return FALSE;
@ -722,7 +720,6 @@ noref float(string cmd) CSQC_ConsoleCommand =
else
score_show = TRUE;
return TRUE;
break;
default:
return FALSE;
}

View File

@ -1128,85 +1128,58 @@ float(float r) Getweaponid =
switch(r) {
case 0:
return W_COLT;
break;
case 1:
return W_KAR;
break;
case 2:
return W_DB;
break;
case 3:
return W_MG;
break;
case 4:
return W_RAY;
break;
case 5:
return W_THOMPSON;
break;
case 6:
return W_M2;
break;
case 7:
return W_PPSH;
break;
case 8:
return W_SAWNOFF;
break;
case 9:
return W_TESLA;
break;
case 10:
return W_M1A1;
break;
case 11:
return W_GEWEHR;
break;
case 12:
return W_FG;
break;
case 13:
return W_BROWNING;
break;
case 14:
return W_KAR_SCOPE;
break;
case 15:
return W_357;
break;
case 16:
return W_STG;
break;
case 17:
return W_PANZER;
break;
case 18:
return W_BK;
break;
case 19:
return W_PTRS;
break;
case 20:
return W_MP40;
break;
case 21:
return W_TRENCH;
break;
case 22:
return W_BAR;
break;
case 23:
return W_M1;
break;
case 24:
return W_TYPE;
break;
case 25:
return W_MP5K;
break;
case 26:
return W_SPRING;
break;
}
return r;
@ -1912,6 +1885,10 @@ void() perk_pap =
self.requirespower = false;
}
// Only cache the dual wield pap weapons if we have pap..
precache_extra(W_BIATCH);
precache_extra(W_SNUFF);
precache_model ("models/machines/quake_scale/pap.mdl");
precache_model ("models/machines/v_pap.mdl");
precache_sound ("sounds/machines/papsound.wav");

View File

@ -67,6 +67,9 @@ void() ambient_use =
void () ambient_generic =
{
#ifdef FTE
local string link;
// moto - FIXME: typically this is set to upper-case but only FTE has strtoupper(); assume lower-case!
@ -114,6 +117,9 @@ void () ambient_generic =
ambientsound(self.origin, self.message, self.health, self.stance);
self.use = ambient_use;
#endif // FTE
};

View File

@ -1,3 +0,0 @@
//
// Items.qc - all the definitions for item spawn functions as well as other functions related to them
//

View File

@ -338,8 +338,6 @@ void() worldspawn =
G_WORLDTEXT = 1;
G_PERKS = 0;
G_PERKPOWER = 0;
load_nzd();
}
void() SpectatorConnect =

View File

@ -1,236 +0,0 @@
/*
server/nzdparser.qc
parses NZData files for map variety
Copyright (C) 2021 NZ:P Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
*/
//custom weapon search
void(string weaponFile) nzd_defineweapon = {
float f, p, l, fnum, wepnum, framenum, fsnd;
string line;
fnum = 0;
framenum = 0;
fsnd = 0;
line = strcat(strcat("data/maps/", weaponFile), ".cw");
f = fopen(line, FILE_READ);
if (f == -1) { //no custom weapons
return;
}
wepnum = currentWeaponTracker - 1;
p = 0;
l = 1;
while(l) {
string li;
li = fgets(f);
if not (li) {
l = 0;
break;
}
line = strtrim(li);
if (line == "")
continue;
switch(p) {
case 0:
wepnum += 1;
currentWeaponTracker = wepnum;
if (line == "weapon")
p = 1;
break;
case 1:
if (line == "{")
p = 2;
else
bprint(PRINT_HIGH, strcat("Error: unknown variable ", strcat(line, " expected {\n")));
break;
case 2:
tokenize(line);
string v, vari;
vari = strtrim(argv(0));
v = strtrim(argv(2));
switch(vari) {
case "name":
CustomWeapons[wepnum].name = v;
break;
case "mag":
CustomWeapons[wepnum].magSize = stof(v);
break;
case "reserve":
CustomWeapons[wepnum].reserveSize = stof(v);
break;
case "vmodel":
CustomWeapons[wepnum].vmodel = v;
break;
case "vmodel2":
CustomWeapons[wepnum].vmodel2 = v;
break;
case "gmodel":
CustomWeapons[wepnum].gmodel = v;
break;
case "ads":
CustomWeapons[wepnum].adsofs = stov(v);
break;
case "firetype":
CustomWeapons[wepnum].firetype = stof(v);
break;
case "ispap":
CustomWeapons[wepnum].ispap = stof(v);
break;
case "nonpap":
CustomWeapons[wepnum].nonpap = stof(v);
break;
case "pap":
CustomWeapons[wepnum].papWpn = stof(v);
break;
case "dmg":
CustomWeapons[wepnum].damage = stof(v);
break;
case "shotcount":
CustomWeapons[wepnum].shotcount = stof(v);
break;
case "bodypen":
CustomWeapons[wepnum].bodypen = stof(v);
break;
case "penetration":
CustomWeapons[wepnum].penetration = stof(v);
break;
case "spread":
CustomWeapons[wepnum].spread = stof(v);
break;
case "fdelay":
CustomWeapons[wepnum].fdelay = stof(v);
break;
case "rdelay":
CustomWeapons[wepnum].rdelay = stof(v);
break;
case "walkspeed":
CustomWeapons[wepnum].walkspeed = stof(v);
break;
case "firesound":
CustomWeapons[wepnum].firesound = v;
break;
case "skin":
CustomWeapons[wepnum].skin = stof(v);
break;
case "recoil":
CustomWeapons[wepnum].recoil = stof(v);
break;
case "crossmin":
CustomWeapons[wepnum].crossmin = stof(v);
break;
case "crossmax":
CustomWeapons[wepnum].crossmax = stof(v);
break;
case "lowmag":
CustomWeapons[wepnum].lowmag = stof(v);
break;
case "lowreserve":
CustomWeapons[wepnum].lowreserve = stof(v);
break;
case "flash":
CustomWeapons[wepnum].flash = stov(v);
break;
case "flashsize":
CustomWeapons[wepnum].flashsize = stof(v);
}
break;
case 3:
if (line == "[") {
p = 4;
} else {
bprint(PRINT_HIGH, strcat("Error: unknown variable ", strcat(line, " expected [\n")));
}
break;
case 4:
if (line == "]") {
p = 2;
} else {
switch(wepnum) {
/*case 0: W_C1FRAMES[fnum] = stof(line); break;
case 1: W_C2FRAMES[fnum] = stof(line); break;
case 2: W_C3FRAMES[fnum] = stof(line); break;
case 3: W_C4FRAMES[fnum] = stof(line); break;*/
}
fnum++;
}
break;
case 5:
if (line == "[") {
p = 6;
} else {
bprint(PRINT_HIGH, strcat("Error: unknown variable ", strcat(line, " expected [\n")));
}
break;
case 6:
if (line == "]") {
p = 2;
} else {
switch(wepnum) {
/*case 0: W_C1XSNDFRAME[framenum] = stof(line); break;
case 1: W_C2XSNDFRAME[framenum] = stof(line); break;
case 2: W_C3XSNDFRAME[framenum] = stof(line); break;
case 3: W_C4XSNDFRAME[framenum] = stof(line); break;*/
}
framenum++;
}
break;
case 7:
if (line == "[") {
p = 8;
} else {
bprint(PRINT_HIGH, strcat("Error: unknown variable ", strcat(line, " expected [\n")));
}
break;
case 8:
if (line == "]") {
p = 2;
} else {
switch(wepnum) {
/*case 0: W_C1XTRASND[fsnd] = line; break;
case 1: W_C2XTRASND[fsnd] = line; break;
case 2: W_C3XTRASND[fsnd] = line; break;
case 3: W_C4XTRASND[fsnd] = line; break;*/
}
fsnd++;
}
break;
}
}
fclose(f);
}
void() load_nzd = {
}

View File

@ -1,327 +0,0 @@
/*
server/player/last_stand.qc
Functionality pertaining to Player's Last Stand mode and the act
of getting out of it.
Copyright (C) 2021-2023 NZ:P Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
*/
float() PollPlayersAlive;
void() EndGameSetup;
void() SpectatorSpawn;
#define LAST_STAND_DURATION_SEC 100 // Seconds in Last Stand.
// when dead and other players exist and are alive, throw user into spectate mode
void(entity deceased) Player_BecomeSpectator =
{
if (!deceased.downed)
return;
/*if (self.beingrevived)
{
self.think = startspectate;
self.nextthink = time + 0.1;
return;
}*/
deceased.downedloop = 0;
deceased.beingrevived = false;
deceased.model = "";
setmodel(deceased, deceased.model);
deceased.health = 100;
deceased.weaponmodel = "";
deceased.weapon2model = "";
deceased.weapon = 0;
deceased.downed = 0;
deceased.frame = 0;
UpdateVmodel(deceased.weaponmodel, GetWepSkin(deceased.weapon));
UpdateV2model(deceased.weapon2model, GetWepSkin(deceased.weapon));
entity tempe;
tempe = self;
self = deceased;
SwitchWeapon(self.weapon);
SpectatorSpawn();
self = tempe;
}
void() ReviveTracker_Update =
{
// Add to the die timer..
self.ltime += 0.1;
// Bleed Out Timer
if (self.ltime >= LAST_STAND_DURATION_SEC) {
// Get rid of the Revive Icon from HUDs and make them a spectator.
DisableReviveIcon(self.owner.electro_targeted);
Player_BecomeSpectator(self.owner);
// Prevent any leakage
remove(self);
} else {
self.nextthink = time + 0.1;
}
}
void(entity deceased) SpawnReviveTracker =
{
entity revive_tracker = spawn();
revive_tracker.owner = deceased;
revive_tracker.think = ReviveTracker_Update;
revive_tracker.nextthink = time + 0.1;
}
void() Player_ReviveTrigger =
{
if (other.classname != "player" || (self.beingrevived == true && self.firer != other))
return;
// perform a trace to make sure they're always facing the revivee
vector source;
makevectors(self.angles);
source = other.origin - '0 0 12';
traceline(source, source + v_forward*50, 0, other);
other.active_door = trace_ent;
centerprint(other, other.active_door.classname);
if (self.beingrevived == false && other.active_door == self)
useprint(other, 13, 0, 0);
}
void() Player_EnterLastStand =
{
// 'Pro Gamer Move' achievement.
if (rounds <= 1 && self.currentmag == 0 &&
self.currentmag2 == 0 && self.currentammo == 0 &&
self.secondarymag == 0 && self.secondarymag2 == 0 &&
self.secondaryammo == 0) {
GiveAchievement(9, self);
}
// Play Last Stand Animation
PAnim_GetDown1();
// Force the player to prone.
if (self.stance == 2) self.new_ofs_z = self.view_ofs_z - 42;
if (self.stance == 1) self.new_ofs_z = self.view_ofs_z - 24;
self.stance = 0;
// Get Rid of Mule Kick Weapon (FIXME -- this just obliterates the third slot)
self.thirdweapon = 0;
// Calculate the loss in points, take away points from downed Player.
float point_difference;
point_difference = self.points;
point_difference -= 10*rint((self.points*0.95)/10);
addmoney(self, point_difference * -1, false);
self.requirespower = point_difference;
// Broadcast that the player has downed.
BroadcastMessage(time + 3, 2, self.netname);
// Different hitbox for Last Stand
setsize(self, '-16 -16 -32', '16 16 40');
// Reset state
self.velocity = self.zoom = 0;
self.downed = true;
self.dive_delay = 0;
self.movetype = MOVETYPE_WALK;
// Determine if we should End the Game.
float players_still_alive = PollPlayersAlive();
if ((coop && !players_still_alive) || (!coop && !(self.perks & P_REVIVE))) {
EndGameSetup();
return;
} else {
self.health = 19;
}
// Initiate Self-Revive on Solo
if ((self.perks & P_REVIVE) && !coop) {
self.progress_bar = 10 + time;
self.progress_bar_time = 10;
self.progress_bar_percent = 1;
}
// Take away weapons and Perks
self.perks = 0;
SetPerk(self, self.perks);
self.weaponbk = self.weapon;
self.currentammobk = self.currentammo;
self.currentmagbk = self.currentmag;
self.currentmagbk2 = self.currentmag2;
if(Util_PlayerHasWeapon(self, W_BIATCH, false) ||
Util_PlayerHasWeapon(self, W_RAY, true) ||
Util_PlayerHasWeapon(self, W_357, true)) {
float weapon_slot;
float total_ammo;
total_ammo = 0;
weapon_slot = Util_PlayerHasWeapon(self, W_RAY, true);
if (weapon_slot == 0) weapon_slot = Util_PlayerHasWeapon(self, W_BIATCH, false);
if (weapon_slot == 0) weapon_slot = Util_PlayerHasWeapon(self, W_357, true);
switch(weapon_slot) {
case 1:
total_ammo = self.currentmag + self.currentmag2 + self.currentammo;
break;
case 2:
total_ammo = self.secondarymag + self.secondarymag2 + self.secondaryammo;
self.weapon = self.secondaryweapon;
break;
}
// If it's greater than the mag size, we can fill the magazine.
if (total_ammo > getWeaponMag(self.weapon)) {
self.currentmag = getWeaponMag(self.weapon);
// subtract it from the total ammo
total_ammo -= self.currentmag;
} else {
self.currentmag = total_ammo;
total_ammo = 0;
}
// Check for dual wield mag too
if (IsDualWeapon(self.weapon)) {
if (total_ammo > getWeaponMag(self.weapon)) {
self.currentmag2 = getWeaponMag(self.weapon);
// subtract it from the total ammo
total_ammo -= self.currentmag2;
} else {
self.currentmag2 = total_ammo;
total_ammo = 0;
}
}
// Ray Gun has a special case where we DON'T fill its reserve
if (self.weapon != W_RAY && self.weapon != W_PORTER) {
// Now see if the reserve ammo is more than max downed capacity
if (total_ammo > getWeaponMag(self.weapon)*2) {
self.currentammo = getWeaponMag(self.weapon)*2;
} else {
// It's not so just fill it
self.currentammo = total_ammo;
}
} else {
self.currentammo = 0;
}
} else {
if (!coop) {
self.weapon = W_BIATCH;
self.currentammo = 12;
self.currentmag = self.currentmag2 = 6;
} else {
self.weapon = W_COLT;
self.currentmag = 8;
self.currentammo = 16;
}
}
// Play Switch Animation
self.weaponmodel = GetWeaponModel(self.weapon, 0);
SwitchWeapon(self.weapon);
float startframe = GetFrame(self.weapon,TAKE_OUT_START);
float endframe = GetFrame(self.weapon,TAKE_OUT_END);
Set_W_Frame (startframe, endframe, 0, 0, 0, SUB_Null, self.weaponmodel, false, S_BOTH);
// Spawn Revive Sprite and Revive Tracker in Co-Op
if (coop) {
EnableReviveIcon(revive_index, self.origin + VEC_VIEW_OFS);
SpawnReviveTracker(self);
self.touch = Player_ReviveTrigger;
self.electro_targeted = revive_index;
revive_index++;
}
//self.think = rec_downed;
//self.nextthink = time + 0.1;
}
void() Player_LeaveLastStand =
{
local string modelname;
float startframe;
float endframe;
playgetup(); // animation
self.new_ofs_z = self.view_ofs_z + 42;
self.stance = 2;
self.health = 100;
self.downedloop = 0; // used for death timing vs endgame
self.downed = 0;
self.classname = "player";
// Revert Hitbox
setsize(self, '-16 -16 -32', '16 16 40');
// Take away the ammo that was fired while in last stand.
if (self.weapon != W_COLT) {
if (self.weapon == self.weaponbk) {
self.currentammobk -= self.teslacount;
// Take from the mag if the reserve is empty now
if (self.currentammobk < 0)
self.currentmagbk += self.currentammobk;
self.currentammobk = 0;
} else if (self.weapon == self.secondaryweapon) {
self.secondaryammo -= self.teslacount;
// Take from the mag if the reserve is empty now
if (self.secondaryammo < 0)
self.secondarymag += self.secondaryammo;
self.secondaryammo = 0;
}
}
self.teslacount = 0;
if (!coop) {
addmoney(self, self.requirespower, false);
}
if (self.weaponbk)
{
self.weapon = self.weaponbk;
self.currentammo = self.currentammobk;
self.currentmag = self.currentmagbk;
self.currentmag2 = self.currentmagbk2;
}
modelname = GetWeaponModel(self.weapon, 0);
self.weaponmodel = modelname;
SwitchWeapon(self.weapon);
self.weapon2model = GetWeapon2Model(self.weapon);
self.movetype = MOVETYPE_WALK;
startframe = GetFrame(self.weapon,TAKE_OUT_START);
endframe = GetFrame(self.weapon,TAKE_OUT_END);
Set_W_Frame (startframe, endframe, 0, 0, 0, SUB_Null, modelname, false, S_BOTH);
};

View File

@ -47,10 +47,10 @@ void() W_AimOut;
float(entity person, float slot) Weapon_GetPlayerAmmoInSlot =
{
switch(slot) {
case 1: return person.currentammo; break;
case 2: return person.secondaryammo; break;
case 3: return person.thirdammo; break;
default: return 0; break;
case 1: return person.currentammo;
case 2: return person.secondaryammo;
case 3: return person.thirdammo;
default: return 0;
}
};

View File

@ -177,7 +177,6 @@ float(string path) model_should_hide_weapon2 =
case "models/weapons/knife/v_bowie.mdl":
case "models/weapons/knife/v_knife.mdl":
return true;
break;
}
return false;

View File

@ -231,7 +231,3 @@ float invertfloat(float input) {
return (1 - input);
}
// custom weapon defs
// now 90% slimmed down
float currentWeaponTracker;

View File

@ -25,45 +25,6 @@
*/
/*
Structs are MAGICAL!
*/
var struct {
string name;
float magSize;
float reserveSize;
string vmodel;
string vmodel2;
string gmodel;
float isDual;
float firetype;
float nonpap;
float pap;
float ispap;
float damage;
float shotcount;
float bodypen;
float penetration;
float spread;
float fdelay;
float rdelay;
float walkspeed;
string firesound;
float skin;
float recoil;
float crossmin;
float crossmax;
float lowmag;
float lowreserve;
vector flash;
float flashsize;
float papWpn;
vector adsofs;
} CustomWeapons[] =
{
};
string(float wep) GetWeaponName =
{
@ -3301,8 +3262,11 @@ void(float weptype) precache_extra =
precache_sound("sounds/weapons/colt/magout.wav");
precache_sound("sounds/weapons/colt/magin.wav");
precache_sound("sounds/weapons/colt/slide.wav");
precache_model ("models/weapons/m1911/v_biatch_right.mdl"); // sprite explosion
precache_model ("models/weapons/m1911/v_biatch_left.mdl");
if (weptype == W_BIATCH) {
precache_model ("models/weapons/m1911/v_biatch_right.mdl");
precache_model ("models/weapons/m1911/v_biatch_left.mdl");
}
break;
case W_KAR_SCOPE:
case W_KAR:
@ -3366,9 +3330,10 @@ void(float weptype) precache_extra =
precache_sound("sounds/weapons/shotgun/shoot.wav");
//lotta stuff here, so let's make sure we don't add unless ABSOLUTELY necessary..
if (weptype == W_SAWNOFF || weptype == W_SNUFF)
if (weptype == W_SNUFF) {
precache_model("models/weapons/sawnoff/v_snuff_right.mdl");
precache_model("models/weapons/sawnoff/v_snuff_left.mdl");
}
break;
case W_FG:
case W_IMPELLER:
@ -3495,6 +3460,9 @@ void(float weptype) precache_extra =
case W_GRENADE:
precache_model("models/props/grenade_bag.mdl");
break;
case W_BETTY:
precache_model("models/weapons/grenade/g_betty.mdl");
break;
}
}
@ -3505,148 +3473,101 @@ float(float wep) getWeaponRecoilReturn =
{
case W_COLT:
return 750;
break;
case W_BIATCH:
return 750;
break;
case W_KAR:
case W_SPRING:
return 750;
break;
case W_ARMAGEDDON:
case W_PULVERIZER:
return 750;
break;
case W_THOMPSON:
return 950;
break;
case W_GIBS:
return 950;
break;
case W_357:
return 1500;
break;
case W_KILLU:
return 1500;
break;
case W_BAR:
return 460;
break;
case W_WIDOW:
return 460;
break;
case W_BROWNING:
return 950;
break;
case W_ACCELERATOR:
return 950;
break;
case W_DB:
return 1000;
break;
case W_BORE:
return 1000;
break;
case W_FG:
return 1129;
break;
case W_IMPELLER:
return 1129;
break;
case W_GEWEHR:
return 1500;
break;
case W_COMPRESSOR:
return 1500;
break;
case W_KAR_SCOPE:
return 750;
break;
case W_HEADCRACKER:
return 750;
break;
case W_M1:
return 1500;
break;
case W_M1000:
return 1500;
break;
case W_M1A1:
return 1500;
break;
case W_WIDDER:
return 1500;
break;
case W_MP40:
return 2538;
break;
case W_AFTERBURNER:
return 2538;
break;
case W_MP5K:
return 1255;
break;
case W_KOLLIDER:
return 1255;
break;
case W_MG:
return 1778;
break;
case W_BARRACUDA:
return 1778;
break;
case W_PANZER:
return 0;
break;
case W_LONGINUS:
return 0;
break;
case W_PPSH:
return 1255;
break;
case W_REAPER:
return 1255;
break;
case W_PTRS:
return 1500;
break;
case W_PENETRATOR:
return 1500;
break;
case W_RAY:
return 0;
break;
case W_PORTER:
return 0;
break;
case W_SAWNOFF:
return 1000;
break;
case W_SNUFF:
return 1000;
break;
case W_STG:
return 2400;
break;
case W_SPATZ:
return 2400;
break;
case W_TRENCH:
return 500;
break;
case W_GUT:
return 500;
break;
case W_TYPE:
return 1813;
break;
case W_SAMURAI:
return 1813;
break;
case W_TESLA:
case W_DG3:
return 1813;
break;
}
return 0;
}

View File

@ -9,16 +9,16 @@ echo "========================"
echo " compiling FTE CCQC "
echo "========================"
echo ""
./fteqcc-cli-lin -srcfile ../progs/fte-client.src
./fteqcc-cli-lin -O3 -srcfile ../progs/fte-client.src
echo ""
echo "========================"
echo " compiling FTE SSQC "
echo "========================"
echo ""
./fteqcc-cli-lin -srcfile ../progs/fte-server.src
./fteqcc-cli-lin -O3 -srcfile ../progs/fte-server.src
echo ""
echo "========================"
echo " compiling STANDARD QC "
echo "========================"
echo ""
./fteqcc-cli-lin -srcfile ../progs/standard.src
./fteqcc-cli-lin -O3 -srcfile ../progs/standard.src

View File

@ -9,17 +9,17 @@ echo ========================
echo compiling FTE CCQC
echo ========================
echo.
fteqcc-cli-win.exe -srcfile ../progs/fte-client.src
fteqcc-cli-win.exe -O3 -srcfile ../progs/fte-client.src
echo.
echo ========================
echo compiling FTE SSQC
echo ========================
echo.
fteqcc-cli-win.exe -srcfile ../progs/fte-server.src
fteqcc-cli-win.exe -O3 -srcfile ../progs/fte-server.src
echo.
echo ========================
echo compiling STANDARD QC
echo ========================
echo.
fteqcc-cli-win.exe -srcfile ../progs/standard.src
fteqcc-cli-win.exe -O3 -srcfile ../progs/standard.src
pause