Compare commits

..

No commits in common. "cee2b4b67a84172e0f69607af1a165819fed33a4" and "6e03b9ec3dfb31082739acc9570790b92932cc67" have entirely different histories.

29 changed files with 294 additions and 129 deletions

View File

@ -1,3 +1,9 @@
void() movetarget_f;
void() t_movetarget;
void() knight_walk1;
void() knight_bow6;
void() knight_bow1;
void(entity etemp, entity stemp, entity stemp, float dmg) T_Damage;
/*
.enemy
@ -500,6 +506,9 @@ float() FacingIdeal = {
//=============================================================================
float() WizardCheckAttack;
float() DogCheckAttack;
float() CheckAnyAttack = {
if(!enemy_vis) {
return 0;

80
source/amtest.qc Normal file
View File

@ -0,0 +1,80 @@
/*~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>
~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~*/
void() test_teleport_touch;
void() tele_done;
/*QUAKED test_teleport(0 .5 .8) ?
Teleporter testing
*/
void() test_teleport = {
precache_model("sprites/s_aball.spr");
setsize(self, self.mins, self.maxs);
self.touch = test_teleport_touch;
self.solid = 1;
if(!self.target) {
objerror("no target\n");
}
};
void() test_teleport_touch = {
local entity oldself;
other.movetype = MOVETYPE_TOSS;
// other.solid = SOLID_NOT;
other.dest = '256 -128 -128';
oldself = self;
self = other;
// SUB_CalcMove(self.dest, 200, tele_done);
self.velocity = '1000 0 0 ';
self = oldself;
};
void() tele_done = {
self.movetype = MOVETYPE_WALK;
self.solid = SOLID_SLIDEBOX;
};
/*~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>
~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~<~>~*/
void() test_goaway;
void() test_spawn;
/*QUAKED test_fodder(0 .5 .8) ?
beating guy
*/
void() test_fodder = {
self.nextthink = time + 3;
self.think = test_spawn;
};
void() test_spawn = {
local entity body;
makevectors(self.angles);
body = spawn();
setmodel(body, "progs/soldier.mdl");
setorigin(body, self.origin);
body.classname = "player";
body.health = 1000;
body.frags = 0;
body.takedamage = DAMAGE_AIM;
body.solid = SOLID_SLIDEBOX;
body.movetype = MOVETYPE_WALK;
body.show_hostile = 0;
body.weapon = 1;
body.velocity = v_forward * 200;
body.nextthink = time + 5;
body.think = test_goaway;
self.nextthink = time + 3;
self.think = test_spawn;
};
void() test_goaway = {
remove(self);
};

View File

