diff --git a/src/client/sentences.c b/src/client/sentences.c index cdc78f3b..5cac0fb1 100644 --- a/src/client/sentences.c +++ b/src/client/sentences.c @@ -133,4 +133,6 @@ Sentences_GetSamples(string msg) return g_sentences[i].m_strSamples; } } + + return ""; } diff --git a/src/client/valve/hud.c b/src/client/valve/hud.c index b858537c..74bc2854 100644 --- a/src/client/valve/hud.c +++ b/src/client/valve/hud.c @@ -364,7 +364,6 @@ HUD_DrawLogo(void) } /* weapon/ammo pickup notifications */ - void HUD_DrawNotify(void) { diff --git a/src/client/valve/progs.src b/src/client/valve/progs.src index e9a8db58..548ac8bf 100755 --- a/src/client/valve/progs.src +++ b/src/client/valve/progs.src @@ -11,14 +11,14 @@ ../../shared/materials.h ../../shared/events.h ../../shared/entities.h -defs.h -particles.h +../valve/defs.h +../valve/particles.h ../defs.h ../../vgui/include.src ../util.c -init.c +../valve/init.c ../fade.c ../sprite.cpp @@ -64,24 +64,24 @@ init.c ../../shared/valve/weapons.c ../../shared/valve/weapon_common.c -player.c -entities.c +../valve/player.c +../valve/entities.c ../entities.c -cmds.c -game_event.c +../valve/cmds.c +../valve/game_event.c ../events.c -view.c +../valve/view.c ../view.c ../damage.c ../obituary.c ../chat.c ../vgui.cpp -hud.c -hud_weaponselect.c -scoreboard.c +../valve/hud.c +../valve/hud_weaponselect.c +../valve/scoreboard.c -input.c +../valve/input.c ../entry.c #endlist diff --git a/src/server/gearbox/progs.src b/src/server/gearbox/progs.src index 01dbf05a..462412ca 100755 --- a/src/server/gearbox/progs.src +++ b/src/server/gearbox/progs.src @@ -26,7 +26,6 @@ ../valve/monster_alien_controller.cpp ../valve/monster_alien_grunt.cpp ../valve/monster_alien_slave.cpp -../valve/monster_babycrab.cpp ../valve/monster_barnacle.cpp ../valve/monster_barney.cpp ../valve/monster_barney_dead.cpp @@ -38,6 +37,7 @@ ../valve/monster_gargantua.cpp ../valve/monster_gman.cpp ../valve/monster_headcrab.cpp +../valve/monster_babycrab.cpp ../valve/monster_hevsuit_dead.cpp ../valve/monster_houndeye.cpp ../valve/monster_human_grunt.cpp diff --git a/src/server/hunger/progs.src b/src/server/hunger/progs.src index 6eadfcde..8f4e9121 100755 --- a/src/server/hunger/progs.src +++ b/src/server/hunger/progs.src @@ -26,7 +26,6 @@ ../valve/monster_alien_controller.cpp ../valve/monster_alien_grunt.cpp ../valve/monster_alien_slave.cpp -../valve/monster_babycrab.cpp ../valve/monster_barnacle.cpp ../valve/monster_barney.cpp ../valve/monster_barney_dead.cpp @@ -38,6 +37,7 @@ ../valve/monster_gargantua.cpp ../valve/monster_gman.cpp ../valve/monster_headcrab.cpp +../valve/monster_babycrab.cpp ../valve/monster_hevsuit_dead.cpp ../valve/monster_houndeye.cpp ../valve/monster_human_grunt.cpp diff --git a/src/server/scihunt/progs.src b/src/server/scihunt/progs.src index 95b13b30..e95898b4 100755 --- a/src/server/scihunt/progs.src +++ b/src/server/scihunt/progs.src @@ -28,7 +28,6 @@ ../valve/monster_alien_controller.cpp ../valve/monster_alien_grunt.cpp ../valve/monster_alien_slave.cpp -../valve/monster_babycrab.cpp ../valve/monster_barnacle.cpp ../valve/monster_barney.cpp ../valve/monster_barney_dead.cpp @@ -40,6 +39,7 @@ ../valve/monster_gargantua.cpp ../valve/monster_gman.cpp ../valve/monster_headcrab.cpp +../valve/monster_babycrab.cpp ../valve/monster_hevsuit_dead.cpp ../valve/monster_houndeye.cpp ../valve/monster_human_grunt.cpp diff --git a/src/server/valve/monster_alien_slave.cpp b/src/server/valve/monster_alien_slave.cpp index 6366aaac..155ca612 100644 --- a/src/server/valve/monster_alien_slave.cpp +++ b/src/server/valve/monster_alien_slave.cpp @@ -53,6 +53,8 @@ enum { SLV_JABBER }; +/* chat & idle sounds are handled via sentences.txt */ + string slv_snddie[] = { "aslave/slv_die1.wav", "aslave/slv_die2.wav" @@ -133,6 +135,7 @@ monster_alien_slave::monster_alien_slave(void) netname = "Alien Slave"; model = "models/islave.mdl"; + base_health = Skill_GetValue("islave_health"); base_mins = [-16,-16,0]; base_maxs = [16,16,72]; CBaseMonster::CBaseMonster(); diff --git a/src/server/valve/monster_barnacle.cpp b/src/server/valve/monster_barnacle.cpp index 30323fc6..3b528306 100644 --- a/src/server/valve/monster_barnacle.cpp +++ b/src/server/valve/monster_barnacle.cpp @@ -21,24 +21,74 @@ Barnacle */ enum { - BARN_IDLE, - BARN_IDLE2, - BARN_IDLE3, - BARN_FLINCH, - BARN_ATTACK, - BARN_CHEW, - BARN_DEATH + BCL_IDLE, + BCL_IDLE2, + BCL_IDLE3, + BCL_FLINCH, + BCL_ATTACK, + BCL_CHEW, + BCL_DIE +}; + +/* bcl_alert2 is played when the barnacle is pulling up an ent + * bcl_bite3 is played when an entity is in it's mouth, bcl_tongue1 unused? + */ + +string bcl_sndchew[] = { + "barnacle/bcl_chew1.wav", + "barnacle/bcl_chew2.wav", + "barnacle/bcl_chew3.wav" +}; + +string bcl_snddie[] = { + "barnacle/bcl_die1.wav", + "barnacle/bcl_die3.wav" }; class monster_barnacle:CBaseMonster { + void() monster_barnacle; + + virtual void(int) Death; + virtual void(void) Respawn; }; +void +monster_barnacle::Death(int iHitBody) +{ + /* if we're already dead (corpse) don't change animations */ + if (style != MONSTER_DEAD) { + frame = BCL_DIE; + + /* the sound */ + int rand = floor(random(0,bcl_snddie.length)); + Sound(bcl_snddie[rand]); + } + + /* set the functional differences */ + CBaseMonster::Death(iHitBody); +} + +void +monster_barnacle::Respawn(void) +{ + CBaseMonster::Respawn(); + frame = BCL_IDLE; +} + void monster_barnacle::monster_barnacle(void) { + for (int i = 0; i < bcl_sndchew.length; i++) { + precache_sound(bcl_sndchew[i]); + } + for (int i = 0; i < bcl_snddie.length; i++) { + precache_sound(bcl_snddie[i]); + } + netname = "Barnacle"; model = "models/barnacle.mdl"; + base_health = Skill_GetValue("barnacle_health"); base_mins = [-16,-16,-36]; base_maxs = [16,16,0]; CBaseMonster::CBaseMonster(); diff --git a/src/server/valve/monster_barney.cpp b/src/server/valve/monster_barney.cpp index 98a78b71..7f4b6658 100644 --- a/src/server/valve/monster_barney.cpp +++ b/src/server/valve/monster_barney.cpp @@ -68,20 +68,12 @@ string barney_sndpain[] = { "barney/ba_pain1.wav" }; -string barney_sndscream[] = { - "barney/ba_pain1.wav", - "barney/ba_pain1.wav", - "barney/ba_pain1.wav" -}; - class monster_barney:CBaseNPC { vector m_vecLastUserPos; entity m_eUser; entity m_eRescuer; - float m_flScaredTime; - float m_flScreamTime; float m_flPainTime; float m_flChangePath; float m_flTraceTime; @@ -95,9 +87,7 @@ class monster_barney:CBaseNPC virtual void(int) Pain; virtual void(int) Death; virtual void() Physics; - virtual void() Scream; virtual void() WarnOthers; - virtual void() IdleChat; }; void monster_barney::WarnOthers(void) @@ -108,33 +98,10 @@ void monster_barney::WarnOthers(void) sci.m_iFlags |= BARNF_SEEN; sci.m_eUser = world; sci.m_eRescuer = world; - sci.m_flScaredTime = time + 2.5f; - sci.Scream(); } } } -void monster_barney::Scream(void) -{ - if (m_flScreamTime > time) { - return; - } - - int rand = floor(random(0,barney_sndscream.length)); - Speak(barney_sndscream[rand]); - m_flScreamTime = time + 5.0f; -} - -void monster_barney::IdleChat(void) -{ - if (m_flScreamTime > time) { - return; - } - - Sentence(m_talkPlayerIdle); - m_flScreamTime = time + 5.0f + random(0,20); -} - void monster_barney::Physics(void) { float spvel; @@ -210,7 +177,6 @@ void monster_barney::Physics(void) } } else if (m_iFlags & BARNF_FEAR) { m_iFlags |= BARNF_SEEN; - Scream(); maxspeed = 240; input_movevalues = [maxspeed, 0, 0]; @@ -246,7 +212,7 @@ void monster_barney::Physics(void) m_flChangePath = time + floor(random(2,10)); } } else { - IdleChat(); + //Sentence(m_talkPlayerIdle); } if (m_flPainTime > time) { @@ -272,9 +238,6 @@ void monster_barney::Physics(void) Footsteps_Update(); if (!(flags & FL_ONGROUND) && velocity[2] < -100) { - if (!(m_iFlags & BARNF_FALLING)) { - Speak(barney_sndscream[0]); - } m_iFlags |= BARNF_FALLING; } else { m_iFlags -= (flags & BARNF_FALLING); @@ -403,9 +366,6 @@ void monster_barney::monster_barney(void) for (int i = 0; i < barney_snddie.length; i++) { precache_sound(barney_snddie[i]); } - for (int i = 0; i < barney_sndscream.length; i++) { - precache_sound(barney_sndscream[i]); - } m_talkAnswer = "!BA_ANSWER"; m_talkAsk = ""; @@ -414,7 +374,7 @@ void monster_barney::monster_barney(void) m_talkIdle = ""; m_talkSmelling = "!BA_SMELL"; m_talkStare = "!BA_STARE"; - m_talkSurvived = "!BA_ANSWER"; + m_talkSurvived = "!BA_WOUND"; m_talkWounded = "!BA_WOUND"; m_talkPlayerAsk = "!BA_QUESTION"; diff --git a/src/server/valve/monster_bigmomma.cpp b/src/server/valve/monster_bigmomma.cpp index fac39bea..2251d1a9 100644 --- a/src/server/valve/monster_bigmomma.cpp +++ b/src/server/valve/monster_bigmomma.cpp @@ -29,6 +29,9 @@ void monster_bigmomma::monster_bigmomma(void) { netname = "Gonarch"; model = "models/big_mom.mdl"; + /* health is based on factor, for it's not killable until last stage + * base_health = Skill_GetValue("bigmomma_health"); + */ base_mins = [-95,-95,0]; base_maxs = [95,95,190]; CBaseMonster::CBaseMonster(); diff --git a/src/server/valve/monster_bullchicken.cpp b/src/server/valve/monster_bullchicken.cpp index 42edbd5a..718e8357 100644 --- a/src/server/valve/monster_bullchicken.cpp +++ b/src/server/valve/monster_bullchicken.cpp @@ -47,15 +47,129 @@ enum { BULL_FALL }; +/* the growls are used in combination with the bite sounds + * for close range attacks + */ + +string bull_sndattack[] = { + "bullchicken/bc_attackgrowl1.wav", + "bullchicken/bc_attackgrowl2.wav", + "bullchicken/bc_attackgrowl3.wav" +}; + +string bull_sndattackbite[] = { + "bullchicken/bc_bite1.wav", + "bullchicken/bc_bite2.wav", + "bullchicken/bc_bite3.wav" +}; + +string bull_sndattackshoot[] = { + "bullchicken/bc_attack1.wav", + "bullchicken/bc_attack2.wav", + "bullchicken/bc_attack3.wav" +}; + +string bull_snddie[] = { + "bullchicken/bc_die1.wav", + "bullchicken/bc_die2.wav", + "bullchicken/bc_die3.wav" +}; + +string bull_sndidle[] = { + "bullchicken/bc_idle1.wav", + "bullchicken/bc_idle2.wav", + "bullchicken/bc_idle3.wav", + "bullchicken/bc_idle4.wav", + "bullchicken/bc_idle5.wav" +}; + +string bull_sndpain[] = { + "bullchicken/bc_pain1.wav", + "bullchicken/bc_pain2.wav", + "bullchicken/bc_pain3.wav", + "bullchicken/bc_pain4.wav" +}; + + class monster_bullchicken:CBaseMonster { + float m_flPainTime; + void() monster_bullchicken; + + virtual void(int) Death; + virtual void(int) Pain; + virtual void(void) Respawn; }; +void +monster_bullchicken::Pain(int iHitBody) +{ + CBaseMonster::Pain(iHitBody); + + if (m_flPainTime > time) { + return; + } + + if (random() < 0.25f) { + return; + } + + int rand = floor(random(0,bull_sndpain.length)); + Sound(bull_sndpain[rand]); + frame = (random() < 0.5) ? BULL_FLINCH : BULL_FLINCH2; + m_flPainTime = time + 0.25f; +} + +void +monster_bullchicken::Death(int iHitBody) +{ + /* if we're already dead (corpse) don't change animations */ + if (style != MONSTER_DEAD) { + + /* two different animations */ + frame = (random() < 0.5) ? BULL_DIE : BULL_DIE2; + + /* the sound */ + int rand = floor(random(0,bull_snddie.length)); + Sound(bull_snddie[rand]); + } + + /* set the functional differences */ + CBaseMonster::Death(iHitBody); +} + +void +monster_bullchicken::Respawn(void) +{ + CBaseMonster::Respawn(); + frame = BULL_IDLE; +} + void monster_bullchicken::monster_bullchicken(void) { + for (int i = 0; i time) { return; } + /* timing needs to adjusted as sounds conflict */ m_flIdleTime = time + 2.0f + random(0,5); - int rand = floor(random(0, tent_sndidle.length)); - Sound(tent_sndidle[rand]); + int rand = floor(random(0, te_sndidle.length)); + Sound(te_sndidle[rand]); } void monster_tentacle::Respawn(void) { CBaseMonster::Respawn(); + /* not entirely true, takes damage then retreats and reheals */ takedamage = DAMAGE_NO; iBleeds = FALSE; - frame = TENT_IDLEPIT; + frame = TE_IDLE; } void diff --git a/src/server/valve/monster_zombie.cpp b/src/server/valve/monster_zombie.cpp index e42d221e..feb76840 100644 --- a/src/server/valve/monster_zombie.cpp +++ b/src/server/valve/monster_zombie.cpp @@ -21,81 +21,81 @@ Zombie */ enum { - ZOMA_IDLE, - ZOMA_TURNLEFT, - ZOMA_TURNRIGHT, - ZOMA_FLINCHSM, - ZOMA_FLINCH, - ZOMA_FLINCHBIG, - ZOMA_RISE, - ZOMA_FALLING, - ZOMA_ATTACK1, - ZOMA_ATTACK2, - ZOMA_WALK, - ZOMA_FLINCHLA, - ZOMA_FLINCHRA, - ZOMA_FLINCHLEFT, - ZOMA_FLINCHRIGHT, - ZOMA_DIEHS, - ZOMA_DIEHS2, - ZOMA_DIE, - ZOMA_DIEBACK, - ZOMA_DIEFORWARD, - ZOMA_PAUSE, - ZOMA_WALLBUST, - ZOMA_WALLKICK, - ZOMA_WINDOWBUST, - ZOMA_SODA, - ZOMA_SLIDEIDLE, - ZOMA_SLIDE, - ZOMA_VENTIDLE, - ZOMA_VENT, - ZOMA_DEADIDLE, - ZOMA_DEAD, - ZOMA_FREAKDIE, - ZOMA_FREAK, - ZOMA_EATTABLE, - ZOMA_EAT, - ZOMA_EATSTAND, - ZOMA_DOORIP, - ZOMA_PULLSCI, - ZOMA_EAT2, - ZOMA_EAT2STAND, - ZOMA_VENT2IDLE, - ZOMA_VENT2, - ZOMA_HAUL, - ZOMA_RISESNACK + ZO_IDLE, + ZO_TURNLEFT, + ZO_TURNRIGHT, + ZO_FLINCHSM, + ZO_FLINCH, + ZO_FLINCHBIG, + ZO_RISE, + ZO_FALLING, + ZO_ATTACK1, + ZO_ATTACK2, + ZO_WALK, + ZO_FLINCHLA, + ZO_FLINCHRA, + ZO_FLINCHLEFT, + ZO_FLINCHRIGHT, + ZO_DIEHS, + ZO_DIEHS2, + ZO_DIE, + ZO_DIE2, + ZO_DIE3, + ZO_PAUSE, + ZO_WALLBUST, + ZO_WALLKICK, + ZO_WINDOWBUST, + ZO_SODA, + ZO_SLIDEIDLE, + ZO_SLIDE, + ZO_VENTIDLE, + ZO_VENT, + ZO_DEADIDLE, + ZO_DEAD, + ZO_FREAKDIE, + ZO_FREAK, + ZO_EATTABLE, + ZO_EAT, + ZO_EATSTAND, + ZO_DOORIP, + ZO_PULLSCI, + ZO_EAT2, + ZO_EAT2STAND, + ZO_VENT2IDLE, + ZO_VENT2, + ZO_HAUL, + ZO_RISESNACK }; -string zom_sndattack[] = { +string zo_sndattack[] = { "zombie/zo_attack1.wav", "zombie/zo_attack2.wav" }; -string zom_sndclaw[] = { +string zo_sndclaw[] = { "zombie/claw_strike1.wav", "zombie/claw_strike2.wav", "zombie/claw_strike3.wav" }; -string zom_sndclawmiss[] = { +string zo_sndclawmiss[] = { "zombie/claw_miss1.wav", "zombie/claw_miss2.wav" }; -string zom_sndidle[] = { +string zo_sndidle[] = { "zombie/zo_idle1.wav", "zombie/zo_idle2.wav", "zombie/zo_idle3.wav", "zombie/zo_idle4.wav" }; -string zom_sndpain[] = { +string zo_sndpain[] = { "zombie/zo_pain1.wav", "zombie/zo_pain2.wav" }; -string zom_sndsee[] = { +string zo_sndsee[] = { "zombie/zo_alert10.wav", "zombie/zo_alert20.wav", "zombie/zo_alert30.wav" @@ -127,9 +127,9 @@ monster_zombie::Pain(int iHitBody) return; } - int rand = floor(random(0,zom_sndpain.length)); - Sound(zom_sndpain[rand]); - frame = ZOMA_FLINCH + floor(random(0, 2)); + int rand = floor(random(0,zo_sndpain.length)); + Sound(zo_sndpain[rand]); + frame = ZO_FLINCH + floor(random(0, 2)); m_flPainTime = time + 0.25f; } @@ -141,17 +141,17 @@ monster_zombie::Death(int iHitBody) /* headshots == different animation */ if (iHitBody == BODY_HEAD) { if (random() < 0.5) { - frame = ZOMA_DIEHS; + frame = ZO_DIEHS; } else { - frame = ZOMA_DIEHS2; + frame = ZO_DIEHS2; } } else { - frame = ZOMA_DIE + floor(random(0, 3)); + frame = ZO_DIE + floor(random(0, 3)); } /* the sound */ - int rand = floor(random(0,zom_sndpain.length)); - Sound(zom_sndpain[rand]); + int rand = floor(random(0,zo_sndpain.length)); + Sound(zo_sndpain[rand]); } /* set the functional differences */ @@ -171,42 +171,42 @@ monster_zombie::IdleNoise(void) } m_flIdleTime = time + 2.0f + random(0,5); - int rand = floor(random(0, zom_sndidle.length)); - Sound(zom_sndidle[rand]); + int rand = floor(random(0, zo_sndidle.length)); + Sound(zo_sndidle[rand]); } void monster_zombie::Respawn(void) { CBaseMonster::Respawn(); - frame = ZOMA_IDLE; + frame = ZO_IDLE; } void monster_zombie::monster_zombie(void) { - for (int i = 0; i < zom_sndattack.length; i++) { - precache_sound(zom_sndattack[i]); + for (int i = 0; i < zo_sndattack.length; i++) { + precache_sound(zo_sndattack[i]); } - for (int i = 0; i < zom_sndclaw.length; i++) { - precache_sound(zom_sndclaw[i]); + for (int i = 0; i < zo_sndclaw.length; i++) { + precache_sound(zo_sndclaw[i]); } - for (int i = 0; i < zom_sndclawmiss.length; i++) { - precache_sound(zom_sndclawmiss[i]); + for (int i = 0; i < zo_sndclawmiss.length; i++) { + precache_sound(zo_sndclawmiss[i]); } - for (int i = 0; i < zom_sndidle.length; i++) { - precache_sound(zom_sndidle[i]); + for (int i = 0; i < zo_sndidle.length; i++) { + precache_sound(zo_sndidle[i]); } - for (int i = 0; i < zom_sndpain.length; i++) { - precache_sound(zom_sndpain[i]); + for (int i = 0; i < zo_sndpain.length; i++) { + precache_sound(zo_sndpain[i]); } - for (int i = 0; i < zom_sndsee.length; i++) { - precache_sound(zom_sndsee[i]); + for (int i = 0; i < zo_sndsee.length; i++) { + precache_sound(zo_sndsee[i]); } netname = "Zombie"; model = "models/zombie.mdl"; - base_health = 50; + base_health = Skill_GetValue("zombie_health"); base_mins = [-16,-16,0]; base_maxs = [16,16,72]; CBaseMonster::CBaseMonster(); diff --git a/src/server/valve/progs.src b/src/server/valve/progs.src index fe5eaa4f..406762c4 100755 --- a/src/server/valve/progs.src +++ b/src/server/valve/progs.src @@ -25,7 +25,6 @@ defs.h ../valve/monster_alien_controller.cpp ../valve/monster_alien_grunt.cpp ../valve/monster_alien_slave.cpp -../valve/monster_babycrab.cpp ../valve/monster_barnacle.cpp ../valve/monster_barney.cpp ../valve/monster_barney_dead.cpp @@ -37,6 +36,7 @@ defs.h ../valve/monster_gargantua.cpp ../valve/monster_gman.cpp ../valve/monster_headcrab.cpp +../valve/monster_babycrab.cpp ../valve/monster_hevsuit_dead.cpp ../valve/monster_houndeye.cpp ../valve/monster_human_grunt.cpp diff --git a/src/shared/cstrike/player.cpp b/src/shared/cstrike/player.cpp index ab2b3164..5dd82eea 100644 --- a/src/shared/cstrike/player.cpp +++ b/src/shared/cstrike/player.cpp @@ -41,6 +41,9 @@ class player:CBaseEntity vector view_ofs; float weapontime; + /* any mods that use hooks */ + entity hook; + /* Weapon specific */ int usp45_mag; int glock18_mag;