mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-29 15:51:45 +00:00
game: support translated sounds in messages (Heretic 2)
This commit is contained in:
parent
c51ccea802
commit
3a5d0afea5
7 changed files with 44 additions and 13 deletions
|
@ -2601,6 +2601,8 @@ void
|
||||||
door_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
door_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
csurface_t *surf /* unused */)
|
csurface_t *surf /* unused */)
|
||||||
{
|
{
|
||||||
|
int sound_index;
|
||||||
|
|
||||||
if (!self || !other)
|
if (!self || !other)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -2618,8 +2620,9 @@ door_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
|
|
||||||
self->touch_debounce_time = level.time + 5.0;
|
self->touch_debounce_time = level.time + 5.0;
|
||||||
|
|
||||||
gi.centerprintf(other, "%s", LocalizationMessage(self->message));
|
sound_index = gi.soundindex("misc/talk1.wav");
|
||||||
gi.sound(other, CHAN_AUTO, gi.soundindex("misc/talk1.wav"), 1, ATTN_NORM, 0);
|
gi.centerprintf(other, "%s", LocalizationMessage(self->message, &sound_index));
|
||||||
|
gi.sound(other, CHAN_AUTO, sound_index, 1, ATTN_NORM, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -228,7 +228,15 @@ secret_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */, csurfa
|
||||||
|
|
||||||
if (self->message)
|
if (self->message)
|
||||||
{
|
{
|
||||||
gi.centerprintf(other, LocalizationMessage(self->message));
|
int sound_index;
|
||||||
|
|
||||||
|
sound_index = 0;
|
||||||
|
gi.centerprintf(other, LocalizationMessage(self->message, &sound_index));
|
||||||
|
|
||||||
|
if (sound_index)
|
||||||
|
{
|
||||||
|
gi.sound(other, CHAN_AUTO, sound_index, 1, ATTN_NORM, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -865,7 +865,8 @@ SP_worldspawn(edict_t *ent)
|
||||||
/* make some data visible to the server */
|
/* make some data visible to the server */
|
||||||
if (ent->message && ent->message[0])
|
if (ent->message && ent->message[0])
|
||||||
{
|
{
|
||||||
Q_strlcpy(level.level_name, LocalizationMessage(ent->message), sizeof(level.level_name));
|
Q_strlcpy(level.level_name, LocalizationMessage(ent->message, NULL),
|
||||||
|
sizeof(level.level_name));
|
||||||
gi.configstring(CS_NAME, level.level_name);
|
gi.configstring(CS_NAME, level.level_name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -270,9 +270,21 @@ LocalizationInit(void)
|
||||||
{
|
{
|
||||||
*sign = 0;
|
*sign = 0;
|
||||||
sign ++;
|
sign ++;
|
||||||
|
|
||||||
|
/* replace '\' with '/' in sound path */
|
||||||
|
currend = sign;
|
||||||
|
while(*currend)
|
||||||
|
{
|
||||||
|
if (*currend == '\\')
|
||||||
|
{
|
||||||
|
*currend = '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* replace @ with new line */
|
currend++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* replace @ in message with new line */
|
||||||
currend = curr;
|
currend = curr;
|
||||||
while(*currend)
|
while(*currend)
|
||||||
{
|
{
|
||||||
|
@ -360,7 +372,7 @@ LocalizationSearch(const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char*
|
const char*
|
||||||
LocalizationMessage(const char *message)
|
LocalizationMessage(const char *message, int *sound_index)
|
||||||
{
|
{
|
||||||
if (!message || !localmessages || !nlocalmessages)
|
if (!message || !localmessages || !nlocalmessages)
|
||||||
{
|
{
|
||||||
|
@ -375,6 +387,11 @@ LocalizationMessage(const char *message)
|
||||||
i = LocalizationSearch(message);
|
i = LocalizationSearch(message);
|
||||||
if (i >= 0)
|
if (i >= 0)
|
||||||
{
|
{
|
||||||
|
if (sound_index && localmessages[i].sound)
|
||||||
|
{
|
||||||
|
*sound_index = gi.soundindex(localmessages[i].sound);
|
||||||
|
}
|
||||||
|
|
||||||
return localmessages[i].value;
|
return localmessages[i].value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -321,17 +321,19 @@ G_UseTargets(edict_t *ent, edict_t *activator)
|
||||||
/* print the message */
|
/* print the message */
|
||||||
if (activator && (ent->message) && !(activator->svflags & SVF_MONSTER))
|
if (activator && (ent->message) && !(activator->svflags & SVF_MONSTER))
|
||||||
{
|
{
|
||||||
gi.centerprintf(activator, "%s", LocalizationMessage(ent->message));
|
int sound_index;
|
||||||
|
|
||||||
if (ent->noise_index)
|
if (ent->noise_index)
|
||||||
{
|
{
|
||||||
gi.sound(activator, CHAN_AUTO, ent->noise_index, 1, ATTN_NORM, 0);
|
sound_index = ent->noise_index;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gi.sound(activator, CHAN_AUTO, gi.soundindex(
|
sound_index = gi.soundindex("misc/talk1.wav");
|
||||||
"misc/talk1.wav"), 1, ATTN_NORM, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gi.centerprintf(activator, "%s", LocalizationMessage(ent->message, &sound_index));
|
||||||
|
gi.sound(activator, CHAN_AUTO, sound_index, 1, ATTN_NORM, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* kill killtargets */
|
/* kill killtargets */
|
||||||
|
|
|
@ -996,7 +996,7 @@ void EndDMLevel(void);
|
||||||
|
|
||||||
/* g_translate.c */
|
/* g_translate.c */
|
||||||
void LocalizationInit(void);
|
void LocalizationInit(void);
|
||||||
const char* LocalizationMessage(const char *message);
|
const char* LocalizationMessage(const char *message, int *sound_index);
|
||||||
|
|
||||||
/* g_chase.c */
|
/* g_chase.c */
|
||||||
void UpdateChaseCam(edict_t *ent);
|
void UpdateChaseCam(edict_t *ent);
|
||||||
|
|
|
@ -421,8 +421,8 @@ HelpComputerMessage(edict_t *ent)
|
||||||
"xv 50 yv 172 string2 \"%3i/%3i %i/%i %i/%i\" ",
|
"xv 50 yv 172 string2 \"%3i/%3i %i/%i %i/%i\" ",
|
||||||
sk,
|
sk,
|
||||||
level.level_name,
|
level.level_name,
|
||||||
LocalizationMessage(game.helpmessage1),
|
LocalizationMessage(game.helpmessage1, NULL),
|
||||||
LocalizationMessage(game.helpmessage2),
|
LocalizationMessage(game.helpmessage2, NULL),
|
||||||
level.killed_monsters, level.total_monsters,
|
level.killed_monsters, level.total_monsters,
|
||||||
level.found_goals, level.total_goals,
|
level.found_goals, level.total_goals,
|
||||||
level.found_secrets, level.total_secrets);
|
level.found_secrets, level.total_secrets);
|
||||||
|
|
Loading…
Reference in a new issue