diff --git a/reaction/cgame/cg_local.h b/reaction/cgame/cg_local.h
index 0888cd55..f8c1ad87 100644
--- a/reaction/cgame/cg_local.h
+++ b/reaction/cgame/cg_local.h
@@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
+// Revision 1.74 2002/05/12 14:39:48 makro
+// Wood, brick & ceramic impact sounds
+//
// Revision 1.73 2002/05/11 19:55:20 slicer
// Added sub and captain to the scoreboard parser
//
@@ -260,7 +263,11 @@ typedef enum {
IMPACTSOUND_METAL,
IMPACTSOUND_FLESH,
// rq3 onwards
- IMPACTSOUND_GLASS
+ IMPACTSOUND_GLASS,
+ //Makro - added
+ IMPACTSOUND_BRICK,
+ IMPACTSOUND_WOOD,
+ IMPACTSOUND_CERAMIC
} impactSound_t;
@@ -1174,6 +1181,18 @@ typedef struct {
sfxHandle_t sfx_glassric1;
sfxHandle_t sfx_glassric2;
sfxHandle_t sfx_glassric3;
+ // Makro: brick ricochet sounds
+ sfxHandle_t sfx_brickric1;
+ sfxHandle_t sfx_brickric2;
+ sfxHandle_t sfx_brickric3;
+ // Makro: wood ricochet sounds
+ sfxHandle_t sfx_woodric1;
+ sfxHandle_t sfx_woodric2;
+ sfxHandle_t sfx_woodric3;
+ // Makro: ceramic ricochet sounds
+ sfxHandle_t sfx_ceramicric1;
+ sfxHandle_t sfx_ceramicric2;
+ sfxHandle_t sfx_ceramicric3;
// Elder: Shell tumble sound
sfxHandle_t sfx_shelltumble;
diff --git a/reaction/cgame/cg_main.c b/reaction/cgame/cg_main.c
index d5f662b6..c64a45a8 100644
--- a/reaction/cgame/cg_main.c
+++ b/reaction/cgame/cg_main.c
@@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
+// Revision 1.63 2002/05/12 14:39:48 makro
+// Wood, brick & ceramic impact sounds
+//
// Revision 1.62 2002/05/11 19:13:42 makro
// Sand surfaceparm
//
@@ -1052,6 +1055,17 @@ static void CG_RegisterSounds( void ) {
cgs.media.sfx_glassric1 = trap_S_RegisterSound ("sound/world/impactglass01.wav", qfalse);
cgs.media.sfx_glassric2 = trap_S_RegisterSound ("sound/world/impactglass02.wav", qfalse);
cgs.media.sfx_glassric3 = trap_S_RegisterSound ("sound/world/impactglass03.wav", qfalse);
+ //Makro - added
+ cgs.media.sfx_brickric1 = trap_S_RegisterSound ("sound/world/impactbrick01.wav", qfalse);
+ cgs.media.sfx_brickric2 = trap_S_RegisterSound ("sound/world/impactbrick02.wav", qfalse);
+ cgs.media.sfx_brickric3 = trap_S_RegisterSound ("sound/world/impactbrick03.wav", qfalse);
+ cgs.media.sfx_woodric1 = trap_S_RegisterSound ("sound/world/impactwood01.wav", qfalse);
+ cgs.media.sfx_woodric2 = trap_S_RegisterSound ("sound/world/impactwood02.wav", qfalse);
+ cgs.media.sfx_woodric3 = trap_S_RegisterSound ("sound/world/impactwood03.wav", qfalse);
+ cgs.media.sfx_ceramicric1 = trap_S_RegisterSound ("sound/world/impactceramic01.wav", qfalse);
+ cgs.media.sfx_ceramicric2 = trap_S_RegisterSound ("sound/world/impactceramic02.wav", qfalse);
+ cgs.media.sfx_ceramicric3 = trap_S_RegisterSound ("sound/world/impactceramic03.wav", qfalse);
+
cgs.media.sfx_shelltumble = trap_S_RegisterSound ("sound/misc/shell.wav", qfalse);
cgs.media.sfx_railg = trap_S_RegisterSound ("sound/weapons/railgun/railgf1a.wav", qfalse);
diff --git a/reaction/cgame/cg_weapons.c b/reaction/cgame/cg_weapons.c
index 90349e2d..a94b2b4e 100644
--- a/reaction/cgame/cg_weapons.c
+++ b/reaction/cgame/cg_weapons.c
@@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
+// Revision 1.71 2002/05/12 14:39:48 makro
+// Wood, brick & ceramic impact sounds
+//
// Revision 1.70 2002/05/09 06:40:37 niceass
// New tracers
//
@@ -2920,6 +2923,39 @@ void CG_MissileHitWall( int weapon, int clientNum, vec3_t origin,
else
sfx = cgs.media.sfx_glassric3;
}
+ //Makro - added
+ else if (soundType == IMPACTSOUND_BRICK)
+ {
+ mark = cgs.media.bulletMarkShader;
+ if ( r < 2 )
+ sfx = cgs.media.sfx_brickric1;
+ else if ( r == 2 )
+ sfx = cgs.media.sfx_brickric2;
+ else
+ sfx = cgs.media.sfx_brickric3;
+ }
+ //Makro - added
+ else if (soundType == IMPACTSOUND_WOOD)
+ {
+ mark = cgs.media.bulletMarkShader;
+ if ( r < 2 )
+ sfx = cgs.media.sfx_woodric1;
+ else if ( r == 2 )
+ sfx = cgs.media.sfx_woodric2;
+ else
+ sfx = cgs.media.sfx_woodric3;
+ }
+ //Makro - added
+ else if (soundType == IMPACTSOUND_CERAMIC)
+ {
+ mark = cgs.media.bulletMarkShader;
+ if ( r < 2 )
+ sfx = cgs.media.sfx_ceramicric1;
+ else if ( r == 2 )
+ sfx = cgs.media.sfx_ceramicric2;
+ else
+ sfx = cgs.media.sfx_ceramicric3;
+ }
else
{
mark = cgs.media.bulletMarkShader;
@@ -3603,6 +3639,42 @@ static void CG_ShotgunPellet( vec3_t start, vec3_t end, int skipNum, int shellWe
CG_MissileHitWall( WP_HANDCANNON, 0, tr.endpos, tr.plane.normal, viewDir, IMPACTSOUND_GLASS, 0 );
}
}
+ //Makro - added
+ else if ( IsWoodMat(Material) )
+ {
+ //Blaze: Changed WP_SHOTGUN to WP_M3
+ if (shellWeapon == WP_M3)
+ CG_MissileHitWall( WP_M3, 0, tr.endpos, tr.plane.normal, viewDir, IMPACTSOUND_WOOD, 0 );
+ else if (shellWeapon == WP_HANDCANNON && crandom() > 0.5)
+ {
+ //Elder: show only approximately every other impact mark
+ CG_MissileHitWall( WP_HANDCANNON, 0, tr.endpos, tr.plane.normal, viewDir, IMPACTSOUND_WOOD, 0 );
+ }
+ }
+ //Makro - added
+ else if ( Material == MAT_BRICK )
+ {
+ //Blaze: Changed WP_SHOTGUN to WP_M3
+ if (shellWeapon == WP_M3)
+ CG_MissileHitWall( WP_M3, 0, tr.endpos, tr.plane.normal, viewDir, IMPACTSOUND_BRICK, 0 );
+ else if (shellWeapon == WP_HANDCANNON && crandom() > 0.5)
+ {
+ //Elder: show only approximately every other impact mark
+ CG_MissileHitWall( WP_HANDCANNON, 0, tr.endpos, tr.plane.normal, viewDir, IMPACTSOUND_BRICK, 0 );
+ }
+ }
+ //Makro - added
+ else if ( Material == MAT_CERAMIC )
+ {
+ //Blaze: Changed WP_SHOTGUN to WP_M3
+ if (shellWeapon == WP_M3)
+ CG_MissileHitWall( WP_M3, 0, tr.endpos, tr.plane.normal, viewDir, IMPACTSOUND_CERAMIC, 0 );
+ else if (shellWeapon == WP_HANDCANNON && crandom() > 0.5)
+ {
+ //Elder: show only approximately every other impact mark
+ CG_MissileHitWall( WP_HANDCANNON, 0, tr.endpos, tr.plane.normal, viewDir, IMPACTSOUND_CERAMIC, 0 );
+ }
+ }
else
{
// Elder: By default, the M3 and HC will spark on all surfaces
diff --git a/reaction/cgame/cgame.plg b/reaction/cgame/cgame.plg
index 6064b403..91fc158f 100644
--- a/reaction/cgame/cgame.plg
+++ b/reaction/cgame/cgame.plg
@@ -6,100 +6,197 @@
--------------------Configuration: cgame - Win32 Release--------------------
Command Lines
-Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1EF2.tmp" with contents
-[
-/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"Release/cgame.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
-"C:\Games\Quake3\rq3source\reaction\game\bg_misc.c"
-"C:\Games\Quake3\rq3source\reaction\game\bg_pmove.c"
-"C:\Games\Quake3\rq3source\reaction\game\bg_slidemove.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_consolecmds.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_draw.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_drawtools.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_effects.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_ents.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_event.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_info.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_localents.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_main.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_marks.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_players.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_playerstate.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_predict.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_scoreboard.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_servercmds.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_snapshot.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_syscalls.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_view.c"
-"C:\Games\Quake3\rq3source\reaction\cgame\cg_weapons.c"
-"C:\Games\Quake3\rq3source\reaction\game\q_math.c"
-"C:\Games\Quake3\rq3source\reaction\game\q_shared.c"
-"C:\Games\Quake3\rq3source\reaction\ui\ui_shared.c"
-]
-Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1EF2.tmp"
-Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1EF3.tmp" with contents
-[
-/nologo /base:"0x30000000" /subsystem:windows /dll /incremental:no /pdb:"Release/cgamex86.pdb" /map:"Release/cgamex86.map" /machine:I386 /def:".\cgame.def" /out:"../Release/cgamex86.dll" /implib:"Release/cgamex86.lib"
-.\Release\bg_misc.obj
-.\Release\bg_pmove.obj
-.\Release\bg_slidemove.obj
-.\Release\cg_consolecmds.obj
-.\Release\cg_draw.obj
-.\Release\cg_drawtools.obj
-.\Release\cg_effects.obj
-.\Release\cg_ents.obj
-.\Release\cg_event.obj
-.\Release\cg_info.obj
-.\Release\cg_localents.obj
-.\Release\cg_main.obj
-.\Release\cg_marks.obj
-.\Release\cg_players.obj
-.\Release\cg_playerstate.obj
-.\Release\cg_predict.obj
-.\Release\cg_scoreboard.obj
-.\Release\cg_servercmds.obj
-.\Release\cg_snapshot.obj
-.\Release\cg_syscalls.obj
-.\Release\cg_view.obj
-.\Release\cg_weapons.obj
-.\Release\q_math.obj
-.\Release\q_shared.obj
-.\Release\ui_shared.obj
-]
-Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1EF3.tmp"
-Output Window
-Compiling...
-bg_misc.c
-bg_pmove.c
-bg_slidemove.c
-cg_consolecmds.c
-cg_draw.c
-cg_drawtools.c
-cg_effects.c
-cg_ents.c
-cg_event.c
-cg_info.c
-cg_localents.c
-cg_main.c
-cg_marks.c
-cg_players.c
-cg_playerstate.c
-cg_predict.c
-cg_scoreboard.c
-cg_servercmds.c
-cg_snapshot.c
-cg_syscalls.c
-cg_view.c
-cg_weapons.c
-q_math.c
-q_shared.c
-ui_shared.c
-Linking...
- Creating library Release/cgamex86.lib and object Release/cgamex86.exp
Results
cgamex86.dll - 0 error(s), 0 warning(s)
+
+--------------------Configuration: game - Win32 Release--------------------
+
+Command Lines
+Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP42E.tmp" with contents
+[
+/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR"c:\reactionoutput/" /Fp"c:\reactionoutput/game.pch" /YX /Fo"c:\reactionoutput/" /Fd"c:\reactionoutput/" /FD /c
+"C:\Games\Quake3\rq3source\reaction\game\ai_chat.c"
+"C:\Games\Quake3\rq3source\reaction\game\ai_cmd.c"
+"C:\Games\Quake3\rq3source\reaction\game\ai_dmnet.c"
+"C:\Games\Quake3\rq3source\reaction\game\ai_dmq3.c"
+"C:\Games\Quake3\rq3source\reaction\game\ai_main.c"
+"C:\Games\Quake3\rq3source\reaction\game\ai_team.c"
+"C:\Games\Quake3\rq3source\reaction\game\ai_vcmd.c"
+"C:\Games\Quake3\rq3source\reaction\game\bg_misc.c"
+"C:\Games\Quake3\rq3source\reaction\game\bg_pmove.c"
+"C:\Games\Quake3\rq3source\reaction\game\bg_slidemove.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_active.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_arenas.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_bot.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_client.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_cmds.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_combat.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_fileio.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_items.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_main.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_matchmode.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_mem.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_misc.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_missile.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_mover.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_session.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_spawn.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_svcmds.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_syscalls.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_target.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_team.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_teamplay.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_trigger.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_utils.c"
+"C:\Games\Quake3\rq3source\reaction\game\g_weapon.c"
+"C:\Games\Quake3\rq3source\reaction\game\rxn_game.c"
+"C:\Games\Quake3\rq3source\reaction\game\zcam.c"
+"C:\Games\Quake3\rq3source\reaction\game\zcam_target.c"
+]
+Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP42E.tmp"
+Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP42F.tmp" with contents
+[
+kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"c:\reactionoutput/qagamex86.pdb" /map:"c:\reactionoutput/qagamex86.map" /machine:I386 /def:".\game.def" /out:"..\Release/qagamex86.dll" /implib:"c:\reactionoutput/qagamex86.lib"
+\reactionoutput\ai_chat.obj
+\reactionoutput\ai_cmd.obj
+\reactionoutput\ai_dmnet.obj
+\reactionoutput\ai_dmq3.obj
+\reactionoutput\ai_main.obj
+\reactionoutput\ai_team.obj
+\reactionoutput\ai_vcmd.obj
+\reactionoutput\bg_misc.obj
+\reactionoutput\bg_pmove.obj
+\reactionoutput\bg_slidemove.obj
+\reactionoutput\g_active.obj
+\reactionoutput\g_arenas.obj
+\reactionoutput\g_bot.obj
+\reactionoutput\g_client.obj
+\reactionoutput\g_cmds.obj
+\reactionoutput\g_combat.obj
+\reactionoutput\g_fileio.obj
+\reactionoutput\g_items.obj
+\reactionoutput\g_main.obj
+\reactionoutput\g_matchmode.obj
+\reactionoutput\g_mem.obj
+\reactionoutput\g_misc.obj
+\reactionoutput\g_missile.obj
+\reactionoutput\g_mover.obj
+\reactionoutput\g_session.obj
+\reactionoutput\g_spawn.obj
+\reactionoutput\g_svcmds.obj
+\reactionoutput\g_syscalls.obj
+\reactionoutput\g_target.obj
+\reactionoutput\g_team.obj
+\reactionoutput\g_teamplay.obj
+\reactionoutput\g_trigger.obj
+\reactionoutput\g_utils.obj
+\reactionoutput\g_weapon.obj
+\reactionoutput\q_math.obj
+\reactionoutput\q_shared.obj
+\reactionoutput\rxn_game.obj
+\reactionoutput\zcam.obj
+\reactionoutput\zcam_target.obj
+]
+Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP42F.tmp"
+Output Window
+Compiling...
+ai_chat.c
+ai_cmd.c
+ai_dmnet.c
+ai_dmq3.c
+ai_main.c
+ai_team.c
+ai_vcmd.c
+bg_misc.c
+bg_pmove.c
+bg_slidemove.c
+g_active.c
+g_arenas.c
+g_bot.c
+g_client.c
+g_cmds.c
+g_combat.c
+g_fileio.c
+g_items.c
+g_main.c
+g_matchmode.c
+g_mem.c
+g_misc.c
+g_missile.c
+g_mover.c
+g_session.c
+g_spawn.c
+g_svcmds.c
+g_syscalls.c
+g_target.c
+g_team.c
+g_teamplay.c
+g_trigger.c
+g_utils.c
+g_weapon.c
+C:\Games\Quake3\rq3source\reaction\game\g_weapon.c(1702) : warning C4013: 'IsWodMat' undefined; assuming extern returning int
+rxn_game.c
+C:\Games\Quake3\rq3source\reaction\game\g_weapon.c(2669) : warning C4701: local variable 'tr' may be used without having been initialized
+zcam.c
+zcam_target.c
+Linking...
+ Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp
+g_weapon.obj : error LNK2001: unresolved external symbol _IsWodMat
+..\Release/qagamex86.dll : fatal error LNK1120: 1 unresolved externals
+Error executing link.exe.
+
+
+
+Results
+qagamex86.dll - 2 error(s), 2 warning(s)
+
+--------------------Configuration: ui - Win32 Release TA--------------------
+
+Command Lines
+Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP433.tmp" with contents
+[
+/nologo /G6 /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /Fp"Release_TA/ta_ui.pch" /YX /Fo"Release_TA/" /Fd"Release_TA/" /FD /c
+"C:\Games\Quake3\rq3source\reaction\game\bg_misc.c"
+"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_atoms.c"
+"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_gameinfo.c"
+"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_main.c"
+"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_players.c"
+"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_syscalls.c"
+]
+Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP433.tmp"
+Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP434.tmp" with contents
+[
+/nologo /base:"0x40000000" /dll /incremental:no /pdb:"Release_TA/uix86.pdb" /map:"Release_TA/uix86.map" /machine:I386 /def:".\ui.def" /out:"uix86.dll" /implib:"Release_TA/uix86.lib"
+.\Release_TA\bg_misc.obj
+.\Release_TA\q_math.obj
+.\Release_TA\q_shared.obj
+.\Release_TA\ui_atoms.obj
+.\Release_TA\ui_gameinfo.obj
+.\Release_TA\ui_main.obj
+.\Release_TA\ui_players.obj
+.\Release_TA\ui_shared.obj
+.\Release_TA\ui_syscalls.obj
+.\Release_TA\ui_util.obj
+]
+Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP434.tmp"
+Output Window
+Compiling...
+bg_misc.c
+ui_atoms.c
+ui_gameinfo.c
+ui_main.c
+ui_players.c
+ui_syscalls.c
+Linking...
+ Creating library Release_TA/uix86.lib and object Release_TA/uix86.exp
+
+
+
+Results
+uix86.dll - 0 error(s), 0 warning(s)