@ -35,6 +35,8 @@ $frame shockc1 shockc2 shockc3 shockc4 shockc5 shockc6 shockc7 shockc8
$frame shockc9 shockc10
void(vector p) boss_missile;
void() boss_face = {
// go for another player if multi player

View File

@ -1,5 +1,8 @@
// button and multiple button
void() button_wait;
void() button_return;
void() button_wait = {
self.state = STATE_TOP;
self.nextthink = self.ltime + self.wait;

View File

@ -1,3 +1,13 @@
// prototypes
void() W_WeaponFrame;
void() W_SetCurrentAmmo;
void() player_pain;
void() player_stand1;
void(vector org) spawn_tfog;
void(vector org, entity death_owner) spawn_tdeath;
float(entity targ, entity attacker) SameTeam;
float modelindex_eyes, modelindex_player;
/*
@ -309,6 +319,8 @@ void() trigger_changelevel = {
=============================================================================
*/
void() set_suicide_frame;
// called by ClientKill and DeadThink
void() respawn = {
if(coop) {
@ -426,6 +438,10 @@ PutClientInServer
called each time a player is spawned
============
*/
void() DecodeLevelParms;
void() PlayerDie;
void() PutClientInServer = {
local entity spot;

View File

@ -1,3 +1,10 @@
void() T_MissileTouch;
void() info_player_start;
void(entity targ, entity attacker) ClientObituary;
void() monster_death_use;
//============================================================================
float(entity targ, entity attacker) SameTeam = {

View File

@ -1,4 +1,5 @@
// system globals ------------------------------------------------------------|
#pragma noref 1
entity self;
entity other;
@ -46,6 +47,7 @@ float trace_inopen;
float trace_inwater;
entity msg_entity; // destination of single entity writes
#pragma noref 0
// required prog functions
void() main; // only for testing
@ -460,7 +462,6 @@ enum {
AS_MELEE,
AS_MISSILE,
};
#pragma noref 0
// globals -------------------------------------------------------------------|
@ -597,117 +598,4 @@ void(entity targ, entity inflictor, entity attacker, float damage) T_Damage;
float(entity e, float healamount, float ignore) T_Heal; // health function
float(entity targ, entity inflictor) CanDamage;
float() DemonCheckAttack;
float() DogCheckAttack;
float() W_BestWeapon;
float() WizardCheckAttack;
float(entity targ) infront;
float(entity targ) range;
float(entity targ) visible;
float(entity targ, entity attacker) SameTeam;
float(float v) anglemod;
void() DecodeLevelParms;
void() Demon_JumpTouch;
void() InitBodyQue;
void() PlayerDie;
void() ShalHome;
void() ShalMissile;
void() ShalMissileTouch;
void() SuperDamageSound;
void() T_MissileTouch;
void() W_SetCurrentAmmo;
void() W_WeaponFrame;
void() ai_face;
void() armor_touch;
void() army_fire;
void() bubble_bob;
void() bubble_remove;
void() button_return;
void() button_wait;
void() dog_leap1;
void() dog_run1;
void() door_go_down;
void() door_go_up;
void() fd_secret_done;
void() fd_secret_move1;
void() fd_secret_move2;
void() fd_secret_move3;
void() fd_secret_move4;
void() fd_secret_move5;
void() fd_secret_move6;
void() finale_1;
void() finale_2;
void() finale_3;
void() finale_4;
void() fire_fly;
void() fire_touch;
void() func_train_find;
void() health_touch;
void() hk_idle_sound;
void() hknight_char_a1;
void() hknight_run1;
void() info_player_start;
void() item_megahealth_rot;
void() knight_atk1;
void() knight_bow1;
void() knight_bow6;
void() knight_runatk1;
void() knight_walk1;
void() make_bubbles;
void() monster_death_use;
void() movetarget_f;
void() ogre_smash1;
void() ogre_swing1;
void() plat_center_touch;
void() plat_crush;
void() plat_go_down;
void() plat_go_up;
void() plat_outside_touch;
void() plat_trigger_use;
void() player_axe1;
void() player_axeb1;
void() player_axec1;
void() player_axed1;
void() player_die_ax1;
void() player_diea1;
void() player_dieb1;
void() player_diec1;
void() player_died1;
void() player_diee1;
void() player_light1;
void() player_nail1;
void() player_pain;
void() player_rocket1;
void() player_run;
void() player_run;
void() player_shot1;
void() player_stand1;
void() powerup_touch;
void() set_suicide_frame;
void() shalrath_pain;
void() sham_smash1;
void() sham_swingl1;
void() sham_swingr1;
void() sham_swingr1;
void() spike_touch;
void() superspike_touch;
void() swimmonster_start;
void() t_movetarget;
void() tbaby_jump1;
void() tbaby_jump5;
void() train_next;
void() wiz_run1;
void() wiz_side1;
void(entity bomb, entity attacker, float rad, entity ignore) T_RadiusDamage;
void(entity targ, entity attacker) ClientObituary;
void(entity targ, entity inflictor, entity attacker, float damage) T_Damage;
void(float num_bubbles) DeathBubbles;
void(float side) Demon_Melee;
void(vector dest) ChooseTurn;
void(vector org) spawn_tfog;
void(vector org, entity death_owner) spawn_tdeath;
void(vector org, vector vec) LaunchLaser;
void(vector org, vector vel, float damage) SpawnBlood;
void(vector p) boss_missile;
// EOF

View File

@ -31,6 +31,8 @@ $frame attacka9 attacka10 attacka11 attacka12 attacka13 attacka14 attacka15
//============================================================================
void() Demon_JumpTouch;
void() demon1_stand1 = [ $stand1, demon1_stand2 ] {ai_stand();};
void() demon1_stand2 = [ $stand2, demon1_stand3 ] {ai_stand();};
void() demon1_stand3 = [ $stand3, demon1_stand4 ] {ai_stand();};

View File

@ -31,6 +31,9 @@ $frame stand1 stand2 stand3 stand4 stand5 stand6 stand7 stand8 stand9
$frame walk1 walk2 walk3 walk4 walk5 walk6 walk7 walk8
void() dog_leap1;
void() dog_run1;
/*
================
dog_bite

View File

@ -27,6 +27,9 @@ THINK FUNCTIONS
=============================================================================
*/
void() door_go_down;
void() door_go_up;
void() door_blocked = {
T_Damage(other, self, self, self.dmg);
@ -521,6 +524,14 @@ SECRET DOORS
=============================================================================
*/
void() fd_secret_move1;
void() fd_secret_move2;
void() fd_secret_move3;
void() fd_secret_move4;
void() fd_secret_move5;
void() fd_secret_move6;
void() fd_secret_done;
enum {
SECRET_OPEN_ONCE = 1, // stays open
SECRET_1ST_LEFT = 2, // 1st move is left of arrow

View File

@ -8,6 +8,25 @@ When it decides it can't attack, it goes into hunt mode.
*/
float(float v) anglemod;
void() knight_atk1;
void() knight_runatk1;
void() ogre_smash1;
void() ogre_swing1;
void() sham_smash1;
void() sham_swingr1;
void() sham_swingl1;
float() DemonCheckAttack;
void(float side) Demon_Melee;
void(vector dest) ChooseTurn;
void() ai_face;
float enemy_vis, enemy_infront, enemy_range;
float enemy_yaw;
@ -129,6 +148,10 @@ ai_charge
The monster is in a melee attack, so get as close as possible to .enemy
=============
*/
float(entity targ) visible;
float(entity targ) infront;
float(entity targ) range;
void(float d) ai_charge = {
ai_face();
movetogoal(d); // done in C code...

View File

@ -18,6 +18,8 @@ $frame swim18
$frame pain1 pain2 pain3 pain4 pain5 pain6 pain7 pain8
$frame pain9
void() swimmonster_start;
void() f_stand1 = [ $swim1, f_stand2 ] {ai_stand();};
void() f_stand2 = [ $swim2, f_stand3 ] {ai_stand();};
void() f_stand3 = [ $swim3, f_stand4 ] {ai_stand();};

7
source/flag.qc Normal file
View File

@ -0,0 +1,7 @@
/*QUAKED item_deathball(.3 .3 1) (0 0 0) (32 32 32)
*/
void() deathball_touch;
void() item_deathball = {
self.touch = deathball_touch;
};

View File

@ -52,6 +52,10 @@ $frame magicc1 magicc2 magicc3 magicc4 magicc5 magicc6 magicc7 magicc8
$frame magicc9 magicc10 magicc11
void() hknight_char_a1;
void() hknight_run1;
void() hk_idle_sound;
void(float offset) hknight_shot = {
local vector offang;
local vector org, vec;

View File

@ -7,6 +7,8 @@ const string WEPNAME_GRENADE_LAUNCHER = "Grenade Launcher";
const string WEPNAME_ROCKET_LAUNCHER = "Rocket Launcher";
const string WEPNAME_LIGHTNING = "Thunderbolt";
void() W_SetCurrentAmmo;
string() Key1Name = {
switch(world.worldtype) {
case 0: return "silver key";
@ -132,6 +134,8 @@ enum {
H_MEGA = 2,
};
.float healamount, healtype;
void() health_touch;
void() item_megahealth_rot;
void() item_health = {
self.touch = health_touch;
@ -243,6 +247,8 @@ ARMOR
===============================================================================
*/
void() armor_touch;
void() armor_touch = {
local float type, value, bit;
@ -400,6 +406,8 @@ void(float old, float new) Deathmatch_Weapon = {
weapon_touch
=============
*/
float() W_BestWeapon;
void() weapon_touch = {
local float hadammo, best, new, old;
local entity stemp;
@ -1038,6 +1046,9 @@ POWERUPS
===============================================================================
*/
void() powerup_touch;
void() powerup_touch = {
local entity stemp;
local float best;
@ -1193,7 +1204,7 @@ void() BackpackTouch = {
acount = 0;
sprint(other, "You get ");
if(self.weapon && (other.items & self.weapon) == 0) {
if(self.items && (other.items & self.items) == 0) {
acount = 1;
sprint(other, "the ");
sprint(other, self.netname);
@ -1301,18 +1312,25 @@ entity() DropBackpack = {
item = spawn();
item.origin = self.origin - '0 0 24';
item.items = self.weapon | (self.items & (IT_KEY1 | IT_KEY2));
item.weapon = self.weapon;
switch(item.weapon) {
case IT_AXE: item.netname = WEPNAME_AXE; break;
case IT_SHOTGUN: item.netname = WEPNAME_SHOTGUN; break;
case IT_SUPER_SHOTGUN: item.netname = WEPNAME_SUPER_SHOTGUN; break;
case IT_NAILGUN: item.netname = WEPNAME_NAILGUN; break;
case IT_SUPER_NAILGUN: item.netname = WEPNAME_SUPER_NAILGUN; break;
case IT_GRENADE_LAUNCHER: item.netname = WEPNAME_GRENADE_LAUNCHER; break;
case IT_ROCKET_LAUNCHER: item.netname = WEPNAME_ROCKET_LAUNCHER; break;
case IT_LIGHTNING: item.netname = WEPNAME_LIGHTNING; break;
default: item.netname = ""; break;
if(item.items == IT_AXE) {
item.netname = WEPNAME_AXE;
} else if(item.items == IT_SHOTGUN) {
item.netname = WEPNAME_SHOTGUN;
} else if(item.items == IT_SUPER_SHOTGUN) {
item.netname = WEPNAME_SUPER_SHOTGUN;
} else if(item.items == IT_NAILGUN) {
item.netname = WEPNAME_NAILGUN;
} else if(item.items == IT_SUPER_NAILGUN) {
item.netname = WEPNAME_SUPER_NAILGUN;
} else if(item.items == IT_GRENADE_LAUNCHER) {
item.netname = WEPNAME_GRENADE_LAUNCHER;
} else if(item.items == IT_ROCKET_LAUNCHER) {
item.netname = WEPNAME_ROCKET_LAUNCHER;
} else if(item.items == IT_LIGHTNING) {
item.netname = WEPNAME_LIGHTNING;
} else {
item.netname = "";
}
item.ammo_shells = self.ammo_shells;

13
source/jctest.qc Normal file
View File

@ -0,0 +1,13 @@
void() jctrig = {
dprint("here\n\n");
lightstyle(0, "az");
};
/*QUAKED trigger_jctest(.5 .5 .5) ?
*/
void() trigger_jctest = {
setsize(self, self.mins, self.maxs);
self.solid = SOLID_EDGE;
self.touch = jctrig;
};

View File

@ -154,6 +154,8 @@ void() light_flame_small_white = {
Lava Balls
*/
void() fire_fly;
void() fire_touch;
void() misc_fireball = {
precache_model("progs/lavaball.mdl");
self.classname = "fireball";
@ -273,6 +275,8 @@ enum {
SPAWNFLAG_LASER = 2,
};
void(vector org, vector vec) LaunchLaser;
void() spikeshooter_use = {
if(self.spawnflags & SPAWNFLAG_LASER) {
sound(self, CHAN_VOICE, "enforcer/enfire.wav", 1, ATTN_NORM);
@ -337,6 +341,10 @@ void() trap_shooter = {
*/
void() make_bubbles;
void() bubble_remove;
void() bubble_bob;
/*QUAKED air_bubbles(0 .5 .8) (-8 -8 -8) (8 8 8)
testing air bubbles

View File

@ -11,6 +11,12 @@ $base base
$skin skin
$scale 1
void() finale_1;
void() finale_2;
void() finale_3;
void() finale_4;
entity shub;
$frame old1 old2 old3 old4 old5 old6 old7 old8 old9

View File

@ -1,3 +1,12 @@
void() plat_center_touch;
void() plat_outside_touch;
void() plat_trigger_use;
void() plat_go_up;
void() plat_go_down;
void() plat_crush;
enum {
PLAT_LOW_TRIGGER = 1,
};
@ -207,6 +216,9 @@ void() func_plat =
//============================================================================
void() train_next;
void() func_train_find;
void() train_blocked = {
if(time < self.attack_finished) {
return;

View File

@ -1,4 +1,6 @@
void() bubble_bob;
/*
==============================================================================
@ -84,6 +86,8 @@ PLAYER
==============================================================================
*/
void() player_run;
void() player_stand1 = [ $axstnd1, player_stand1 ] {
self.weaponframe = 0;
if(self.velocity_x || self.velocity_y) {
@ -236,6 +240,7 @@ void() player_rocket3 = [$rockatt3, player_rocket4 ] {self.weaponframe = 3;};
void() player_rocket4 = [$rockatt4, player_rocket5 ] {self.weaponframe = 4;};
void() player_rocket5 = [$rockatt5, player_rocket6 ] {self.weaponframe = 5;};
void() player_rocket6 = [$rockatt6, player_run ] {self.weaponframe = 6;};
void(float num_bubbles) DeathBubbles;
void() PainSound = {
local float rs;
@ -347,6 +352,13 @@ void() player_pain = {
}
};
void() player_diea1;
void() player_dieb1;
void() player_diec1;
void() player_died1;
void() player_diee1;
void() player_die_ax1;
void() DeathBubblesSpawn = {
local entity bubble;
if(self.owner.waterlevel != 3) {

View File

@ -21,6 +21,8 @@ $frame death1 death2 death3 death4 death5 death6 death7
$frame walk1 walk2 walk3 walk4 walk5 walk6 walk7 walk8 walk9 walk10
$frame walk11 walk12
void() shalrath_pain;
void() ShalMissile;
void() shal_stand = [ $walk1, shal_stand ] {ai_stand();};
void() shal_walk1 = [ $walk2, shal_walk2 ] {
@ -121,6 +123,8 @@ void() shalrath_die = {
ShalMissile
================
*/
void() ShalMissileTouch;
void() ShalHome;
void() ShalMissile = {
local entity missile;
local vector dir;

View File

@ -122,6 +122,8 @@ void() sham_smash10 = [ $smash10, sham_smash11 ] {
void() sham_smash11 = [ $smash11, sham_smash12 ] {ai_charge(5);};
void() sham_smash12 = [ $smash12, sham_run1 ] {ai_charge(4);};
void() sham_swingr1;
void(float side) ShamClaw = {
local vector delta;
local float ldmg;

View File

@ -43,6 +43,8 @@ SOLDIER CODE
==============================================================================
*/
void() army_fire;
void() army_stand1 = [ $stand1, army_stand2 ] {ai_stand();};
void() army_stand2 = [ $stand2, army_stand3 ] {ai_stand();};
void() army_stand3 = [ $stand3, army_stand4 ] {ai_stand();};

View File

@ -288,6 +288,8 @@ void(float normal) SUB_AttackFinished = {
}
};
float(entity targ) visible;
void(void() thinkst) SUB_CheckRefire = {
if(skill != 3) {
return;

View File

@ -86,6 +86,8 @@ void() tbaby_run25 = [ $run25, tbaby_run1 ] {ai_run(2);};
//============================================================================
void() tbaby_jump1;
void() Tar_JumpTouch = {
local float ldmg;
@ -121,6 +123,8 @@ void() Tar_JumpTouch = {
self.nextthink = time + 0.1;
};
void() tbaby_jump5;
void() tbaby_fly1 = [ $fly1, tbaby_fly2 ] {};
void() tbaby_fly2 = [ $fly2, tbaby_fly3 ] {};
void() tbaby_fly3 = [ $fly3, tbaby_fly4 ] {};

View File

@ -7,9 +7,6 @@ void() trigger_reactivate = {
enum {
SPAWNFLAG_NOMESSAGE = 1,
};
enum {
SPAWNFLAG_NOTOUCH = 1,
};

View File

@ -1,3 +1,12 @@
/*
*/
void(entity targ, entity inflictor, entity attacker, float damage) T_Damage;
void() player_run;
void(entity bomb, entity attacker, float rad, entity ignore) T_RadiusDamage;
void(vector org, vector vel, float damage) SpawnBlood;
void() SuperDamageSound;
// called by worldspawn
void() W_Precache = {
precache_sound("weapons/r_exp3.wav"); // new rocket explosion
@ -549,6 +558,9 @@ void() W_FireGrenade = {
//=============================================================================
void() spike_touch;
void() superspike_touch;
/*
===============
@ -795,6 +807,15 @@ W_Attack
An attack impulse can be triggered now
============
*/
void() player_axe1;
void() player_axeb1;
void() player_axec1;
void() player_axed1;
void() player_shot1;
void() player_nail1;
void() player_light1;
void() player_rocket1;
void() W_Attack = {
local float r;

View File

@ -77,6 +77,9 @@ void(entity missile, float mspeed, float accuracy) LaunchMissile = {
};
void() wiz_run1;
void() wiz_side1;
/*
=================
WizardCheckAttack

View File

@ -1,3 +1,7 @@
void() InitBodyQue;
void() main = {
dprint("main function\n");