mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-30 16:00:55 +00:00
a breakable with a underscore in it's name will now try and load files from it's parent if it cant find any itself
ex glass_blue will load sounds from glass if there is no glass_blue/sounds/break1.wav
This commit is contained in:
parent
5c6ddb1c72
commit
8dca6af6c5
2 changed files with 105 additions and 45 deletions
|
@ -5,6 +5,10 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.73 2002/06/06 03:01:46 blaze
|
||||||
|
// a breakable with a underscore in it's name will now try and load files from it's parent if it cant find any itself
|
||||||
|
// ex glass_blue will load sounds from glass if there is no glass_blue/sounds/break1.wav
|
||||||
|
//
|
||||||
// Revision 1.72 2002/06/06 01:53:51 niceass
|
// Revision 1.72 2002/06/06 01:53:51 niceass
|
||||||
// pressure change
|
// pressure change
|
||||||
//
|
//
|
||||||
|
@ -1170,6 +1174,29 @@ static void CG_RegisterSounds( void ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//===================================================================================
|
||||||
|
/*
|
||||||
|
=================
|
||||||
|
CG_CheckFile
|
||||||
|
|
||||||
|
This function checks to see if a file exists
|
||||||
|
=================
|
||||||
|
*/
|
||||||
|
static qboolean CG_CheckFile(const char *fpath)
|
||||||
|
{
|
||||||
|
fileHandle_t f;
|
||||||
|
int len;
|
||||||
|
len = trap_FS_FOpenFile( fpath, &f, FS_READ ) ;
|
||||||
|
if(len == -1)
|
||||||
|
{
|
||||||
|
trap_FS_FCloseFile( f );
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
|
trap_FS_FCloseFile( f );
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
//===================================================================================
|
//===================================================================================
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
|
@ -1182,6 +1209,8 @@ static void CG_RegisterBreakables(void){
|
||||||
int i,id;
|
int i,id;
|
||||||
const char *breakInfo;
|
const char *breakInfo;
|
||||||
const char *name;
|
const char *name;
|
||||||
|
char baseName[80];
|
||||||
|
|
||||||
CG_Printf("In registerbreakables\n");
|
CG_Printf("In registerbreakables\n");
|
||||||
for (i=0;i < RQ3_MAX_BREAKABLES; i++)
|
for (i=0;i < RQ3_MAX_BREAKABLES; i++)
|
||||||
{
|
{
|
||||||
|
@ -1195,14 +1224,46 @@ static void CG_RegisterBreakables(void){
|
||||||
name = Info_ValueForKey(breakInfo,"type");
|
name = Info_ValueForKey(breakInfo,"type");
|
||||||
Com_Printf("Registering breakable %s ID=%d\n",name, id);
|
Com_Printf("Registering breakable %s ID=%d\n",name, id);
|
||||||
//Blaze: Breakable stuff - register the models, sounds, and explosion shader
|
//Blaze: Breakable stuff - register the models, sounds, and explosion shader
|
||||||
|
if (CG_CheckFile(va("breakables/%s/models/break1.md3",name)) == qtrue)
|
||||||
|
{
|
||||||
cgs.media.breakables[id].model[0] = trap_R_RegisterModel( va("breakables/%s/models/break1.md3",name));
|
cgs.media.breakables[id].model[0] = trap_R_RegisterModel( va("breakables/%s/models/break1.md3",name));
|
||||||
cgs.media.breakables[id].model[1] = trap_R_RegisterModel( va("breakables/%s/models/break2.md3",name));
|
cgs.media.breakables[id].model[1] = trap_R_RegisterModel( va("breakables/%s/models/break2.md3",name));
|
||||||
cgs.media.breakables[id].model[2] = trap_R_RegisterModel( va("breakables/%s/models/break3.md3",name));
|
cgs.media.breakables[id].model[2] = trap_R_RegisterModel( va("breakables/%s/models/break3.md3",name));
|
||||||
cgs.media.breakables[id].shader = trap_R_RegisterShader( va("breakable_%s_explosion",name));
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strncpy(baseName,name,80);
|
||||||
|
baseName[strstr(name,"_") - name]='\0';
|
||||||
|
cgs.media.breakables[id].model[0] = trap_R_RegisterModel( va("breakables/%s/models/break1.md3",baseName));
|
||||||
|
cgs.media.breakables[id].model[1] = trap_R_RegisterModel( va("breakables/%s/models/break2.md3",baseName));
|
||||||
|
cgs.media.breakables[id].model[2] = trap_R_RegisterModel( va("breakables/%s/models/break3.md3",baseName));
|
||||||
|
}
|
||||||
|
if (CG_CheckFile(va("breakables/%s/sounds/break1.wav", name)) == qtrue)
|
||||||
|
{
|
||||||
cgs.media.breakables[id].sound[0] = trap_S_RegisterSound( va("breakables/%s/sounds/break1.wav", name), qfalse);
|
cgs.media.breakables[id].sound[0] = trap_S_RegisterSound( va("breakables/%s/sounds/break1.wav", name), qfalse);
|
||||||
cgs.media.breakables[id].sound[1] = trap_S_RegisterSound( va("breakables/%s/sounds/break2.wav", name), qfalse);
|
cgs.media.breakables[id].sound[1] = trap_S_RegisterSound( va("breakables/%s/sounds/break2.wav", name), qfalse);
|
||||||
cgs.media.breakables[id].sound[2] = trap_S_RegisterSound( va("breakables/%s/sounds/break3.wav", name), qfalse);
|
cgs.media.breakables[id].sound[2] = trap_S_RegisterSound( va("breakables/%s/sounds/break3.wav", name), qfalse);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strncpy(baseName,name,80);
|
||||||
|
baseName[strstr(name,"_") - name]='\0';
|
||||||
|
cgs.media.breakables[id].sound[0] = trap_S_RegisterSound( va("breakables/%s/sounds/break1.wav", baseName), qfalse);
|
||||||
|
cgs.media.breakables[id].sound[1] = trap_S_RegisterSound( va("breakables/%s/sounds/break2.wav", baseName), qfalse);
|
||||||
|
cgs.media.breakables[id].sound[2] = trap_S_RegisterSound( va("breakables/%s/sounds/break3.wav", baseName), qfalse);
|
||||||
|
}
|
||||||
|
if (CG_CheckFile(va("breakables/%s/sounds/explosion.wav", name)) == qtrue)
|
||||||
|
{
|
||||||
cgs.media.breakables[id].exp_sound = trap_S_RegisterSound( va("breakables/%s/sounds/explosion.wav", name), qfalse);
|
cgs.media.breakables[id].exp_sound = trap_S_RegisterSound( va("breakables/%s/sounds/explosion.wav", name), qfalse);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strncpy(baseName,name,80);
|
||||||
|
baseName[strstr(name,"_") - name]='\0';
|
||||||
|
cgs.media.breakables[id].exp_sound = trap_S_RegisterSound( va("breakables/%s/sounds/explosion.wav", baseName), qfalse);
|
||||||
|
}
|
||||||
|
|
||||||
|
cgs.media.breakables[id].shader = trap_R_RegisterShader( va("breakable_%s_explosion",name));
|
||||||
cgs.media.breakables[id].velocity = atoi(Info_ValueForKey(breakInfo,"velocity"));
|
cgs.media.breakables[id].velocity = atoi(Info_ValueForKey(breakInfo,"velocity"));
|
||||||
cgs.media.breakables[id].jump = atoi(Info_ValueForKey(breakInfo,"jump"));
|
cgs.media.breakables[id].jump = atoi(Info_ValueForKey(breakInfo,"jump"));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -3,57 +3,56 @@
|
||||||
<pre>
|
<pre>
|
||||||
<h1>Build Log</h1>
|
<h1>Build Log</h1>
|
||||||
<h3>
|
<h3>
|
||||||
--------------------Configuration: cgame - Win32 Release--------------------
|
--------------------Configuration: cgame - Win32 Debug--------------------
|
||||||
</h3>
|
</h3>
|
||||||
<h3>Command Lines</h3>
|
<h3>Command Lines</h3>
|
||||||
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP87.tmp" with contents
|
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPCF.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
|
/nologo /G5 /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"Debug/" /Fp"Debug/cgame.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /c
|
||||||
"C:\Games\Quake3\rq3source\reaction\cgame\cg_info.c"
|
"C:\Development\reaction\cgame\cg_main.c"
|
||||||
"C:\Games\Quake3\rq3source\reaction\cgame\cg_main.c"
|
|
||||||
]
|
]
|
||||||
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP87.tmp"
|
Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPCF.tmp"
|
||||||
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP88.tmp" with contents
|
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPD0.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"
|
/nologo /base:"0x30000000" /subsystem:windows /dll /incremental:yes /pdb:"Debug/cgamex86.pdb" /map:"Debug/cgamex86.map" /debug /machine:I386 /def:".\cgame.def" /out:"../Debug/cgamex86.dll" /implib:"Debug/cgamex86.lib"
|
||||||
.\Release\bg_misc.obj
|
.\Debug\bg_misc.obj
|
||||||
.\Release\bg_pmove.obj
|
.\Debug\bg_pmove.obj
|
||||||
.\Release\bg_slidemove.obj
|
.\Debug\bg_slidemove.obj
|
||||||
.\Release\cg_consolecmds.obj
|
.\Debug\cg_consolecmds.obj
|
||||||
.\Release\cg_draw.obj
|
.\Debug\cg_draw.obj
|
||||||
.\Release\cg_drawtools.obj
|
.\Debug\cg_drawtools.obj
|
||||||
.\Release\cg_effects.obj
|
.\Debug\cg_effects.obj
|
||||||
.\Release\cg_ents.obj
|
.\Debug\cg_ents.obj
|
||||||
.\Release\cg_event.obj
|
.\Debug\cg_event.obj
|
||||||
.\Release\cg_info.obj
|
.\Debug\cg_info.obj
|
||||||
.\Release\cg_localents.obj
|
.\Debug\cg_localents.obj
|
||||||
.\Release\cg_main.obj
|
.\Debug\cg_main.obj
|
||||||
.\Release\cg_marks.obj
|
.\Debug\cg_marks.obj
|
||||||
.\Release\cg_players.obj
|
.\Debug\cg_players.obj
|
||||||
.\Release\cg_playerstate.obj
|
.\Debug\cg_playerstate.obj
|
||||||
.\Release\cg_predict.obj
|
.\Debug\cg_predict.obj
|
||||||
.\Release\cg_scoreboard.obj
|
.\Debug\cg_scoreboard.obj
|
||||||
.\Release\cg_servercmds.obj
|
.\Debug\cg_servercmds.obj
|
||||||
.\Release\cg_snapshot.obj
|
.\Debug\cg_snapshot.obj
|
||||||
.\Release\cg_syscalls.obj
|
.\Debug\cg_syscalls.obj
|
||||||
.\Release\cg_view.obj
|
.\Debug\cg_view.obj
|
||||||
.\Release\cg_weapons.obj
|
.\Debug\cg_weapons.obj
|
||||||
.\Release\q_math.obj
|
.\Debug\q_math.obj
|
||||||
.\Release\q_shared.obj
|
.\Debug\q_shared.obj
|
||||||
.\Release\ui_shared.obj
|
.\Debug\ui_shared.obj
|
||||||
]
|
]
|
||||||
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP88.tmp"
|
Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPD0.tmp"
|
||||||
<h3>Output Window</h3>
|
<h3>Output Window</h3>
|
||||||
Compiling...
|
Compiling...
|
||||||
cg_info.c
|
|
||||||
cg_main.c
|
cg_main.c
|
||||||
Linking...
|
C:\Development\reaction\cgame\cg_main.c(1245) : error C2110: cannot add two pointers
|
||||||
Creating library Release/cgamex86.lib and object Release/cgamex86.exp
|
C:\Development\reaction\cgame\cg_main.c(1245) : fatal error C1903: unable to recover from previous error(s); stopping compilation
|
||||||
|
Error executing cl.exe.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Results</h3>
|
<h3>Results</h3>
|
||||||
cgamex86.dll - 0 error(s), 0 warning(s)
|
cgamex86.dll - 2 error(s), 0 warning(s)
|
||||||
</pre>
|
</pre>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue